Espressioni di calcolo
Le espressioni di calcolo indicano al programma quali calcoli dovranno essere eseguiti sulla tabella. I calcoli vengono svolti sempre in maniera sequenziale, quindi è importante definire correttamente il loro ordinamento.
Le espressioni vengono eseguite tutte le volte che uno dei campi riportati al loro interno viene modificato. Le espressioni comunque agiscono solo all’interno del dettaglio attuale e delle sue eventuali tabelle aggiuntive.
Per gestire le espressioni cliccare su Imposta e visualizzare l’apposita schermata.
Nella colonna di destra viene riportato il campo dove verrà salvato il risultato dell’espressione. Nella colonna centrale verrà creata l’espressione vera e propria. La colonna di sinistra contiene tutti i campi della tabella e delle tabelle aggiuntive utilizzabili all’interno delle espressioni.
I campi vengono sempre racchiusi dentro le parentesi quadre [].
Se il campo è racchiuso tra parentesi graffe {} significa che il campo richiesto non si trova all’interno della tabella, ma è un campo appartenente alla tabella padre (quindi non una tabella aggiuntiva).
Esempi di espressione di calcolo
[totale_prezzo] = [totale_vendita] – [sconto_totale]
L’espressione imposta il campo [totale_prezzo] sottraendo a [totale_vendita] lo [sconto_totale].
[tempo_produzione] = ([qta_richiesta] * [ore_lavoro]) / [numero_macchine]
L’espressione mostra come impostare un calcolo con parentesi tonde.
[totale_prezzo] = [totale_vendita] – ([totale_vendita] / 100) * [sconto_percentuale]
L’espressione imposta il [totale_prezzo] calcolando uno sconto percentuale sul totale della vendita.
[totale_prezzo] = sum([fatture_rows.totale_prezzo])
Il valore viene recuperato dalla somma della colonna [totale_prezzo] riportata nella tabella fatture_rows. La funzione SUM può essere utilizzata solo dal dettaglio alla tabella aggiuntiva e non viceversa. Il motivo è che il dettaglio non può accedere a un singolo valore su una specifica riga contenuta nella tabella aggiuntiva (fatture_rows). Può quindi soltanto richiedere un valore singolo, in questo caso la somma della colonna.
[totale_prezzo_lordo] = sum([fatture_rows.totale_prezzo])
[totale_prezzo_netto] = [totale_prezzo_lordo] – ([totale_prezzo_lordo] / 100) * [sconto_percentuale]
Per prima cosa si è impostato un valore parziale per poter visualizzare il lordo su [totale_prezzo_lordo]. È stato usato poi questo valore per calcolare il valore netto.
[totale_riga_lorda] = [prezzo_singolo_riga] * [Quantità]
[totale_riga_netta] = [totale_riga_lorda] – ([totale_riga_lorda] / 100) * {sconto_cliente}
In questo caso le espressioni sono all’interno della riga della tabella aggiuntiva. Il campo {sconto_cliente} scritto tra graffe informa il programma che il valore non è presente sulla riga, ma va recuperato dal dettaglio padre (se presente). A ogni riga aggiunta nella fattura, quindi, il programma recupererà lo sconto impostato sui dati di testa. Modificando lo sconto del cliente nella fattura, tutte le righe presenti verranno ricalcolate con il nuovo valore.
[iva_totale] = if([esenzioneiva]=1?0:sum([fatture_rows.iva_totale]))
Nell’espressione viene utilizzato un condizionale per poter impostare un valore in base a una scelta. L’espressione, prima di impostare [iva_totale], controlla quanto vale il campo [esenzioneiva]. Se il campo vale 1 allora [iva_totale] viene impostato a 0, altrimenti viene impostato alla somma della colonna [iva_totale] presente all’interno della tabella fatture_rows.
[totale_giorni] = days([data_fine] : [data_inizio])
[totale_ore] = hours([data_fine] : [data_inizio])
Queste tipologie di espressioni vengono utilizzate per estrarre le ore o il numero di giorni partendo da due date.