UDTRYK/EXPR

Parent Previous Next

Markeringen har følgende syntaks

 

TYPE: LINIE

 

<EXPR  VENSTREPOS=var1 TOPPOS=var2 BREDDE=var3 VENSTRESTILLET CENTRERET HØJRESTILLET FONTNAVN=var4 FONTSTØRRELSE=var5 KURSIV FED UNDERSTREGET MASKE=var6>udtryk1</EXPR>

 

Der er valgfrihed mellem UDTRYK og EXPR.

 

var1:    Afstanden fra båndets venstrekant

var2:    Afstanden fra båndets øverste kant

var3:    Bredden på markeringen

var4:    Navnet på skrifttypen

var5:    Størrelsen på skrifttypen

var6:    Udskriftsmaske til formatering af tal og datoer

udtryk1: Valgfrit beregningsudtryk på data fra databasefilerne

 

Denne markering bruges til at udføre en mere eller mindre kompliceret beregning på data, der hentes fra databasefilerne. Markeringens placering og bredde indtastes. Tekstens placering i markeringen specificeres med argumenterne VENSTRESTILLET, CENTRERET og HØJRESTILLET, hvoraf kun ét kan anvendes. Typografien vælges v.hj.af FONTNAVN, FONTSTØRRELSE samt argumenterne KURSIV, FED og UNDERSTREGET. Udskrivning af tal og datoer formateres v.hj.af MASKE argumentet.

 

Indholdet af markeringen (udtryk1) udgør selve beregningsudtrykket eller formlen og det er resultatet af beregningen, der bliver udskrevet i rapporten. I sin simpleste form hvor udtryk1 er lig med navnet på et databasefelt, vil UDTRYK markeringen have næsten samme funktion som DBTEXT markeringen. Bemærk at rapportgeneratoren ikke automatisk henter databasefelter, der indgår i udtrykket. Hvis de ønskede felter ikke allerede bliver hentet ved f.eks. DBTEXT markeringer, skal man benytte IMPORT argumentet i det BÅND som udtrykket tilhører. I IMPORT argumentet navngives de ønskede felter. Det er endvidere muligt at benytte databasefelter, der IKKE kommer fra båndets tabel men fra en tabel i et overordnet bånd. I beregningsudtrykket skal dette angives med den generelle notation for et felt: 'Tabelnavn.Feltnavn'. (Der må ikke være ordmellemrum).

 

I beregningsudtrykket kan følgende operatorer anvendes:

 

+              Addition.

-              Subtraktion.

*              Multiplikation.

/              Division.

()             Paranteser. Dele af udtryk der er omsluttet af paranteser får højest mulig prioritet.

And            Logisk OG.

Or             Logisk ELLER.

=              Lig med.

<              Mindre end.

>              Større end.

<=             Mindre end eller lig med.

>=             Større end eller lig med.

<>             Forskellig fra.

 

Derudover kan man bruge følgende funktioner:

 

DATE           Indsætter datoen.

TIME           Indsætter tidspunktet.

Str(tal)       Konverterer ’tal’ til tekst.

Copy(txt,p,l)  Returnerer ’l’ tegn fra ’txt’ startende med tegn ’p’.

Upper(txt)     Konverterer en tekststreng til versaler.

Lower(txt)     Konverterer en tekststreng til små bogstaver.

Pretty(txt)    Sætter forreste bogstav til versal og øvrig tekst til små bogstaver.

Int(tal)       Returnerer heltalsdelen af ’tal’.

Frac(tal)      Returnerer brøkdelen af ’tal’.

Div(tal1,tal2) Heltalsdivision af ’tal1’ med ’tal2’.

If(uds,r1,r2)  Evaluerer det logiske udsagn ’uds’ og returnerer ’r1’ hvis udsagnet er sandt og ’r2’ hvis udsagnet er falsk.

TypeOf(udt)    Returnerer datatypen af ’udt’. Følgende datatyper er defineret:

   STRING  -Tekststreng

   INTEGER -Heltal

   FLOAT   -Kommatal

   BOOLEAN -Boolsk værdi

Sqrt(tal)      Udregner kvadratroden af ’tal’.

True           Den logiske værdi ’sand’.

False          Den logiske værdi ’falsk’.

Sum(udt)       Sumfunktionen udføres som en løkke hvori alle records (linier) i båndet gennemløbes.

Count          Returnere antallet af records (linier) i båndet.

Min(udt)       Returnere den mindste værdi af ’udt’ for alle records (linier) i båndet.

Max(udt)      

Average(udt)   Returnerer gennemsnitsværdien af ’udt’ for alle records (linier) i båndet.

FormatNumeric(tal,maske)

Formaterer ’tal’ med ’maske’.

 

For funktionerne Sum, Count, Min, Max og Average gælder, at beregningen udføres på hver enkelt record, der udskrives i båndet.

 

Eksempel 1.

 

<BÅND TABEL=Selskab30 HØJDE=4 STYREFELTER=”SelskabNr->SelskabNr, Konto >PlanKontoNr”>

   .

   <DBTEXT VENSTREPOS=85 BREDDE=19 HØJRESTILLET MASKE=#,##0.00;;''>Debet</DBTEXT>

   <DBTEXT VENSTREPOS=105 BREDDE=19 HØJRESTILLET MASKE=#,##0.00;;''>Kredit</DBTEXT>

   <EXPR VENSTREPOS=140 BREDDE=19 HØJRESTILLET MASKE=#,##0.00;;''>Sum(Debet Kredit)</EXPR>

   .

</BÅND>

 

I eksempel 1 udskrives en posteringsliste med records fra tabellen Selskab30. For at få vist en akkumulerende saldo benyttes EXPR markeringen med funktionen Sum. For at få placeret resultatet i én kolonne udføres beregningen Debet - Kredit. I udskriften vises linie for linie en sammentælling af alle foranliggende linier. Resultatets placering i båndet er specificeret. Det er også angivet, hvordan tallet skal formateres.

 

Eksempel 2.

 

<BÅND TABEL=Selskab30 HØJDE=4 STYREFELTER=”SelskabNr->SelskabNr, Konto >PlanKontoNr”>

   .

   <FOD HØJDE=8>

     <LABEL VENSTREPOS=0 BREDDE=10 VENSTRESTILLET>Ialt</LABEL>

     <EXPR VENSTREPOS=85 BREDDE=19 HØJRESTILLET MASKE=#,##0.00>Sum(Debet)</EXPR>

     <EXPR VENSTREPOS=105 BREDDE=19 HØJRESTILLET MASKE=#,##0.00>Sum(Kredit)</EXPR>

     <EXPR VENSTREPOS=140 BREDDE=19 HØJRESTILLET MASKE=#,##0.00>Sum(Debet Kredit)</EXPR>

   </FOD>

</BÅND>

 

I eksempel 2 udskrives en posteringsliste med records fra tabellen Selskab30. For at få vist en sammentælling af de enkelte kolonner for alle linierne i udskriften skal der indsættes en FOD markering. I denne markering er der indsat en EXPR markering for hver kolonne, der skal sammentælles. Det ses, at der er indsat en sammentælling af kolonnen Debet - Kredit fra eksempel 1. Resultatets placering i båndet er specificeret. Det er også angivet, hvordan tallet skal formateres.

 

Eksempel 3.

 

<BÅND TABEL=Selskab26 HØJDE=10 IMPORT=PlanKontotype STYREFELTER=”SelskabNr >SelskabNr”>

   <BÅND TABEL=Selskab30 HØJDE=4 STYREFELTER=”SelskabNr->SelskabNr, Konto >PlanKontoNr”>

     .

     <EXPR VENSTREPOS=25 BREDDE=19>Selskab26.PlanKontotype</EXPR>

     .

   </BÅND>

</BÅND>

 

I eksempel 3 udskrives en posteringsliste med records fra tabellen Selskab30. Vi bruger EXPR markeringen for at få udskrevet kontotypen, der kommer fra feltet PlanKontotype i tabellen Selskab26. Bemærk feltbetegnelsen 'Tabelnavn.Feltnavn'.