Linguaggio della formula nella creazione di report elettronici
La creazione di report elettronici (ER) offre una potente esperienza di trasformazione dei dati. l linguaggio utilizzato per esprimere le manipolazioni dei dati richieste in Designer formula ER è simile al linguaggio delle formule in Microsoft Excel.
Sintassi di base
Le espressioni ER possono contenere qualsiasi o tutti i seguenti elementi:
Costanti
È possibile utilizzare testo e costanti numeriche (ovvero valori che non vengono calcolati) nella progettazione delle espressioni. Ad esempio, l'espressione VALUE ("100") + 20
utilizza la costante numerica 20 e la costante di tipo stringa "100" e restituisce il valore numerico 120.
Le sequenze di escape sono supportate in Designer formula ER. Di conseguenza, è possibile specificare una stringa di espressione che deve essere gestita in modo diverso. Ad esempio, l'espressione "Leo Tolstoy ""War and Peace"" Volume 1"
restituisce la stringa di testo Leo Tolstoy "Guerra e pace" Volume 1.
Operatori
La seguente tabella mostra agli operatori aritmetici che è possibile utilizzare per eseguire le operazioni matematiche di base, ad esempio addizione, sottrazione, moltiplicazione e divisione.
Operatore | Significato | Esempio |
---|---|---|
+ | Addizione | 1+2 |
- | Sottrazione, negativa | 5-2 , -1 |
* | Moltiplicazione | 7\*8 |
/ | Divisione | 9/3 |
Nella seguente tabella vengono visualizzati gli operatori di confronto supportati. È possibile utilizzare questi operatori per confrontare due valori.
Operatore | Significato | Esempio |
---|---|---|
= | Equal | X=Y |
> | Greater than | X>Y |
< | Less than | X<Y |
>= | Maggiore o uguale a | X>=Y |
<= | Minore o uguale a | X<=Y |
<> | Diverso da | X<>Y |
Inoltre, è possibile utilizzare una e commerciale (&) come operatore di concatenazione del testo. In questo modo, è possibile unire, o concatenare, una o più stringhe di testo in un testo unico.
Operatore | Significato | Esempio |
---|---|---|
& | Concatena | "Nothing to print:" & " " & "no records found" |
Precedenza di operatore
L'ordine in cui le parti di un'espressione composta vengono valutate è importante. Ad esempio, il risultato dell'espressione 1 + 4 / 2
varia a seconda se viene eseguita prima l'addizione o la divisione. È possibile utilizzare le parentesi per definire in modo esplicito come un'espressione viene valutata. Ad esempio, per indicare che l'operazione di addizione deve essere eseguita per prima, è possibile modificare l'espressione precedente in (1 + 4) / 2
. Se l'ordine delle operazioni in un'espressione non è definito in modo esplicito, l'ordine è basato sulla precedenza predefinita assegnata agli operatori supportati. Nella seguente tabella viene visualizzata la precedenza assegnata a ciascun operatore. Gli operatori con una precedenza più alta (ad esempio, 7) vengono valutati prima degli operatori con una precedenza inferiore (ad esempio, 1).
Precedenza | Operatori | Sintassi |
---|---|---|
7 | Raggruppamento | (…) |
6 | Accesso a membro | … . … |
5 | Chiamata di funzione | … (…) |
4 | Moltiplicativo | … * … … / … |
3 | Addizione | … + … … - … |
2 | Confronto | … < … … <= … … => … … > … … = … … <> … |
1 | Separazione | … , … |
Se un'espressione include più operatori consecutivi con la stessa precedenza, tali operazioni vengono valutate da sinistra a destra. Ad esempio, l'espressione 1 + 6 / 2 \* 3 > 5
restituisce true. Si consiglia di utilizzare le parentesi per indicare in modo esplicito l'ordine desiderato delle operazione nelle espressioni, per rendere le espressioni più facili da leggere e gestire.
Riferimenti
Tutte le origini dati del componente ER corrente disponibili nella progettazione di un'espressione possono essere utilizzate come riferimenti denominati. Il componente ER corrente può essere una mappatura del modello o un formato. Ad esempio, il mapping del modello ER corrente contiene l'origine dati ReportingDate che restituisce un valore del tipo di dati DateTime. Per formattare correttamente il valore per la generazione del documento, è possibile fare riferimento all'origine dati nell'espressione nel seguente modo: DATETIMEFORMAT (ReportingDate, "dd-MM-yyyy")
.
Tutti i caratteri nel nome di un'origine dati di riferimento che non rappresentano una lettera di alfabeto devono essere preceduti da una virgoletta singola ('). Se il nome di un'origine dati di riferimento contiene almeno un simbolo che non rappresenta una lettera di alfabeto, il nome deve essere racchiuso tra virgolette singole. Ad esempio, i simboli non alfabetici possono essere segni di punteggiatura o altri simboli scritti. Di seguito sono riportati alcuni esempi.
- L'origine dati Today's date & time deve essere utilizzata in un'espressione ER come segue:
'Today''s date & time'
. - Al metodo name() dell'origine dati Customers deve essere fatto riferimento in un'espressione ER come segue:
Customers.'name()'
.
Se i metodi delle origini dati dell'applicazione includono dei parametri, la seguente sintassi viene utilizzata per chiamare i metodi:
- Se il metodo isLanguageRTL dell'origine dati System ha un parametro EN-US del tipo di dati Stringa, questo metodo deve essere referenziato nell'espressione ER come
System.isLanguageRTL("EN-US")
. - Le virgolette non sono richieste quando un nome di metodo contiene solo simboli alfanumerici. Tuttavia, sono obbligatorie per un metodo di tabella se il nome include le parentesi.
Se l'origine dati System viene aggiunta a un mapping ER che fa riferimento alla classe dell'applicazione Global, l'espressione System.isLanguageRTL("EN-US ")
restituisce il valore BooleanoFALSE. L'espressione modificata System.isLanguageRTL("AR")
restituisce il valore BooleanoTRUE.
È possibile limitare il modo in cui i valori vengono passati ai parametri di questo tipo di metodo:
- Solo le costanti possono essere passate ai metodi di questo tipo. I valori delle costanti vengono definiti in fase di progettazione.
- Solo i tipi di dati primitivi (base) sono supportati per i parametri di questo tipo. I tipi di dati primitivi includono Intero, Reale, Booleano e Stringa.
Percorsi
Quando un'espressione fa riferimento a un'origine dati strutturata, è possibile utilizzare la definizione di percorso per selezionare un elemento primitivo specifico di tale origine dati. Un carattere di punto (.) viene utilizzato per separare i singoli elementi di origine dati strutturata. Ad esempio, la mappatura del modello ER corrente contiene l'origine dati InvoiceTransactions e l'origine dati restituisce un elenco di record. La struttura di record InvoiceTransactions contiene i campi AmountDebit e AmountCredit che restituiscono entrambi valori numerici. Pertanto, è possibile progettare la seguente espressione per calcolare l'importo fatturato: InvoiceTransactions.AmountDebit - InvoiceTransactions.AmountCredit
. La costruzione InvoiceTransactions.AmountDebit
in questa espressione è il percorso utilizzato per accedere al campo AmountDebit dell'origine dati InvoiceTransactions del tipo Elenco di record.
Percorso relativo
Se il percorso di un'origine dati strutturata inizia con un segno "at" (@), è un percorso relativo. Viene visualizzato il segno "at" anziché la parte rimanente del percorso assoluto della struttura gerarchica utilizzata. Nella figura seguente viene illustrato un esempio. Qui il percorso assoluto Ledger.'accountingCurrency()'
indica che il valore della valuta contabile dall'origine dati Contabilità generale è inserita nel campo AccountingCurrency del modello dati.
L'esempio nella figura seguente mostra come viene utilizzato un percorso relativo. Il percorso relativo @.AccountNum
indica che il campo AccountNum dell'origine dati Intrastat (che appare un livello sopra il campo AccountNum nella struttura gerarchica del modello dati) viene utilizzato per inserire il numero di conto cliente o fornitore nel campo del modello dati AccountNum.
La parte rimanente del percorso assoluto è anche mostrata in Editor di formule ER.
Per ulteriori informazioni, vedere Utilizzare un percorso relativo nelle associazioni dati dei modelli e dei formati ER.
Funzioni
Le funzioni integrate ER possono essere utilizzate nelle espressioni ER. Tutte le origini dati del contesto dell'espressione (vale a dire, la mappatura del modello ER o il formato ER corrente) possono essere utilizzate come parametri di funzioni di chiamata, secondo l'elenco degli argomenti delle funzioni di chiamata. Anche le costanti possono essere utilizzate come parametri delle funzioni di chiamata. Ad esempio, la mappatura del modello ER corrente contiene l'origine dati InvoiceTransactions e l'origine dati restituisce un elenco di record. La struttura di record InvoiceTransactions contiene i campi AmountDebit e AmountCredit che restituiscono entrambi valori numerici. Pertanto, per calcolare l'importo fatturato è possibile progettare la seguente espressione che usa la funzione di arrotondamento ER integrata: ROUND (InvoiceTransactions.AmountDebit - InvoiceTransactions.AmountCredit, 2)
.
Quando si progettano mappature dei modelli ER e report ER, è possibile utilizzare le funzioni ER dalle seguenti categorie:
- Funzioni di data e ora
- Funzioni di elenco
- Funzioni logiche
- Funzioni matematiche
- Funzioni di record
- Funzioni di testo
- Funzioni raccolta dati
- Altre funzioni (specifiche del dominio aziendale)
- Funzioni di conversione di tipo
Estensione dell'elenco di funzioni
ER consente di estendere l'elenco di funzioni utilizzate nelle espressioni ER. A tal fine sono richieste alcune operazioni progettuali. Per informazioni dettagliate, vedere Estensione dell'elenco di funzioni di creazione di report elettronici (ER).
Espressioni composte
È possibile creare espressioni composte che utilizzano funzioni di categorie diverse, a condizione che i tipi di dati corrispondano. Quando si usano insieme le funzioni, abbinare il tipo di dati dell'output da una funzione al tipo di dati di input richiesto da un'altra funzione. Ad esempio, per evitare un possibile errore "list-is-empty" in un'associazione di un campo a un elemento in formato ER, combinare le funzioni dalla categoria Elenco con una funzione dalla categoria Logica, come mostra il seguente esempio. Qui, la formula utilizza la funzione IF per verificare se l'elenco IntrastatTotals è vuoto prima di restituire il valore dell'aggregazione richiesta da tale elenco. Se l'elenco IntrastatTotals è vuoto, la formula restituisce 0 (zero).
IF(ISEMPTY(IntrastatTotals), 0.0, IntrastatTotals.aggregated.'$AmountMSTRounded')
Più soluzioni
Spesso, è possibile ottenere lo stesso risultato di trasformazione dei dati in più modi, utilizzando funzioni di categorie diverse o funzioni diverse della stessa categoria. Ad esempio, l'espressione precedente può essere configurata anche usando la funzione COUNT dalla categoria Elenco.
IF(COUNT (IntrastatTotals)=0, 0.0, IntrastatTotals.aggregated.'$AmountMSTRounded')
Risorse aggiuntive
Panoramica sui report elettronici
Designer formula nella creazione di report elettronici
Estendere l'elenco delle funzioni di creazione di report elettronici