In dit artikel
La Tabella QuickSum è un foglio di calcolo che in automatico fa le somme di elementi strutturati senza dovere inserire formule.
Permette di preparare capitolati, computi metrici, richieste di offerte senza con la certezza che i totali saranno corretti.
Aggiunta della tabella QuickSum
Attualmente la Tabella QuickSum è ancora in fase sperimentale ed è disponibile solo nella versione interna di Banana Contabilità.
Nella applicazioni di produttività viene aggiunta con il comando Menu Strumenti > Aggiungi Funzionalità > Tabella QuickSum
Le colonne
La Tabella QuickSum ha le seguenti colonne di inserimento dati :
- ItemId
L'id dell'elemento, che può assumere diverse forme come spiegato in seguito. - Stile
Per assegnare uno stile, per un uso futuro della stampa. - Codice Modifica.
Per quando la tabella è in modalità blocco, indica quale colonne devono essere modificabili.- D: Descrizione modificabile.
- Q: Quantità modificabile.
- P: Prezzo unitario modificabile
- I valori indicati fra parentesi quadre sono messe in automatico dal programma e possono essere sovrascritti dal programma.
- Descrizione
La descrizione dell'elemento e anche i valori nel caso di sommario. - Note
Una colonna di testo per annotazioni. - Quantità
Un importo numerico. - Unità
Indica il tipo di valore indicato.- Un testo libero.
- "%" la quantità sarà considerata come un percento del prezzo.
- Formula Prezzo Unitario
Se presente la formula viene calcolata e il risultato rimpiazzera il valore nella colonna Prezzo. - Prezzo Unitario
Il prezzo che viene usato per calcolare il valore. - Formula inizio
Nel caso che si vuole indicare la formula in due parti. - Formula testo
- Una formula di calcolo in Javascript.
- Se presente viene eseguita e il risultato andrà a sostituire l'Importo calcolato.
- Importo risultato
Importo calcolato dal programma.- Se esiste una formuala il risultato della formula.
Altrimenti - La quantità moltiplicata per il prezzo unitario.
- Se unità "%" il prezzo unitario in percentuale della quantità.
- Se esiste una formuala il risultato della formula.
- Codice1 e Codice 2
Delle colonne che servono per indicare che la riga è di un certo tipo.
Per esempio "S" può significare che a queste posizioni viene indicato uno sconto particolare.
Ci sono poi una serie di colonne che servono per i calcoli e il controllo:
- ItemIdCalc
È l'ItemId usato per il calcolo e considera anche le modifiche dovuta all'attivazione delle varianti. - Formula Prezzo Unitario Calc.
È la formula di calcolo del prezzo unitario usata per i calcoli, creata partendo dalla formula del prezzo unitario modificata dal programma tenendo conto dell'attivazione delle varianti. - Formula Calc
È la formula di calcolo usata per i calcoli, creata partendo dalla formula inizio e formula modificata dal programma tenendo conto dell'attivazione delle varianti. - Testo Risultato.
- È il risultato in formato testo ottenendo eseguendo la Formula Calc.
- Mostra eventuali errori.
- Sommato in.
Indica in che elemento è stato sommato il valore della riga.
L'ItemId
Viene inserito nella colonna ItemId ed identifica la riga e l'elemento. Può avere diverse forme
- Identificatore dell'elemento.
Può essere composto dai seguenti elementi, separati da duepunti ";"
Per esempio "2.1.1", "T:2.1.1", "V:2.1.1", "V:T:2.1.1"- Gerarchia.
- Dei valori separati da dei punti "." che definiscono l'emento e la struttura.
- Esempio "1", "1.9", "2", "2.1", "2.1.2", "A.1.2"
- La gerarchia è data dalla separazione.
Quindi gli elmenti "2.1" e "2.1.2" apparteranno all'elmento superiore "2". - La gerarchia determina anche la sequenza degli elementi in ordine alfabetico naturale.
L'elemento "1" dovrà precedere il "1.9" e il "2" e via di seguito.
In caso contrario verrà segnalato un errore.
- Prefisso.
- Determina il tipo di elemento.
- "S:" riga di subtotale
- Viene indicata la somma di tutti gli elementi che appartengono alla gerarchia.
- Esempio: "S:2.1" riprenderà la somma di tutti gli elmenti "2.1", "2.1.1", "2.1.1.1", "2.1.2"
- "T:" riga di totale
- Viene indicata la somma finale di tutti gli elementi che appartengono alla gerarchia.
- Esempio: "T:2.1" riprenderà la somma di tutti gli elmenti "2.1", "2.1.1", "2.1.1.1", "2.1.2"
- Chiude la sequnza e quindi dopo il "T:2.1" non ci potranno più essere elementi "2.1", "2.1.1".
- "S:" riga di subtotale
- Determina il tipo di elemento.
- Variante.
- Un codice che identifica la Variante e deve obbligatoriamente iniziare con la lettera "V" .
- Il codice della variante deve precedere gli elementi. V
- Esempi variante "VA" :"VA: 2.1", "VA: 2.1.1", "VA: 2.1.1.1", "VA: 2.1.2"
- Le righe della variante devono essere in sequenza.
- Se si integrano o sostituiscono una riga devono essere anche nella sequenza.
- Gerarchia.
- Comandi "#"
Il valore viene indicato nella colonna Descrizione- Iniziano con il carattere "#"
- Sono usati internamente per indicare delle fuzionalità
- Gli elmenti non vengono sommati.
- "#scenario" permette di specificare nella colonna Descrizione le Varianti da usare in aggiunta o al posto delle posizioni esistenti.
per esempio la descrizione "VA;VB" - #options" opzioni di calcolo separate da punti e virgola.
- "lock", attiva il blocco della tabella (comando provvisiorio).
- "onerrorcalculate" continua la calcolazione anche se ci sono degli errori.
- "#columnsSum" indica il nomeXml delle colonne da sommare nei contatori accessibili tramite la funzione "$C()".
- Diverse colonne vengono separate da punto e virgola ";".
- Le colonne "Code1;Code2" sono già considerare e non bisogna specificarle.
- Per esempio "Code3;Code4" .
- Commenti fra []
- Sono elementi che sono inclusi in parentesi quadre
"[]", "[testo]" - Gli elmenti non vengono sommati.
- Sono elementi che sono inclusi in parentesi quadre
- Elementi vuoti
- Viene ripreso l'id che precede e non è stato chiuso.
Logica di calcolo e somme
Nella tabella QuickSumi gli importi vengono calcolati e sommati in automatico.
- Dopo ogni modifica tutta la tabella viene ricalcolata.
- Il programma svuota tutte le colonne calcolate.
- Il programma parte della prima riga e continua fino all'ultima.
Se vi è un errore la calcolazione viene interrotta delle righe successive non viene eseguita. - Descrizione righe di Totale "T:" o sottototale "S:"
- Se la descrizione è vuota o termina con elemento commento (fra parentesi quadre), la descrizione viene messa automaticamente dal programma, facendo seguire al termine "Totale" o "Sottototale" l'intestazione dell'ItemId o se non presente il valore dell'ItemId.
- L'intestazione dell'ItemId è considerata la descrizione usata quando è stato usato per la prima volta l'ItemId.
- Calcolo importo riga.
- Vengono usati u contenuti delle colonne Quantità, Unità e Prezzo unitario
- Se vi sono delle formule queste vengono eseguiti e il risultato rimpiazza il valore.
- Il programma dopo ogni riga somma nel contatori dei diversi elementi strutturati.
- Somma il valore della riga nei diversi elementi che compongono l'ItemId strutturato.
- Se per esempio se l'item è "2.1" il programma andrà a sommare l'importo della riga nei seguenti contatori, accessibili con la formual $S('2.1.1') in:
- 2
- 2:{*}
- 2.1
- 2.1:{}
- Se per esempio se l'item è "2.1.1" il programma andrà a sommare l'importo della riga nei seguenti contatori, accessibili nelle formule con la funzione $S('2.1.1') in:
- 2
- 2:{*}
- 2.1
- 2.1:{*}
- 2.1.1
- 2.1.1:{}
- Il programma somma anche nei contatori relative alle colonne, accessibili nelle formule tramite la funzione $C().
Le colonne formule
Le colonne Formula prezzo unitario e Formula permettono di inserire delle espressioni in linguaggio Javascript.
- Gli importi si indicano nel formato di programmazione e non quello internazionale.
- Non vi sono separatori di migliaia.
- Il separatore di decimali è sempre il punto ".".
- Esempi di numeri "12345.67", "-123.45"
- Si può usare tutta la sintassi del Javascript e anche creare funzioni.
- Si possono usare le funzioni predefinite appositamente per la tabella QuickSum:
- $S('itemId')
- Ritorna la somma, fino a questo punto, del contatore specifico dell'item.
- per esempio "$S('2')" , "$S('2.1')", "$S('2.1.1')"
- $C('ColumnNameXml:Valore')
- ColumnNameXml è il nome in iglese della colonna.
- Code è il possibile contenuto della colonna.
- Ritorna la somma degli importi delle righe fino alla calcolazione precedente alla riga attuale, per tutte le colonne che contengono nella colonna specificata il valore indicato.
- Per esempio
- "$C('Code1:X')" La somma degli importi delle righe che contengono nella colonna Code1 il valore "X".
- "$C('Code1:Y')" La somma degli importi delle righe che contengono nella colonna Code1 il valore "Y".
- "$C('Code1:{}')" La somma degli importi delle righe con la colonna Code1 vuota..
- "$C('Code1:{*}')" La somma degli importi delle righe che contengono un qualsiasi valore nella colonna Code1.
- $V() L'elenco delle varianti usate nella calcolo separate da punti e virgole.
- Per esempio "VA;VB"
- $S('itemId')
Varianti
La tabella permette di inserire degli elementi varianti.
- La sigla della variante deve iniziare obbligatoriamente con "V" ed essere separata da un due punti ":" dall'itemId.
- Per esempio "VA:2.1"; "VB:2.1.1"
- "VA:T:2.1" per indicare la riga di totale.
- L'elenco degli elementi appartenenti alla variante deve seguire quello della gerarchia normale.
- Le Varianti possono essere degli elementi supplementari.
- Le Varianti possono sostituire un elemento già esistente.
- Normalmente le Varianti vengono calcolate a se stante.
L'attivazione di una Variante viene effettuata:
- Indicando nella riga di comando, ItemId "#scenario", nella colonna Descrizione le sigle della varianti che si vogliono attivare.
- Il programma nella calcolazione (ItemIdCalc):
- Rimuove la sigla della Variante.
- "VA:2.1" diventa "2.1"
- "VA:T:2.1" diventa "T:2.1"
- Se vi è una posizione uguale principale, aggiunge a questa e a tutti gli elementi figli la sigla della Variante che sostituisce preceduta da X.
- "2.1" diventa "XVA:2.1"
- "T:2.1" diventa "XVA:T:2.1"
- "VA:2.1" diventa "2.1"
- "VA:T:2.1" diventa "T:2.1"
- Rimuove la sigla della Variante.
Modalità inserimento prezzi
La tabella prevede una modalità di inserimento prezzi, che blocca tutte le celle, eccetto quelle che servono a inserire prezzi e altri valori.
L'idea è che il file venga trasmesso alle imprese e queste possano inserire i loro prezzi e vedano subito i totali, senza però avere la possibilità di modificare altri elementi.
Se è attivata questa modalità il programma:
- Blocca tutte le celle eccetto quelle che sono destinate a inserire prezzi, percentuali o testi.
- Le righe dove devono essere inseriti dei valori sono colorati in giallo.
- Le righe già completate con il prezzo, sono visualizzate in verde chiaro.
Per attivara la modalità (provvisorio):
- Nella colonna Descrizione della riga con l'itemId" uguale a "#options", inserire "lock".
Le righe con le celle modificate sono indicate nella colonna "Mod. Code", tramite un carattere.
- D: Descrizione modificabile.
- N: Note modificabile.
- Q: Quantità modificabile.
- P: Prezzo unitario modificabile
- L'utente può inserire un codice "P" o combinarli "DP".
- I codici parentesi quadre "[Q]" "[P]" quelli messi in automatico dal programma, con la seguente logica.
- Il valore in automatico viene messo solo se la cella è vuota o vi è un valore fra parentesi quadre.
- Se vi è un valore nella colonna Quantità viene messo "[P]" .
- Se vi è un valore nella colonna "Formula Prezzo Unitario" viene messo il valore "[Q]".
Erorri
La calcolazione parte dalla prima riga e se il programma trova un errore la riga viene messa in colore rosso e la calcolazione degli importi viene interrotta.
- Con l "#options" "onerrorcalculate", gli errori vengono segnalati, ma la calcolazione viene effettuata comunque, anche se è sbagliata.
- Serve per un controllo.
- Deve essere disattivata per avere dei risultati corretti.
Il programma segnale questi possibili errori:
- Per il momento la gestione degli errori è molto basilare e i codici deggli errori vengono visualizzati nella tabella Info.
- "err_Duplicate"
La riga di totale è gia presente. - "err_IdNotNumeric"
Si è attivata l'opzione che richiede che gli ItemId siano numerici, ma l'ItemId contiene altri caratteri. - "err_OutOfSequence";
- L'ItemId non è nella sequenza numerica/alfabetica corretta.
- "2.1" viene prima del "2"
- Si usa un ItemId di livello uguale o inferiore dopo avere fatto un totale.
- Vi è il "T:2.1"
- Successivamente si usa ancora "2.1" o "2.1.1"
- L'ItemId non è nella sequenza numerica/alfabetica corretta.
- "err_TotalWithoutElements"
- Si è indicata una riga di totale ma non è stato specificato alcun elemento.
- Per esempio vi è il "T:2.1", ma non vi è in precedenza alcun itemId "2.1" o "2.1.1"
- "err_UnitPriceFormulaUndefined"
- Il risultato della formula Prezzo Unitario è indefinito.
- Per esempio quando si usa nel "$S('2.1') ma l'item "2.1" non è mai stato usato.
- "err_UnitPriceFormulaError"
Il testo della formula Prezzo Unitario contiene un errore, per cui il codice Javascript non è valido. - "err_FormulaTextError"
- Il risultato della Formula Inizio e Formula assieme è indefinito.
- Per esempio quando si usa nel "$S('2.1') ma l'item "2.1" non è mai stato usato.
- "err_FormulaTextUndefined";
Il testo della Formula inizio o Fromula contiene un errore, per cui il codice Javascript non è valido. - "err_ParseError"
L'ItemId è in un formato non valido. - "wrn_totalRowWithCalcArguments"
Riga di totale "T:" o sottototale "S:" con elementi di calcolo (quantità, prezzo unitario, formula) che non vengono usati. - "wrn_emptyIdWithCalcArguments"
Non vi è un ItemId ma vi sono elementi di calcolo. - "others error"
Altri errori.