Differenze tra le versioni di "Sistema di formule"
imported>Root (→Esempi) |
imported>Root m (ha spostato CmnFormulaEngine a Sistema di formule) |
(Nessuna differenza)
|
Versione attuale delle 17:10, 16 mar 2010
Descrizione
L'applicativo incorpora un semplice sistema per costruire testi in modo dinamico (formule). Tale sistema permette di definire un testo "traccia" contenente riferimenti a variabili e comandi di formattazione dati.
Definizioni
Sono necessarie le seguenti definizioni per poter capire il funzionamento del sistema formule:
Variabili
Una variabile è un elemento che rappresenta un dato dell'applicativo (una persona, un indirizzo, un numero di fattura ecc). Il sistema formule può essere utilizzato in vari modi e con diversi insiemi di variabili. Unavariabile ha una esistenza duplice:
- Design time: Le variabili compaiono a design time come dei nomi che possono essere inseriti nella formula per indicare che in quel punto della formula successivamente dovrà comparire il valore della variabile, quasiasi esso sia. Per inserire una variabile nella formula è sufficiente cliccare con il tasto destro del mouse sull'editor, e scegliere una delle variabili disponibili dal menu "Variabili". Mentre il sistema è in design time le variabili non hanno un valore reale, ma solo un nome di riferimento. Una variabile è presente in una formula come indicatore nella forma <%nome_variabile%>.
- Run time: Quando il sistema è in esecuzione e la formula viene valutata, le variabili possiedono in loro valore effettivo. Ad esempio la variabile <%persona.nominativo%> potrebbe possedere il valore "Mario Rossi". Quindi, in fase di esecuzione (run time) il sistema formule sostituisce tutti gli indicatori di variabile piazzati nella formula a design time con il loro effettivo valore.
Comandi
I comandi sono delle notazioni nella forma {...} che permettono di trasformare gli oggetti utilizzati come loro parametri. E' ad esempio possibile formattare una data in modo particolare oppure effettuare dei semplici calcoli aritmetici con i dati in nostro possesso oppure ancora effettuare dei test condizionali e produrre differenti risultati sulla base delle condizioni impostate.
Esempio: il comando {datefmt{18/12/2005}dd MMMM yyyy} produrrà il risultato 18 dicembre 2005. Se al posto di un valore fisso scriviamo l'identificatore di una variabile di tipo data, come ad esempio {datefmt{<%persona.data_nascita%>}dd MMMM yyyy} abbiamo un automatismo che ci permette di formattare la data di nascita della persona come desideriamo.
Esistono molti comandi. Per scegliere quale comando utilizzare è sufficiente premere il tasto di destra del mouse sull'editor e scegliere il comando desiderato dal menu "Comandi". Stazionando qualche secondo sul comando desiderato (con il menu aperto) compare una breve nota esplicativo sul suo utilizzo. Quindi, in generale l'aiuto relativo all'utilizzo dei comandi è accessibile dal menu di contesto di selezione dei comandi stessi.
Formula
La formula è il testo nella sua interezza, contenente identificativi di variabile, comandi e anche testo semplice. Attenzione, non è necessario per forza usare comandi e variabili, una formula può anche essere un semplice pezzo di testo fisso.
Esempi
Formattare le generalità di una persona
Supponiamo che l'applicazione utilizzata ci fornisca la variabile persona, rappresentante l'anagrafica di un individuo:
Esempio: <%persona.nominativo%>, data di nascita <%persona.data_nascita%>
Vediamo che qui ci sono variabili e testo fisso mischiati assieme. Il risultato di una formula del genere sarà del tipo "Mario Rossi, data di nascita 18/12/2005".
Esempio: <%persona.nominativo%>, nat{if{<%persona.sessoMF%>}={M}?{o}:{a}} il <%persona.data_nascita%>
Questa espressione è più complessa e coinvolge anche l'uso di un comando condizionale. Il significato del comando è: se il valore di persona.sessoMF (che vale M o F a seconda) è uguale ad M allora produci una "o" altrimenti produci una "a".
Questo permette di dare "vita" alla coniugazione del verbo utilizzato, producendo "nato" o "nata" a seconda del sesso dell'individuo. Si otterranno quindi risultati del tipo "Mario Rossi, nato il 18/12/2005" oppure "Verdi Susanna, nata il 23/04/1997".