Motore di template (Template Engine)
Kimo utilizza un motore di template (Template Engine) per comporre alcune stringhe personalizzabili. Ad esempio, tale motore viene utilizzato per renderizzare i layout basati sull'HTML (come quelli per la scheda cliente e scheda articolo) o alcune Regole di Business, come "Document\QuantitiesSummaryTemplate".
Sintassi per i parametri
Data una variabile di tipo semplice chiamata "Item", è possibile renderizzarla inserendo nel testo del template uno dei seguenti valori:
$Item
${Item}
Se la variabile ha valore NULL, utilizzare l'operatore '!' descritto di seguito per evitare che venga renderizzata con il nome stesso della variabile invece che come stringa vuota.
Data una variabile di tipo oggetto, contente delle proprietà, è possibile renderizzarla utilizzando il '.' per indicare le proprietà. Ad esempio per referenziare la proprietà "Description" della variabile "Item" si potranno utilizzare le sintassi
$Item.Description
${Item.Description}
Se la variabile ha valore NULL, utilizzare l'operatore '!' descritto di seguito per evitare che venga renderizzata con il nome stesso della variabile invece che come stringa vuota.
Operatore '!'
Quando una variabile ha valore NULL, di default non viene mostrata come una stringa vuota, ma viene mostrato il nome stesso della variabile: ad esempio, se la variabile nel template è indicata come "Item.Description", ma ha valore null, la stringa verrà renderizzata proprio come "$Item.Description" invece di stringa vuota.
Per evitare questo comportamento, va utilizzato l'operatore '!' (chiamato 'Quiet Reference Notation' in letteratura). Quindi la variabile andrà indicata nel template in uno dei seguenti modi:
$!Item.Description
$!{Item.Description}
If / Else / End
Esempio:
Esempio in un'unica linea:
Verifica parametri con valore Null
Esempio di utilizzo:
Cicli foreach
Esempio:
È possibile evitare di andare a capo dopo ogni iterazione usando i caratteri '##':
Sono supportate ulteriori istruzioni, per inserire dei valori tra gli elementi:
Dichiarazione di variabili
Esempio:
Commenti
I commenti possono essere definiti usando i caratteri '##':
This text is visible. ## This text is not.
Funzioni per la formattazione
formatter.ToQuantity
decimal value
Formattazione come quantità (fino a 5 decimali)
formatter.ToUnitPrice
decimal value
Formattazione come prezzo unitario (es. con 2 zeri dopo la virgola e fino a 5 decimali)
formatter.ToTotalPrice
decimal value
Formattazione come importo totale (es. con 2 zeri dopo la virgola e fino a 2 decimali)
formatter.NumberToInvariantString
decimal value
Converte un numero in una stringa nel formato "invariant" (usando il '.' per i decimali a prescindere dalla lingua e senza alcun separatore per le migliaia)
formatter.ToMonthName
int month
Dato il numero di un mese, ne restituisce il nome
'${Number:00000}'
Esegue il padding della variabile 'Number', inserendo il corrispondente numero di '0' (5 nell'esempio).
Funzioni di utilità
utils.IsNullOrEmpty
oggetto
Restituisce un boolean che indica se l'oggetto passato come parametro è Null o se è una stringa vuota (o contenente soli spazi)
utils.Take
object lista, int count
Data una lista di valori, prende i primi n espressi dal parametro "count"
$newline o ${newline}
Interruzione di riga
Now
Restuisce la data in cui è stato renderizzato il template, nel formato "d MMM yyy HH.mm" (es. "12 gen 2021 15.46")
Chiamate a funzioni
È possibile invocare delle funzioni di sistema (funzioni esposte dal .NET Framework) tramite sintassi come:
Analogamente è possibile invocare delle funzioni esposte dagli oggetti
Last updated
Was this helpful?