Del via


Formelsprog i elektronisk rapportering

Elektronisk rapportering (ER) giver en effektiv datatransformationsoplevelse. Det sprog, der bruges til at udtrykke de påkrævede datamanipulationer i ER-formeldesigneren, ligner formelsproget i Microsoft Excel.

Grundlæggende syntaks

ER udtryk kan indeholde én eller flere af følgende elementer:

Konstanter

Når du designer udtryk, kan du bruge tekst og numeriske konstanter (værdier, der ikke beregnes). Den numeriske konstant VALUE ("100") + 20 anvender den numeriske konstant 20 og strengkonstanten "100" samt returnerer den numeriske værdi 120.

Elektronisk rapportering (ER) understøtter escape-sekvenser. Derfor kan du angive en udtryksstreng, der skal håndteres anderledes. For eksempel returnerer udtrykket "Leo Tolstoy ""War and Peace"" Volume 1" tekststrengen Leo Tolstoy "Krig og Fred", bind 1.

Operatorer

Følgende tabel viser de aritmetiske operatorer, du kan bruge til at udføre grundlæggende matematiske funktioner som addition, subtraktion, multiplikation og division.

Operatør Betydning Eksempel
+ Tilføjelse 1+2
- Subtraktion, negation 5-2, -1
* Multiplikation 7\*8
/ Afdeling 9/3

Følgende tabel viser de sammenligningsoperatorer, der understøttes. Du kan bruge disse operatorer til at sammenligne to værdier.

Operator Betydning Eksempel:
= Lig med X=Y
> Større end X>Y
< Mindre end X<Y
>= Større end eller lig med X>=Y
<= Mindre end eller lig med X<=Y
<> Ikke lig med X<>Y

Du kan desuden bruge tegnet (&) som en operator til tekstsammenføjning. På denne måde kan du sammenføje eller sammenkæde en eller flere tekststrenge i et enkelt stykke tekst.

Operatør Betydning Eksempel
& Sammenkæde "Nothing to print:" & " " & "no records found"

Den prioriterede operatorrækkefølge

Den rækkefølge, som delene af et sammensat udtryk evalueres i, er vigtig. For eksempel er resultatet af udtrykket 1 + 4 / 2 forskelligt, afhængigt af om der adderes eller divideres først. Du kan bruge parenteser til eksplicit at angive, hvordan et udtryk evalueres. Hvis du for eksempel vil angive, at addition skal udføres først, kan du ændre det foregående udtryk til (1 + 4) / 2. Hvis du ikke udtrykkelig angiver rækkefølgen af operationer i et udtryk, er rækkefølgen baseret på standardrangfølgen, der er tildelt de understøttede operatorer. Følgende tabel viser den prioritet, der er tildelt hver enkelt operator. Operatorer, der har højere prioritet (for eksempel 7), evalueres før operatorer, der har lavere prioritet (f.eks. 1).

Prioritering Operatorer Syntaks
7 Gruppering ( … )
6 Medlemsadgang … . …
5 Funktionskald … ( … )
4 Multiplikation … * …
… / …
3 Tilføjelse … + …
… - …
2 Sammenligning … < …
… <= …
… => …
… > …
… = …
… <> …
1 Separation … , …

Hvis et udtryk indeholder flere på hinanden følgende operatorer, der har samme prioritet, evalueres disse operationer fra venstre mod højre. For eksempel vil udtrykket 1 + 6 / 2 \* 3 > 5 returnere sandt. Vi anbefaler, at du bruger parenteser til at angive den ønskede rækkefølge af operationer i udtryk, så det bliver nemmere at læse og vedligeholde udtrykkene eksplicit.

Referencer

Alle datakilder for den aktuelle ER-komponent, der er tilgængelige under designet af et udtryk, kan bruges som navngivne referencer. Den aktuelle ER-komponent kan enten være en modeltilknytning eller et format. For eksempel indeholder den aktuelle ER-modeltilknytning datakilden ReportingDate, der returnerer værdien af datatypen DateTime. Denne værdi i det genererende dokument skal formateres korrekt ved at referere til datakilden i udtrykket på følgende måde: DATETIMEFORMAT (ReportingDate, "dd-MM-yyyy").

Alle tegn i navnet på en datakilde, der refereres til, som ikke repræsenterer et bogstav i alfabetet, skal indledes med et enkelt anførselstegn ('). Hvis navnet på en refererende datakilde indeholder mindst ét symbol, der ikke repræsenterer et bogstav i alfabetet, skal navnet stå i anførselstegn. F.eks. kan disse ikke-alfabetiske symboler være tegnsætningstegn eller andre skriftlige symboler. Her er nogle eksempler:

  • Datakilden Dags dato og tid skal refereres til i et ER-udtryk på følgende måde 'Today''s date & time'.
  • Metoden navn() i datakilden Customers skal refereres til i ER-udtryk på følgende måde: Customers.'name()'.

Hvis metoderne i datakilder har parametre, bruges følgende syntaks til at kalde disse metoder:

  • Hvis metoden isLanguageRTL i datakilden System har en EN-US-parameter af datatypen Streng skal denne metode refereres til i et ER-udtryk som System.isLanguageRTL("EN-US").
  • Anførselstegn er ikke påkrævede, når et metodenavn kun indeholder alfanumeriske symboler. Men de er obligatoriske til en metode for en tabel, hvis navnet indeholder kantede parenteser.

Når datakilden System føjes til en ER-tilknytning, der henviser til programklassen Global, returnerer udtrykket System.isLanguageRTL("EN-US ") den Booleske værdi FALSK. Det ændrede udtryk System.isLanguageRTL("AR") returnerer den Booleske værdi SANDT.

Du kan begrænse den måde, værdier sendes til parametrene på for denne type metode:

  • Kun konstanter kan overføres til metoder af denne type. Værdierne af konstanter, der er defineret i designfasen.
  • Kun primitive datatyper (basis) understøttes til parametrene for denne type. De primitive datatyper omfatter Heltal, Reelt tal, Boolesk og Streng.

Stier

Når et udtryk refererer til en struktureret datakilde, kan du bruge definitionen af stien til at vælge et bestemt primitivt element i datakilden. Tegnet en prik (.) bruges til at adskille de enkelte elementer i en struktureret datakilde. For eksempel indeholder den aktuelle ER-modeltilknytning datakilden InvoiceTransactions, og denne datakilde returnerer en liste med poster. Poststrukturen InvoiceTransactions indeholder felterne AmountDebit og AmountCredit, og begge disse felter returnerer numeriske værdier. Du kan derfor designe følgende udtryk til beregning af det fakturerede beløb: InvoiceTransactions.AmountDebit - InvoiceTransactions.AmountCredit. Konstruktionen InvoiceTransactions.AmountDebit i dette udtryk er den sti, der bruges til at få adgang til feltet AmountDebit i datakilden InvoiceTransactions for typen Postliste.

Relativ sti

Hvis stien til en struktureret datakilde starter med et "at"-tegn (@), er det en relativ sti. Tegnet "at" vises i stedet for den resterende del af den absolutte sti i den hierarkiske træstruktur, der bruges. Følgende illustration viser et eksempel. Her angiver den absolutte sti, Ledger.'accountingCurrency()', at regnskabsvalutaværdien fra datakilden Finans angives i feltet Regnskabsvaluta i datamodellen.

Eksempel på en absolut sti på siden ER-modeltilknytningsdesigner.

Eksemplet i følgende illustration viser, hvordan en relativ kurve bruges. Den relative sti, @.AccountNum, angiver, at feltet AccountNum i datakilden Intrastat (som vises ét niveau over feltet AccountNum i datamodellens hierarkiske træ) bruges til at angive kundens eller leverandørens kontonummeret i datamodellens felt AccountNum.

Eksempel på en relativ sti på siden ER-modeltilknytningsdesigner.

Den resterende del af den absolutte sti vises også i ET-formeleditoren.

Resterende del af den absolutte sti på siden ER-formeldesigner.

Du kan finde flere oplysninger under Bruge en relativ sti i databindinger for ER-modeller og -formater.

Funktioner

Indbyggede ER-funktioner kan bruges i ER-udtryk. Alle datakilder i udtrykskonteksten (såsom ER-modeltilknytning eller ER-format) samt konstanter kan bruges som parametre til opkaldsfunktioner i henhold til listen over argumenter for opkaldsfunktioner. Konstanter kan også bruges som parametre til kald af funktioner. For eksempel indeholder den aktuelle ER-modeltilknytning datakilden InvoiceTransactions, og denne datakilde returnerer en liste med poster. Poststrukturen InvoiceTransactions indeholder felterne AmountDebit og AmountCredit, og begge disse felter returnerer numeriske værdier. Et udtryk til at beregne det fakturerede beløb kan derfor være udformet således ved at bruge den indbyggede ER-afrundingsfunktion: ROUND (InvoiceTransactions.AmountDebit - InvoiceTransactions.AmountCredit, 2).

Når du designer ER-modeltilknytninger og ER-rapporter, kan du bruge ER-funktioner fra følgende kategorier:

Funktionslistens udvidelse

ER understøtter muligheden for at udvide listen over funktioner, der bruges i ER-udtryk. Der kræves en vis teknisk indsats for at gøre dette. Yderligere oplysninger finder du under Udvid listen med Elektroniske rapporteringsfunktioner (ER).

Sammensatte udtryk

Du kan oprette sammensatte udtryk, der bruger funktioner fra forskellige kategorier, forudsat at datatyperne matcher. Når du bruger funktioner sammen, skal du matche datatypen for outputtet fra én funktion til den inputdata type, der kræves af en anden funktion. For eksempel, for at undgå en mulig "listen-er-tom" fejl i en binding af et felt til et ER-formatelement, kan du kombinere funktioner fra kategorien Liste med en funktion fra kategorien Logisk, som følgende eksempel viser. Her bruger formlen funktionen HVIS til at teste, om listen IntrastatTotals er tom, før den returnerer værdien af den påkrævede aggregering fra listen. Hvis listen IntrastatTotals er tom, returnerer formlen 0 (nul).

IF(ISEMPTY(IntrastatTotals), 0.0, IntrastatTotals.aggregated.'$AmountMSTRounded') 

Flere løsninger

Ofte kan du få det samme datatransformationsresultat på flere måder ved at bruge funktioner fra forskellige kategorier eller forskellige funktioner fra samme kategori. F.eks. kan det forrige udtryk også konfigureres ved hjælp af funktionen TÆL fra kategorien Liste.

IF(COUNT (IntrastatTotals)=0, 0.0, IntrastatTotals.aggregated.'$AmountMSTRounded') 

Yderligere ressourcer

Oversigt over elektronisk rapportering

Formeldesigner i elektronisk rapportering

Udvide listen over elektroniske rapporteringsfunktioner

Understøttede basisdatatyper

Understøttede sammensatte datatyper