添加新功能

点击工具栏添加新功能的命令。

aggiungi funzionalità

可供使用的选项根据不同的文件类型也会有所不同。

添加一个新的简单表格

其允许您添加完全由用户管理的表格。
一旦被添加,表格就不能够被删除。

您需要指示出表格的名称。

该表格将有两个预定义的列:

  • 识别号码列 - 指示出所选的组
  • 摘要列 - 输入文本

在此表格内,点击数据菜单 列设置的命令来添加新列。

添加文件表格

想要了解更多的信息,请您点击查看文件表格的页面。

 

 

文件表格

文件表格允许您在会计文件中加入文本文件、图像 (包括Logo/商标) 或脚本。

用户可以两种不同的方式添加:

文件表格

文件表格内包含有下面的列:

  • 识别号码列
    此列指的是文件的名称。其是自由文本,在表中应该是唯一的。
    • 以'_'开头的文件用于特殊程序功能。
      • 例如 "_预算.js"
        您可以插入自己为预算表格所创建的功能。
    • dlgmanageaddons的识别号码是用来保存作为Logo/商标的图片。
    • attachment_ Id 用于资产负债表中的附件。
  • 摘要列
    对文件的简要描述 (选项)。
  • 附件列
    包含文件。通过点击单元格,可以查看或修改文件的内容。
    可能的内容有以下几种类型:

 

添加一个新的文件

外部编辑器

要在文件表格中插入一个新的文件:

  • 添加新的一行。
  • 识别号码列中,填写文件名称。
  • 摘要列中,填写您所需的文字。
  • 附件列中,双击单元格,或单击该单元格右上角编辑文件的符号,选择您想添加的文件类型。

您也可以参阅:

Markdown编辑器

在Banana财务会计+中,除了html语言外,现在还可以用markdown语言插入资产负债表的附件。这对于在附件中插入表格是非常方便的。
在Banana财务会计+中,只有高级计划才有此功能。

Markdown编辑器

Markdown是一种允许使用标准文本编辑器和易于编写和阅读的语法来创建格式化文本的语言。

在Banana+中,可以在文件表格的附件中使用这种语言,并且支持 GitHub Flavored Markdown 的规范。

文档发布在github.com上:

添加一个Markdown文档

  • 选择文件表格
  • 添加一个新的行。
  • 识别号码列中,输入一个能识别该文件的名称。
  • 摘要列中,写上所需的文字。
  • 附件列中,双击单元格或选择编辑符号,选择Markdown文本类型。

用markdown文本添加预算附件

创建一个表格的 Markdown 语法示例

要在markdown中创建表格,列的内容必须是一个垂直的斜线符号,前面和后面是一个空格" | "。
要对齐列,必须创建一行含以下要素:

  • 左边:简单的连字符 (最少三个连字符)。
  • 中心:破折号前面和后面都有冒号 ":---:"。
  • 右:破折号后面是冒号 "---:"。

# Notes to the Balance (Example)

The financial statements of Example have been prepared in accordance with the In­ter­na­tional Financial Reporting Standards (IFRS).

## Cash Positions

| Account | Description | Current Year | Previous Year |
| :---: | --- | ---: | ---: |
| 1000 | Cash  | 23'000.00 | 17'000.00 |
| 1020 | Bank account| 9'000.00 | 1'000.00 |
| | **Total** | **32'000.00** | **18'000.00** |

## Other Fixed Assets

| Account | Description | Current Year | Previous Year |
| :---: | --- | ---: | ---: |
| 1000 | Machinery | 13'000.00 | 17'000.00 |
| 1020 | Furniture | 5'000.00 | 4'000.00 |
| | **Total** | **18'000.00** | **21'000.00** |

 

Markdown编辑器

HTML 编辑器

html 编辑器

添加 ${...} 字段

允许用户向文件添加动态文本,例如账户的余额。您可以在下面的这个链接中查看 Banana API 的界面: https://www.banana.ch/doc/en/node/4714
该命令可以手动添加或通过编辑菜单 → 添加脚本的命令来添加。

打印当前账户余额 1020

${Banana.Converter.toLocaleNumberFormat(Banana.document.currentBalance('1020','','').balance);}

 

账户表的输出,列:账户,组,摘要,余额

${HTML Banana.document.table('Accounts').toHtml(['Account','Group','Description','Balance'],true);}

 

可以在单独的文档中编写JavaScript代码,并通过Banana.include的命令来包含脚本。
脚本可以保存在文件表格或本地文件中。

${Banana.include('documents:myscript1');rtnValue}
${Banana.include('c://temp//myscript16.js');rtnValue}

javascript 编辑器

编辑器 Html 打印

添加分页符

该命令可以手动添加或通过编辑菜单 → 添加分页符的命令来添加。

Text on the first page
${PAGEBREAK}
Text on the second page

 

解决问题

  • 要复制示例代码,请使用复制命令,而不是CTRL+C / CMD+C。这样可以确保只复制没有html格式的文本。
  • 如果${...}字段不起作用,确保没有html格式化 (如<span>...</span>元素或其它东西),必要时从HTML源代码中删除。

 

Embedded Extension

Embedded Extensions are extensions written in JavaScript and saved directly in the Documents table of the accounting file. They work exclusively in that specific file without requiring installation. Once created, they are immediately ready to use.

Add an Embedded Extension

  1. Open an accounting file in Banana Accounting Plus.
  2. Ensure the Documents table is enabled:
  3. Add the extension in the Documents table:
    • In the ID column enter a name for the extension.
    • In the Description column enter a comment.
    • In the Attachments column, attach the JavaScript code with a double click on the cell or select the edit symbol in the top right corner, then select Javascript code and confirm with OK.

      banana embedded extension javascript
       
    • An editor where you can write your javascript code opens.

      banana javascript embedded extension
       
    • When you are finished, confirm with OK, and save the accounting file.

Run the Extension

You have two options to run the embedded extensions:

  • From the Documents table, click the run symbol in the Attachments cell containing your code.
  • From the Extensions menu, select the extension from those listed.

banana javascript embedded extension

More information

Documentation for developers:

Add Simple table in the file (from Add functionalities)

You can add one or more simple tables to the same accounting file to include additional information without overloading the accounting data structure. Every time you need to add a simple table:

  • From the Tools > Add/Remove functionalities > Add simple table menu

The program adds a table to the existing file with the name you assigned, and it includes the following columns:

  • Id – Used to create a list of coded items. Each row is assigned an Id code to identify the item
  • Description – Enter text to describe the item
  • Notes – Enter text for notes or other information

Simple table

  • Assign a name to the table.
    • In our example: Internal notes
    • Confirm with OK
      The new table is added to the file and is immediately available.

Customize the columns

In the simple table you can customize the columns by displaying other predefined columns and/or adding new ones.

Display other predefined columns:
  • From the Data menu > Columns setup
    • From the list, select the desired column (e.g. the Link column)
    • Click on "Visible"
    • Confirm with OK.

Add new columns:
  • From the Data menu > Columns setup > Add
  • Give a name to the column (e.g. Date)
  • Define the column format (e.g. text, date, amount, currency...)

Change the header of a simple table

To change the header of a simple table, go to the simple table:

  • Go to the Data menu > Tables setup
    • In the dialog, select the simple table you want to change
    • In the settings box, change the name
    • Confirm with OK.

For more information, visit the page:

Tabella QuickSum (Technical preview)

QuickSum Table è una tabella strutturata, basata su una logica contabile, pensata per la preparazione di capitolati, computi metrici e richieste di offerta all’interno di un ambiente affidabile e controllato.

Vantaggi principali:

  • Totali sempre corretti, calcolati automaticamente dal sistema secondo una logica contabile, senza formule manuali.
  • Coerenza e tracciabilità dei dati, grazie a una struttura che evita incongruenze e modifiche accidentali.
  • Riduzione degli errori, anche in presenza di aggiunte, correzioni o riorganizzazioni delle voci.
  • Struttura chiara e stabile, adatta a documenti professionali e allegati contrattuali.
  • Utilizzo immediato, simile a un foglio di calcolo, ma con i vantaggi di un sistema contabile.
  • Documenti affidabili, pronti per essere condivisi, archiviati o allegati a offerte e contratti.

Technical Preview

La tabella QuickSum è uno strumento ancora in fase di sviluppo e che viene messo a disposizione a un limitato numero di utenti. 
Ci sono diverse funzionalità che sono per il momento provvisorie e che subiranno cambiamenti con il tempo.

Per il momento è solo disponibile all'interno della versione Dev Channel. 

Funzionamento

La QuickSum Table si usa come una tabella Excel, con colonne per l'identificativo, descrizione, quantità, prezzo e totale, con però i totali in verticale fatti in automatico.

  • L'identificatore (ItemId) può essere suddiviso in più livelli tramite i punto ".".
  • Gli identificatori devono essere disposti in sequenza ordinata, dal più piccolo al più grande.
  • Il programma in automatico fa i totali.

Qui un esempio

quicksum table

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 che identifica l'elemento
    • Può assumere diverse forme come spiegato in seguito.
    • Deve essere sempre in sequenza crescente. Prima i valori più bassi e poi quelli più alti.
    • Per esempio "2.1.1", "T:2.1.1", "V:2.1.1", "V:T:2.1.1"
  • 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.
    • N: Note modificabile.
    • Q: Quantità modificabile.
    • P: Prezzo unitario modificabile
    • I valori indicati fra parentesi quadre e fra parentesi graffe sono inseriti in automatico dal programma e possono essere sovrascritti.
  • Descrizione
    La descrizione dell'elemento e anche i valori nel caso di sommario.
    Se contiene tre punti "..." significa che vi è un valore da completare. 
  • 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 Codice2
    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. 
    • Permette di controllare l'itemId ne caso sia lasciato vuoto o si sia usato una variante.

L'ItemId

Viene inserito nella colonna ItemId ed identifica la riga e l'elemento. Può avere diverse forme

  • Identificatore dell'elemento (ItemId)
    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"
    • Il valore "00" è relativo al totale complessivo.
      • Si inserisce all'inizio per indicare il testo del progetto.
      • Il Subtotale "S:00" mostra la somma fino a quel momento.
      • Il Totale "T:00" può essere usato solo come ultima riga di totale.
        Oltre non ci possono più essere totali.
      • Nella formula $S('00') ritorna il totale complessivo di tutte le righe sommate fino a quel momento.
    • 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.
        • "F": riga finale gerarchia.
          • Questo elemento è l'ultimo della gerarchia creata.
          • Esempio: "2.1", "2.1.1", "2.1.1.1", "2.1.2", "F:2.1" chiude la sequenza e quindi dopo il "F:2.1" non ci potranno più essere elementi "2.1", "2.1.1".
        • "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 sequenza e quindi dopo il "T:2.1" non ci potranno più essere elementi "2.1", "2.1.1".
    • Variante.
      Vedi sezione successiva di spiegazione.
      • Un codice che identifica la Variante e precede l'ItemId. 
      • Deve obbligatoriamente iniziare con la lettera "V" ed esere seguito da dei duepunti ":" .
      • Il codice della variante deve precedere gli elementi. V
      • Esempi variante 
        • "VA:" "VA:2.1", "VA:2.1.1"
        • "VB:" "VB:2.1", "VB:2.1.1"
      • 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 "$S()".
      • Diverse colonne vengono separate da punto e virgola ";".
      • Le colonne "Code1;Code2" sono già considerare e non bisogna specificarle.
      • Per esempio "Code3;Code4" .
    • "#rounding" è il valore minimo in cui l'importo totale riga viene arrotondato. 
      • Si inderisce nella colonna Descrizione.
      • Per esempio  "0.05", "0.10", "1"
      • Il separatore decimale deve sempre essere il punto "."
    • Righe calcolo hash
      Sevono a verificare se il documento è cambiato
      • "#hash-base" 
        Il programma inserisce nella Descrizione l'hash calcolato sugli elementi che non sono modificabili.
        Se si modificano le celle in cui si possono inserire valori anche quando il documento è in modalità blocco, l'hash non cambia.
      • "#hash-all"
        Il programma inserisce nella Descrizione l'hash calcolato su tutti gli elementi del documento.
        Quindi qualsiasi valore viene modificato viene modificato anche l'hash.

        quicksum table
         
  • 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 $S().

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') ritorna la somma di tutti i totali che iniziano con 2
        • $S('2.1') ritorna la somma di tutti i totali che iniziano con 2.1
        • $S('2.1.1') ritorna la somma di tutti i totali che iniziano con 2.1.1
        • $S('00') ritorna la somma di tutto 
      • Si può usare anche con parentesi graffe
        • $S('2:{=}') solo gli elementi che sono esattamente 2, quindi senza i sotto elementi.
        • $S('2:{+}') solo gli sottoelementi di 2.
        • $S('2') = $S('2:{=}') + $S('2:{+}') 
    • $C('ColumnNameXml', 'Value')
      • Sum values with conte 
      • ColumnNameXml è il nome in inglese  della colonna.
      • Value è 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 con un valore specifico
        • "$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".
      • Puoi usare anche un distintivo
        • "$C('Code1','{*}')" La somma degli importi delle righe con qualsiasi valore (anche vuoto) nella colonna Code1 .
          Corrisponde alla somma totale T00.
        • "$C('Code1','')" oppure "$C('Code1','{}')" La somma degli importi delle righe con la colonna Code1 vuota..
        • "$C('Code1','{<>}')" La somma degli importi delle righe che contengono un valore non vuoto nella colonna Code1.
      • Valori non ammessi 
        • Nella colonna che viene usata per inserire dei valori non si possono usare 
          "{}","{*}","{<>}"
        • Ai fini dei totali per la funzione $C questi valori sono considerati come vuoti. 
    • $V() L'elenco delle varianti usate nella calcolo separate da punti e virgole.
      • Per esempio "VA;VB"
  • Arrotondamento finale.Si può inserire una formula prima della riga finale per calcolare l'arrotondamento al minore. 
    • Per esempio "Math.floor($S('00'))-$S('00')"
    • Si può usare la formula anche in altre posizioni cambiando l'Id.

Varianti

La tabella permette di inserire degli elementi varianti per:

  • Includere degli elementi.
    Per esempio un'offerta che prevede appunto degli elementi opzionali. 
  • Sostituire degli elementi.
    Per esempio per cambiare le specifiche tecniche.

La variante viene indicata nell'ItemId, facendo precederla da un identificatore di variante.

  • 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.
    • Meglio usare sempre una sigla maiuscola.
  • 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 nel seguente modo:

  • Andare sulla riga con ItemId "#scenario"
    • Nella colonna Descrizione indicare la sigla della varianti che si vuole attivare.
    • Se si vogliono attivare separate da un punto e virgola ";".
    • Esempio:
      • Inserire "VA" per attivare la variante "VA".
      • Inserire "VA;VB" per attivare le varianti "VA" e "VB".
  • Il programma attiva la variante selezionata "VA" ed esclude le posizioni che sono sotiute:
    • 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à blocco per 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 colorate in giallo.
  • Le righe già completate con il valore richiesto nella colonna ModifyCode, sono visualizzate in celeste chiaro.
    Sarebbe stato più intuitivo il verde, ma non è facilmente distinguibile da persone daltoniche. 

Per attivara la modalità blocco (provvisorio):

  • Aggiungere una nuova riga a inizio file
  • Nella colonna ItemId inserire il testo #options
  • Nella colonna Descrizione inserire il testo lock

Le righe con le celle modificate sono indicate nella colonna "Mod. Code" (ModifyCode), tramite un carattere:

  • D: Descrizione modificabile.
  • N: Note modificabile.
  • Q: Quantità modificabile.
  • P: Prezzo unitario modificabile
  • U: Unità
  • Si possono combinare più codici, ad esempio "QP" (Quantità e Prezzo unitario modificabili).
  • Il programma in automatico indica il codice in parentesi graffe "{P}", 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à e non c'é formula prezzo viene messo "{P}" .

Colore righe 

In modalità blocco le righe vengono colorate in automatico con questa logica.

  • In giallo le righe che richiedono un inserimento di valore. 
    • Se vi è un codice di modifica e la rispettiva colonna è vuota.
    • Oppure per la Colonna Descrizione contiene tre puntini "..."
      Per esempio "Marca: ..."
  • In verde chiaro se i valori sono completati.

Verifica dell’integrità tramite hash

QuickSumTable può calcolare un hash crittografico del contenuto della tabella. L’hash permette di verificare se i dati rilevanti del documento sono stati modificati dopo il calcolo.

L’hash non impedisce la modifica del documento, ma consente di rilevarla confrontando il valore memorizzato con quello ricalcolato.

Tipi di hash

QuickSumTable genera due valori distinti.

  • Hash Base
    • Id riga #hash-base
    • L’Hash Base protegge i dati principali e le celle che non sono configurate come modificabili.
    • È utile quando alcune informazioni del documento devono rimanere protette, mentre altre possono essere successivamente completate o modificate senza invalidare questo hash.
    • Alcuni valori calcolati o dipendenti da formule possono essere esclusi per evitare che variazioni automatiche influenzino il risultato.
  • Hash All
    • Id riga #hash-all
    • L’Hash All comprende un insieme più esteso di dati, incluse le colonne modificabili, le colonne definite dall’utente e alcuni risultati calcolati.
    • È utilizzato per verificare l’integrità complessiva della tabella. Una modifica a uno dei valori inclusi produce un Hash All differente.

Comportamento delle righe e delle colonne

  • Le righe completamente vuote non partecipano al calcolo. Di conseguenza, l’inserimento o la rimozione di una riga vuota non modifica l’hash.
  • Il numero e la posizione fisica della riga non vengono memorizzati, mentre l’ordine delle righe non vuote rimane significativo.
  • Le colonne di sistema sono identificate tramite il loro codice interno. Le colonne definite dall’utente sono identificate tramite il loro nome XML, così il risultato non dipende dall’identificatore numerico assegnato internamente.
  • Le colonne vengono ordinate in modo deterministico prima del calcolo.

Informazioni tecniche

  • L’algoritmo crittografico utilizzato è **SHA-256**.
    • Il formato dell’algoritmo è versionato. La versione corrente è **QS1** e viene memorizzata alla fine dell’hash:
    • <digest SHA-256>:QS1
    • La versione permette a QuickSumTable di riconoscere le regole utilizzate per il calcolo e di gestire future evoluzioni del formato.
  • I testi delle celle vengono:
    1. convertiti in UTF-8;
    2. codificati in Base64;
      La codifica Base64 evita che il contenuto di una cella possa essere interpretato come un separatore, una nuova colonna o una nuova riga.
    3. inseriti in una rappresentazione testuale strutturata della tabella.

Limitazioni

L’hash rileva le modifiche soltanto se il valore originale viene conservato in modo affidabile. Se una persona può modificare sia la tabella sia l’hash memorizzato, può ricalcolare un nuovo valore coerente con i dati alterati.

Per garantire anche l’autenticità dell’autore del documento è necessaria una firma digitale o un altro sistema basato su chiavi crittografiche.

Stampe

Per stampare i dati della tabella QuickSum, esistono le possibilità seguenti.

Stampa tramite l'Anteprima

Con il comando Anteprima di Stampa è possibile creare una stampa della tabella.

Si possono preparare delle Viste apposite in modo da definire quali colonne includere nella stampa.

Tramite la funzione Filtra righe, nella stampa si possono includere solo le righe desiderate. Ad esempio, se si vogliono avere solo le righe di totale:

  • Posizionarsi nell'editor del filtro.
  • Inserire 
    !itemcalc!^t:
    • Questo comando indica di selezionare solo le righe che nella colonna ItemCal iniziano con "T:".
    • Sono le righe delle colonne che sono attivate.

Stampa tramite Estensioni

Con estensioni in Javascript è possibile creare dei report di stampa personalizzati, ad esempio che mostrano i dati desiderati con il riassunto dei diversi totali.

Errori 

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.

 

 

Link tables using the RowId column

In Banana Accounting Plus, you can create links between columns of different tables using the RowId column.
This feature allows you to enrich the main table (e.g. Transactions) with information from other tables, simplifying data management and analysis without complicating the structure.

You can create links between:

  • Columns of a simple table (added by the user) and one of Banana's predefined tables (e.g. Accounts, Transactions).
  • Columns of two or more simple tables added by the user.

How to add linking columns

To link columns between different tables:

  • Go to the table where you want to insert the links.
  • From the Tools > Add/Remove Functionalities > Add columns to link tables menu.
  • Choose the position (after which column to insert the new columns).
  • Confirm with OK.

The command only works if the table to be linked contains the RowId column. Along with the RowId, the Description column is also added (you can hide it if not needed).

Dialogs

Select table → lists the tables with a RowId column that are not yet linked. If the list is empty, there are no linkable tables.

Select column position → shows all columns of the current table and lets you choose where to insert the new columns.

Linking a simple table → predefined table

To link a simple table with one of Banana's predefined tables, such as the Transactions table, follow these steps:

  • Open the Banana file
  • Create the simple table (e.g. Internal Notes)
  • Go to the Transactions table and from the Tools > Add/Remove Functionalities > Add columns to link tables menu
  • In the dialog that opens, select the simple table you created (e.g. Internal Notes)
  • Choose the position of the columns
  • Confirm with OK.

In the Transactions table, Banana automatically adds two columns: Id and Description Id from the simple table, with the headers and contents you created in the two columns (Internal Notes).

For more information, see the detailed example:

Linking two simple tables

You can also create links between two simple tables. For example, linking the "Events" simple table with the "Volunteers" simple table:

Add simple table 1
  • Id → where you enter the event code or name.
  • Description → description of the event
  • Add new columns or rename existing ones (Data > Columns setup)
Add simple table 2
  • Id → where you enter the volunteer code or name
  • Description → where you enter the volunteer's role.
  • Add new columns or rename existing ones (Data > Columns setup)
Create the link
  • Go to the table where you want to create the link and from the Tools > Add/Remove Functionalities > Add columns for linking tables menu.
  • In the dialog that opens, select the name of the other simple table you created
  • Choose after which column to place the columns to be linked
  • Confirm with OK.

Banana automatically adds the two linking columns, Id and Description, with the headers and contents you created.

For more information, see the example:

Technical notes on table linking

For correct operation, Banana applies some automatic rules:

  • Column names: are created as TableNameId and TableNameDescription.
  • Automatic description: automatically filled in when you enter a valid Id.
  • Updates: if you change the description in the linked table, it also updates in the Transactions table.
  • Manual creation: you can manually add columns with these names, following the naming convention.
  • Avoid ambiguity: do not use the Id or Description suffixes for columns that are not intended to be linked.
  • Optional Description column: you can hide or delete it if not needed.

Limitations

  • You can only link a table if it contains the RowId column.
  • A table can only be linked to one other table at a time.
  • If nothing appears in the Select table dialog, it means there are no linkable tables available.

Linked tables Volunteers/Events

Associations that organize activities and events often need to coordinate their volunteers. With Banana Accounting Plus, you can create two simple tables linked to each other – Volunteers and Events – to centrally manage who participates, which tasks have been assigned, and the organizational details of each event.

This way, all the information stays within the same accounting file, without the need for separate Excel sheets, giving you a clear, up-to-date, and immediate overview.

In Banana Accounting Plus, you can link simple tables to each other using the RowId column.

How to create the Volunteers and Events tables

  • Open the accounting file
  • From the menu Tools > Add/Remove Functionalities > Add Simple Table
    • Create the simple table Volunteers
    • Create the simple table Events.

Structure of the Volunteers table

The table can be customized by adding your own columns and displaying other predefined ones. In this example, the structure created is as follows:

  • RowId → unique volunteer code (also serves as the linking key).
  • Description → volunteer's full name; automatically appears in other linked tables.
  • Email → “Notes” column renamed to “Email”.
  • Phone number → column added via Data > Columns setup > Add.

Structure of the Events table

The Events table can include these columns:

  • RowId → short code to identify the event (e.g. SPRIFEST).
  • Description (DescriptionId) → name of the event (e.g. Spring Festival).
  • Date → column added via Data > Organize columns > Add.
  • Location → column added via Data > Organize columns > Add.

Creating a link between Volunteers and Events

In this example, the Volunteers columns were linked to the Events table.

  • Tools > Add/Remove Functionalities > Add columns to link tables
  • In the dialog window, select the Volunteers table.

Banana automatically adds the following columns to the Events table:

  • Volunteers Id → volunteer's code.
  • Volunteers Description → name of the volunteer (or event manager)

When you enter the volunteer code in the Volunteers column, Banana automatically fills in the volunteer's name in the corresponding column.

Advantages of linking

  • Clear overview → you immediately know who is participating in an event.
  • Defined roles → assign specific tasks to each volunteer.
  • Automatic updates → if you change data in the Volunteers table, Banana updates it in the Events table too.
  • Simplified management → no more separate sheets, everything stays in the same file.
  • Activity history → keep a record of volunteer participation over time.

This approach is ideal for cultural, sports, or charity associations that want to manage people and events in a simple, organized, and immediate way.