|
Se un attributo che interessa un attributo calcolato viene modificato durante la creazione o la modifica di un oggetto, la formula non viene immediatamente rivalutata. Dopo l'elaborazione dell'azione di creazione o di modifica, la formula viene rivalutata e il valore dell'attributo Calcolato viene aggiornato.
Per informazioni su come gli attributi calcolati vengono visualizzati se inclusi in layout attributi, vedere Visualizzazione degli attributi.
|
|
Non esistono funzioni con più valori attualmente supportate per gli attributi calcolati.
|
Funzione
|
Descrizione
|
||||||
isNull( )
|
Controllo nullo
|
||||||
unit( )
|
Convertire il tipo di dati Stringa nel tipo di dati Numero reale con unità
|
||||||
str( )
|
Convertire il numero nel tipo di dati Stringa
|
||||||
abs( )
|
Valore assoluto o grandezza
|
||||||
avg( )
|
Media di un elenco di valori
|
||||||
sum( )
|
Somma di un elenco di valori
|
||||||
min( )
|
Minimo di un elenco di valori
|
||||||
max( )
|
Massimo di un elenco di valori
|
||||||
arrotondamento()
|
Converte un numero con un numero decimale (numero reale) in un numero intero
• Quando il numero decimale contiene 0,5, il numero viene arrotondato a un valore pari, ad esempio 30,5 viene arrotondato per difetto a 30 e 31,5 viene arrotondato per eccesso a 32
• Quando il numero decimale contiene altri numeri, il numero viene arrotondato al valore più vicino, ad esempio 30,8 viene arrotondato per eccesso a 31 e 33,4 viene arrotondato per difetto a 33
|
||||||
bround()
|
La funzione bround (arrotondamento BigDecimal) funziona in modo simile alla funzione round. La funzione bround offre una precisione maggiore rispetto alla funzione round durante il calcolo dei numeri decimali con una parte frazionaria vicina a 5 (ad esempio xx.5).
Con la funzione bround è possibile specificare le cifre decimali da considerare per l'arrotondamento del valore. Ad esempio, ((bround((a+b+c)*10, dp))/10.00), dove a, b e c sono attributi e dp è la posizione decimale da considerare per l'arrotondamento. Il valore di default di dp è 7, se non è specificato.
Negli esempi che seguono, la funzione round restituisce risultati diversi, mentre la funzione bround restituisce lo stesso risultato.
• ((round((10,20+10,35+02,00)*10))/10,00) —> (round(225,4999999999997)/10,00) —> 225/10,00 —> 22,5
• ((bround((10,20+10,35+02,00)*10))/10,00) —> (bround(225,49999999999997)/10,00) —> 226/10 —> 22,6
• ((round((10,25+10,30+02,00)*10))/10,00) —> (round(225,5)/10,00) —> 226/10,00) —> 22,6
• ((bround((10,25+10,30+02,00)*10))/10,00) —> (bround(225,5)/10,00 —> 226/10) —> 22,6
A causa della rappresentazione interna dei numeri a virgola mobile in Java, ((10,20+10,35+02,00)*10) restituisce il valore 225,4999999999997 e ((10,25+10,30+02,00)*10) restituisce il valore 225,5.
Per il valore 225,49999999999997, considerare questi risultati con valori diversi dp specificati nella funzione bround.
|
||||||
mod()
|
Restituisce il resto di un numero diviso per un altro numero. (Solo tipi di dati Intero)
|
||||||
${}
|
Racchiude i nomi interni di attributo contenenti caratteri speciali per consentirne l'utilizzo nella formula. Possono essere racchiusi tutti i nomi interni di attributo, ma quelli contenenti il trattino (-), il segno del dollaro ($) o le parentesi quadre ([]) devono esserlo quando vengono utilizzati nelle formule. Gli attributi con i nomi interni my-attribute o my[very$complex]-attribute, ad esempio, possono essere utilizzati in una formula se racchiusi come riportato di seguito.
• ${my-attribute}
• ${my[very$complex]-attribute}
Se gli attributi utilizzati nella sezione Esempio: calcolo di un valore numerico avessero nomi interni contenenti caratteri speciali, la formula dell'attributo Costo totale potrebbe essere visualizzata come riportato di seguito.(${item-quantity}*${unit-cost})+${handling-fee}
|
Operatore
|
Descrizione
|
+
|
Addizione; può essere utilizzata anche per concatenare stringhe
|
-
|
Sottrazione
|
*
|
Moltiplicazione
|
/
|
Divisione
|
( )
|
Parentesi aperte e chiuse che indicano una priorità diversa nell'ordine delle operazioni (le operazioni all'interno della parentesi devono essere eseguite per prime)
|
" "
|
Virgolette doppie che indicano che il contenuto delle virgolette è una stringa letterale. Tutti i caratteri non numerici non compresi nelle virgolette doppie sono gestiti come nome attributo
|
>
|
maggiore di
|
<
|
minore di
|
>=
|
maggiore o uguale a
|
<=
|
minore o uguale a
|
==
|
uguale a
|
!=
|
Non uguale
|
^
|
Potenza o elevamento a potenza
|
&
|
AND
|
|
|
Oppure
|
~
|
Non
|
^*
|
Or esclusivo
|
&&
|
AND
|
||
|
Oppure
|
!
|
Non
|
? :
|
Operatore condizionale che indica il risultato se la condizione specificata è vera o falsa:
(condizione) ? valore se vera : valore se falsa
Si supponga ad esempio che un tipo dispone di attributi di lunghezza, larghezza e forma, in cui la forma è un attributo calcolato con la formula descritta di seguito.
(lunghezza>larghezza) ? "più lungo" : "più largo"
Se il valore dell'attributo di lunghezza è maggiore del valore dell'attributo di larghezza, all'attributo di forma viene assegnato un valore più lungo. Se il valore dell'attributo di lunghezza non è maggiore del valore dell'attributo di larghezza, all'attributo di forma viene assegnato un valore più largo.
|
%
|
Resto
|