Tabella QuickSum (Attualmente sperimentale)

Documentation •
In this article

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à.
  • 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".
    • 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.
    •  
  • 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.
  • 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"

 

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"
         

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"
  • "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.

 


 

help_id
quicksum

Help us improve the documentation

We welcome feedback on how to improve this page.

Tell us what theme needs a better explanation or how to clarify a topic.

Share this article: Twitter | Facebook | LinkedIn | Email