Documentation Banana Accounting 8

Banana Plus, new in-depth and optimized documentation

In the new Banana Accounting Plus version, all the documentation has been revised, optimized and expanded with information on the new functions and applications, with images and videos. A new support feature has also been implemented: by clicking on any error message, you will be directed to a page that explains its causes and the solutions.

We advise you to immediately switch to Banana Accounting Plus and take advantage of the many new features.

How to start

Transactions

Advanced features

Data import and export

Security

Useful information

Documentation of previous versions

Index

Banana 8 characteristics

Banana Accounting for Windows, Mac and Linux main features

Banana Accounting 8 is an international software extremely versatile, perfect to keep accounting in any nation. Ideal for small economic entities.

Versatile

It adapts to your needs and accounting knowledge level.

  • Several accounting methods
  • More than 500 file templates
  • Freely organize your accounts
  • Everything always under control
  • Accounts details one click away
  • Use Cost centers and segments
  • With or without VAT management
  • Financial planning - budget

Fast and easy

Start now and save time every day.

  • Ready to work in 3 easy steps
  • Excel-like interface
  • Fast daily work
  • Memorizes recurring transactions
  • Import data from e-banking
  • Automatic VAT reports
  • Immediate printouts and reports

Universal

Used in more than 127 nations worldwide.

  • Multi-language
  • Multi-currency
  • Multi-mandate
  • Specific VAT codes for each nation
  • Chart of accounts for several nations
  • Specific Apps for several nations

    Professional

    An impeccable presentation of your business.

    • Clients and suppliers' registers
    • Several reports, also by period
    • Data synchronization with Excel
    • Export data in several formats
    • Custom Apps development
    • Automatic checks

    Security & Certification

    Maximum level of security for your data.

    • Password file protection
    • Rows protection
    • Transactions lock
    • Blockchain certification
    • Archive data in PDF format
    • Automatic backups

    Compatibility and sharing

    • Compatible with previous versions
    • For different operating systems
    • Cloud file sharing
    • Send your accounting file by email
    • Copy, duplicate, move file
       

    Comprehensive support

    • 360 degrees support
     

      Versatile

      Choose from various accounting methods

      You can start with the accounting method you prefer, and you can change, if necessary. All your data will be retained:

      There are also several utility tools:



       

      Choose from more than 500 templates

      Instead of building your file from scratch, use one of our templates: they are freely available online.

      They are already grouped by language, nation, activity branch.

      Templates page

      More information...

       

       

      Freely organize your accounts

      You can adapt the chart of accounts of your template to fit your needs, by adding or deleting accounts, creating groups or subgroups and different totalization levels.

      The results are immediately visible.

      You can edit and make changes to your accounting plan also during the year.

      You can also add extra columns or change the order of the existing ones both in the chart of accounts or in the table where you enter the transactions.

      More information...

      Your situation is always under control

      You will always have, at a glance, an updated and global situation of your business. 

      Every time that you enter a transaction your balances will automatically update.

      More information...

       

       

       

       


      Account details just one click away

      If you want to see a detailed situation of any account, category or group, you just need to click on the small blue arrow that appears in the top-right corner of the account number cell.

      The account card can be printed or saved in PDF format. You can also obtain your account card for a specific period.

      You can print a single account card, all of them, or just some selected ones.

      More information...

       

      Use cost centers and segments to manage projects, specific business sectors or activities

      Using Segments and Cost centers, Banana Accounting allows you to manage specific activities or project in a detailed and precise way, without changing the structure of your chart of accounts.

      You will be able to know, in each moment, how a certain project is going and you can print out detailed reports.

       

       

      Easier VAT management

      If you need to manage the VAT, choose a template that already has it or convert your existing file adding the VAT option.

      All VAT calculations and the VAT reports are automatic.

      For Switzerland the program already prepares a facsimile of the official form both for the effective method and the flat tax rate method.

      More information...

       

       

      Financial planning

      You can activate the Budget table that will allow you to directly write your budget transaction indicating the repetition (ex. M = monthly, 3M = quarterly, ...). Based on your budget transactions the program automatically creates your yearly budget.

      You can always compare and print the budget with the real situation, also for a specific period.

      This tool is a big help to foresee how your business will do and to be able to face any situation.

      More information...

       

      Fast and easy

      Start immediately with 3 easy steps

      You can start working immediately with 3 easy steps:

      • Choose the best template for you
      • Customize your chart of accounts
      • Start entering transactions

      ... and the accounting is done!

      More information...

      Excel-like interface

      The graphic approach is very similar to Excel so your will feel right at home.
      The program is structured in tables, columns and views, and you can copy, cut, paste and correct your data at any time.

      But Banana is so much more than just a worksheet, because as you enter your data, all tables totals will be automatically updated and, based on your data, Banana will immediately create your Balance sheet, Profit & Loss statement and several other professional looking reports.

      More information...

      Quick writing - text autocomplete (Smart Fill)

      When entering transaction, as you write the first letters or digits the program will automatically suggest you texts previously used.

      You then just need to select the chosen option and the program will automatically fill the other row cells. 

      More information...

      Impeccable journal

      The Transactions table is in fact your journal.

      It is clearly organized and can be printed directly or saved in a PDF format.
      You can also print specific periods or selected rows only; you can also select and change the columns display.

      When you enter a transaction, all accounts totals will automatically be updated, so you can always have a global view of your business.

      You can also use colors, both in the text and row background, in order to highlight some entries and quickly find your data.

      More information...

      Memorize and recall recurring transactions

      You can select your recurring transactions and save them in the Recurring transactions table; you can then automatically recall them when needed.

      More information...

       

       

       

      Import data from e-banking and credit card statements

      You can import your e-banking transactions or your credit card transactions directly into your Banana file, with no need of manually writing them.

      We now have import filters for all major banks and institutions, and they are constantly updated. If your bank doesn't appear in the list of the available filters, we can create one for you.

      More information...

       

       

       

      Immediate printouts and report - customizable settings

      You can personalize the printouts of your Balance Sheet and Profit & Loss Statement.

      You can activate/deactivate several options in order to present your data just as you want; choose from different graphic styles, change colors, etc. You can play around and see the results in your Print preview.

      When printing your Balance sheet you can also include a text for the Swiss attachment

       

      Save your personal printing settings

      With the Compositions command, it is easy to setup custom printouts. You can save several printing settings for Balance sheet, Account details, extract and sort rows, addresses and labels, ...

      More information...

       

       

       

      Universal

      Multi-language

      The program is available in several languages: English, Italian, German, French, Spanish, Portuguese, Dutch and Chinese.

      You can change the program language at any time.

      Each file can be created in a different language; in our template section on our website, you can choose files in different languages.

      In order to change the language of an existing file you need to convert it into a new file choosing the desired language.

      More information...

      Multi-currency

      You can have as many accounts in foreign currencies as you need, and enter your exchange rates in the Exchange rates table. You can also keep an history log of your exchange rates.

      Exchange rate calculations and exchange rate differences are all done automatically.

      You can have your Balance sheet, your Profit and Loss statements and several reports in a second currency as well.

      More information...

      Multi-mandate

      Banana Accounting has no limits on mandates.

      You can manage an unlimited number of mandates, each one with its personal settings: language, currency, VAT management, ...

      VAT codes by nation

      When creating a new file with the VAT/Sales tax management option, and you choose a specific nation, you will find a VAT Codes table that already contains all the VAT codes used in that nation.

      The VAT Codes table can however always be edited, in case you need specific codes or if some new legislation comes into effect.

      More information...

      Specific Apps by nation

      Banana Apps are applications that allow you to obtain specific printouts or reports from the Banana program; some Apps are already available for free, you just need to download them!

      You can also create your own Apps in order to have very specific report presentation, comply to specific local law requirements, such as for example the Swiss "curatele", or specific association's needs.

      More information....

       

      Professional

      Clients and suppliers' management

      You can easily manage your Clients and Suppliers.

      You will be able to know, at any time, if you have expired or still unpaid invoices.

      You can also have the historic detail for each client or supplier.

      In the opening balances, you can go back to the invoices that determine the amounts.

      Countless reports, also by period

      Reporting possibilities are endless.

      Choose the columns to display, change headers, change colors.

      You can also create external reports with the groupings you want.

      More information...

       

       

      Excel data synchronization

      If you want your data in Excel, you do not have to copy, paste, or export any data anymore
      The ExcelSync features allow you to recover Banana data in Excel and create sheets and graphs that update automatically.

      When new transactions are added, the Excel spreadsheets are immediately updated and calculated. This feature is not available for Apple / Mac.

       

      Export data in different formats

      With Banana Accounting you can export data in various formats: Html, Excel, Xml, Txt.

      Export can be performed on a data selection or for the whole accounting file.

      You can also decide to export only specific rows.

      More information...

       

       

       

       

      Custom Apps development

      If you need special printout, reports or some specific outputs, please contact us: we are available to create custom applications.

      Submit your ideas!

      Automated checks

      Any errors are reported automatically.
      You can also make extensive controls.

      If there are any accounting differences or if there are differences in the opening balances, there is a command to automatically find them in the Accounts or Transactions table.

      More information...

       

       

       

       

      Security and certification

      Password file protection

      Each file can be password protected.

      The password can be changed or deleted anytime.

      More information...

       

      Rows protection

      In order to work more at ease, you can protect the rows that are already definitive in your file, to avoid tampering or accidental changes.

      Protected rows can be unprotected.

      More information...

       

      Transactions lock

      You can lock all or just some transactions; thanks to the digital certification, you can be certain that they haven't been changed.

      You can also just protect your transactions to prevent accidental tampering.

      More information...

      Data certification with blockchain system

      The integrity of the accounting data is guaranteed
      by a state-of-the-art certification system (US Patent No. 7,020,640), the same used by electronic coins such as the bitcoin.


      More information...

       

      Store your file in PDF format (or just parts of it)

      You can save all your file in PDF format, or choose what parts of it to print.

      You can store the entire file in PDF, allowing you to always guarantee your data integrity.

      Many options are available.

      More information...

      Automatic Backups

      The program automatically saves, at a frequency in minutes that you can define, in a backup file.

      If the program or computer crash, you can retrieve the data by opening this file.

      More information...

       

       

       

      Compatibility and sharing

      Compatible with previous versions

      Banana Accounting 8 maintains the same usage patterns and compatibility with previous versions.

      Files created with previous versions can be opened and all data is fully maintained.

      For all operating systems

      Banana Accounting 8 is available for Windows, Mac, Linux, Android and IOS. Banana files are interchangeable between different versions.

      More information...

      Cloud sharing

      Banana files can be saved on all Cloud systems: Dropbox, I-Cloud, Google Drive, ... so that you can access your accounting data anytime, anywhere.

      Send your Banana files by email

      Each Banana file can be sent by email, shared, saved on a USB stick, and so on.

      There is also a handy command from the File menu that automatically creates an e-mail message with your attached Banana file, ready to be sent.

       

       

       

       

      360 degrees support

      Online documentation

      More than 500 pages of free online documentation, divided by topic, with step-by-step images and explanations.

      Direct link to the error

      Any error is immediately reported.
      Alongside the error there is a symbol ? with direct link to the error explanation page and its solution.

      Free support

      Support by phone or email is free for 12 months from the date of purchase and for topics related to the use of the program.

      Technical Advanced Support

      Technical support and custom solutions development (Apps).

      Contact form
      Support page

       

      FREE TRIAL PURCHASE

       

      Switzerland: new regulations for reports

      From the end of 2015, all companies registered in the Swiss Commercial Register, will have to present their accounting reports according to a new regulation, with the minimal Balance Sheet and Profit and Loss Statement organization prescribed by the Swiss Code of Obligations (rRt. 959a and 959b CO).

      The new accounting plan templates that come with both Banana 7 and Banana 8 already meet the new requirements. If you created your new accounting file using one of the new Banana templates (chart of accounts), you will get printouts that are conform to the new regulations.

      If you have an "old" accounting plan, you have two possibilities:

      1. Migrate to the new accounting plan and get your data from the existing accounting plan
        1. Create a new accounting file using a Banana template that uses the new organization (account numbers and groups)
        2. Add a new column in the accounting plan and enter for each account, the corresponding account number in your "old" accounting file
        3. Use the import feature in order to get and convert your data from your "old" accounting plan.
      2. Keep using your existing accounting plan and use an external file (already available in Banana 8) to get a report according to the new regulation when printing
        1. Create a new Report file (Double-entry accounting -> Accounting Report -> Tenplates for Switzerland (English) -> Report art. 959 Swiss Code of Obligations)
        2. Save the file in the same directory where your accounting file is stored
        3. Give to each account (in the Gr1 column) the group corresponding to the new regulations,  as indicated in the Accounting report file (see explanations on the page External report file)
        4. Print the Balance Sheet and Profit and Loss Statement for fiscal purposes, by using the report file  (for more information see the Enhanced Balance Sheet with groups page)

      Further changes

      The new regulations prescribe further changes. They also require that the Attachment to the Balance sheet should contain more detailed information. You can also decide to include some of the required details directly into the Balance Sheet and Profit and Loss statement, or you can enter the information in the attachment (for example for credits or debits towards the sharesholders or the members of the company).

      These are important changes, with fiscal and legal implications.
      We strongly advise you to check with your trustees, accountants, auditors and tax advisors in order to prepare the 2015 accounts presentation as prescribed.
      In the following years you will simply need to follow the same organization.

       

      What's new in version 8

      Go to the page 'updates' or, if you buy the first time, to the online store.

      Optimized for the new Windows 10, Mac und Linux Operating Systems

      Banana Accounting 8 maintains the same use, it is compatible with previous versions, and introduces important new functions that our clients requested. The program now indicates whether there has been an interruption and whether there are data that have not been saved. More info...
       

      Compatible with previous versions

      Banana 8 uses the same format of the 5.12 version. Files edited with version 8 can therefore be read from previous versions.
       

      Work with colors!

      By coloring the rows (text or background), it is easier to see and find accounts and transactions.


      Accounting templates up to date

      Several templates are available for the double-entry accounting, as well as for the income & expenses accounting and the cashbook, in several languages and for different nations.


      Hi-quality accounting data

      With Banana Accounting you can correct possible differences, transcription errors or change the Debit/Credit account, if wrongly entered.
      Even if you are a non expert user, you can achieve a perfectly ordered accounting file, avoiding the cash going negative, and having your bank accounts match your bank reports.
       

      Share your files

      You can move your files and share them with Dropbox, I-Cloud, e-mail or USB stick.


      Find texts in a more efficient way

      You can now find all the texts matching your search criteria and you can leave the Find window open for future searches.


      Advanced verification system

      Forgot something? No problem, the Check accounting command, will instantly recalculate all your accounting file, and will alert your if possible errors or differences are found. By clicking on the symbol, next to the error message  (in the Info or Messages window), you will be directly connected to the NEW online page explaining the error message and suggesting possible causes and solutions.


      Handy online documentation

      Every alert message has a direct link to the corresponding page at our online documentation. You will find useful tips and step by step instructions on how to best operate and to solve your problem.


      Convert your accounting plan according to the new Swiss regulations

      You can set a new accounting file using one of the new templates, and then automatically resume and convert your existing data, no longer complying with new regulations.


      Print your report according to the new Swiss regulations

      If you decide not to change your existing accounting plan structure, you can still print your report according to the new Swiss regulations, thanks to a Banana external accounting report file.


      Balance sheet attachment

      In the Balance sheet printouts you can also include a text for the attachment.


      List of the customers/suppliers overdue invoices

      The new functions for the Customers / Suppliers management, allow you to view the list of customers and suppliers overdue invoices.


      Easily create your customized printouts

      With the Composition command it is easier to setup and save your customized printouts; you can also save your own settings to print Account cards, Extract and sort rows, Addresses and labels, ...


      Business intelligence

      Banana allows you to manage segments and cost centers.
      You will have a much more precise and detailed view of each sector or project of your business.


      Account cards also for groups, segments and classes

      You can now obtain all movements of a segment, a group or a class, in their corresponding account card.


      Plan your cash flow and your business

      With the budget transactions you can now simulate in detail how your business and your cash flow will evolve.


      Import your bank statements

      You can import data from your bank statements or from external invoicing software.
      Banana creates the transactions resuming the statement data.
      Banana supports many different standard (ISO 20022) or specific (PayPal) formats.


      Manage your VAT in a simple way

      All VAT calculations are automatic.
      For Switzerland, the program prepares the fac-simile of the VAT report for the effective method or the flat tax rate method.
      You just need to copy the amounts on the official form.


      Dynamic link to Excel and graphics creation

      You can create Excel sheets and graphic presentations linked to your accounting file that automatically update themselves when your accounting data are changed.


       

      Multi-currency - Transactions for exchange rate variation at a specific date

      You can enter historic exchange rates that the program will use in the transactions in order to calculate the exchange rate variation differences at a specific date.
      You can also specify, for each account, a different exchange rate difference account to be used.


       

      Save in Pdf from Preview

      All printouts can be previewed and exported in Pdf format.


      Export only specific data of the accounting file


      Store all your accounting data in a single Pdf file

      At the end of the year you can create a Pdf file with all your accounting data: Balance sheet, Profit & Loss Statement, Transactions, Account cards, VAT report.


       

      Get customized report with the new Banana Apps

      You can download the Banana Accounting Apps or you can create your own, in order to obtain very specific presentations, required for example for specific regulations, for associations, controlled administrations, or in order to comply to a specific nation's regulations.
       

      Digital certification of the accounting data

      You can lock your transactions at a specific date and protect them with a password.
      As required by the law, accounting data integrity is ensured by a top quality certification system (US Patent N.7.020 .640), the same used by electronic currencies like bitcoin.
      It is now also possible to unlock transactions only partially.


      New Utilities application

      The Address book utility has a new table, and there is a new utility to manage Libraries and Diary.


      Address book - Link between Contacts data and diary

      The new Groups table now allows you to classify your contacts in different groups (business contacts, family, etc.), while in the Diary table you can enter notes.


      Manage books and collections items

      Thanks to the new Libraries utility you can manage books (private book collections, libraries), DVD (video stores), valuables collections, etc.
      In the Books table you can enter the items with all the characteristics(Title, Author, etc.), while in the other tables you can manage the loans, the due dates and the archive.

      and much more ....to find out!

       

      Caractéristiques Banana 8

      Banana Comptabilité est un logiciel international extrêmement polyvalent qui se prête très bien pour la tenue de la comptabilité dans n'importe quel pays.
      C'est un logiciel idéal pour les petites réalités économiques.

      Polyvalent

      Il s'adapte à vos nécessités et connaissances

      • Choisissez parmi différentes méthodes comptables
      • Choisissez parmi plus de 500 modèles de fichiers
      • Organisez vos comptes à souhait
      • Situation toujours sous contrôle
      • Détails des comptes en un clic
      • Utilisez centres de coûts et segments
      • Avec ou sans gestion TVA
      • Plannification financière

      Facile et rapide

      Commencez immédiatement et épargner du temps chaque jour.

      • Opérationnel en 3 simples étapes
      • Interface similaire à Excel
      • Travaille rapidement
      • Mémorise les écritures fréquentes
      • Importe les données d'e-banking
      • Rapports TVA automatiques
      • Impressions et rapports immédiats

      Universel

      Utilisé dans plus de 127 pays dans le monde.

      • Multilingue
      • Multidevise
      • Multimandants
      • Codes TVA par pays
      • Plans comptables pour différents pays
      • Apps spécifiques pour différents pays

      Professionnel

      Présentez votre activité de manière impeccable.

      • Gestion clients et fournisseurs
      • Différents rapports même par périodes
      • Synchronisation données avec Excel
      • Exportation en différents formats
      • Développement d'Apps personnalisées
      • Vérifications automatiques

      Sûr et certifié

      Sécurité et protection maximale des données

      • Protection fichier avec mot de passe
      • Protection lignes
      • Protection écritures
      • Certification système de marquage digital
      • Backup automatiques

      Compatibilité et partage

      • Compatible avec les versions précédentes
      • Différents systèmes d'exploitation
      • Partage fichiers cloud
      • Envoi de la comptabilité par courriel
      • Copie, duplique, déplace les fichiers
         

      Support complet

      • Support à 360 degrés
       

        Polyvalent

        Choisissez parmi différentes méthodes comptables

        Vous pouvez vous lancer avec la comptabilité que vous préférez, et ensuite changer, si c'est nécessaire tout en conservant vos données insérées:

        Contient aussi différentes utilitaires:



         

        Choisissez parmi plus de 500 modèles

        Au lieu de créer votre fichier à partir de rien, utilisez un de nos nombreux modèles en ligne. 

        Il sont disponibles gratuitement et déjà triés par langues, pays et activités.

        Allez aux modèles

        Pour de plus amples informations...

         

         

        Organisez vos comptes à souhait

        Vous pouvez adapter le plan comptable selon vos exigences, en ajoutant ou éliminant des comptes, créant des sous-groupes et différents niveaux de totalisation.

        Les résultats seront immédiatement visibles.

        Les changements dans le plan comptable sont toujours possibles même pendant l'année en cours.

        Vous pouvez aussi ajouter des colonnes supplémentaires ou changer l'ordre des colonnes existantes, autant dans le plan comptable que dans le tableau sur lequel vous insérez vos écritures.

        Pour de plus amples informations...

        Situation toujours sous contrôle

        En un clin d'oeil vous aurez toujours une vision ajournée et globale de votre activité.

        Chaque fois que vous insérez un mouvement comptable les soldes se mettent automatiquement à jour.

        Pour de plus amples informations...

         


        Détails des comptes en un clic

        Avec Banana, c'est très facile d'obtenir la fiche détaillée de chaque compte, catégorie ou groupe de comptes: il suffit de cliquer sur la petite flèche bleue-claire qui apparaît en haut à droite du numéro de compte.

        Même la fiche de compte peut être enregistrée en pdf ou imprimée, aussi pour une période précise.

        Vous pouvez imprimer toutes les fiches de compte ensemble, ou celles que vous aurez sélectionnées.

        Pour de plus amples informations...

         

        Utilisez centres de coûts et segments pour gérer des projets, des secteurs ou des activités particulières

        A travers les Segments et les Centres de coûts, Banana Comptabilité permet de gérer des activités ou des projets de façon précise et détaillée sans bouleverser l'organisation du plan comptable.

        Vous pourrez ainsi connaître à chaque instant les tendances d'un certain secteur ou projet et produire des impressions détaillées.

         

         

        Gestion facilitée de la TVA

        Si vous avez besoin d'une gestion avec TVA, choisissez un fichier déjà configuré avec TVA ou convertissez votre fichier existant en ajoutant l'option TVA.

        Tous les calculs pour la TVA sont automatiques.

        Le programme prépare, pour la Suisse (voir image), le facsimile du Formulaire TVA - méthode effective ou celui du Formulaire TVA - méthode taux de la dette fiscale nette et taux forfaitaires. Il ne vous suffira, ensuite, que de reporter les valeurs dans le Formulaire officiel. 

        Rapports TVA automatiques.

         

        Planification financière

        Grâce au tableau Budget (que vous pouvez activer), écrivez directement les écritures du budget et indiquez-en la répétitivité. Le programme calculera automatiquement le budget annuel.

        Vous pouvez toujours comparer et imprimer le budget avec le statut actuel, même par période.
        Ceci est une aide importante pour prévoir les tendances de votre entreprise et être prêt à toute éventualité.

        Pour de plus amples informations...

         

        Facile et rapide

        Opérationnel en 3 étapes 

        En trois étapes simples vous êtes opérationnels et vous pouvez commencer à travailler:

        • Choisissez le modèle de fichier qui vous convient
        • Adaptez votre plan comptable
        • Commencez à insérer vos écritures

        ... et votre comptabilité est en route!

        Pour de plus amples informations...

        Interface similaire à Excel

        L'interface graphique est très semblable à Excel et de ce fait, vous vous sentirez directement à l'aise.
        Le programme contient des tableaux, des colonnes, et des vues; il peut copier, couper, coller et corriger vos données en un instant.

        Dans son fonctionnement, Banana vous offre bien plus qu'une simple feuille de calcul, parce que, au fur et à mesure que vous insérez vos données, les totaux de tous les tableaux se mettent automatiquement à jour, et sur la base des données introduites, Banana crée aussitôt Bilan, Compte de Résultat et de très nombreux autres rapports.
         

        Pour de plus amples informations...

        Ecrivez rapidement - remplissage automatique des textes

        Lorsque vous devez écrire des mouvements, il suffit d'introduire dans la cellule les premiers chiffres ou les premières lettres du compte et le programme proposera automatiquement des textes insérés préalablement.

        Sélectionnez le texte choisi et le programme complète automatiquement la ligne.

        Pour de plus amples informations...

        Journal parfaitement ordonné

        Le tableau des Ecritures est, de facto, le Journal.

        Il est clair et bien ordonné et peut être directement imprimé ou sauvegardé en PDF. Vous pouvez aussi imprimer des périodes précises ou des lignes sélectionnées et disposer les colonnes à souhait.

        Lorsque vos introduisez un mouvement, les totaux des comptes se mettent automatiquement à jour, de sorte que vous ayez, en tout temps, une vision globale actuelle.

        Vous pouvez aussi utiliser les couleurs, autant dans le texte que dans le fond pour souligner les mouvements que vous devez facilement retracer.

         

        Pour de plus amples informations...

        Mémorisez et rappeler les écritures répétées

        Vous pouvez sélectionner les lignes des écritures répétées et les enregistrer dans le tableau Ecritures répétées, pour ensuite les reprendre automatiquement quand vous en aurez besoin.

        Pour de plus amples informations...

         

         

         

        Importez les données de la banque ou d'une carte de crédit

        Vous pouvez importer directement dans votre fichier Banana les écritures de vos mouvements bancaires ou d'une carte de crédit sans devoir les réintroduire à la main.

        Nous proposons des filtres d'importation, constamment mis à jour, pour de plus grandes institutions. Si votre banque ne figure pas dans la liste, nous créerons pour vous le filtre adapté.

        Pour de plus amples informations...

         

         

         

        Impressions et rapports immédiats avec configurations personnalisables

        Personnalisez les impressions du Bilan et du Compte de Résultat.

        Vous pouvez activer/désactiver de nombreuses options pour présenter vos données à souhait; choisir parmi les différents styles graphiques, changer les couleurs, etc. Voir aussi le résultat de l'impression en aperçu.

        Dans les impressions du Bilan vous pouvez aussi inclure un texte pour les documents annexes.

        Enregistrez vos configurations d'impression

        Avec la commande Composition, il est facile de configurer des impressions personnalisables. Vous pouvez enregistrer différentes configurations d'impression pour les Bilans, Fiches de compte, Extraction et trier lignes, Adresses et étiquettes... 

        Pour de plus amples informations...

         

         

         

        International

        Multilingue

        Le programme est disponible en différentes langues: italien, anglais, français, allemand, portugais espagnol, néerlandais, chinois.

        Vous pouvez changer la langue du programme à tout moment.

        Chaque fichier peut même être créé dans une langue différente; et dans les différents modèles disponibles en ligne, vous pouvez choisir des fichiers parmi toutes ces langues.

        Pour changer la langue d'un fichier existant vous devez le convertir et choisir en option la langue souhaitée.

        Pour de plus amples informations...

        Gestion multidevise

        Vous pouvez introduire autant de comptes en devise étrangère que vous souhaitez, et introduire dans le tableau Changes le taux de change.

        Vous pouvez aussi conserver le taux historique des changes.

        Les calculs des changes et des différences de change sont tous automatiques.

        Vous pouvez aussi produire des Bilans, Comptes de Résultat et Rapports dans une deuxième devise étrangère.

        Pour de plus amples informations...

        Multimandants

        Banana Comptabilité n'a pas de limites en mandats.

        Vous pouvez ouvrir autant de mandats que vous voulez, chacun avec des confugurations personnalisées de langue, devise, TVA, etc.

        Codes TVA par pays

        Quand vous créez un nouveau fichier avec option TVA et que vous choisissez le pays, vous trouverez déjà dans le tableau Codes TVA tous les codes TVA en vigueur pour le pays sélectionné.

        Le tableau Codes TVA peut, toutefois, toujours être intégré et modifié au cas où vous auriez besoin de codes particuliers ou si, dans le cours du temps, de nouveaux codes entreraient en vigueur.

        Pour de plus amples informations...

         

        Apps spécifiques par pays

        Les Apps de Banana sont des applications qui permettent d'obtenir des impressions et des rapports particuliers à partir du programme Banana Comptabilité; certaines sont déjà disponibles à titre gratuit, il vous suffit de les télécharger.

        Vous pouvez aussi en créer vous-mêmes pour obtenir des présentations de rapports très précis, exigés par des règlements particuliers comme celles des curatelles, des associations, ou pour qu'ils soient conformes aux normes d'un pays déterminé.

        Pour de plus amples informations...

         

         

         

        Professionnel

        Gestions des clients et fournisseurs

        Gérez simplement les Clients et Fournisseurs.

        Vous pouvez connaître à tout moment quelles sont les factures expirées ou ouvertes. 

        Il est aussi possible de visualiser l'historique pour connaître tous les détails d'un client ou d'un fournisseur.

        Dans les soldes initiaux vous pouvez remonter aux factures qui déterminent les montants.

         

         

         

         

         

        D'innombrables rapports, même par périodes

        Les possibilités des rapports sont infinies.

        Choisissez les colonnes à afficher, changez les en-têtes, les couleurs.

        Vous pouvez aussi créer des rapports externes à la comptabilité avec les regroupements que vous souhaitez.

        Pour de plus amples informations...

         

         

         

         

        Synchronisation des données avec Excel

        Pour obtenir vous données en Excel il n'est plus nécessaire de copier, coller ou exporter.

        Les fonctions ExcelSync permettent de récupérer les données de Banana en Excel et de créer des feuilles et des graphiques qui s'ajourneront automatiquement.

        Quand de nouvelles transactions viennent s'ajouter, les feuilles Excel seront automatiquement mises à jour et calculées. Pour Apple/Mac c'est fonction n'est pas disponible.

         

         

         

         

         

         

        Exportation vers différents formats

        Dans Banana comptabilité vous pouvez exporter des données vers différents formats: Html, Excel, Xml, Txt.

        L'exportation peut être exécutée sur une sélection de données ou sur tout le fichier comptable.

        Vous pouvez aussi décider d'exporter seulement quelques lignes.

        Pour de plus amples informations...

         

         

         

        Développements d'Apps personnalisées

        Si vous avez besoin d'impression ou de rapports particuliers ou de quelques outpout particuliers, contactez-nous: nous sommes à votre disposition pour créer des applications personnalisées.

        Soumettez-nous vos idées!

        Vérifications automatisées

        D'éventuelles erreurs sont automatiquement signalées. Vous pouvez aussi effectuer des contrôles étendus.

        Si des différences comptables ou dans les soldes initiaux s'affichent il y a une commande pour les tracer automatiquement dans le tableau Comptes et Ecritures.

        Pour de plus amples informations...

         

         

         

         

         

        Sûr et certifié

        Protection de fichier avec un mot de passe

        Chaque fichier peut être protégé avec un mot de passe.

        Ce mot de passe peut être modifié ou annulé à tout instant.
         

        Pour de plus amples informations...

         

         

         

         

        Protection des lignes

        Pour travailler plus sereinement, vous pouvez protéger certaines lignes de votre fichier, celles qui sont déjà définitives, pour ainsi éviter qu'elles soient accidentellement  endommagées ou altérées

        Il est aussi possible d'enlever la protection des lignes protégées.

        Pour de plus amples informations...

         

        Bloc des écritures

        Vous pouvez bloquer toutes ou certaines écritures et avoir l'assurance qu'elles ne seront pas modifiées (certification numérique).

        Vous pouvez aussi seulement protéger les écritures pour empêcher qu'elles soient endommagées accidentellement.

        Pour de plus amples informations...

        Certification des données au moyen d'un système de marquage digital

        L'intégralité des données comptables est garantie par un système de certification d'avant-garde, (US Patent N.7,020,640), le même qui est utilisé par les monnaies électroniques telles que bitcoin.

        Pour de plus amples informations...

         

         

         

        Archivage du fichier en PDF (ou seulement quelques parties)

        Vous pouvez enregistrer un fichier entier en format PDF, ou choisir dans le détail ce que vous voudriez faire apparaître dans l'impression.

        L'archivage en PDF de tout le fichier permet de toujours obtenir l'intégralité des données.

        Il y a tellement d'options.

        Pour de plus amples informations...

        Sauvegardes (Backup) automatiques

        Le programme enregistre automatiquement un fichier backup, selon une fréquence en minutes que vous pouvez définir.

        Si le programme ou l'ordinateur se bloquent, vous pouvez ainsi récupérer vos données en ouvrant ce fichier.

        Pour de plus amples informations...

         

         

         

        Compatibilité et partage

        Compatible avec les versions précédentes

        Banna Comptabilité 8 conserve la même modalité d'utilisation et est compatible avec les versions précédentes.

        Ainsi, il est donc possible d'ouvrir sereinement des fichiers créés avec les versions précédentes avec la certitude que toutes les données seront reportées intégralement.

        Pour tous les systèmes d'exploitation

        Banana Comptabilité 8 est disponible dans les versions pour Windows, Mac et Linux, Android et IOS. Les fichiers Banana sont interchangeables entre les différentes versions.

        Pour de plus amples informations...

        Partage Cloud

        Les fichiers Banana peuvent être enregistrés sur tous les systèmes Cloud: Dropbox, I-Cloud, Google Drive, .... de sorte que plus de personnes puissent accéder aux données comptables à n'importe quel moment et quelque soit l'endroit où les utilisateurs se trouvent.

         

        Envoi des fichiers Banana par courriel

        Tous les fichiers Banana peuvent être expédiés par courriel, partagés, et enregistrés sur un clé USB, etc.

        il existe aussi une commande pratique du menu Fichier qui crée automatiquement un message de courriel électronique avec votre fichier Banana an annexe, prêt à être envoyé.

         

         

         

         

        Support à 360 degrés

        Documentation en ligne

        Plus de 500 pages de documentation en ligne gratuite triée par sujet, avec des images et des explications pas à pas.

        Link (lien) directement à l'erreur

        Les erreurs éventuelles sont aussitôt signalées.
        A côté de l'erreur se trouve un symbole ? avec le lien qui conduit directement à la page d'explication de l'erreur avec la solution.

        Support gratuit

        Le support téléphonique ou par courriel est gratuit pour une période de 12 mois à partir de la date d'achat pour des questions relatives à l'utilisation du programme.

        Support Technique Avancé

        Support technique et développement de solutions personnalisées (Apps).

        Formulaire de contact
        Page du support

         

        ESSAYER GRATUITEMENT AcHETER

         

        Suisse: nouvelles normes pour les rapports

        En Suisse, à la fin de l'année 2015, toutes les entreprises inscrites au Registre de commerce doivent présenter les rapports selon la structure minimale du Bilan et du Compte de Résultat, prevus par l'article 959 du Code des obligations (Art. 959a e 959b CO).

        Les nouveaux plan comptables founis avec Banana 7 et Banana 8 reflètent déjà le système prévu. Celui qui crée - ou qui a créé - une nouvelle comptabilité avec les nouveaux plans comptables, a des rapport conformes à la loi.

        Pour ceux qui ont des "anciens" plan comptables, il y a deux possibilités:

        1. Passer au nouveau plan comptable et reprendre les données de la comptabilité existante
          1. Créer une nouvelle comptabilité, en utilisant un modèle avec la nouvelle numérotation et les nouveaux regroupements
          2. Ajouter une colonne dans le plan des comptes, et y insérer, pour chaque nouveau compte, l' "ancien" numéro de compte. 
          3. Utiliser la fonction d'importation pour reprendre et convertir les données provenantes du fichier de la comptabilité, créée selon "l'ancien système".
        2. Continuer d'utiliser la comptabilité avec le plan des comptes actuel et utiliser un fichier externe de la comptabilité avec une classification des comptes selon le nouveau système (déjà disponible dans Banana 8):
          1. Créer un nouveau fichier pour le Rapport
            Comptabilité en partie double -> Rapport comptable -> Modèle Français (Suisse), Rapport art. 959 Code Suisse des obligations.
          2. Enregistrer le fichier dans le même dossier où se trouve le fichier de la comptabilité.
          3. Attribuer à chaque compte (dans la colonne Gr1) le groupe référant à la classification selon les nouvelles dispositions, comme défini dans le Fichier rapport comptable, prévu par les nouvelles dispositions (voir page d'explication Fichier rapport externe)
          4. Imprimer, à des fins fiscales, le bilan et les compte de résultat, en utilisant le fichier du rapport (voir Bilan formaté par groupes).

         

        D'autres changements

        Les nouvelles normes prévoient encore d'autres changements. Elles exigent également que les notes au Bilan contiennent plus d'informations. Il est également possible d'insérer certains détails directment dans le Bilan/Compte de résultat, ou d'indiquer les informations demandées dans la pièce jointe (par example les dettes ou transitoires actifs envers les actionnaires et membres des organes de la société).

        Il s'agit ici de changements importants, qui ont des conséquences fiscales et légales. 
        Nous vous encourageons de vous faire informer par votre fiduciaire, réviseur ou conseiller fiscal, afin de préparer les comptes 2015 conformément à la nouvelle réglementation.
        Au cours des prochaines années, vous pouvez tout simplement continuer selon le système maintanent configuré.

         

         

         

        Installing Banana

        When downloading the program, it is automatically saved in your Download folder.

        After you execute, if you don't indicate any other destination folder, the program will be installed by default into the Programs folder (Windows: C:\Programs; MAC OSX: /Applications; Linux: /bin).

        The following pages explain how to install Banana Accounting in all operating systems.

        For more information about the Banana files please visit the Save, copy and backup page.

         

         

        System requirements

        Banana Accounting 8 is available for Windows, Mac and Linux. For optimal performance, we recommend the following system requirements:

        Banana 8 for Windows

        • Windows 7, 8, 8.1, 10
          (Windows Phone and RT are not supported)
        • 200 MB of disk space*
        • Internet connection to access the Help function of the program

        Banana 8 for Mac OS X

        • Mac OSX 64bits 10.9, 10.10, 10.11, and macOS 10.12 "Sierra"
          (iOS, IPad and 32 Bit are not supported)
        • Intel processor
          (PowerPC processors are not supported)
        • 200 MB of disk space
        • Internet connection to access the Help function of the program

        Banana 8 for Linux

        • Ubuntu 12.04 or more recent,
          other distributions partially supported
        • Dependency: libc6 (>= 2.14), libstdc++6 (>= 3.4.15), libfontconfig1, libfreetype.6, libglib2.0-0, libgtk2.0-0, libz.1, libpng12-0
        • 200 MB of disk space
        • Internet connection to access the Help function of the program
         

        Other information

        • The indicated disk space requirement depends on the amount of transactions and accounts used in the accounting file. 3 MB is an average space for an accounting file with 200 accounts and 2000 transactions.
        • There is no limitation to the number of files.
        • The software is a single user program, just like Excel. Only one person at a time can edit a file.
        • The Windows version can be installed on a server, and then be run on client computers.
        • Th program can be used with Terminal Server or similar remote desktop technologies.
        • Also see the Installing on a server page.

         

         

        License key

        Page content

         

        What is the license key?

        It's a code that is being furnished when the program is purchased and that makes the program fully operational.
        The license key is furnished in the following ways:

        • in the box, printed on a yellow flyer
        • sent by email when bought online with a credit card
        • printed on the invoice (for those buying directly from us).

        IMPORTANT: Keep the license key in a safe place. In case the license key gets lost, read our page Lost license key.

         

        A different license key for Windows, Mac and Linux

        According to the user's operating system, different license keys are being furnished.
        If a license key for Mac is being entered on a computer with the Windows operating system (and the other way round), the program gives an error message that the license is invalid. Those who already have one or another Banana version, can buy version 8 for Windows, Mac and Linux at the upgrade price. As an alternative you can download and use for free the Beta version of Banana Accounting 9 (until April 30th 2018) and then purchase the full license of Banana Accounting 9.

         

        Starter Edition mode at no cost

        If you install the program without entering the license key, the program runs in Starter Edition mode.
        With the Starter Edition mode, you can:

        • Use the program in complete mode, entering up to 70 rows into the Transactions table.
          If you have more than 70 rows in the Transaction table you won't be able to save or export the file, and in the print-outs the words "Starter Edition" will appear.

        When the license key is being entered, Banana Accounting switches from the Starter Edition mode into the complete mode.

         

        Entering the license key

        • Open Banana Accounting
        • Select the command Manage license keys from the Help menu
        • Enter the license key number into the appropriate field
        • Click on the Save license key button
        • Confirm the operation if asked

        Important: The license key is saved only for the current user of the computer.

        Registration code

        Once the license key has been entered and saved, the program displays the registration code and the following dialog appears in the Manage license keys (Help menu) window:



        For security reasons the license key is partially hidden.
        In case the user loses his license key, the registration code can be used to find the license key that he has entered.
        It is important to copy this registration code and keep it in a safe place.

         

        Modifying the license key

        Before modifying an already entered license key, please save your open accounting files and close them; only the program remains open.

        In order to modify a license key, you have to first remove the existing license key and then enter the new (different) license key.

        Remove License Key

        Click on the Remove license key button to remove the key.
        By removing the license key, the program switches back to the Starter Edition mode.

        Enter a new (different) license key

        • Enter the new license key number into the appropriate field
        • Click on the Save license key button
        • Confirm the operation if asked

        At the end of this operation, close the program and restart.

         

        Lost license Key

        For Banana Accounting 8 the recovery of the license key is considered technical support, which is charged at CHF 70.

        It is only possible to recover the license key if you have the installation file of Banana Accounting 8.  Banana.ch does not make available the installation files of previous versions (see page https://www.banana.ch/doc8/en/node/9014).

        When contacting our technical service, send the registration code that can be found in the Manage License Keys window from the Help menu, or send us a screenprint of the same window as an attachment.

        As an alternative to the recovery of the lost license key we recommend the switch to Banana Accounting Plus, available as an annual subscription for CHF 69.- or CHF 149.- (plan with advanced functions that also includes email and telephone support). It is possible to upgrade to Banana Accounting Plus even without the license key of the old version.

        You also receive free months with the upgrade:

         

        Installing under Windows

        The program installation is a matter of minutes and it is all automatic.
        By downloading the program, you accept the user license conditions.

        Once the download is finished, just double-click on the file you downloaded.

        By clicking on the Next button, you will be carried to the next window.

        The software will be saved by default in the C:\Programmi Files\Banana80 folder. If you wish to save it in a different folder click on the Browse button and choose the desired path.

        The program activates by default the Create a desktop icon and Associate Banana Accounting 8.0 with the AC2 file extension options; if you do not wish to have these options, simply uncheck them.

        Click on the Install button to start the installation process.
        The program will be automatically installed in your operating system language; you will be able to change the program language anytime by choosing the Program options command from the Tools menu.


        Entering the license key
        After opening the program for the first time enter the license key and confirm with OK

        By entering the license key into Banana Accounting, you go from the Starter Edition demo mode to the complete mode. If the license key is not entered, a message appears at the opening of the accounting file, warning the user that he is working in the Starter Edition mode.

         

        Open the software
        As soon as you open the software, choose the New command from the File menu. From the pop-up window you will be able to choose your accounting type, the option with or without VAT, the file language, and an example or template (or you can also open a blank file - not recommended)


        Note: in order to uninstall the software, please select the Install/Uninstall applications from the Control Panel and then chose to remove Banana Accounting from the list.

         

        Installing under Mac

        Installing the software is very easy, thanks to the autoinstall function.
        By downloading the program, you accept the user license conditions.

         

        Follow these steps:

        Download the .dmg file by clicking on the Save file button.
        After saving the file in your Download folder, double click on it.

        Drag the Banana8 icon in the Applications folder

        Banana Accounting 8 is now ready to be used. Double click on the Banana 8 icon from your Applications folder. The program is installed in your operating system language, but is always possible to change it from the Tools menu, using the Program options command.

         

        Entering the license key
        After opening the program for the first time, enter the license key and confirm by pressing the button Save license key.

        Then launch the New command from the File menu. From the pop up window it is possible to choose the accounting type, the with or without VAT management option, the language and a template or example (or you can choose to open a blank file - not recommended).

        In case of problems while installing the program: verify in Apple -> System Preferences, Security & Privacy, to have chosen the option "Anywhere" instead of "Mac App Store and identified developers". See also Apple's internet page.

        NOTE: in order to uninstall the software, simply drag the Banana8 icon from the Applications folder to the Trash.

         

        Installing under Linux

        The program installation is very easy thanks to the native packages for Ubuntu and OpenSUSE.
        When downloading the program, the user license conditions are automatically being accepted.
         

        Packages .deb (Ubuntu) and .rpm (OpenSUSE)

        • Download the package for your distribution
        • Open the package with a double-click
        • Follow the on-screen instructions
        • Banana8 will be placed in the menu under Office applications
        • Launch the program
        • In order to enable the complete mode, insert and save the license key.

        To uninstall the program, open the application Manager (Ubuntu Software Center, OpenSUSE Install/Remove software, ...), select the program and click Remove.
         

        Packages .tgz

        • Download the .tgz package
        • Extract the .tgz package
        • Run the file banana8/bin/banana8.sh
        • In order to enable the complete mode, insert and save the license key.

        To uninstall the program remove the folder containing Banana8. Be careful not to delete user data!
         

        Advanced installing

        Installing on a computer that is not connected to internet

        • Use a computer that has an internet connection and download the installer that is suitable for the operating system of the computer on which the program will be installed.
        • Copy the file to a USB key or a CD
        • Enter the USB key into the computer where the program should be installed
        • Launch the installer
        • Start Banana Accounting and enter the license key.

        Windows installation on a server or a USB key

        Legal considerations

        Remember that in order to execute Banana Accounting from multiple computers, you need to buy as many licenses as there are computers that use the program.

        Banana with terminal server and package management systems

        Banana accounting can, without any problem, be installed on a server, a terminal server, external disks or can be packaged for distribution, because:

        • Everything necessary to execute Banana Accounting is installed in the installation directory (exe, dll, examples)
        • Banana does not write in the system directories and the system registry
        • The user settings are stored in the registry of each user
        • For each accountin, there is a single file that (as in Excel) can reside on a local disk, network, USB flash drive or a directory in DropBox, Google drive, or other similar systems
        • Banana is compatible with Remote Desktop systems or systems of software packaging for the installation

        For more information on the files, see also File - Save.

        Installation on a share folder or USB key

        • Follow the normal installation procedure, usually the programm will be installed under C \ Program Files \ BananaXX \  (XX stands for the version number).
        • Start the program BananaXX.exe "as Administrator"
        • Enter and save the license key
        • Copy the entire installation directory on the USB key, share folder or package management system.

        For more information on this subject, contact our technical support.

        Apple/Mac server installation

        It is not possible to install Banana Accounting on Mac servers.
        The program must be installed and the license key must be entered on each computer.
        Of course, you can save the accounting files on a network disk.

         

        Uninstalling Banana

        Uninstalling Banana Accounting on Windows

        • From the Start menu choose -> Control Panel
        • Select -> Programs -> Uninstall a program
        • Choose the program you wish to uninstall, for example a Banana Accounting old version
        • Press the Uninstall button

        By uninstalling Banana Accounting you will only deleting the program; your personal .ac2 files will not be modified.

         

        Uninstalling Banana Accounting on Mac

        • Go to the  Finder
        • Choose the Applications folder
        • Choose the program you wish to uninstall, for example a Banana Accounting old version
        • Drag the selected program into the Trash

        By uninstalling Banana Accounting you will only deleting the program; your personal .ac2 files will not be modified.

         

        Uninstalling Banana Accounting on Linux

        For the details, we refer to our 'Installation under Linux' page: Packages .deb (Ubuntu) and .rpm (OpenSUSE) and Packages .tgz .

         

        Troubleshooting

        If you are experiencing a problem starting or using the application follow these steps:

        Banana 8 crashes while creating new year

        Problem

        In some very particular conditions, the program Banana 8 crashes while trying to create a new accounting year using the Create New Year command (Account2 Menu)

        Solution

        • Convert the file of the current year in which you are working (Tools menu -> Convert to new file).
        • Create the new year (Account2 Menu -> Create new year) and save this file;
        • No need to save the earlier converted file.

        Then:

        Banana8 and hang on printing troubleshooting

        Problem

        Banana 8 hangs the first or second time the print dialog is opened.

        System

        The  'Devices and Printers' configuration contains printers no longer attached to the system or printer drivers that are not up to date.

        Affected OS: Windows 10, Windows 8, Windows 7

        Solution

        • Open Start and select 'Devices and Printers'

        • Remove all printers no longer used or attached to the system

        • Update the drivers of all the remanining printers

        Banana8 on Acer Notebooks troubleshooting

        Problem

        Banana 8 stop working some seconds after the main page of the program is showed.

        System

        The system is running on a Acer notebook

        Affected machines:  Acer aspire es 17
        Affected OS: Windows 10, Windows 8

        Solution

        • Open in Explorer the folder C:\Program files\Banana80

        • Create a new folder 'backup_dll'

        • Move the files 'libeay32.dll' and 'ssleay32.dll' to the folder 'backup_dll'

        • Restart the application

         

        Banana8 on Dell Pc troubleshooting

        Problem

        Banana 8 stops working as soon an Open File Dialog or a Save File Dialog is opened.

        System

        The system is running on a Dell computer or notebook.
        The software Dell Backup and Recovery (from Softthink) is installed and running on the system.

        Affected OS: Windows 10, Windows 8, Windows 7
        Affected systems: Dell computer

        Solution A (recommended)

        • Update Dell Backup and Recovery tools to version 1.9.2.8 or greater
        • Check Dell User's Guides and Support pages on how to update your system

        Solution B

        • Download the Autoruns for Windows - TechNet - Microsoft utility;

        • Expand the file Autoruns.zip;

        • Run the application Autoruns.exe as Administrator;

        • Select the "Explorer" tab;

        • Deselect all "DBRShellOverlay" entries from Softthinks SAS Publisher

        • Close Autoruns;

        • Restart Banana 8.

        Notes

        • In one case, after the changes in the registry, the customer had some problems running Internet explorer.
          Those problems could be resolved by restoring the changes in the registry.
        • The number of "DBRShellOverlay" entries to be disable can be on some systems more than two, those entries have to be searched in all sections listed in the tab Explorer. 

        Resources

        • Dell Forum page "Backup and Recovery causing applications using Qt5 DLLs to crash": http://en.community.dell.com/support-forums/software-os/f/3526/t/19634253

         

        Banana8 with old notebooks and windows 10 troubleshooting

        Problem

        Banana 8 stop working on startup. After the crash the message "LoadLibrary failed with error 87: Wrong parameter." is displayed.

        System

        The system is an old notebooks where windows 10 was installed afterwards. 
        The notebook's discrete graphic card is not officilally supported by windows 10.

        Affected OS: Windows 10

        Solution

        • Update the graphic card driver

        or

        • Rename in folder C:\Windows\System32 the file "atig6pxx.dll" to  "atig6pxx.dll.bak"

         

         

        Banana8 with second monitor troubleshooting

        Banana8 with second monitor troubleshooting

        Problem

        Banana 8 stop working on startup.

        System

        The computer has an ATI Dispaly card with two attached monitors.

        Affected OS: Windows 10, Windows 8, Windows 7

        Solution

        Resources

        lorenzo
        product

        How to report a bug

        Send us full details of the issue, giving as much detail as possible, this can include:

        • For bugs:
          • Steps to Reproduce:
            Minimized, easy-to-follow steps that will trigger the described problem. Include any special setup steps;
          • Actual Results:
            What the application did after performing the above steps;
          • Expected Results:
            What the application should have done, if there was no bug;
          • The accounting file:
            An example of an accounting file where the problem occur;
             
        • For feature requests:
          • A description of what you would like to achieve, and why.
            A user story is an effective way of conveying this;

        You can submit your issue through our contact form.

        Charakteristiken Banana 8

        Banana Buchhaltung ist eine äusserst vielseitige internationale Software, die sich sehr gut für die Buchführung in jedem Land eignet.
        Besonders ideal für kleine Geschäftseinheiten.

        Vielseitig

        Passt sich Ihren Bedürfnissen und Kenntnissen an.

        • Wählen Sie zwischen verschiedenen Buchhaltungsmethoden
        • Wählen Sie zwischen mehr als 500 Dateivorlagen
        • Organisieren Sie Ihre Konten ganz nach Ihrem Wunsch
        • Haben Sie die Situation jederzeit unter Kontrolle
        • Erhalten Sie die Kontendetails auf einen Klick
        • Benutzen Sie Kostenstellen und Segmente
        • Wählen Sie zwischen Buchführung mit oder ohne MwSt/USt-Verwaltung
        • Erstellen Sie Ihre Finanzplanung

        Einfach und schnell

        Beginnen Sie sofort und sparen Sie tagtäglich Zeit.

        • In 3 einfachen Schritten betriebsbereit
        • Excel-ähnliche Benutzeroberfläche
        • Arbeiten Sie schnell
        • Erstellen Sie Buchungsvorlagen für häufig vorkommende Geschäftsfälle
        • Importieren Sie die Daten aus dem E-Banking
        • Automatische MwSt/USt-Abrechnungen
        • Unmittelbare Ausdrucke und Berichte

        Universal

        Findet weltweit in über 127 Ländern Einsatz.

        • Mehrsprachig
        • Mit Fremdwährungen
        • Mandantenfähig (kein Limit)
        • MwSt/USt-Codes für jeweiliges Land
        • Kontenpläne für verschiedene Länder
        • Diverse länderspezifische Apps

        Professionell

        Präsentieren Sie Ihre Aktivität einwandfrei.

        • Kunden- und Lieferantenverwaltung
        • Verschiedene Berichte, auch für einen Zeitraum
        • Datensynchronisierung mit Excel
        • Export in verschiedene Formate
        • Entwicklung benutzerdefinierter Apps
        • Automatisierte Kontrollen

        Sicher und zertifiziert

        Maximale Sicherheit und Datenschutz.

        • Dateischutz mit Passwort
        • Zeilenschutz
        • Sperren von Buchungen
        • Blockchain-Zertifizierung
        • Datenarchivierung in PDF
        • Automatische Backups

        Kompatibilität und Austausch

        • Mit den Vorgängerversionen kompatibel
        • Diverse Betriebssysteme (Dateien sind kompatibel)
        • Dateien in Cloud teilen
        • Buchhaltungsdateien per Email versenden
        • Dateien kopieren, duplizieren, verschieben
           

        Kompletter Support

        • 360-Grad-Support
         

          Vielseitig

          Wählen Sie zwischen verschiedenen Buchhaltungsmethoden

          Starten Sie mit der bevorzugten Buchhaltungsmethode und wechseln Sie sie bei Bedarf; bereits erfasste Daten bleiben erhalten:

          Es stehen ausserdem mehrere Hilfsmittel zur Verfügung:



           

          Wählen Sie aus über 500 Vorlagen

          Verwenden Sie eine der vielen Online-Vorlagen, anstatt die Datei von Grund auf neu zu erstellen.

          Die Vorlagen stehen kostenlos zur Verfügung und sind nach Sprache, Land und Aktivität unterteilt.

          Gehen Sie zu den Vorlagen.

          Weitere Informationen...

           

           

          Organisieren Sie die Konten nach Ihrem Wunsch

          Sie können den Kontenplan Ihren persönlichen Bedürfnissen anpassen, indem Sie Konten hinzufügen oder löschen und Untergruppen sowie verschiedene Totalisierungsebenen hinzufügen.

          Die Resultate sind sofort ersichtlich.

          Änderungen des Kontoplans sind jederzeit, auch während dem Jahr, möglich.

          Sie können ausserdem zusätzliche Spalten hinzufügen oder die Reihenfolge der vorhandenen Spalten ändern. Dies gilt für die Tabelle mit dem Kontenplan, wie auch für die Tabelle, in welcher Sie die Buchungen eintragen.

          Weitere Informationen...

          Haben Sie die Situation jederzeit unter Kontrolle

          Mit einem einzigen Blick haben Sie jederzeit einen umfassenden Überblick über die aktuelle Situation Ihre Tätigkeit.

          Jedes Mal, wenn Sie eine buchhalterische Transaktion erfassen, aktualisieren sich die Saldi automatisch.

          Weitere Informationen...

           

           


          Erhalten Sie die Kontendetails auf einen Klick

          In Banana Buchhaltung erhält man auf einfachste Art den detaillierten Auszug jedes Kontos, jeder Kategorie oder jeder Kontengruppe: Hierzu auf das kleine blaue Symbol klicken, das oben rechts in der Zelle erscheint, wenn Sie auf eine Zelle mit einer Konto-, Kategorienummer klicken.

          Der Kontoauszug kann gedruckt oder in PDF gespeichert werden. Er kann auch nur für eine bestimmte Periode erstellt werden.

          Sie können alle Kontoauszüge zusammen oder einen oder mehrere ausgewählte drucken.

          Weitere Informationen...

          Verwenden Sie Segmente und Kostenstellen, um Projekte, Sektoren oder besondere Aktivitäten zu verwalten

          Mit Segmenten und Kostenstellen erlaubt Banana Buchhaltung Projekte, Sektoren oder Aktivitäten genau und detailliert zu verwalten, ohne die Kontenplanorganisation untereinanderzubringen.

          Sie wissen jederzeit über den Verlauf des gewissen Projektes, Sektors bzw. der gewissen Aktivität Bescheid und können detaillierte Ausdrucke erhalten.

           

          Erleichterte MwSt/USt-Verwaltung

          Wird MwSt/USt-Verwaltung benötigt, wählen Sie bitte von Anfang an eine Datei mit MwSt/USt oder konvertieren Sie die bestehende Datei, um die MwSt/USt-Option hinzuzufügen. Alle Berechnungen für die MwSt/USt erfolgen automatisch.

          Das Programm bereitet für die Schweiz das Faksimile des MwSt-Abrechnungsformulares für die effektive Methode (siehe Abbildung) oder die Saldo-/Pauschalsteuersatzmethode auf. Sie müssen die darauf aufgeführten Werte nur noch auf das Originalformular übertragen.
          Automatische MwSt/USt-Abrechnung.
          Für die Umsatzsteuervoranmeldung (UStVa)

          Umsatzsteuervoranmeldung (UStVA)

          Für die USt-Verwaltung für Deutschland und Österreich sehen Sie bitte die spezifischen Webseiten.

          Finanzplanung

          Dank der Tabelle Budget (welche Sie aktivieren können) können Sie die Budgettransaktionen direkt erfassen und dabei angeben, mit welcher Regelmässigkeit sich diese wiederholen. Das Programm berechnet automatisch das jährliche Budget.

          Sie können das Budget jederzeit mit dem aktuellen Status vergleichen und ausdrucken, auch für einen Zeitraum.

          Dies ist sehr hilfreich, um den Verlauf Ihrer Tätigkeit vorauszusehen und auf alle Eventualitäten vorbereitet zu sein.

          Weitere Informationen...

           

          Einfach und schnell

          Beginnen Sie sofort mit 3 einfachen Schritten

          Mit drei einfachen Schritten sind Sie startbereit und können zu arbeiten beginnen:

          • Die Dateivorlage wählen, welche Ihren persönlichen Bedürfnissen am besten entspricht
          • Personalisieren Sie Ihren Kontenplan
          • Beginnen Sie mit dem Erfassen der Buchungen

          ... schon ist die Buchhaltung erledigt!

          Weitere Informationen...

          Excel-ähnliche Benutzeroberfläche

          Das Layout ist sehr ähnlich wie Excel, so dass Sie sich sofort damit vertraut fühlen.
          Das Programm hat Tabellen, Spalten und Ansichten; Sie können kopieren, ausschneiden, einfügen und die Daten jederzeit korrigieren.

          Das Buchhaltungsprogramm Banana bietet Ihnen viel mehr als eine einfache Kalkulationstabelle, denn beim fortlaufenden Eingeben der Daten werden die Totale aller Tabellen unmittelbar automatisch nachgeführt; aufgrund der eingegebenen Daten erstellt es ausserdem sofort Bilanz, Erfolgsrechnung und viele weitere Berichte.
          Weitere Informationen...

          Schreiben Sie schnell - dank Auto-Vervollständigung der Texte

          Wenn Sie Transaktionen erfassen müssen, reicht es, in der Zelle die ersten Zahlen oder Buchstaben des Kontos einzugeben; schon schlägt das Programm automatisch bereits erfasste Texte vor.

          Wählen Sie den gewünschten Text und das Programm vervollständigt die Zelle automatisch.

          Weitere Informationen...

          Perfekt geordnetes Buchungsjournal

          Die Tabelle Buchungen entspricht dem Buchungsjournal.

          Sie ist klar und geordnet und kann direkt gedruckt oder im PDF-Format gespeichert werden. Sie können auch spezifische Perioden oder ausgewählte Zeilen ausdrucken und dabei die Spalten nach Wunsch anordnen.

          Wenn Sie eine Bewegung eingeben, aktualisieren sich die Kontentotals automatisch. So haben Sie jederzeit eine aktuelle Gesamtübersicht.

          Sie können für den Text als auch dessen Hintergrund Farben verwenden, um Bewegungen für ein leichtes Wiederfinden hervorzuheben.

          Weitere Informationen...

          Speichern Sie sich wiederholende Buchungen und verwenden Sie sie wieder

          Banana Buchhaltung bietet Ihnen die Möglichkeit, Zeilen von sich wiederholenden Buchungen in der Tabelle 'Sich wiederholende Buchungen' zu speichern, um sie bei Bedarf automatisch übernehmen zu können.

          Weitere Informationen...

           

           

           

          Importieren Sie die Daten der Bank oder Kreditkarte

          Sie können Ihre Bank- oder Kreditkartenbewegungen direkt in Ihre Banana Buchhaltungsdatei importieren und müssen sie somit nicht manuell erfassen.

          Die Finanzbuchhaltungssoftware Banana Buchhaltung verfügt für die grössten Institute über Importfilter, welche ständig angepasst werden; sollte sich Ihre Bank nicht auf der Liste befinden, erstellen wir Ihnen den geeigneten Filter.

          Weitere Informationen...

           

           

           

          Unmittelbare Ausdrucke und Berichte mit personalisierbaren Einstellungen

          Personalisieren Sie die Bilanz- und Erfolgsrechnungsausdrucke.

          Um die Daten nach Ihrem Wunsch zu präsentieren, können Sie zahlreiche Optionen aktivieren/deaktivieren. Wählen Sie zwischen diversen Grafikstilen aus, ändern Sie die Farben, usw. Sehen Sie das Resultat als Druckvorschau.

          In den Bilanzausdrucken können Sie auch einen Text für die Bilanzbeilage einschliessen.

           

          Speichern Sie Ihre Einstellungen für den Ausdruck

          Mit dem Befehl Kompositionen können Sie sich auf einfachste Art personalisierte Ausdrucke einrichten. Dies erlaubt Ihnen, für Bilanzen, Kontoauszüge, Buchungen extrahieren und sortieren, Adressen und Etiketten etc. verschiedene Einstellungen zu speichern.

          Weitere Informationen...

           

           

           

          Universal

          Mehrsprachig

          Das Programm ist in diversen Sprachen verfügbar: Deutsch, Italienisch, Englisch, Französisch, Holländisch, Spanisch, Portugiesisch und Chinesisch.

          Sie können die Programmsprache jederzeit wechseln.

          Auch jede einzelne Datei kann in einer anderen Sprache erstellt werden; in den verschiedenen online verfügbaren Vorlagen können Sie zwischen Dateien in allen Sprachen auswählen.

          Um die Sprache einer bereits bestehenden Datei zu ändern, müssen Sie diese konvertieren und als Option die gewünschte Sprache auswählen.

          Weitere Informationen...

           

          Verwaltung von Fremdwährungen

          Sie können soviele Konten in Fremdwährungen eingeben, wie Sie wünschen und in der Tabelle Wechselkurse die Wechselkurse erfassen.

          Sie haben die Möglichkeit, ein Wechselkursarchiv zu führen.

          Die Berechnung der Wechselkurse und der Wechselkursdifferenzen erfolgen alle automatisch.

          Sie können Bilanz, Erfolgsrechnung und Reports auch in einer zweiten Währung erstellen.

          Weitere Informationen...

          Mandaten (Buchhaltungen)

          Banana Buchhaltung hat kein Limit für verwaltbare Mandanten.

          Sie können somit ohne Einschränkungen beliebig viele Buchhaltungen erstellen. Jede Buchhaltung verfügt über ihre eigenen personalisierten Einstellungen für die Sprache, Währung, MwSt/USt etc.

          MwSt/USt-Codes für das Land

          Erstellen Sie einer neue Datei mit der Option MwSt/USt und wählen Sie das Land, so finden Sie in der Tabelle MwSt/USt-Codes bereits alle Codes, welche für das ausgewählte Land Gültigkeit haben.

          Die Tabelle MwSt/USt kann jederzeit integriert und modifiziert werden, falls spezielle MwSt/USt-Codes gebraucht würden oder im Laufe der Zeit neue Codes in Kraft treten sollten.

          Weitere Informationen...

          Länderspezifische Apps

          Die Apps von Banana Buchhaltung sind Applikationen, welche zum Beispiel erlauben, mit dem Programm Banana Buchhaltung spezielle Ausdrucke und Reports zu erhalten; einige stehen bereits kostenlos zur Verfügung und Sie müssen Sie nur herunterladen!

          Sie können auch Ihre eigenen Apps kreieren, um dank diesen sehr spezifische Präsentationen der Erfolgsrechnungen zu erhalten, wie sie von speziellen Vorschriften verlangt werden (z.B. diejenigen von Vormundschaften oder Vereinen) oder um die Vorschriften eines bestimmten Landes zu erfüllen.

          Weitere Informationen...

           

          Professionell

          Verwaltung von Kunden und Lieferanten

          Verwalten Sie Kunden und Lieferanten auf einfachste Art.

          Sie können jederzeit wissen, welche Rechnungen offen und fällig sind.

          Um alle Details eines Kunden oder Lieferanten zu kennen, können Sie diverse Berichte und Ausdrucke erstellen.

          Sie können feststellen, aus welchen Beträgen sich die Eröffnungssaldi zusammensetzen.

           

          Unzählige Berichte, auch für einen bestimmten Zeitraum

          Die Möglichkeiten für Berichte sind endlos.

          Wählen Sie die Spalten, welche angezeigt werden sollen, ändern Sie die Überschriften sowie ändern Sie die Farben.

          Sie können auch externe buchhalterische Berichte mit den gewünschten Gruppierungen erstellen.

          Weitere Informationen...

           

           

          Datensynchronisierung mit Excel

          Um in Excel über die Buchhaltungsdaten zu verfügen, müssen diese nicht mehr kopiert und eingefügt oder exportiert werden.

          Die ExcelSync-Funktionen erlauben, die Daten aus Ihrer Banana Buchhaltung zu übernehmen und Excelblätter und Grafiken zu erstellen, welche sich automatisch aktualisieren.
           
          Werden in der Buchhaltungsdatei neue Transaktionen erfasst, aktualisieren und berechnen sich die Excelblätter automatisch.
           
          Für Apple/Mac ist diese Funktion leider nicht verfügbar.
           
          Weitere Informationen...

          Export in verschiedene Formate

          Die Software Banana Buchhaltung erlaubt Ihnen, die Daten in verschiedene Formate zu exportieren: Html, Excel, Xml, Txt.

          Der Export kann für eine Auswahl von Daten oder die ganze Buchhaltungsdatei erfolgen.

          Sie können auch nur einige wenige Zeilen exportieren.

          Weitere Informationen...

           

           

           

          Entwicklung von benutzerdefinierten Apps

          Kontaktieren Sie uns bitte, falls Sie spezielle Ausdrucke, Reports oder irgend einen speziellen Output benötigen: Wir stehen Ihnen für die Entwicklung von benutzerdefinierten Apps zur Verfügung.

          Bitte teilen Sie uns Ihre Ideen und Bedürfnisse mit!

          Automatisierte Kontrollen

          Eventuelle Fehler werden automatisch gemeldet.
          Es können auf umfangreiche Kontrollen durchgeführt werden.

          Werden buchhalterische Differenzen oder Differenzen in den Anfangssaldi gemeldet, gibt es einen Befehl, um diese automatisch in der Tabelle Konten oder Buchungen zu finden.

          Weitere Informationen...

           

           

           

          Sicher und zertifiziert

          Dateischutz mit Passwort

          Jede Datei kann mit einem Passwort geschützt werden.

          Das Passwort kann jederzeit geändert oder gelöscht werden.

          Weitere Informationen...

           

          Zeilenschutz

          Für ein beruhigtes Arbeiten können Sie ausgewählte bereits endgültige Zeilen Ihrer Datei schützen und somit versehentliche Manipulationen oder Änderungen verhindern.

          Der Zeilenschutz kann bei Bedarf wieder aufgehoben werden.

          Weitere Informationen...

           

          Buchungen sperren

          Sie können alle oder einige Buchungen sperren, um die Sicherheit zu haben, dass diese nicht geändert werden (digitale Zertifizierung).

          Sie können die Buchungen auch nur schützen, um unabsichtliche Änderungen zu verhindern.

          Weitere Informationen...

          Datenzertifizierung mit Blockchain-System

          Die Datenintegrität wird von einem Avantgarde-Zertifizierungssystem (US-Patent Nr. 7,020,640) garantiert; dasselbe, das auch für elektronische Währungen wie Bitcoin verwendet wird.

          Weitere Informationen...

           

           

          Archivieren Sie die Datei (oder Teile davon) in PDF

          Sie können Ihre ganze Datei im PDF-Format speichern, oder auswählen, was genau davon im Ausdruck eingeschlossen werden soll.

          Die PDF-Archivierung der gesamten Datei erlaubt, jederzeit über die Datenintegrität zu verfügen.

          Mit zahlreichen Optionen.

          Weitere Informationen...

          Automatische Backups

          Das Programm speichert automatisch mit einer Frequenz von einer von Ihnen bestimmbaren Anzahl von Minuten in einer Backup-Datei.

          Sollten sich das Programm oder der Computer blockieren, können die Daten wiederhergestellt werden, indem diese Datei geöffnet wird.

          Weitere Informationen...

           

           

           

          Kompatibilität und Austausch

          Kompatibilität mit den Vorgängerversionen

          Banana Buchaltung 8 hält dieselbe Verwendungsart und Kompatibilität bei wie die Vorgängerversionen und ist mit diesen kompatibel.

          Mit Vorgängerversionen erstellte Dateien können geöffnet werden und alle darin enthaltenen Daten werden vollständig übernommen.

          Für alle Betriebssysteme

          Banana Buchhaltung 8 ist in den Versionen für Windows, Mac, Linux, Android und iOS verfügbar. Die Banana Buchhaltungsdateien können zwischen den unterschiedlichen Versionen ausgetauscht werden.

          Weitere Informationen...

          Cloud-Datenaustausch

          Die Banana Buchhaltungsdateien können in allen Cloud-Systemen gespeichert werden: Dropbox, i-Cloud, Google Drive, .... so dass mehrere Personen jederzeit und überall auf die Buchhaltungsdaten zugreifen können.

          Versand von Banana-Dateien per Email

          Jede Banana Buchhaltungsdatei kann per Email (als Beilage) versandt werden, geteilt werden oder auf einem USB-Stick gespeichert werden.

          Im Menü Datei steht ein praktischer Befehl zur Verfügung, der automatisch eine Email-Nachricht mit Ihrer Datei in der Beilage erstellt, welche bereit zum Versand ist.

           

           

           

          360-Grad-Support

          Online-Dokumentation

          Es stehen Ihnen kostenlos über 500 Seiten Online-Dokumentation zur Verfügung. Sie ist nach Themen unterteilt, mit Bildern dokumentiert und enthält Schritt-für-Schritt-Anleitungen.

          Direkter Link zum Fehler

          Eventuelle Fehler werden sofort gemeldet.
          Der Fehlermeldung folgt das Symbol ? (Fragezeichen) mit direktem Link zu einer spezifischen Webseite mit möglichen Ursachen und Lösungen.

          Kostenloser Support

          Bei Fragen im Zusammenhang mit der Nutzung des Programms steht Ihnen der technische Support per Email oder Telefon 12 Monate lang (ab Kaufdatum) kostenlos zur Verfügung.

          Technical Advanced Support

          Technische Unterstützung und Entwicklung von benutzerspezifischen Lösungen (Apps).

          Kontaktformular
          Supportseite

           

          GRATIS AUSPROBIEREN Kaufen

           

          Schweiz: Neue Normen für Berichte

          In der Schweiz müssen ab Ende 2015 alle im Handelsregister eingetragenen Firmen die Berichte mit den vom Obligationenrecht (Art. 959a und 959b OR) vorhergesehenen Mindestanforderungen der Bilanz und Erfolgsrechnung präsentieren.

          Die mit Banana 7 und Banana 8 zur Verfügung gestellten neuen Kontenpläne entsprechen bereits der vorgesehenen Systematik. Wurde eine neue Buchhaltung erstellt oder erstellt man eine neue Buchhaltung und verwendet dabei die neuen Kontenpläne, verfügt man über konforme Berichte.

          Für diejenigen, die über einen "alten" Kontenplan verfügen, gibt es zwei Möglichkeiten:

          1. Auf den neuen Kontenplan übergehen und Daten der bestehenden Buchhaltung übernehmen
            1. Eine neue Buchhaltung erstellen. Hierbei einen Beispiel/Muster-Kontenplan mit neuer Nummerierung sowie neuer Gruppierung verwenden.
            2. In der Tabelle Konten eine neue Spalte 'Konto_1' einfügen und für jedes neue Konto das entsprechende "alte" Konto einfügen.
            3. Importfunktion verwenden, um die nach "alter" Systematik erstellten Daten der ursprünglichen Datei zu übernehmen und zu konvertieren.
          2. Weiterhin die Buchhaltung mit aktuellem Kontenplan benutzen und für die Präsentation die bereits in Banana 8 vorhandene Datei 'Buchhalterischen Bericht' mit Klassifizierung der Konten nach neuem Schema verwenden:
            1. Für den Bericht eine neue Datei erstellen:
              Doppelte Buchhaltung, Buchhalterischer Bericht,  Beispiele/Muster: Deutsch (Schweiz, Report Art. 959 Obligationenrecht).
            2. Datei im Ordner speichern, in dem sich die Buchhaltungsdatei befindet.
            3. Für jedes Konto in der Spalte 'Gr1' die entsprechende Gruppe der Klassifizierung aufgrund den neuen Vorschriften (wie in der Datei des Buchhalterischen Berichtes definiert) zuweisen. Siehe Anleitung Berichtsdatei für Bilanz gemäss Art. 959 des Obligationenrechts.
            4. Für steuerliche Zwecke Bilanz und Erfolgsrechnung mittels der Datei 'Buchhalterischem Bericht' ausdrucken. Siehe Anleitung Formatierte Bilanz nach Gruppen.

           

          Weitere Änderungen

          Die neuen Vorschriften sehen weitere Änderungen vor. Sie verlangen ausserdem, dass der Anhang der Bilanz weitere Informationen enthält. Es kann gewählt werden, ob bestimmte Details direkt in der Bilanz und Erfolgsrechnung eingefügt werden sollen, oder ob die verlangen Positionen im Anhang aufgeführt werden (z.B. die Forderungen oder Kredite gegenüber Aktionären oder Mitgliedern der Gesellschaftsorgane).

          Es handelt sich um wichtige Änderungen mit steuerlichen und rechtlichen Folgen.
          Bitte erkundigen Sie sich bei Ihrem Treuhänder, Revisor oder Steuerberater, um sicherzustellen, die notwendigen Vorkehrungen zu treffen, dass die Präsentation des Geschäftsresultates 2015 den neuen Vorschriften entspricht.
          In den kommenden Jahren muss einfach weiterhin nach dem festgelegten Muster gearbeitet werden.
           

           

          Technical data

          Applications and accounting types

          Banana is a native application for Windows, Linux and Mac and includes functions that allows the user to manage different types of accounting files:

          Income & Expense accounting

          • Income & Expense accounting (income and expenses of several accounts)
          • Cash book (income and expenses of one single account)

          Double-entry accounting

          • Double-entry accounting
          • Multi-currency accounting
             

          Labels

          Every application can be set up with or without VAT/Sales tax and includes:

          • Accounting plans divided by language
          • Accounting plans with VAT
          • Specific accounting plans for different countries
          • Accounting plans for small companies (for the family, non-profit organizations, professional studios, shopkeepers, churches, etc.) 

          All the different types show a resemblance with the Microsoft Office software and operate in a similar way: windows, tables, data selection, copy and paste, find and replace data, undo and redo operation, printouts with various options, data protection, password, etc.

           

          Main interface/Accounting/ Files

          • Multilingual: English, Italian, German, French, Spanish, Portugese and Dutch NEW
          • Main graphic interface easier and more user friendly - computers with small screens such as notebooks will benefit the most  NEW
          • Management of multiple accountings: there are no limits with regard to the amount of accounting files that can be managed
          • Every file contains an accounting. There is no limit to the amount of files
          • Every file can be saved, moved or copied on whichever type of support  (local files, network, CD, USB sticks)
          • Favorite files list - it allows to access your most used files with a single click NEW
          • Possibility of protecting the Composition settings NEW
          • Autosave of the work in a temporary file  (Auto backup + file name)
          • Possibility of creating a copy of a file, with or without the transactions
          • Every file of a specific type can be converted into another type
          • For each accounting type, the set up of the currency can be selected by the user
          • With the Open command from the File menu, the folder, in which the current accounting has been saved, will be opened. NEW

           

          Accounts/Categories

          • All the Charts of accounts for Switzerland have been updated according to the new legal regulations NEW
          • Unlimited number of accounts/categories
          • Numeric or alphanumeric accounts up to 256 characters
          • Free setup of groupings and totaling (up to a 100 levels of totaling)
          • Automatic totals recalculation (possibility of switching it to manual)
          • Account/category numbers can be adapted to any kind of national requirement
          • Accounts can be added or cancelled at any moment
          • Double clicking on an acount/category number doesn't open the account card anymore (it goes into editing mode instead). In order to open the account card you need to click on the little blue arrow in the top right corner of the cell  NEW
          • From the account/category card, by double clicking in the row number (underlined as a link), you can open the Transactions table at the corresponding row, so it can be edited  NEW
          • Opening balance, actual balance
          • Budget and difference between budget and balance (for the entire accounting period)
          • Transactions and balance by period
          • Balance of the previous year and difference with the previous year
          • Account cards, complete or by period, with indication of the balancing entry
          • Multi-currency: accounts in more than one currency
          • Display of the amounts in the account currency as well as in basic currency

           

          Transactions

          • Unlimited number of transactions
          • Corrections are also possible with no need to make a reverse transaction
          • Possibility of editing texts directly in the cell NEW
          • Smart fill (automatic completion of already used texts) directy from the cell, with possibility of filtering the texts NEW
          • In the Date field, by entering the "." key the current date is entered NEW
          • Automatic completion of the account number directly in the debit or credit cell (a drop down menu will appear with the list of all accounts) NEW
          • In the Status bar, the information on the number of selected amounts, apart from their total, has been added. NEW
          • In the Multi-currency accounting, also the changes with a date are being used for the completion of the transactions NEW
          • The position of the current cell is hightlighted in the row number and in the column heather NEW
          • Possibility to add and cancel transactions at any moment
          • Recurring transactions can also be retrieved from the smartlist by pressing Enter or by selecting them with the mouse NEW
          • Automatic totalisation also possible with the selection of individual, non contiguous cells (key Ctrl + mouse) NEW
          • Simple transactions or on several accounts
          • Possibility to insert links to digital documents (PDF, JPEG…)
          • "Rename" command, which allows the user to modify an account or VAT code with automatic replacement in the transactions
          • Automatic completion of dates and account numbers
          • Search of the account number from the description
          • Automatic completion of the transactions (even based on previous year's transactions)
          • Possibility of memorizing repetitive transactions
          • Sorting of transactions by date, document date, value date, payment date, expiration date
          • For multiple transactions, the still missing amount is displayed
          • Command for searching transaction differences
          • Journal: complete or by period

           

          VAT Management

          • Table to define VAT codes
          • Possibility to add or edit VAT codes at any moment
          • For each VAT code, the number of the Swiss VAT Declaration form is present, in order to facilitate the periodical VAT Declaration.
          • Account Automatic VAT already defined in the File and Accounting Properties (Basic Data)
          • Automatic calculation and splitting of VAT
          • Splitting and VAT report also on foreign currency amounts
          • Uniformity of calculation and splitting of VAT
          • Swiss VAT report, both for the effective method and the flat tax rate method, already integrated in the program. Data should be manually copied on the official VAT form NEW
          • VAT form with flat tax rate method: the form also works with the automatic VAT splitting (with the percentage defined in the VAT table) NEW
          • Possibility to define the VAT percentages based on the gross or the net amount
          • The accounts on which the VAT should be registered can be freely defined
          • The groupings for the totaling are defined directly in the VAT table
          • Supplementary column for external groupings
          • Possibility to freely define rounding with multiples (for instance 0.05)
          • Rounding system defined for all or for a single code
          • Possibility to split the VAT from the gross, the net, or only the VAT amount itself
          • VAT deductible also if only partial
          • Possibility to connect a VAT code to an account
          • VAT/Sales tax reports, global or by period
          • VAT Reports with protected personal settings (Compositions) NEW
          • The VAT report can be obtained with transactions and totals by code, account, percentage, or using the user’s own grouping scheme 
          • VAT Code for importing
          • VAT reports can be exported in Excel / HTML / XML

           

          Reports and Balance Sheets

          • In the Income & Expense accounting, the Enhanced statement with groups has been added NEW
          • Balance sheets and reports with previous years and budget data NEW
          • Possibility of creating budgets also by period and comparison with final balances NEW
          • Reports with income and expenses being displayed and definition of capital (Cash book and Income & Expense accounting) NEW
          • In the Enhanced balance sheet by groups, the columns "Diff. Budget" and "Currency 2" can be included NEW
          • In the Balance sheet by groups of the Multi-currency accounting the Currency symbol is being displayed NEW
          • In the Enhanced balance sheet and in the Enhanced balance sheet by groups, a zoom (font size) greater than 100% can be applied NEW
          • In "Create PDF file" of the Income & Expense accounting, it is possible to include the Enhanced balance sheet and the Enhanced Balance sheet by groups NEW
          • In the External accounting reports, also the columns of the "Amount" type, defined by the user, are being totalized NEW
          • In the Enhanced balance sheet by groups, the Budget amounts are adapted to the selected period and subdivision NEW
          • Detailed balance sheets, also with subgroups (Double-entry accounting and Income & Expense accounting) NEW
          • Possibility of creating reports and balance sheets using Compositions (protected personal settings) NEW
          • Possibility of editing and updating accounting reports with account card directly in the table NEW
          • Possibilty of editing accounting reports and select favorite settings directly in the print preview NEW
          • Different styles available (default balance sheet models)
          • Possibility to modify the headers of the Balance sheet and the Profit & loss Statement
          • Possibility to customize Balance sheets and reports by selecting different colors
          • Possibility to exclude groups, subgroups and accounts from Balance sheets and reports
          • Balance sheets and reports by period
          • The data requested for a specific period can at their turn be presented by period

           

          Segments

          • Balance sheets and reports saved in Excel, Html, Xml, Pdf or copied to clipboard
          • Segments are a kind of cost center without limits as to classification or levels. They are very usefull to obtain reports pertaining to projects or other reports related to main expenses and revenue
          • The segments are being inserted simultaneously with the debit and credit account.
          • Reports by segment

           

          Cost and Profit centers

          • Directly defined in the chart of accounts
          • Have the same characteristics as the accounts
          • Possibility to also manage cost centers in foreign currency
          • Up to three types of cost centers for every transaction
          • Possibility to make entries with or without the VAT amount included
          • Periodical cost center reports available

           

          Transfer to the New Year

          • Automatic allocation of profit/loss for the accounting period  (Double-entry accounting)
          • Cration of the "Profit or loss of the current year" group in the Liabilities to obtain the balance between assets and liabilities
          • Guided opening of the new year with the creation of a new file
          • Transfer of the Chart of accounts, of the VAT table and the opening balances
          • Possibility to open a new year even if the previous one has not yet been closed
          • Possibility to carry forward the final closing balances of the previous year

           

          Protection and storage of data

          Data protection

          • The rows can be locked in order to avoid manipulations
          • Possibility of setting up a password
          • Protection of the rows can also be done by selection
          • System based on the electronic signature technique
          • Patented method US Patent Nº 7,020,640
          • Transactions lock up to a defined date
          • Calculates the control numbers to verify the authenticity of the data
          • Verifies whether the locked data have been manipulated
          • Indicates possible manipulations in detail
          • Lock information reports
          • Possibility of removing the lock

           

          Storage
          All data can be stored in archives, and saved in a PDF format.

           

          Data export

          • Export in HTML
          • Export in Excel
          • Export in XML
          • Export in PDF - the number of pages is limited to 65'000
          • Global or periodical exportation
          • Possibility of creating Compositions for each data export, with specific setting that can also be protected  NEW
          • Exportation of text files with fields separated by tabs, in Ascii or Utf8 (Unicode) characters, with the entire table or only selected rows

           

          Data import

          • Import ISO 20022: added to the importation the camt.052, camt.053 and camt.054 formats NEW
          • Bank statements in ISO 20022 (*.xml) and MT940 (*.txt) format can be opened and displayed directly in Banana NEW
          • Import bank statement in ISO 20022 format - the standart format adopted by all banks and institutes NEW
          • Import bank statements from different banks (UBS, Credit Suisse, Raifffeisen Bank, ...) directly from Banana - no need to import and update import filters for each bank anymore NEW
          • In the import scripts, it is possible to define the format of the dates and the amounts to be converted in the internal format NEW
          • Text files: importation of all text files that have fields separated by tabs
          • Possibility of exporting the entire table or only certain rows
          • Automatic completion of missing fields (VAT codes, exchange rates)
          • Possibility of importing in Ascii or Utf8 (Unicode) characters
          • Possibility of importing directly from the clipboard
          • AC2: import from Banana Accounting .ac2 files
          • Possibility of indicating the accounting period from which to import data
          • The accounts and the categories are imported following in the correct sequence
          • Importing VAT Codes: sllows the user to import VAT Codes from another file (also from a .txt format)


          Functions no longer supported

          • DDE interface - in version 7 a new interface will be presented, based on http protocol NEW

           

          System requirements

          • Windows XP or more recent version, 32 or 64 bit
          • Mac OSX 10.5 "Leopard" or more recent version, 10.9 "Mavericks" (only 64-bit) NEW
            (iOS e iPad not supported)
          • Ubuntu 12.04 LTS or more recent version LTS NEW
          • Intel or AMD Processor
            (Mac with PowerPC not supported)
          • 150 MB Ram memory - The RAM requirements depend on the amount of transactions and the amount of accounts inserted in the accounting. The value indicated here is valid for an accoutning with 200 accounts and 2000 transactions. The amount of different accountings, accounts and transactions are not limited.
          • Internet connection for accessing the Help function of the program.


          Documentation

          • Online help - directly accessible from the program with direct link to our website / detailed explanation of all dialog windows NEW
          • Index directly linked to the subjects
          • Error messages windows and warnings window directly accessible NEW
          • Help center and online manuals downloadable from our website: https://www.banana.ch/doc8/en

           

          Electronic Spreadsheet

          Banana combines the ease and the flexibility of Spreadsheets with the reliability and efficiency of Accounting software. 

          Banana follows the example of Excel

          For the development of Banana, we have referred to Excel, looking to copy the commands and the user directions. Excel is one of the best softwares for Spreadsheets, and for new developments as well we follow the example of the new Excel versions.

          Banana takes from Excel:

          • The concept of a single file in which all the accounting data are being saved.
            It is possible to have as many files as you want, to rename, move or copy the files to external supports, to a dropbox, to attach the files to an email and to move or elaborate them on any Operating system.
          • The tables that gather the data and the presentation; they are very user-friendly.
          • The cells with the possibility to modify, to select a group, to cancel the contents, or to operate with Copy and Paste, both inside Banana as well as to other programs.
          • The columns with the possibility to add new ones, move them, hide them, enlarge them or make them more narrow with the mouse, or modify the display format.
          • The rows with the possibility to insert new ones in any position, to copy them or delete them.
          • The commands to undo or redo an operation, find and replace, sort rows
          • The immediate recalculation, thanks to which the account balance is always up-to-date, even right after a modification.
          • The preview and printout of what is being seen on the screen, with the possibility to print in PDF format
          • Data export in several formats (csv, html, xml).

          Banana is an Accounting program

          Banana takes from the Accounting programs:

          • The structured set up of the accounting
          • The predefined columns and formulas that cannot be cancelled, not even by accident
          • The control and verification of data while entering them and the reporting of any possible errors
          • The printouts of the accounting: Balance sheet, Profit & Loss statement, Account cards, comparision with the preceding year. All of these can be adapted according to the wishes and needs of the user.
          • Importing the data of bank statements in electronic formats (ISO 20022 and others)
          • The certainty of calculations and data

          Specific Banana characteristics

          • Autocomplete, picking up earlier entered values and indicating values that can be entered
          • Error reporting, showing the row that contains them in red (a bit like a spell check).
          • The views inside the tables that allow the user to save and recall the different arrangement of the columns.
          • The compositions that allow the user to save and recall the configurations of the report printouts
          • The recheck of the accounting that checks all the transactions and displays error messages if necessary
          • The information window contextual information about the data of the active row 
          • Creates a Pdf dossier that prints the data and the reports of the accounting in a unique Pdf file.

          Advantages of Banana compared to Excel

          • Completely configured Spreadsheet with formaulas and reports
          • Impossible to change the calculation formulas, not even by accident.
          • Data plausibility check
          • Accounting reports

          Advantages of Banana compared to a management software

          • User-friendly and flexible
          • Faster data entry
          • Ability to modify and/or cancel transactions without cancellation operations.
          • Different accounting models and accounting settings with just the functions that are of interest to the user
          • Ability to add columns in the tables and display them according to the users needs or wishes
          • No additional modules that complicate the program and make it more difficult to use.
          • No need to pay a yearly subscription

          Advantages of Excel compared to Banana

          • Allows the user to create his own calculation formulas.
          • Has advanced formatting functions.
          • Ability to create supplementary tables and connect the date.
          • Has numereous graphic and data processing features.

          Advantages of a management software compared to Banana

          • There are integrated modules for invoicing or other functions.
          • Are multi-user, while in Banana, only one person at a time can modify the file
          • Have different levels of access; instead, in Banana, the person who opens the file has the ability to make any possible changes.
             

          Technical information for updates

          Important information when updating from version 5, 6 and 7 to Banana Accounting 8

          In order to see what's new, visit the page What's new in version 8.

          Position or name changes

          From Banana 6 to Banana 7 some functions changed their names:

          • Data can be edited directly in the table cell (just like in Excel)
          • With a double-click you go in the cell editing mode.
            In order to open an account card or to access the Extract rows command, instead of the double-click you can use:
            • Alt + mouse click
            • Right mouse click (opens the menu)
            • A mouse click on the little blue arrow next to the account number (cell top left corner)
          • The Messages window has been moved in the lower corner of the screen, next to the Info window.
            The Messages window can be reached by clicking on the correspondent table.
          • The Views list has been moved to the top of the screen, just below the tables list.
          • When scrolling the vertical bar, the table content now immediately scrolls too.
          • In the transactions, the indication of the date and the document are not shown any more.
          • From the Banana 7 version it is possible to update the account card (see refresh button on the top right corner); in Banana Accounting 6 it was necessary to give the command again.
          • When printing or when viewing the print preview, it is now possible to only print a selection of rows.
            In the print dialog window, it is possible to choose if you want to print everything or just a selection (only in Banana for Windows).
          • In the Date column, by entering the “.” symbol, the program automatically enters the date of the day.
          • Simple Accounting -> has been changed into -> Income & Expense accounting
          • The Cash1, Simple1, Cash2 and Simple2 menus have been replaced by the Account1 and Account2 menus
          • Accounts by period -> has been changed into -> Accounting Report
          • Export file in pdf -> has been changed into -> Create Pdf dossier
          • In some functions, such as the Enhanced Balance sheet, ... a new submenu called "Compositions" has been created in order to recall saved personal settings (in Banana 6 they were called Favorites).
          • In the Help menu "Keyboard Shortcuts", you find the list of key-combinations and the commands that are associated with them.
          • In the Info and Messages windows, next to the error message, there is now the symbol: if you click on it, you will be directly connected to the online page explaining the error message and suggesting possible causes and solutions.

          File management and -exchange

          Once Banana Accounting 8 has been installed (Windows or Mac), you can lauch the program and open the accounting files that have been created with Banana Accounting, 2.02, 3, 4, 5, 6 or 7.

          • Files saved with Banana 8 can be opened and edited with the versions 5, 6 and 7 of Banana Accounting.
            If you are using features only available in Banana 8 (Budget Table, Apps menu, colored rows) these do not work with earlier versions.
          • Files saved with Banana 5, 6, 7 and 8 cannot be opened anymore with Banana 2, 3 or 4.
          • Files can be transfered easily from one operating system to another.

          If the files are not listed in the recent files (Initial page), you can look for them following these instructions.

          If after installing the new version of Banana, files are opened with the old version, you need to activate the option "Associate .ac2 files".

          Starter Edition version / License key

          If the program is installed without license key, Banana 7 or 8 operates in the Starter Edition mode. This allows the user to use all features and to save a file with no more than 70 transactions.

          • In order to use version 8 in the complete mode, you need to purchase the update license key and enter it in the software (starter edition version) that you can download from our download page.
          • An Update Version is the normal version sold at a preferential price. It can therefore as be installed on a computer that doesn't have a previous Banana version installed.
          • The license keys are specific for each operating system (Windows, Mac or Linux); if you want to use the program on Mac as well as on Windows and Linux, a Multiplatform license can be purchased; you will receive one unique license key which activates the Banana Accounting 8 version on Windows, Mac & Linux. This license is valid for installing Banana 8 on a maximum of 3 computers (belonging to the same owner).
          • In the Starter Edition mode, the Cash book is also limited to 70 transactions.

          Version for Mac

          In order to avoid conflicts with the keys used by the Apple operating system, the function keys F4, F5, F6 of Windows have become CMd+4, Cmd+5, Cmd+6 under Mac.

          Resuming Banana 5 and 6 files, created under Crossover for Mac

          If your accounting files have not been saved in the folder "All my files", please follow these instructions:

          • In the "go to..." menu select the "go to folder..." option 
          • enter "~/Library"
          • enter "ac2" in the Search field
          • Select "Search in :.." and choose "Library"
          • Copy the "ac2" files in the folder "All my files".

          Warning: Before deleting the "Bottles" or before uninstalling CrossOver, please make sure that there are no more files in the "~ / Library" folder.

          Importing bank statements

          Banana 8 provides various import filters that can be downloaded from our website.
          To import the bank statements / update the filters, you need to:

          • select the Import to accounting command from the Account1 menu -> Import transactions
          • click on the Manage filters button to see all the available filters
          • click on the Update filters button
          • enable the desired filters by selecting them and clicking on the Enable filters button

          Importing Postfinance Xml file

          Banana 8 imports bank statements using the new XML ISO 20022 standard. Postfinance supplies this format only when requested by the customer.
          It is therefore necessary to ask your Postfinance consultant to change the format and switch to the ISO 20022.
          Postfinance Business clients can ask to have the Pfd as well as the ISO 20022 format.

          Multi-currency accounting

          Contrary to the earlier versions 5 and 6, Banana 8 automatically calculates the other values when the amount in foreign currency, the exchange rate or the amount in basic currency has been modified. No need to use the F6 key.

          Swiss VAT Report

          In order to obtain the quarterly Swiss VAT report, ready for the official form, proceed as follows:

          • Account1 Menu -> Swiss VAT report -> choose the desired method (effective or flat rate)  -> specify the desired period
          • In Banana Accounting 8 , the VAT report will also be available for those who are submitted to the flat rate method. 

          Enhanced Balance Sheet with Groups

          In the Enhanced Balance sheet with Groups (from the Account1 menu), in the Previous Year column, the balances that have been carried forward from the previous year's file are being displayed. If, in the Options tab of the File and Accounting Properties dialog window, no previous year's file has been indicated, then the balances will be carried forward from the Prior column of the Accounts table.

          No longer supported functions:

          • DDE connections

           

          Interface

          Improved interface

          In the new version Banana Accounting Plus, you will find an updated interface, with very intuitive and functional menus, so you can access the commands much more quickly.
          We advise you to switch now to Banana Accounting Plus and take advantage of the many new features.

          When a new file is being created or an existing one is opened, the software presents a structure that is characterized by the following elements

          The menubar

          The menubar contains all commands grouped by menus. The menubar changes depending on the chosen accounting type.

          Attention: in the Mac operating system, the Banana menu bar is located on the top of the screen, at the rightside of the apple logo:


           

          The toolbar

          The toolbar contains icons that allow you to acces the most used commands and dialogs.
          If you go over the icon with your mouse a command description will be displayed.


           

          Text imput area

          Text are entered directy in the cell. The entered text is also shown in the text imput area, right below the toolbar. The text can be edited in the text imput area, or direcly in the cell, by double clicking on it or by pressing the F2 key.
          If the Smart fill option is activated (Program Options command from the Tools menu), a drop-down menu will be shown with all the possible text choices; just select the chosen text and press the Enter or the F6 key.

          Smart fill (autocomplete)

          When you enter a text, the program suggests different choices:

          • Texts of similar transactions
          • Accounts list. By entering a text the program will list all the accounts containing that text.


           

          Execute command

          Some columns are associated with certain actions that can be executed with the Execute command (from the Edit menu) or relative touch key, as indicated in the information window.

          Some examples:

          • Doc column: recovery of recurring rows or progressive number
          • Description column: recovery of similar row data

          The tables

          Each accounting file has various tables. Some of them are main tables and others are optional. Tables vary depending on the chosen accounting type.


           

          The views

          The views are ways of showing the accounting data with specific columns. For each table there are different views and they are very useful when you want to show your data in different ways, without altering your basic settings.
          Views are located right below the tables and can be personalized using the Tables setup command from the Data menu.

          Related document: Tables setup; New view


           

          The columns

          Columns are the table vertical elements. Each table has specific columns with specific heathers. The display, size, description, format, width, style, alignment can be edited thorough the Columns Setup command from the Data menu.

          Some columns contain data entered by the user, and some others can only be used by the program and cannot be edited by the user (for example the account cards columns).

          Users can add new columns in order to include additional information (always with the Columns Setup command from the Data menu), but the data entered will not be processed by the program.

          A group of specific columns composes a view that displays only specific data.

          Related document: Columns setup


           

          The information window

          This is a window located in the lower part of the screen, where the program displays useful information related to the active table and cell. Error messages are shown in red.


           

          The error messages window

          The Messages windows contains a list of the errors found by the program.
          In order to read the messages click on the Messages tab.
          From the Messages window, by double clicking on the error message, you will be taken to the row that generated the error.

           

           Date and numbers format by per default

          Once the program is installed, it automatically uses as default your operating system settings.

          If you wish to change your operating system settings, you sould go in your Control Panel (Windows) or your System Preferences (Mac).

          Here is the step by step process on Windows 8 and Windows 10:

          • from the Start menu, go to the Control Panel
          • click on International options and then on Change date, time or numbers format
          • a dialog window will appear where you can change your data format (in the Format tab)
          • in order to change your numbers or currency format, from the same window you can click on the Additional settings button and then on the Numbers or currency tab.

          Here is the step by step process on Mac OS X 10.9.5:

          • from the Apple logo (on the top left of your screen) click on System Preferences
          • from the dialog window that appears choose the Date and time icon
          • a new window will appear where you can choose Open language and zone...
          • a new window will appear where you can click on the Advanced button
          • finally a new window will appear where you can change the numbers format (General tab), date or time format (Date and Time tabs)


          Format and numbers in Banana Accounting

           

          Cells

          Copy, Cut and Paste

          It is possible to copy/paste cells, rows or selected text just as it is possible to do with any normal Windows program:

          • Select the line or the area of data to be copied
          • In the Edit menu, select the Copy or Cut command
          • Move to the row or the area where the information should be copied
          • From the Edit menu, select Paste

          The user can also copy/paste by using the following icons  or press Ctrl+C to copy, Ctrl+X to cut and Ctrl+V to paste.
          There are also commands such as Copy rows, Delete rows and Paste rows: in this case they refer to a full row or rows and not to a cell selection. For this purpose the commands Copy, Cut and Paste should not be used.

          Entering a text

          In order to enter a text position yourself in the cell you wish to write in. With a double click on the cell a drop down menu will appear with all the text previously entered; as you start writing the program automatically suggest similar text previously entered; select the appropriate text and:

          • press Enter - in order to automatically enter the selected text
          • press the F6 key - in order to automatically enter the selected text + all other row data (debit account, credit account, amount, ...)

          Editing a text

          From the version 7 of Banana Accounting it is possible to edit the text directly in the cell; just double-click in the appropriate cell (or press the F2 key) and enter the new text. Also when editing the texts, the Smart fill and autocomplete texts feature suggests earlier entered texts.

          It is also possible to edit a text selecting the cell and entering the new text in the text imput area, under the toolbar. On the left side of this area, two icons will appear to undo or accept the entered text.


          Wrap text

          When the text for a row is very long, the Calculate row height command from the Format menu allows the user to view it completely, adapting the height of the row.

          To adapt the height of the row to the text, the user should:

          • choose the Columns setup command from the Data menu;
          • select the appropriate field name;
          • activate the option Wrap text in the Display tab;
          • recall the Calculate row height command from the Format menu each time it is necessary. 

          The Calculate all row heights command is equal to the one described above, with the difference that it operates on all rows of the table. 

          Entering an account number

          Position yourself in the Debit or Credit account column and start entering the account number or account description; the program will suggest you all the accounts with a similar number or description. Choose the appropriate one with the Down arrow key or Up arrow and press Enter.

              Attention: to deactivate last year's smart fill, you must deactivate the Smart fill with transactions from previous year option from the File and accounting properties command (Options tab - File menu).

               

              File Menu

              Banana files are compatible with versions from all operating systems and with syncronization systems (Dropbox, ICloud, ...)
              For more information please visit the File Saving page.

               

              Create new file

              There are different ways to create a new file:

              Transfering to a new year

              When transfering to a new year, there is a specific procedure to follow, in order to create a new year's file and automatically carry forward the opening balances.

              New file settings

              When creating a new file with new characteristics, you need to setup the outline of the new file.

               

              Create new

              Related documents

              Choose the initial model

              This procedure creates a new accounting file, starting from an existing template (New command from the File menu)

              Group

              In the Group section all the different applications are listed. Choose the one that meets your needs.

              File

              In this section you can select the characteristics of the chosen application. You can choose between the plain version, with the VAT management, with a second currency or with more than one currency.

              Examples/Templates

              By selecting the language you will see predefined example/models that you can use to start and that can be personalized. All the template data and settings (language, decimal rounding, ..) will be used.
              Once you have personalized the template you need to save the file with a new name.

              Online Templates

              Clicking on the Online Templates button you can access our website where we published all templates available for free.

               

              Create file copy

              Create a new file from an existing one

              1. Open the source file
                This file will not be changed or edited.
              2. Use the Create file copy from the Tools menu
              3. Choose the data that you want to keep.
                For accounting files choose if you want to keep the existing amounts.


                 
              4. Save the file in the folder where you wish to keep the data (normally in the documents folder)
                • Enter the company name and the accounting year as file name, for example smith_company_2017.

               

              New file from an internet template

              Download and open the file with Banana

              There are different ways to download the file, depending of what internet browser you are using.

              • Click on the file link
              • With the mouse right click choose the Save file command from the menu that appears
              • Open Banana and drag the file or the file link into it.

              Save the file with a name

              Once you have opend the template with Banana you need to use the Save as command from the File menu

              • Chose the destination folder
              • It can be useful to create a separate folder for each year so you can also store there other documents related to that year.
              • Chose a file name containing the company name and the accounting year, for example smith_company_2017
              • The software will add the .ac2 extention, typical for the Banana files

              Adapt the template

              1. Edit the File properties
              2. You can now adapt your chart of accounts
                • Enter your bank accounts
                • Enter or edit the chart of account to fit it to your needs
                  You will still be able to add or edit it as you work, if new needs arise.
              • If you are taking over an existing accounting file, you will also need to enter the opening balances in the Opening column.
              • If you are working in a multicurrency file, you need to update the opening exchange rates.

               

              Convert to new file

              This command converts an existing file (which will not be modified) into another one with different characteristics:

              • Change language
              • Change the roundings
              • Change the file type. For example:
                • Pass from an accounting without VAT to one with VAT
                • Pass from a Double-entry accounting to a Multi-currency accounting

              It is as if you have created a new blank file and then have manually transferred the data.

              The existing file characteristics can be consulted by executing the command Tools -> File Info
               

              Creation and data transfer

              The Convert to new file command, from the Tools menu:

              1. Creates a new file of the specified type with the predefined columns setup
              2. Transfers the data into the new file, proceding with the necessary conversions
              3. Saves and indicates the name of the new file.

              When converting a file with more options into one with fewer options, part of the data will be lost during conversion. If, for example, an accounting file with VAT/Sales tax is converted into an accounting file without VAT/Sales tax, all data in the VAT columns will be lost during conversion.
               

              Passing from a Double-entry accounting to a Multi-currency accounting file

              • Make sure that in the File and accounting properties the currency symbol is being specified (which will become the basic currency)
              • Choose the Multi-currency accounting as destination
              • The program creates a Multi-currency accounting, recovering the existing data:
                • The Transactions table includes the columns for managing the Multi-currency accounting, as a currency the basic currency and the exchange rate 1.000
                • The existing accounts in the Accounts table are being completed with the basic currency symbol
                • The Exchange rate table will be empty; it is therefore necessary to add the currencies and exchange rates used in the transactions
                • In the Accounts table, the accounts in foreign currency have to be added.

              In order to change the currency of an accounting file, see the Accounting tab of the File and accounting properties.

              Passing from an accounting without VAT to one with VAT

              • Choose the desired type of accounting with VAT as the destination 
              • The program creates an accounting with the VAT columns, recovering the existing data:
                • Add the VAT accounts into the Chart of accounts
                • The File properties regarding the VAT need to be completed, and the default acccount on which the VAT must be recorded needs to be indicated
                • The VAT Codes table has to be completed with the necessary VAT Codes
                  With the Import to accounting command -> VAT codes, the VAT codes table of an existing accounting can be imported (for example it can be imported from a default VAT acccounting template).

              Dialog

              • The file type, in which the user is working, is being indicated
              • For more information on the language, roundings and decimals, go to the File and accounting properties (from the File menu)
              • A list with different options appears

               

              Outline to create new file

              For more information, please consult the specific page.

              Transfer to a new accounting plan

              Hereunder we explain how to proceed when:

              • passing to a chart of accounts with a different numbering
              • retrieve and convert the data of an existing accounting, including the transactions.

              Converting for the new year

              The program will convert the file for the choosen year. If you have already entered the year 2014 you can convert the 2014 file.
              If you wish to start a new year with a new chart of accounts, there are two possibilities (for example considering the year 2015 as the new year):

              • converting the previous year (2014) and then creating the new year (2015)
                You will have two different files for the year 2014 (the one with the old chart of accounts, and the new one), and a single file for the year 2015, with the new chart of accounts. This procedure is useful when you need to have both years with the same chart of accounts
              • creating the new year's file (2015), and then converting it the new system.
                In this case the year 2014 will remain unchanged. For the year 2015 you will have a transition file, with the old chart of accounts, but with the updated opening balances. The conversion of the 2015 file can be done right at the beginning, but also after some transactions have been entered.

              Step 1: Creating a new accounting file

              1. Create a new accounting file, choosing the desidered type.
              2. Adapt the chart of accounting to your own needs

              Step 2: Adding the matching accounts

              1. Position yourself in the Accounts table and add a new column called Account_1 (Data menu; click on the Add button of the Columns Setup window and then enter the Account_1 description);
              2. For each new account, in the Account_1 column, enter the corresponding account in the old chart of accounts;
                In case the account remains the same, you can also choose to not indicate it.
              3. In case several accounts need to be grouped in one, enter the separated accounts with a semi-colon "1000;1001".
              4. In case one account needs to be subdivided on several accounts, you need to proceed manually, see herunder.

               

              Step 3: Starting the import operation

              For more information, please check the related pages Import to Accounting and Import File.

              • From the Account1 menu, choose the Import to accounting and then Import File commands
              • Using the Browse button, select the file of your old accounting plan


                 
              • Confirm by clicking on the OK button and pass on to the next window
              • Define the import options
              • Activate the Activate account numbers option, indicating that the account matches are in the destination file.

               

              Subdivision of one account into several accounts

              When one transfers to a more detailed chart of accounts, it is probably necessary to subdivide one account into several accounts.
              After the import operation, proceed manually in the following way:

              • In the Chart of accounts, subdivide the opening amounts, budget amounts and previous amounts of one account into several accounts;
              • Go over the transactions, one by one, of the account that needs to be subdivided and assign them to the more specific account, or create extra transactions if it is necessary to subdivide one amount into more detailed amounts;
              • Proceed in the same way for the transactions of the Budget table.

              Results and possible errors

              In case the program reports mistakes (absence of accounts or others), the import operation probably needs to be cancelled and the matches need to be completed;then repeat the import operation.

              The program, confronted with different charts of accounts, cannot automatically do extensive verifications and guarantee that all the data have been imported and grouped correctly.

              It is therefore strongly advised to manually check the result, making sure that the totals of the Balance Sheet and the Profit & Loss Statement are correct.

               

              Outline to create new file

              Language
              The language used for the columns headers of the various tables.

              Decimal points for amounts
              In order to avoid accounting differences, the number of decimal points for the amounts is fixed for each file. Two decimal points are normally used, but there are currencies where decimal points are not required so 0 needs to be inserted.

              Decimal points for amounts in foreign currency
              If using multi-currency accounting, then it is necessary to define the number of decimal points for the amounts in the foreign currency as well.

              Rounding type
              The amounts are rounded up or down to the closest whole number. In the case of exactly half (for example: 100.5 / 101.5 / 102.5 / 103.5) the following systems are being used:

              • Banking (Half at even) is being rounded up or down towards the nearest even number (100 / 102 / 102 / 104).
              • Commercial/Arithmetic (Half up) is being rounded up to the next whole number (101 / 102 / 103 / 104). In accounting, this is the system most used.
              • Compatible version 4. A minor precision is being used, which in very special cases, can bring forth a different rounding.

              Address fields in accounts table
              When this option is activated, the Address view is created in the Accounts table. In this view, the user can enter the addresses of clients, suppliers and members.

              Budget Table
              When this option is activated a Budget Table is created, where the user can enter his budget transactions.

              The user can thus create different accounting files, in different languages, and with different decimal points. In order to change the language or the decimal points once the accounting file has been created, the accounting type must be converted by selecting Convert to new file from the Tools menu.

              Open, save, copy and backup

              Opening a file

              • Accounting files can be opened in Banana Accounting if they are on the local computer or if they are accessible through a network.
                If they have been sent by email, before opening them you need to move them in a computer folder
              • Only one user at a time can edit a file
                If you edit a protected file or a file already in use by other users, you need to save the file with another name in order to save your changes.
              • The Banana Accounting program, notifies that you have opened a read-only file in the following cases:
                • the file is located on a non-writable disk (CD-ROM)
                • the file is located on a temporary non-writable folder
                • the file is protected or the user doesn't not have rights to edit it
                • the file has already been opened by another user
                • the file has already been opened from the same user but in another session

              How to look for *.ac2 files

              If you don't remember in which directory your accounting files are located, you can use the search Windows Explorer box or the Mac finder search tool.

              Find your accounting file on a Windows computer

              Banana Accounting files have an .ac2 or .sba extention. The Windows search tool will vary depending on your Windows version.

              • Windows 10: click on the search icon on the Applications bar and enter "ac2" or "sba" or your file name and click on the Documents arrow.
              • From the Explorer File Manager enter the "*.ac2" extension, the "*.sba" extension or your file name and let Windows look for it.
              • When in Banana you get to the Open file dialog window (File menu -> Open), enter the "*.ac2" or "*.sba" extension in the top right search box and then click on the look in the whole PC icon, or select the directory where you want Windows to look for your file.

              Find your accounting file on a Mac computer

              • When in Banana you get to the Open file dialog window (File menu -> Open), enter "ac2" or "sba" or a word that is part of the file name in the top right search box. With the icons, select where you want to look for your file (in the entire computer or in selected folders).
              • Open the Finder and enter "ac2" or "sba"or a word belonging to the file name in the search box.
              • Right click on the Finder icon, then click on Search, and then enter "ac2" or "sba" or a word belonging to the file name.

               

              Saving a file

               

              With the Save or Save as... command, the data are saved onto the hard disk. Pre-existing disk data are replaced with the new ones.

              • A single file can be saved by one user at a time
                The file can be saved by the user only if it is not also being used by other users
              • Files can be saved anywhere.
                You can enter the file name and destination when saving it for the first time or when using the Save as command from the File menu
                As a first option, Banana Accounting suggest the Documents folder as destination folder for the .ac2 files, but it can be changed with the Browse button.
              • If you are managing different accounting files, we suggest you to create a separate folder for each company and for each accounting year.
              • Each file can be password protected.
                 

              Accounting files (*.ac2)

              • Files created with Banana Accounting have an .ac2 extension, regardless the operating system used.
                The .ac2 file format is specific for Banana. When saving, all data are compacted and saved in bulk.
              • Ac2 files are compatible between different operating systems (Windows, Mac and Linux)
                You can save a file with Windows, then open it and edit it on a Mac, and then reopen in on a Linux or Windows computer.
              • Each file can be sent as an email attachment, edited on different operating system and resent to the sender.
              • Accounting files are completely separated from the software Banana itself, that has an .exe extension for Windows,
              • The installation files for Mac have a .dmg extension and a .deb, .rmp .run .tgz or .appimage extension for Linux.


              Automatic saving

              Banana Accounting automatically creates and saves your work in a temporary file that ends with ".autosave" . When you press the Save button or you exit the program, this temporary file is deleted. In case your computer should crash or turn off in the middle of your work, it would be possible to recover your data by opening this file.

              In order to have the program automatically create this temporary autosave file, the corresponding option should be active (it usually is by default) in the Program Options (you can access them from the Tools menu).

              When the program is reopened after a crash and finds that the AutoSave file (temporary) was not deleted, a message appears, asking whether you want to retrieve the file. If the user confirms the recovery, the original file is renamed in the following format: < file_name.ac2 >. > date + time >. bak.


              How to copy or move your accounting files

              Banana can save your files on any unit seen by the operating system or on a rewritable disc.
              From non-rewritable discs (CDs or DVDs) Banana can open the files on a "read only" mode.

              All .ac2 files can be moved in different ways:

              from one directory to another:

              • using Windows Explorer or Mac Finder to locate the directory where your files have been saved
              • copying and pasting them in the new destination directory (once you pasted them you can delete from the original directory)

              from one computer to another:

              • saving the files on a memory stick and then saving them on the new computer:
                • open the file to be moved
                • from the File menu choose the Save as command, choosing the memory stick as destination unit
                • this copy can also be made from Explorer by dragging the accounting file into the memory stick unit
              • by sending them as email attachments and then saving them on the new computer


              DropBox, Google Drive and other synchronization systems

              Banana is compatible with systems such as DropBox and Google that keep files synchronized with cloud storage services.
              Banana overwrites *.ac2 files and deletes the *.ac2.bak files. In the deleted files list you will find all *.ac2.bak files previous versions.

              Viewing changes

              Banana Android works directly with Dropbox servers. If you make changes on your PC, usually you have to wait a few seconds before you see the changes on the server, so also on Banana.

              To ensure that the file is properly synchronized with the server, the file on your PC must be marked with the green check mark.
              If you do not see the sync symbols (green, red, blue), you have to update the Dropbox application installed on your PC.

              Another way to check the synchronization status from your PC, is to click on the Dropbox icon in the bottom bar:

              In addition, Android synchronization does not occur while you are working with the app. You must close and reopen it.

              Attention: Banana cannot realize if some files are opened simultaneously on more than one computer. It could thus happen that someone erases some data or that someone else adds some new data. Only the more recent copy of the saved file is kept. For this reason we strongly advise to avoid working at the same time on the same file.


              Security copies (backup)

              We strongly advise you to create external backup copies of your accounting files, in order to prevent a possible data loss, due for example to a computer crash or other causes.

              • if you have a Mac computer you can use "Time Machine"
              • if you have a Windows computer you can use the "File history" function

              You can find other programs on the market that allow you to automatically create a backup of your data.


              Saving and .bak files

              When saving, Banana Accounting replaces the contents of the existing file, with the more recent data, only if the saving process is successfull:

              • Data are saved on a temporary file
                Only if the saving process is successfull the data on your disk are replaced to the existing ones.
              • If the Create backup copy (.bak) option is activated (Tools menu -> Program options command -> Avanced tab) the program renames the pre-existing file with the same name, adding the .bak extension.
                A new file named "filename.ac2.bak" is created, containing the data before the saving process.

              If an error occurs during the saving process, if for example the network disk is no longer available, choose another file name for saving your data.


              Recover your data from a .bak file

              When for a number of reasons you cannot find your accounting file, you can recover your data from the backup copy automatically created by the program. Here is how to proceed:

              • open the directory where your accounting file was located
              • open the file with a .bak extension. If it is not shown in the dialog window, you need to select the "show all files (*.*)" option at the bottom right of the window
              • once the file is opened, save it with a name. Usually the same name as the lost file is chosen.

               

              Damaged .ac2 files

              Sometimes a computer crashes due to technical problems or viruses. Sometimes data received by email are compromised or damaged. For these reasons we strongly suggest you to make copies of your files.
              If, for technical reasons you have a damaged file, our support team can verify, for a fee, if there are data that can be recovered.


               

              Recover autosave file

              This dialog appears when the program closes unexpectedly, and it was not possible to save changes made to the file.
              When the program is reopened, it detects that the autosave file (temporary file) has not been canceled, and then asks if you want to retrieve the file.

              You can choose from the following options:

              • Recover
                • The autosave file is copied replacing the original file
                • The original file is renamed as indicated in the dialog window
              • Don't recover
                • Both the original file and the autosave file are kept
                • The program will not warn you anymore that the autosave file was kept
              • Cancel

              The autosave files that were not recovered will be kept, and will have to be deleted manually.


              If the program stops working

              If the program is closed normally, it asks whether to save the modified data, and the autosave file is deleted.

              However that program may be unexpectedly closed for a number of reasons:

              • A power outage or another event that caused an immediate arrest of the operating system
              • A problem that led to the crash of the program
                • Due to another program or to a situation of the operating system or driver that caused the program to stop.
                  Try to restart your computer and use the program without other programs.
                  • A flaw in the operating system or a faulty program can cause an interruption of Banana.
                    • Problem with some Dell computers.
                  • A computer fault (memory error)
                  • A virus or some other problem
                • A problem in the Banana Accounting software
                  Usually when, repeating the same command always causes the program to crash.
                  If the program stops in completely different situations, is more likely that the problem is due to a computer or operating system problema (see above)
                  • First of all make sure that you have the latest version of the program
                    Install the updates if necessary. The problem could have been solved in the meantime

               

              Contact technical support

              Verify the situation in which the program stops.

              • It is important to understand in what situations the program stops, so that technicians can replicate the problem.
              • When you contact the technical service:
                • Describe the problem and how it can be reproduced - describe the error.
                • Enter your system details (you can copy them under Tools -> Program Options -> Info System.
                • If the problem occurs in relation to a file, send a copy of the file (removing confidential data).

               

              File properties

              When a new file is created, the basic data need to be entered in the File menu, using the File and accounting properties command.

              The file properties can vary depending on the chosen accounting type.

              For the explanations of the different tabs please visit the pages hereunder.

              Accounting Tab

              Left and right headers

              These are the two empty cells at the top where any desired text can be inserted which will be used as a header for print-outs (left and right).

              Opening date

              The opening date is the date when the accounting begins. It can also be left blank. If a date prior to the opening date is inserted when entries are made, the program will give an error message.

              Closing date

              This is the closing date of the accounting. It can also be left blank. If a date greater than the closing date is inserted when entries are made, the program will give an error message.

              Basic currency

              The code of the currency in which the accounting is being handled. You can enter any currency code, even the one that are not in the list.  When the code of the basic currency is being changed, the program changes the column headers for the amounts in basic currency using the new code.

              In the multicurrency accounting files it is mandatory to select the basic currency, which will work as the funcional currency, the one used for the calculation of the Balance sheet and Profit & Loss statement.

               

              Changing the basic currency symbol

              If you change the basic currency symbol the program will not change the existing amounts. We advise you to change your basic currency symbol only if you don't have yet entered any opening balances and any transactions.

              Accounting file WITHOUT foreign currencies

              You can replace the basic currency symbol with the new symbol.

              Accounting file WITH foreign currencies

              • Replace the currency symbol in the File properties dialog (from the File menu)
              • in the Accounts table
                • Select the whole Currency column (click on the column's header)
                • Use the Find and replace command from the Data menu and enter the old and the new currency symbol - make sure to check the Selected area only option. Replace all the symbols found.
              • in the Exchange rates table
                Enter the new exchange rates for all the currencies.
              • Give the Check accounting command from the Account1 menu.
              • If there are opening balances or transactions, the amounts and the exchange rates will have to be manually updated.

              Options Tab

              Transaction date required
              If this option is activated and then a transaction is entered without a date, there will be an error message.

              Recalculate totals manually (F9)
              If this option is activated, the program will not automatically recalculate the principal groups of the accounting file, but the user needs to use the F9 key.

              File from previous year
              By using the Browse button, the user can select a file from the previous year.

              Smart fill with transactions from previous year
              If this cell is checked, the program keeps the transactions from the previous year in memory, and offers them as Smart Fill while the user inputs new entries.

              Use the minus sign (-) as segments separator
              When this option is activated, the segments have to be entered in the Transactions table with the minus (-) sign preceding the segment code. When this option is deactivated, the segments need to be entered with the colon sign (:), as in the chart of accounts. The colon needs to always preced the segment code.

              Records (+/-) cost centers according to the category
              This function is active only for Simple accounting and Cash book. By activating this box, the amount is entered in the cost center (positive or negative) according to the category.

              If, instead, this option is not active, in order to enter a negative value, it is necessary to enter a minus sign before the cost center (-CC).

               

              Related document: Text imput, edit and Smart fill

               

              Address Tab

              In this tab data about the company or the individual whose accounting is being handled can be entered.

               

              Other Tab

              Current language
              There are some file texts that the program generates automatically, (e.g. the lines of the Totals table, the transactions on the account card, and the printout of the Enhanced balance sheet); in this tab, the user can indicate the language for these texts (usually the same as the creation language).

              Creation language
              This is the language chosen and selected when the user creates an accounting file; this language is used for the column headers. If the user wants to change the creation language, then it is necessary to convert the file to a new one using the Convert to new file command in the Tools menu.

               Apps properties
               
              List of the activated properties in the Manage Apps dialog. In order to remove an App, delete the corresponding property.


               

              Password Tab

              The files can be protected by using a password.

              Entering a password in a file that doesn't have a password

              • The box Confirm old password is shown in gray.
              • Indicate your new password twice (New password and Confirm new password).
              • Confirm with OK.

              Changing an existing password

              • Enter the existing password.
              • Indicate your new password twice.
              • Confirm with OK.

              How to cancel a password

              • Enter the existing password.
              • Leave the boxes for the new password empty.
              • Confirm with OK.

              Note

              Using a password does not give a high level of protection. In order to render the data truly inaccessible to third parties, it is necessary to have the appropriate cryptographic software.

               

              Text Tab

              In this tab it is possible to enter different keys in order to save extra information, such as the accountant name, for example.

              Key
              In this field, input the reference text (e.g.: Address).

              Value
              In this field, it is necessary to input the value related to the key (e.g.: Ocean Avenue, ...).

              Add
              This button saves the new entered data.

              Remove
              This button removes the selected Key.

              Create Pdf dossier

              In order to create a Pdf file choose the Create Pdf dossier from the File menu (or click on the corresponding icon on the Toolbar).

              File Name
              In this area you need to enter the name of the new file that the program will create to export the data. If, however, an existing file is selected by using the Browse button, the program will overwrite it with the new data.

              Display file immediately
              As soon as the Pdf file has been created, the software to view it will be launched. In this way, the result of the export can be seen immediately. It is best to remember that browsers like Mozilla and MS Explorer use a cache mechanism for files. When the export is made for a second time, it is possible that the user will see the previous version until the browser Reload button is pressed.

              Table creation options
              Headers 1, 2 and 3
              These are the table headers.

              Page options
              By activating the page options it is possible to include:

              • page numbers
              • page progressive numbering
              • date

              Page size
              You can select the page format

               

              Other Tabs

              For the explanations of the other tabs, please visit the following pages:

              Recent / Favorite files

              These commands display the list of recently used files and the favorite files.

              In order to eliminate the list of recently used files, click on the File menu, Recent files, and on Clear list recent files.

              In order to remove just one single file from the Recent Files list of the Favorites (Start page), position the cursor on the file name, proceed with a right mouse click and select Remove (Mac users should use the key combination Ctrl + right mouse button).
               

              To make a file Favorite:

              • Open the desired file
              • Click on Favorite files
              • Click on Add to list

               

              To edit the list of favorites, click on:

              • Favorite files
              • Edit list..
              • In the window that appears, edit the favorites, by using the buttons: Add, Remove, Open folder.

              Associate .ac2 files with the most recent Banana version

              When the Banana Accounting program is being installed, the "Associate Banana Accounting 8 with the AC2 file extension" option is activated by default; as a result all the accounting files will be opened with the new version.

              If, when clicking directly on the file before opening the program, it should occur that the file gets opened with a previous version of Banana Accounting, this problem can be solved in the following way:

              Windows:

              • right-click on the file icon 
              • on the menu that appears select "Open with" and then "Choose Default Program..."
              • choose the Banana program, the latest installed version.

              Mac:

              • right-click (or "ctrl "+ click) on the file icon 
              • on the menu that appears select "Get Info"
              • under "Open with..." choose the latest installed version of Banana, click then on "Change All..." option.
              Just run this operation once and on a single file; from then on all files will always be opened with the latest version.
               

              Edit Menu

              Adding and deleting rows

              To insert blank rows below the selected row, follow these steps:

              • Move the cursor above the row where additional rows need to be inserted
              • From the Edit menu, select the Add rows command
              • In the window that appears, key in the number of rows to insert
              • Confirm by clicking on OK


              There is still another procedure to add blank rows:

              • Move the cursor above the row where additional rows need to be inserted
              • Click on the following icon  on the Tool bar, one time for each row that you want to add. This procedure is advised when the amount of rows to be added is rather limited. The sequence for the shortcut key is: Ctrl+Enter.


              To insert blank rows above the selected row, follow these steps:

              • Move the cursor below the row where additional rows need to be inserted
              • From the Edit menu, select the Insert rows command
              • In the window that appears, key in the number of rows to insert
              • Confirm by clicking on OK.

              In order to delete one or more rows, select the row or rows that need to be deleted and from the Edit menu, click on the Delete rows command.


              Protecting the rows

              Using the Protect rows command, from the Edit menu, the user activates row protection to avoid making any changes by mistake.
              The protected rows cannot be edited until, by using the Unprotect rows command, the protection is being removed.


              To put protection into effect:

              • Select the desired row(s) to protect
              • From the Edit menu, select the Protect rows command
              • Confirm the number of rows to be protected by clicking on OK.

              Protected rows have light grey row numbers. In order to edit them again, first remove the protection by the Unprotect rows command in the Edit menu.

               

              Data Menu

              Find and Replace

              The text to be searched and the text to be used as a replacement should be inserted in the same format as the one displayed in the input field. For example, the amounts should be inserted without the separator for the thousands.

              Search text
              Enter the text to be searched.

              Replace with
              Enter the replacement text.

              Options

              Whole words only
              If this box is activated, the program will find whole words only. For example, if the word being searched is Tot, it will not find Totals.

              Match case
              If this box is activated, the program will make a distinction between capital letters and small letters.

              Selected area only
              If this box is activated, the program will only search the information in the selected area.

              Replace all
              This key will replace the desired data throughout the whole document at once. When you need to change data that are being repeated in the Accounts, Categories, Transactions and VAT codes tables (for example, an account number or a VAT code), you can also use the Rename function.

              Replace
              This key will replace one data at a time.

              Find all
              Looks for all the information, according to the entered keyword, and displays it in the Information window in the lower part of the screen.

              Find next
              Looks for the following information item.

               

               

              Find

              Search text
              Enter the text to be searched. Amounts must be entered without separators.

              Options

              Whole words only
              If this box is activated, the program will find whole words only. For example, if the word being searched is Tot, it will not find Totals.

              Match case
              If this box is activated, the program will make a distinction between capital letters and small letters.

              Selected area only
              If this box is activated, the program will only search the information in the selected area.

              In order to begin the search, click on the Find button. The first piece of information corresponding to the request will be selected. To continue the search and find the next piece of information, select the Search next command from the Data menu, or else use the F3 key.

              Rename

              This command allows the user to change the account or category number (accounts or categories table) and the VAT code (VAT Codes table), without having to enter the necessary modifications in the transactions.

              In order to rename, you need to:

              • position yourself with the mouse on the cell that has to be changed (account/category number, VAT code);
              • click on the Rename command from the Data menu;
              • enter the new name in the appearing window.


              Then, the software operates as follows (for example if you rename an account):

              • verifies that there is no other account or group with the same number; if there is it the software will alert and ask if you want to proceed anyway. Please note that it is not possible to have to identical account numbers in the accounting plan;
              • verifies where the account to be renamed has been used and makes sure that the rows are not protected or blocked; if they are it will alert that the rename operation cannot be carried forward;
              • substitues the account number wherever it has been used, in the tables and in the File properties, with the new account number.

              The software does not recalculate any total, simply renames the account number.

              Go to

              Select the Go to... command from the Data menu to open a window allowing the user to move to a desired row. When a selection table is active (for example, an account card), by using the Go to original row command, the program automatically takes the user to the corresponding row of the Transactions table.

              Extract and sort rows (Extract)

              The Extract and sort rows command is available from the Data menu. This command is different from the Sort rows command, since it creates a new table where the result of the extraction or the sort is shown. The rows of the original table will not be changed.

              Extract

              In the Extract table you can click on the row number (underlined) to return to the row of the original table.

              Column
              You need to select the column you wish to extract the data from.

              Condition
              You need to select the condition for the extraction (ex. Greater, less, contains text, starts with, ends with, ...)

              Value
              In this field you must enter the text you want to use as comparison in relation to the condition (for example, if the condition is = Equal, entering 25.01.2015 as value, the program will extract all transactions with date January 25, 2015).
              The value is a date if the selected column was Date, a numeric value if the selected field was Amount, a text if the selected columns was Description.

              Add
              This button allows you to add new fields for the extraction.

              Clear all
              This button allows you to clear all the settings you have entered for the extraction.

              Sort selected rows only
              This option is only available when rows have been pre-selected. If activated, only the selected rows will be sorted.

              Total row
              If this option is activated, the program will show the total row for the extracted rows with an amount.

              Sort

              The sorting columns are being indicated. The options are the same as for the Sort rows command.

              Composition

              The explanations of this window are available on the following web page: Composition.

              Example accounts list

              It happens sometimes that you want to have a list with only the accounts.

              • Put yourself in the Accounts table.
              • Impart the "Extract and Sort" command
              • In column, choose "Account"
              • Under condition, indicate "Not empty"

              In case you wish to have accounts sorted by description

              • Put yourself on the "Sort" section
              • In the "Sort by" box, indicate the "Description" column

              If you want to display only certain columns, you can create a new view with the Tables setup command.

               

               

               

               

              Extract and sort rows (Sort)

              The Extract and sort rows command is available from the Data menu. This command is different from the Sort rows command, since it creates a new table where the result of the extraction or the sort is shown. The rows of the original table will not be changed.

              Sort by
              You can choose the desired sorting criteria.

              Then by
              The program allows you to choose two other sorting criteria other than the main one.

              Ascending
              The rows sorting is done in an ascending order, taking into consideration the selected sorting criteria (date, doc, ...)

              Descending
              The rows sorting is done in a descending order, taking into consideration the selected sorting criteria (date, doc, ...)

              Number
              If the column chosen as sorting criteria only contains numbers, you need to check this option.

              Clear all
              This button allows you to clear all the settings you have entered for the extraction.

               

              Sort rows

              The Sort rows command is available from the Data menu. Please take note of the fact that the Sort rows command is different from the Extract and sort rows... command, since it changes the order of the rows in the table you are currently working on, according to the sort keys you entered. We advise you to be very careful before pressing the OK button, especially if you are working in the Accounts Table, because you might completely change your accounting plan structure.

              The rows on the table can be sorted according to the content of the columns. It is possible to enter up to three sorting keys:

              Sort by
              From the dropdown list choose the desiderd sorting key

              Then by
              You can here choose an additional sorting key other than the first one

              Ascending
              The rows sorting will be in an ascending order, according to the selected sorting key (date, doc, ...)

              Descending
              The rows sorting will be in a descending order, according to the selected sorting key (date, doc, ...)

              Number
              You need to activate this option if the sorting key you chose only contains numbers

              Clear all
              This button allows your to clear all settings previously chosen as sorting criteria

              Selected rows only
              This option is only available when rows have been pre-selected. If activated, only the selected rows will be sorted.

               

              Tables setup

              This command allows you to manage

              • The Tables:
                These are the elements that contain the data in a format or rows and columns.
                 
              • The Views:
                Indicated under every table.
                These are the elements that define the way in which the columns of the table are displayed.
                Thanks to the views, one can define which columns need to be visible, the sequence of the displayed columns and the way in which they are displayed. 

              View's Settings

              In order to add tables, please go to the Add new functionalities command.

              For each table, you can define:

              • Name
                The name of the table in the file language. This field cannot contain spaces or special characters.
                It can only be changed for added tables.
              • Xml name
                The name this is being used for the programming. This field cannot contain spaces or special characters.
                It can only be changed for added tables.
              • Header
                The name that appears in thetables list
              • Visibile
                Indicates whether the table is visible or not.

              Manage Views

              Name
              It is possible to enter a new name for the selected View.

              Xml name
              This is the View name for the Xml export. For system Views this name cannot be changed.

              Number
              This is a number automatically given to the View by the program.

              Visible
              When selecting this checkbox the View will be visible.

              System
              If this checkbox is selected the View is a system View and cannot be deleted or edited.

              Columns setup...
              Displays the Columns setup page that allows to edit them, both in displaying them as well as in setting them up.

              Page setup...
              This button leads to the page format settings.

              Add...
              This button adds a new View to the active table.

              Delete...
              This button deletes a View.

              Set as default

              Defines the View that is being used.
               

              Columns setup

              New columns

              In the new version Banana Accounting Plus, in the Transactions table, we have added new columns for the integrated Invoicing and the new Balance column that identifies on each row, any differences so you can immediately correct them.

              We advise you to switch now to Banana Accounting Plus and take advantage of the many new features.

              Display Tab

               

              Header
              This is the column header.

              Header 2
              This header is used by the program for only a few fields (e.g. Amount column).

              Description
              This is the description of the field. This description will be shown as a tooltip.

              Format
              This is the format to show numbers, date and time (see chapter at the end of this page).

              Width
              This section defines the horizontal size of the column.

              Column Style
              This is a drop-down menu that indicates the style to be used (Format, menu, see sub chapters). This style has priority over the style of the row.

              Alignment
              The user can choose whether to align the text right, left or center in this drop-down menu.

              Wrap text
              This option allows the user to view the input text on more than one line.

              Protected
              This option allows the user to protect the entire column so that no data can be input or edited.

              Exclude from printing
              When this option is activated, the field will be excluded from printing.

              Visible
              This option allows the user to make column visible.

              The tables can be altered. Fields can be added, headers can be changed, and column sizes and the order in which they are shown can be altered.

              Move up, Move down
              The fields are listed in the order in which they appear on the table being used. The visible fields are the ones with a checkmark.
              In order to alter the order in which they appear simply select the field you wish to move and drag it up or down.

              Add
              This button adds new fields (columns) to the current table. Field added by the user are just information fields; the program does not make any calculation on numeric data.

              Delete
              This function is used to delete a field (column) from the list. A system field, however, cannot be deleted.

               

              Settings Tab

              Field name
              This is the name of the active field and it is automatically inserted by the program. It cannot be modified.

              Field name Xml
              This is the name of the active field in the Xml format and it is automatically inserted by the program. It cannot be modified.

              Data type
              It is possible to choose between the following predefined types: Text, Number, Amount, Date, Time.

              Max and Min length
              Maximun and minimum field length.

              Max and Min Value
              It is possible to enter minimum and maximum values (numbers or characters).

              Decimal points
              It is possible to define the field decimal points

              Field number
              This is a number automatically given to the field, and has uniquely a technical purpose.

              All caps
              By clicking this options all fields data will be shown in caps characters.

               

              Date, hour and number format

              When the format is modified, the way the date, time and numbers are shown, changes.

              If no specific format is specified, the default format of your operating system will be used (date, time and numbers as indicated on the control panel).

              In the Format area of the Set up fields/Edit attributes command (Data menu) the user can use other formats. Types of formats, with some examples, are listed below:

               

              Date format

              Examples for date

              d mm yy

              1 01 15

              dd m yy

              01 1 15

              ddd mmm yyyy

              Fri Jan 2015

              dddd mmmm yyyy

              Friday January 2015

              The letter “d” (day) indicates the day, the “m” (month) indicates the month, and the “y” (year) indicates the year.

               

              Time format

              Examples for time

              hh:mm:ss:zzz

              04:04:36:089

              h:m:ss:zz

              4:4:36:89

              Naturally the user can also invert the order of the elements making up the date or the time as desired (e.g.: mm dd yyyy).

              As far as the separators are concerned, the user can choose between all of those available on the keyboard (for example: #, @, -, /, ., etc.).

               

              Numbers Format

              Example for numbers

              0.

              259

              0.00

              258.85

              0.000

              258.848

              The number of decimal spaces in a number field can be edited according to the user’s needs. Actual calculations are made using all the inserted decimal numbers. Rounding is only done for what is shown on screen.

              New column

              Field name
              Enter the field name of the column to add.

              Field name Xml
              The name of the column to export in Xml and in scripts.

              Data type
              It is possible to choose between the following predefined types: Text, Number, Amount, Date, Time.

              New view

              View name
              Enter the name of the view you want to add.

              View name Xml
              This is the view name for the Xml export.

              Format Menu

              In the Format menu the following commands are present:

              Default style

              This is the default style for the whole file.

              Points

              Use different points to define the font size.

              Bold and Italic

               

              Modify default style

              In order to change the default style:

              • attribute the desired style to a row;
              • select the Modify default style command from the Format menu

              All the rows with the original defaul t style will then be shown in the new default style.

              Calculate row height

              When the text for a row is very long, the Calculate row height command from the Format menu allows the user to view it completely, adapting the height of the row. Activate this function on condition that, in the field attributes (Data menu, Set up fields command – Edit attributes button), the Wrap text option has been selected. 

              Calculate all row heights

              This command operates in the same way as the previous command except that it works on all the rows in a table instead of only one.

              Page break

              At any point in a file, the user can insert a page break
              To insert a page break:

              • place the cursor on the first row where the new page is to be created;
              • open the Format menu;
              • select the Page break command

              To remove a page break:

              • place the cursor on the row with the page break;
              • open the Format menu;
              • select the Page break command again

               

              Highlight rows with colors

              In order to highlight the rows:

              • Select the rows to be highlighted and on the icon , click on the first symbol if you want to color the background, and on the second one if you want to color the text.
                 
              • In order to deactivate the color, select the row(s) and click on No color (present in the menu of each color).

               

               

              Tools Menu

              File info

              The File info command, from the Tools menu, displays the characteristics of a file.

              Columns

              By activating the Complete view also the Xml columns are displayed, through which it is possible to transfer the values automatically when exporting the table.

              • Section: the Group name of the values
              • ID: the specific and explicit identification of the value
              • Description: contains an explanation of the value
              • The rows in bold print are the section titles that group the different elements together
              • Value: the formatted value
              • Section XML: The name of the section in English
              • ID XML: the identification in English
              • Value Xml: the field contents in Xml format.

              The Section XML and the ID Xml identify the value unambiguously.

              Add new functionalities

              The Add new functionalities command is in the Tools menu. ff

              The available option may differ according to the file type.

              Add a new simple table

              It allows you to add tables completely manage by the user.
              Once is added, the table cannot be removed anymore.

              You need to indicate the table's name.

              The table will have two predefined columns:

              • Id column - to indicate a selection group
              • Description column - to enter a text

              Inside the table you can add new columns with the Columns setup command from the Data menu.

              New Documents table

              Information are available at the Documents Table page.

              Add addresses columns in the Accounts table

              For accounting files.

              This functions allows you to add, in the Accounts table, specific columns to enter clients, suppliers, or members addresses.

              The program will add in the Accounts table the following items:

              • the Addresses view, where the addes columns are visible
              • the columns that allow you to enter addresses data and other information
                • In order to make one or more of these columns visible also in other views, you need to use the Columns setup command from the Data menu.
                • In order to create views with specific columns, you need to use the Tables setup command from the Data menu.

               

              Add Budget table

              For accounting files.

              This function adds a Budget table, where you can enter budget transactions.
              The program will do the following operations:

              • Add the budget table, that will show the budget data indicated in the Accounts table (if present)
              • Lock the budget column in the Accounts table
                From now on, the amounts contained in this column, will be calculated based on the budget transactions and on the period defined in the File and accounting properties.

              More information are available at the Budget page.

               

              Edit the VAT Amount type column in the transactions

              For accounting files with VAT management.

              This function allows you to edit the Amount type (VAT amount type) in the Transactions table.

              This column allows you to enter, for each transactions, when it is necessary, one of the following VAT amount types:

              0 (or empty cell) -  it means VAT included (with VAT/taxes)
              1 = VAT excluded - it means VAT excluded (without VAT/taxes)
              2 = Tax amount - the transaction amount is considered 100% VAT/taxes amount
              For each transaction, the programs automatically fills in the data as setup in the VAT Codes table (for each code). If however, exceptionally, this needs to be changed, you can manually enter 1 or 2 in the Amount type column.

               

              Program options

              In the Program options window, several technical options are possible for the accounting file.

              In the following pages you will find more detailed information.

               

              Interface

              Program

              Language
              The Program Language is the language used by the program. Use this drop-down menu to select a language if the user wants to use a language different from the default or if the default is not available.

              Font type
              This drop-down menu allows the user to select the desired font.

              %Zoom
              If the user wants the data on the table to be shown in another size, adjust the percentage of Zoom here.

              Show negative numbers in red
              The negative numbers and amounts will be shown in red in the tables.

              Startup

              Check for updates
              This option establishes a connection to the Banana.ch SA website and checks if there is an update compared to the version that is used.

              Display start page
              The news start page is shown.

              Show recently used files
              In the File menu, all the most recently used files are listed.

              Start Web server
              Makes it possible to access Banana Accounting data through external programs.

               

               

              Editor

              Behavior

              Edit table with single click
              By activating this option, a single click on the selected cell is sufficient to enter in the modification mode. If the function is not activated, you have to double-click on the cell in order to enter in the modification mode.

              Autocomplete text (Smart fill)
              By activating this option, the program automatically selects the first draft text in the drop down list and automatically fills it in the row where you are.

              Add up during selection
              By activating this option, the program will add up the selected amounts. Deactivate this function if this instantaneous addition slows certain operations down. One can select non-adjacent amounts by holding down the Ctrl key while selecting individual cells with the left mouse button.

              On Enter go to the next row
              By activating this option, the cursor will place itself on the next row when pressing the Enter key.

              Input

              Maximum number of undo operations
              Insert the maximum number of undo operations (one at a time) when using the Undo command from the Edit menu.

              Smart fill rows limit
              When inserting data, the program reads the data that has already been entered and tries to suggest how to complete an entry. In cases where there are many rows, this function could slow down the process.
              The user can define a limit for the number of rows, above which the smart fill will not be used. If there is no value entered or zero, smart fill will always be used.

               

               

              Advanced

              Backup

              Autosave (in minutes)
              This option allows saving the file automatically according to the desired frequency (in minutes). The program saves the data in a file called auto backup + file name. If the program or the computer crashes, the data can be recuperated by opening this file and saving it with a name (Save as...) from the File menu.

              Create backup copy (.bak)
              When the user saves to disk using the same name, the version of the file that already existed is renamed with a .BAK extension.

              Files extension

              Extensions of files considered secure
              This option defines the file types that the software consents to open with a double click on the DocLink column of the Transactions table. This prevents from opening non-secure files by the program.

              Restore Defaults
              If some settings have been altered, by using this button, the default settings will be restored.

               

              Developer

              Developer options
              This tab includes useful options fors cripts, apps and http pages developers for Banana Accounting.

              Enable Screenshots (Ctrl+3)
              If this option is activated, with the key combination Ctrl + 3 it will be possible to save screenshots of the program tables and dialog windows.

              Show Warnings and Critical Messages
              If this option is activated the program will show warning and critical messages.
              Warning and critical messages allow to check that the program is working properly during scripts or add-ons execution or during web server calls. This option is meant for scripts, add-ons or http sheets developers.

              Show Debug messages
              If this option is activated Debug messages will be shown to the user.
              This option needs to be activated only if asked by the Banana Accounting technical support.

               

              System Info

               

              The System Info card displays information on the Operating System and the work environment. Our technical support might ask for this information. In this case, click on the "Copy to Clipboard" button and paste the data in the e-mail or the contact form.

              Apps Menu

              Banana Accounting applications are Javascript applications that use Banana specific programming interfaces (API Application Program Interface).
              Thanks to the Banana applications, users have the ability to add new extensions that cover a wide range of needs: reporting, calculating, export, import and much more.
              In order to see all available Apps and for more information, please visit the BananaApps list page.

              Apps Menu

              The Apps menu allows you to run the applications and manage them (add, remove, enable, ...).
              Only applications that fulfill the necessary requirements are listed in the Apps menu:

              • Applications of the same type of the current file
              • In the File properties, they should have the properties required by the Banana application
                You can assign the required properties to the current file with the Apply property button.


               

              Add/Install a Banana App by downloading the file

              In order to use a Banana application, you first need to add it in the Info window list of the Apps menu::

              1. Download and save the application file on your computer
                1. You can choose freely where to save the Banana App file. Usually:
                  • Use the Accounting directory, in case the file relates to a specific accounting file
                  • Create a directory for the BananaApps, where the applications that are being used for more than one accounting can be saved.
                2. The Banana application is a text file
                  If you click on the link containing a Banana application, you will see the Javascript program.
                  • Use the Save page as command from your browser
                  • Or, instead of clicking on the link, place yourself on the link, right click and choose the Save destination command
              2. Add the Banana application to the list of available applications:
                • Apps menu -> Manage Apps...
                • Manage Apps button (at the bottom of the dialog window)
                • Add from file button (at the bottom of the dialog window) and select the previously saved file (file with .js extension)
                • Click on the Open button.
              The Apps installation and management procedure is not ideal yet. We are working to make it simpler.
               

              How to execute a Banana application

              • Start Banana Accounting 8
              • Open the desired accounting file
              • Click on the Apps Menu
              • Click on the application that appears in the menu

              The program executes the application automatically.
               

              Develop/Create a new application

              You need to create a text Javascript file matching the requirements for the Banana applications.
              In order to write the text file we advise you to use a Text Editor specific for programming, also available for free (such as, for example, Notepad++).

              In order to develop a Banana application, it is better to start from an existing project.

               

              Manage Apps

              This dialog window allows you to install, remove and execute Banana applications.

              List of available applications

              In this list you can find all the application that you added (installed).

              Enable/Disable

              By activating/deactivating the checkbox next to the application name, you will enable (disable) the applications.
              Only enabled application will be visible in the Apps menu.
              If an application appears in a light grey color, it means that the program does not find the Banana application file. If the file has been moved, you need to remove the application and add it again.

              Information on the selected application

              The program gives the following information:

              System applications

              The system applications are those included in the software that can be enabled or disabled:

              The other applications listed are the ones installed by the user.

              Application ID

              The internal application ID used to save the application settings

              The required file type

              The file type that the application requires to be executed.
              This is the directory number. 100.* means that the application requires a double entry accounting file.

              Properties of the required file

              A text that must be entered with the Apply properties button or manually in the File properties.

              Apply properties

              Enters, in the Properties of the active file, the property required by the application.
              If the button is not active, it means that the current file type is not supported by this application.


              Side buttons

              Execute

              Runs the selected application.

              Debug

              Run the selected app in debug modus.

              Test

              Opens a dialogue with details such as id, date, author, etc. of the App.


              Lower buttons

              Manage Apps

              Opens a dialog window where you can add or remove the Apps.

              Help

              Opens the Help page of the App.
               

              Notes

              The Apps management is not yet as smooth as we would like it to be; we are working to improve it.

               

              Print label

              From the Labels -> Print command from the Apps menu, you can print the addresses. In the different tabs you can choose different settings, from the label format to le selection of the addresses to be sorted and printed. Each setting can be saved with the Compositions.

              For the explanations of the different tabs, please consult the following pages.

               

               

               

               

              Options

              First label starting position

              Decide on the position of the first label. For example, if 1 is entered in the horizontal and vertical fields, it refers to the upper left-hand corner of the page.


              Number of copies for each label

              The value of 1, in this field, means only one copy of each label is wanted.

              Warn if text exceeds label
              If the text goes beyond the margins for the label, the program will warn the user by sending an error message if this cell is activated.


              Labels format

              You can choose between the label formats available in the list.
              If the list doesn't have the format you wish, through the Change button, you can access the Label format dialog windos where you can choose your desired settings.


              Data

              Indicate the data source for the labels to be printed:

              • Table - the current table data will be printed. If a data extraction occurred, only the extracted data will be printed.
              • Addresses - all table addresses will be printed
              • Selected rows only - only the earlier selected addresses will be printed.

               

              Label

               

              Field list

              This is a list of all possible label fields; to insert a field, it is possible to work in two ways:

              • Double-click on an element from the list
              • Click on an element from the list, confirming with the Add Field key.

              The field selected will be inserted at the position of the cursor in the View labels area. One can directly insert fields by writing the field name between the < Less and > Greater symbols.
               

              View labels

              Shows the disposition of the fields. The entries "<NAME FIELD>" will be replaced with the corresponding value of the table.

              The symbols Greater and Less are considered field delimiters. In order to make them appear in the text
              write "\<" for "<";
              write "\>" for ">"
              and write "\\" for "\"

              Preserve line feeds and spaces.
              In case this option is deactivated, the program does not take eventual spaces and empty rows in consideration.

               

              Extract

              The explanation of this section is available on the page Extract Rows of the Data menu.

               

              Sort

              The explanation of this section is available on the page Sort Rows of the Data menu.

               

               

              Composition

              The explanations of this window are available on the following web page: Composition.

               

               

              Labels format

              From the Apps menu, Labels command, Formats option, you can access the labels setup.

              The program already offers many predefined label formats; it is however possible to setup personalized parameters through the Default command.

              The program already offers many predefined label formats; it is however possible to setup or edit the default parameters, as well as your customized ones, through the Composition (Default) command.

               

              Page settings - Options

              Page

              Margins
              Input the size in centimeters; if no size is entered, the margin sizes will be zero.

              Number of horizontal labels
              Input the number of horizontal labels there are on the page.

              Number of vertical labels
              Input the number of vertical labels there are on the page.

              Print Landscape
              The page will be printed horizontally if this cell is activated.

              Arrange labels from right to left
              The labels will be printed from right to left and from top to bottom.

              Label

              Margins
              It is possible to input a margin for each label; the values for the label margins must be input in centimeters.

              Center text horizontally
              Select this option to horizontally center the text for each label in the cell.

              Center text vertically
              Select this option to vertically center the text for each label in the cell.

              Font size

              Base size
              This field shows the default font size.

              Reduce to fit, but no less than
              The program calculates the maximum font size possible for a given label, starting from 14 points all the way down to 8 points. The calculation is made taking into account both the height and width of the label. If a label has a line that is too long (or has too many rows) to be printed, then an error message will appear in the message window. Even if it is incomplete, the label will still be printed.

              Note:

              the printers will not print on the whole surface of a page because they need minimum margins. The program tries to adapt the single labels to the margin values required by the printer.

               

              Page settings - Composition

              All the settings that have been activated in the "Options" tab can be saved by using the Compositions and can be displayed when needed.
              For more information on this section, consult the Composition page.

               

              Help Menu

              The Help menu gives access to the followings commands:

              • User's guide - access to all documentations and explanation of all technical and accounting topics
              • Keyboard shortcuts - list of all keyboard shortcuts with detailed use description
              • Check for updates... - access to our website to check if there are newer versions of the software
              • Support center - access to Banana support web page
              • Feedback - link to our website contact form where you can leave a feedback
              • Register - access to Banana web page for users registration
              • Manage license key - allows to enter the license key for the program
              • About Banana Accounting - access to technical information about the program such as version number, serial number, Copyright.....

               

              Keyboard shortcuts

              You can also consult the list of keyboard shortcuts directly from the program, by choosing Keyboard shortcuts from the Help menu.

              Short-cut Keys

              Accounting Keys

              Description

              F9

              Perform simple recheck.

              Shift+F9

              Perform global recheck.

              F6

              This key executes different functions depending on the column the user is working on. The functions are explained in the information window.

              Alt+ Left click

              Display the Extract rows table or the Account card table when clicking on an account number.

              . (Full stop/Period)

              On a date column insert the current date.

              Editing Keys

              Description

              Enter, Tab

              Confirming keyed-in text and advance one cell.

              Alt+Enter

              Confirming keyed-in text and advance one row.

              Shift+Tab

              Confirming keyed-in text and return to previous cell.

              F2

              Edit content of cell.

              Double click

              Edit content of cell. Under the program options you can select to edit content of cell with a single click.

              Backspace, Space

              Delete content of current cell and edit the content.

              Backspace

              Delete preceding character.

              Del

              Delete subsequent characters.

              Ctrl+C

              Copy selected text or cells.

              Ctrl+V

              Paste copied text or cells.

              Del

              Delete content of selection.

              not assigned

              Delete text from the cursor point to the end of the cell.

              F4

              Copy previous cell from same column.

              Shift+F4

              Copy previous cell from same column and advance one cell.

              Ctrl+Shift+C

              Copy selected rows.

              Ctrl+Shift+V

              Insert copied rows.

              Ctrl+-

              Delete selected rows.

              Ctrl++

              Insert rows before position of cursor.

              Ctrl+Enter, Ctrl+Return

              Add one row below position of cursor.

              Moving keys

              Description

              Left

              Scroll towards left.

              Right

              Scroll towards right.

              Up

              Scroll up.

              Down

              Scroll down.

              PgUp

              Scroll up one screen page.

              PgDown

              Scroll down one screen page.

              Home

              Scroll to beginning of row.

              End

              Scroll to end of row.

              Ctrl+Home

              Scroll to top-left angle of table.

              Ctrl+End

              Scroll to bottom-right angle of table.

              Ctrl+Left

              Moves towards left to the edge of the current data region.

              Ctrl+Right

              Moves towards right to the edge of the current data region.

              Ctrl+Up

              Moves up to the edge of the current data region.

              Ctrl+Down

              Moves down to the edge of the current data region.

              Alt+PgDown

              Next view.

              Alt+PgUp

              Previous view.

              Ctrl+PgDown

              Next table.

              Ctrl+PgUp

              Previous table.

              Ctrl+Tab

              Next window.

              Ctrl+Shift+Backtab

              Previous window.

              F5

              Scroll to desired row by keying in row number in active window.

              Shift+F5

              Go to original row.

              Selection Keys

              Description

              Shift+PgUp

              Select column moving upwards, page by page.

              Shift+PgDown

              Select column moving downwards, page by page.

              Shift+Left

              Select row to left.

              Shift+Right

              Select row to right.

              Shift+Up

              Select upper column.

              Shift+Down

              Select lower column.

              Shift+Home

              Select back to start of row.

              Shift+End

              Select forward to end of row.

              Ctrl+Shift+Home

              Select back to top of table.

              Ctrl+Shift+End

              Select forward to end of table.

              Ctrl+A

              Select entire table.

              Other Keys

              Description

              Ctrl+F4

              Close active window.

              not assigned

              Exit program.

              Ctrl+N

              New file.

              Ctrl+S

              Save.

              Ctrl+O

              Open.

              Ctrl+P

              Print.

              Esc

              Cancel operation.

              Ctrl+Z

              Undo operation.

              Ctrl+Y

              Redo operation.

              Ctrl+F

              Find.

              F3

              Find next.

              Ctrl+B

              Bold text.

              Ctrl+I

              Italic text.

              F1

              View help.

              Multimedia keyboard

              Is performed by

              Function key (eg. F6)

              Press the fn key as well as the corresponding function key (e.g. Fn+F6).

              Error messages

              If the program shows error messages:

               

              • Update your software to the latest available version, by downloading it at the following page:
                http://www.banana.ch/en/node/3215
              • Check that the opening balances are correct
              • Recheck the accounting file by pressing Shift+F9
              • If you have a multi-currency accounting, check that the exchange rate differences have been calculated
              • Search for differences in the transactions with the Search for transaction differences command from the Account1 menu.

              Favorites menu

              The names of all the created Compositions appear in the list of the "Favorites menu". When it is necessary to display or print a favorite, just select it from the list of the Favorites menu, without having to edit or modify its configurations.

              When you have created compositions for the first time, in order to display them in the Favorites menu, you have to close and reopen the accounting file.

               

               

              Composition

              Compositions are saved personalized settings that can be used at a later date.

              In this regard, all compositions can be displayed in the Favorites Menu.
               

              It is possible to create Compositions for the following accounting data:

              • Account cards
              • VAT report
              • Enhanced Balance Sheet
              • Enhanced Balance Sheed by groups
              • Reports
              • PDF dossier
              • File export
              • Extract and Sort rows
              • Addresses / Labels

              How to obtain Compositions

              Compositions can been obtained mainly through the Account1 menu when it is about the Accounting cards, the Enhanced Balance sheet, the Enhanced Balance sheet with groups, the Reports and the VAT report, and from the File menu for the compositions concerning Create Pdf dossier and Export file

              • Once the document to be created has been chosen, start from the corresponding menu (Ex. Account cards or Enhanced balance sheet by groups...) and click on Default
              • from the dialog windows that appears click on Composition and on the New button
              • enter the name of the new composition
              • check the desired options
              • click on the Apply button

              Each composition, once created, will appear in the menu of the corresponding command and can be edited, renamed, duplicated or deleted.

              Name
              Enter a name to identify the composition (for instance, Quarterly Report).

              Description
              Enter the description for the composition.

              Show this window every time
              If activated (default), when selecting a composition from the menu, the dialogue for editing the settings will be shown. If not activated, the preview of the requested report (Balance sheet, report, etc.) will be shown directly.

              Show in menu... (depending on the menu/command in which one is being positioned)
              If this option is activated, the composition will appear in the menu of the command.

              Show in 'Favorites' menu
              If this option is activated, the composition will appear in the Favorites menu.

              Read only
              If this option is activated, it will not be possible to edit the settings.

              New
              This button allows you to create a new composition.

              Delete
              This button allows you to delete an existing composition.

              Duplicate
              This button allows you to duplicate a composition.

              Import
              This button allows you to import a composition from another Banana Accounting file.

              Apply
              This button allows you to save the chosen settings for the new composition.

               

              Display in the starting menu

              According to the menu you are in, the Default composition and your personal saved compositions will be shown.

              Composition (Default)
              This is the composition used by default from the program, if no other composition has been created.

              In the following example the menu of the Accounting reports is shown.


              Direct access to the compositions

              In the tables where the compositions are being shown and in the previews, the composition menu and the settings icon are being displayed. These make it possible to easily move from one composition to the next and provide rapid access to the settings in case you want to edit these. 

               

              Export

              With Banana accounting you can export in different formats, either the data of a single table of the whole file:

              Export rows
              Choose the Export rows command from the Data menu in order to export the content of a single table.
              If you select some rows before launching the command, then the Export selection only option will be activated.

              Export file
              Chose the Export file command from the File menu in order to export more than one table. In the dialog windows that appears you will find the following tabs:

              • Specific tabs of the exporting format
              • Include tab, to define the tables and the reports that must be included in the export
              • Period (Accounting) tab, to define the period
              • VAT tab (in the accounting files with VAT management)
              • Composition tab

              Export formats
              There are different formats available, each with its own specific options:

              • Pdf
                This format allows to export all accounting file content in a unique pdf file.
              • Excel
                This format allows to create Excel spread sheets, comparisons, budgets, index calculations, Balance Sheet analysis, charts directly linked to accounting values.
              • HTML
                With this format the data and accounting statements can be easily accessed with an Internet browser (Explorer, Mozilla, Opera).
                This format fully complies with the legal requirements related to long-term archiving of accounting data.
              • XML
                This format is the standard used for exchanging data. The accounting data can be easily read and reused with other programs or with XSLT style sheets.
              • Export rows in TXT
                This format allows to export the table rows in a text format.

              Export in Excel

              Export selection only
              When activating this option, the program exports only the selected area.

              File Name
              In this area it is necessary to insert the name of the new file that the program will create to export the data. If, however, an existing file is selected by using the Browse button, the program will overwrite it with the new data.

              Display file immediately
              As soon as the MS Excel file has been created, the software to view it will be launched. In this way, the result of the export can be seen immediately.

              Options

              Create cell names
              This option will automatically give a name to each cell as the file is exported. For example, the cell that contains the balance for account 1000 will receive the name: "Accounts_1000_Balance" in Excel. This means the user can univocally identify each cell independently from its position on the sheet and thus create Excel reports that don't have to be corrected if the account plan is changed. The user thus saves having to manually carry forward any accounting data to Excel. However, inserting the names of the cells does slow down the opening of the Excel file.

              Create table names
              With this option, the program will automatically give a name to the whole area of the cells belonging to a table, at the moment the file is exported. For example, the area formed by the cells belonging to the Accounts table will be identified by the name DB_Accounts. This option is necessary if, when creating reports in Excel, database functions are used.

              Use names Xml (English)
              The cell names can either be defined in their original accounting language, or with their English name. In the original language, the names will be understandable to someone who speaks that language, but they will not be universally understood like a name in English would be. By selecting this option the user would have, for example, "Accounts_1000_Balance" instead of "Conti_1000_Saldo".

              Protect tables
              The entire content of cells is locked when selecting this option so that it is only possible to edit the format. This prevents the possibility of making any unintentional changes to the exported data. The user can remove this protection at any time by using the appropriate command in Excel.

              Export selection only
              If this cell if activated, only the selected area is exported.

              Other Tabs

              For the explanations of the other tabs, please visit the following pages:


              Export result

              Each accounting table is displayed in a different sheet in the Excel file

              Use the cell names instead of the row/column references:

              • The names return the desired value even when a new row or column is being entered.
              • The names are easy to use and understand
                "Accounts_1000_Balance" refers to the balance of the 1000 account
                "Accounts_1000_Description" returns the value of the cell that contains the description of the 1000 account
              • The names can be used in the formulas
                "=Accounts_1000_Balance" returns the value of the cell that contains the balance of the 1000 account
                "=Accounts_1000_Balance/1000" divides the balance of the 1000 account by 1000
              • By using the names, it is possible to create links to various files.

              A link to a cell is being composed of:

              • File name
              • Table name
              • Cell name

               

              Include Tab

              Recheck accounting
              By ticking this box, the accounting will be rechecked before it is exported.

              Include

              By ticking the different boxes, the user can export in MS Excel Xml the various tables and/or all the account cards and the VAT/Sales tax Report.

              View
              It is possible to select the view where the data are to be imported. This option is available for the export in PDF, Html and Xml format.

              Periods

              This function lets the user export the accounting data subdivided by period.

              Accounts/Categories by period
              This option allows to export the accounts and categories balances according to the selected period.

              VAT/Sales tax report
              This option allows to export the VAT/Sales tax report according to the selected period.

              Create periods for the whole year
              By selecting this function, the partial balances for the whole year will be exported, and not only the ones of the specified accounting period or the selected export period.

              Max number of periods
              The maximum possible number of periods.

              Export in Html

              File Name

              In this area, the user must insert the name of the new Html file that the program will create to export the data. If however the user selects an existing file through the Browse button, the program will overwrite it with the new data.

              Display file immediately

              As soon as the Html file has been created, the software to view it will be launched. In this way, the result of the export can be seen immediately. It is best to remember that browsers like Mozilla and MS Explorer use a cache mechanism for files. When the export is made for a second time, it is possible that the user will see the previous version until the browser Reload button is pressed.

              File creation options

              Headers 1, 2 and 3

              These are the file headers.

              Other Tabs

              For the explanations of the other tabs, please visit the following pages:

               

              Html Options Tab

              Use style sheet CSS

              Selecting this cell will allow the user to connect a style sheet to the exported file. By default the program will automatically use its own style sheets and incorporate it into the document.

              Use predefined style sheet

              The program's default style sheet will be used.
              Deactivating the cell will automatically activate the External style sheet option. The user can then select the name of a personal style sheet.

              External style sheet

              File name

              In case an external style sheet is being used, select the file name of the style sheet with the Browse button.

              Include style sheet within html file

              When data is sent in Html format, the style sheet file must also be sent. To avoid sending two separate files the user can incorporate the style sheet to the Html accounting file by activating this cell.

              Selecting the cells will allow the program to file the data with various graphic options:

              • Export visible columns only
              • Table with border
              • Columns with headers
              • Preserve page breaks within the table
                If there are page breaks on the original accounting file, these will be carried over in the export as well.
              • Export as data - data will be exported without any formatting

              Export in Xml

              File Name
              In this area it is necessary to insert the name of the new file that the program will create to export the data. If, however, an existing file is selected by using the Browse button, the program will overwrite it with the new data.

              Display file immediately
              As soon as the file has been created, the software to view it will be launched. In this way, the result of the export can be seen immediately.

              Style sheet XSLT
              In this area, the user can select the style sheet according to which the program should organize the graphic display of the accounting data. Thanks to the style sheets, the user can input his/her own data and conform to the print-outs required by the authorities. On the www.banana.ch various examples and further information on style sheets are available.

              Options

              It is possible to choose between the following options:

              • Export visible columns only
              • Include view list

              Export selection only
              If this option is activated, only the selected area will be exported.

              Other Tabs

              For the explanations of the other tabs, please visit the following pages:

              Export rows in txt

              In order to export rows, please select the Export rows command from the Data menu. Different options are available:

              File name
              Enter the file name or select an existing one using the Browse button

              Format
              Select the desired format.

              Display file immediately
              As soon as the file has been created, the software to view it will be launched. In this way, the result of the export can be seen immediately. Please notice that browsers such as Mozilla or MS-Explorer have a documents cache mechanism. It is then possible that, when exporting a second time, you will still see the previous version if you don't use the Refresh browser's button.

              Options

              If activated, different options will allow the export of:

              • selected rows only
              • visible columns only
              • columns header
              • unicode (Utf-8)

              Save

              This window is shown when you need to create a PDF file, export in Html or Excel format, or copy into the clipboard.

              File Name
              In this area it is necessary to insert the name of the new file that the program will create to export the data. If, however, an existing file is selected by using the Browse button, the program will overwrite it with the new data.

              Display file immediately
              As soon as the file has been created, the software to view it will be launched. In this way, the result of the export can be seen immediately.

               

              Import

              Information on import are available in the single online lessons, listed in the left side menu.

              Import into accounting

              New import extensions

              In the new version Banana Accounting Plus, you will find new extensions for importing data from SmartBusiness and also files in .zip format.
              We advise you to switch now to Banana Accounting Plus and take advantage of the many new features.

              Supported import formats

              With Banana, one can import from whatever format (see the list of current supported formats). In case you should need to import from other file types that are not included in the list, specific Banana Import Apps can be developed.

              The Import to accounting command

              The Import to accounting command from the Account1 menu makes it possible to import the following data:

              • Transactions - to transfer the transactions from another Banana file or from the bank statement
              • Accounts - to transfer the accounts from another Banana or a text file
              • VAT codes - to transfer the VAT codes from another Banana file or from a text file
              • Files - to transfer a complete file in order to convert the Chart of accounts

              In order to transfer data just one single time, please consult Transferring data from other accounting software.

              Procedure for importing

              1. Choose the destination table of the data
              2. Choose the file type from which to import
              3. Indicate the file name
              4. Choose the transactions to be imported

              Destination table

              For each data type, there are specifique pages

              Import formats

              According to the type of destination table, different import formats are availbale.

              However, the following formats are available for all options:

              • Text file with column headers
                These are files that are especially created with other programs (for example, a program that creates invoices) so that the data can be transferred into Banana Accounting.
                Technical indications on how to prepare these type of files can be found here.
              • There are also other file types for which a specific import filter exists or has been created.

              File name

              • The name of the file of which the data need to be imported needs to be indicated here. 

              Manage apps...

              Ok Button

              • Starts the import.

              Error messages

              In case error messages appear during an import operation, update, first of all, the Import App.

               

               

               

              Import transactions

              New import extensions

              In the new version Banana Accounting Plus, you will find new extensions for importing data from SmartBusiness and also files in .zip format.
              We advise you to switch now to Banana Accounting Plus and take advantage of the many new features.

              Import procedure

              1. From the drop down menu, choose Import transactions
              2. Choose the file type from which to import (Cash book transactions, Double-entry accoutning transactions)
              3. With the Browse button, choose the file from which to import the transactions

              More information about all types of import filters can be found on the Banana Apps page.

              File types that can be imported

              • Import transactions from an Income & Expenses accounting file
                In order to import transactions from an Income & Expenses accounting file into a double-entry accounting file, it is necessary that the categories of the Income & Expenses file correspond to the accounts of the Double-entry accounting file.
              • Import Cash book transactions
                Apart from importing the transactions, an import summary per month or quarter can also be obtained. 
                See the specific page Import Cash book transactions.
              • Import Double-entry accounting transactions
                In order to import transactions from a Double-entry accounting file into another Double-entry accounting file, it is necessary that the accounts correspond.
              • Import transactions from Bank statement ISO 20022 or MT 940
                See page Bank Statement ISO 20022
              • Import data in Txt
                This file type is being used to import data from other programs, such for example:
                • in order to import monthly transaction from your salaries software
                • in order to import the invoices issued with a invoicing software
                • in order to import the payments made with your invoicing software
                • in order to import your sales transactions from your online shop
                • in order to import data from another accounting software
                • in order to import data from another cashbook management software (for example a restaurants or a hotel).
                • For more information on how to create a file to be imported in Banana, please consult the technical information.
              • BananaApps for importing

              Choice of rows to be imported

              After having elaborated the rows to be imported, the program displays a dialog, in which the user can indicate further options.

              Destination account

              This option is present when data of the bank account (or postal account) statement, or an account's income & expense transactions in a text format, are being imported.
              Insert the bank account number of the chart of accounts, related to the imported statement.

              Select transactions

              Start date, End date

              Insert the start and end dates of the period related to the transfer of the transactions. The period can also be selected automatically in the boxes under the dates area.

              Don't import if exists same ExternalReference, Date, Amount 

              If activated, this function allows the user to not import already entered transactions, in order to avoid recording transactions twice. This option can only be activated when the column "ExternalRef" is present in the transactions that are going to be imported. If not, this option will be deactivated.

              Complete the transactions with

              Autocomplete values

              The option is only necessary for accounting with VAT/Sales tax and multi-currency. If activated, it allows the automatic completion of values that are missing in the imported data (for example, the exchange rate in the exchange rate table).

              Initial document number

              This option is present when data of the bank account (or postal account) statement, or an account's income & expense transactions in a text format, are being imported. This is the document number assigned to the first imported transaction.

              Group transactions by invoice number

              If the import file contains values in the "DocInvoice" column, it is possible to indicate in the dialogue:

              • Group transactions by invoice number
                In this case, the rows of the same invoice are being grouped in such a way that there is only one transaction for the same account and the same VAT code. Please check the explanation Import invoice data.
                 
              • Destination account for balance differences
                When VAT codes are being applied, there may be rounding differences of just a few cents.
                In this case, Banana creates an additional transaction for every invoice into which this difference can be recorded.
                Of course, it is necessary to pay attention that the data to be imported obtain a balance between debit and credit. If not, the transaction row will contain the difference between debit and credit. 

              Edit the imported transactions

              The program creates some transactions and adds them to the Transactons table.
              Transactions can be edited or deleted.
              In a double-entry accounting file, the program adds some symbols in the Debit/Account and Credit/Accounts columns, where in an income and expenses file, the program adds them in the Account and Category columns.

              Symbols should be replaced with the appropriate account or category.

              • [A]
                This symbol is indicated when no account has been indicated in the dialog.
                You need to replace the [A] with the appropriate bank account.
                [CA]
              • When ths symbol appears, you need to replace it with the appropriate contra-account, so that the Credit transactions will be balanced with the Debit transactons.

              In rows with only one contra-account, you will find both the [A] and the [CA] symbols in the same row.
              In rows with multiple contra-accounts, each row will have its own [CA] symbol. Without the [CA] symbol, it would be impossible to understand if the transactions is a Debit or Credit one.

              Frequently Asked Questions

              I see don't see the format for the bank statement of my bank
              Click on "Manage apps...", followed by "Update apps" and enable the filter for the desired format.

              I see don't see the format for the Xml account statement of the Postfinance (file .tgz)
              This format is no longer supported. Please contact the Postfinance and ask to receive the statements in ISO 20022 format.

              The following message appears 'This ISO 20022 file doesn't contain a bank statement (camt.052/053/054)'
              This error message is being displayed when the ISO 20022 file doesn't contain a bank statement. The ISO 20022 format is a generic format that can contain different types of information, like the bank statement and the payment confirmations In Banana Accounting, only the bank statements can be imported (camt.052/053/054).

              My bank is not in the list of supported formats
              It is possible to create apps for formats that have not yet been implemented. We have also paid support available for the implementation of customized formats.

              I can only import collective orders and I cannot see the details (the individual orders)
              When executing a payment in the e-banking (for example in the Raiffeisen bank), you need to choose the option 'individual order' instead of the 'collective order' Only by doing so you will be then be able to import the payments as individual orders.


               

              Import ISO 20022 file

              ISO 20022 is an international standard for the transmission of financial data.
              The CAMT category regroups the formats used for the account statement, reporting of account transactions and account balance confirmation:

              • camt052: Account Reporting
              • camt053 (including version 4): Account Statement
              • camt054: Credit / Debit Notification

              Preview the  ISO-20022 file

              Banana. offers the possibility to preview contents of a camt file.

              Data importing into the current accounting

              Proceed as indicated with the Import into accounting ( Account1 menu) command.
              Compressed files can also be opened with this function. In this case, the program will prompt the user to select the file from which to import the data of the compressed file.

              Technical notes on converting ISO 20022 files

              The ISO 20022 standard encodes the accounting data of the bank statement very precisely. Nevertheless, it leaves some discretion for the insertion of additional information about the account and its transactions.
              Banana, when reading the file, tries to adapt itself to the ways in which the ISO 20022 file has been prearranged.
              • Reads as opening balance the similar encodings
              • Reads as closing balance the similar encodings
              • All contents are read and converted into transactions
                • Transaction date (Date)
                • Valuta date
                • Transaction amount (positive or negative)
                • Description (Banana - for now - displays the various descriptions as a single text)
                  In the future, it will be possible to extract this information on a distinctive basis and indicate the columns where to allocate data.
                • Distinction of transactions between one single and detailed lines.
                  For transactions that are to be detailed, there will be a row for the sum and separate rows for the singular transactions that will constitute the total.

              Swiss Specificities

              Specifications for the use of ISO 20022 have been issued for the Swiss banking system.
              Formats have been standardised as follows: 

              • camt053: Account Statement, with detailed transactions.
                This is the file that your bank should provide, specifying that it does also include payments received.
                A summary file (without any details) might be asked for, in which case camt054 form will also have to be requested, detailing the receipts.  
              • camt054:
                Transactions detailed by type (such as bills payments received for bills issued).
                If detailed cash receipts are required, the bank will provide the dates in a camt054 file (as a substitute for V11).
                This results in two files:
                • camt053 file (Account Statement) with the several payments and the daily total of cashed bills, which details are contained in the camt054 file.
                • camt054 file, detailing all transactions for cashed bills with their reference number.
              • camt052: Account Reporting.
                Is only used in special situations, to monitor transactions for a specific day. 

               

              Import data from a Cash book file

              When managing your accounting work, it is possible to manage the cashbook separately and regularly import the transactions in the main accounting file, grouped according to a selected period.

              In this case there are two separate files: a file containing all the data of the general accounting, and a second file containing only the data Cash book management. In order to be able to import data from the Cash book file into the main accounting file, those files need to be linked. This can take place in two different ways:

              • Attribute to the categories of the cashbook file the same account numbers (for Double-entry accounting), or, the same category numbers (for Income & Expense accounting) as the ones used in the main accounting file.
              • In the cashbook file, in the Category2 column of the Categories table, enter the same account numbers as the main accounting file (if double-entry accounting) or the same categories numbers (if Income & Expense accounting). If the Category2 column isn't visible, you  need to visualize it by selecting the Columns setup command from the Data menu, and double clicking on Category2.

              Example:
              In this example, the account numbers referring to the main accounting file have been entered in the Category2 column.  

              In order to import the data, do as follows:

              • open the main accounting file and choose the Import to accounting command from the Account1 menu
              • in the dialogue window that appears, select Transactions from the Import drop-down menu; then, click on Cash book transactions (*.ac2) and with the Browse button, select the cash book file.

              You can find the explanations of this window at the Import to accounting page

              In accounting

              Destination account

              You have to select the account number (Double-entry or Income & Expense Accounting) to which the data will be carried over.

              Initial document number

              This is the document number given to the transactions carried over.

              Select transactions

              Start date / End date

              These drop-down menus specify the start and end dates of the period to which the imported data refer.

              Group Transactions

              In this section the user specifies, by activating the different options, how the transactions of the period must be grouped:

              • No period grouping
                All the rows are being imported, with the related contents of the columns. The Doc number of the Cash book account is also being imported. If, in the main accounting, you wish to use a different number and at the same time keep the document number of the Cash book, enter the document number in the DocProtocol column of the Cash book.
              • Monthly - transactions are grouped by month
              • Quarterly - transactions are grouped by quarter
              • By semester - transactions are grouped by semester
              • Yearly - transactions are grouped per year

              One transaction per account

              If more than one category is grouped on a single account but the user needs separate transactions for each category, this cell must be activated; then the program will create transactions for each category. When VAT codes are used, transactions will be created not only by category, but also for each different VAT code in the same category.

              Note:
              When the user is working on an accounting file with VAT, the calculations of the VAT may result slightly different. If the transaction amounts have been inserted as net amounts, the balance of the cash account may also be different because of rounding differences.

              The accounting file is updated with the data of the Cash book.

               

              Import VAT codes

              This function is only available in the Accounting with VAT management, and allows the user to import VAT codes from:

              • Other accounting files (*.ac2)
              • A text file with column headers (text file *.txt)


              Add new codes and new groupes
              The new codes and new VAT groups are being added, without eliminating the ones that are presently in the VAT codes tabel.

              Replace all rows
              The complete VAT codes table is being subsituted.

              Note: if, after the import, you receive the error message VAT account not found, you need to select the VAT according to VAT report account in the VAT/Sales tax section of the File and accounting properties (File menu).

              Update VAT Codes for Switzerland

              See the pages for Switzerland in French, German or Italian.

               

              Import file

              This feature allows you to import data from another Banana accounting file (with ac2 extension) of the same type.
               
              It is being used when you go from one chart of accounts to another one and when a conversion of the account numbers is necessary.
               
              For more information about the conversion of the chart of accounts, see the page on the accounting data migration to the new accounting plans.
               

              Source file

              This is the file from the which the data are being taken.

              Destination file

              The file that "receives" the data.

              Options

              Import transactions

              All the rows of the Transactions table, present in the source file, will be imported.

              Import recurring transactions

              All the rows of the Recurring Transactions table, present in the source file, will be imported

              Import budget transactions

              All the rows of the Budget table, present in the source file, will be imported.

              Replace amounts in Account table

              The amounts of the Opening, Budget and Previous columns of the Accounts table of the destination file are being deleted and replaced with the amounts that are present in the source file.

              The accounts need to correspond, thanks to the same account numbers, or when there is a replacement, in that case the option "Convert account numbers" should be used.

              Replace accounting properties (basic data)

              The File and accounting properties of the destination file will be replaced by the ones of the source file.

              Convert account numbers

              Using this function, the imported account numbers will be replaced with those indicated in the alternative column.
              If you use this function, you must also specify the column that contains the account numbers to be used in the import instead of the existing ones.
              Next to the account number column, there should be a column that indicates the alternative number to be used when importing. If no alternative number is specified, the original account number of the source file will be used.

              • The account matches are in the source file
                This option is to be used when for example you keep an accounting file in a country, with a specific number system, and then you need to regularly import your transactions in a different accounting file, that uses a chart of accounts with a different numbering system.
                • You need to add a new text column in the accounting plan (Columns setup command)
                • For each account, indicate the destination account number in the tabel.
              • The account matches are in the destination file
                This option is used when for example you want to switch to a chart of accounts with a new numbering and grouping
                • You create a new accounting file with the new chart of accounts.
                • In the chart of accounts, you create a new column where you indicate the account matches (Columns setup command).
                • In this column, indicate the account numbers of the source file.
                  Separate the accounts with a semi-colon "1000;1001" to indicate that several accounts need to be grouped into this account.
              • Column containing the account matches (Accounts table)
                Indicate a column of the chart of accounts that has been added by the user and that contains the account matches.
                 

              Results and possible errors

              The program will have carried forward all the data of the previous accounting, converting the account numbers.

              In case the program indicates errors (absence of accounts or other), it might very well be necessary to cancel the import operation, complete the account matches and repeat the import operation.

              The program, finding different charts of accounts, cannot automatically execute extended check-ups to make sure that all the data have been imported and grouped correctly.

              It is therefore advised to check the result manually, verifying that the totals of the Balance sheet and the Profit and Loss statement are indeed correct.

              Advanced import options

              For different and more complex and automated conversion needs, we suggest to use the scripts, that allow a total customization of the conversion and the import.

               

              Manage Apps

              New Extensions

              In the new Banana Accounting Plus version you will find new Extensions, always up-to-date in order to obtain:

              Filters are extensions that make it possible to add new formats into the Import into accounting dialog window: Account1 menu -> Import into accounting -> Manage Apps... button.

              In Banana Accounting 8, it is possible extend some of the functions by means of small javascript programs. In order to create your own import filters, see the Banana Apps info page.

              More information about all types of import filters can be found on the Banana Apps page.

              Details

              A dialogue window is opened with

              • the source file where the Banana App is located
              • the App type
              • the App date

              Parameters

              If the BananaApp allows the individual setup of the programming parameters, the button is active.
              In that case, dialogues will be visible in which fixed parameters can be entered that will be used for this App.
              The parameters are related to each file.

              Edit

              It allows you to edit and make changes to the selected App. It will bring you to the directory where the App file is stored.

              Remove

              Permanently deletes the selected App. It is not possible to delete files that are installed at the system level or that are for all users.
              For the time being it is also not possible to remove Apps contained in files with an sbaa extension. If you want to remove the App you should delete the App file.

              Help (side button)

              It leads to the internet page with info on the selected App.

              Add from file

              Adds a new App from an existing file.
              The file should always be available.

              Add from url

              Adds a new App from a link to a document available online.

              • the file is downloaded from the internet
              • the file is saved in the user's data folder

              Update Apps

              Downloads the filter's most recent version from Banana Accounting's server.
              The downloaded Apps should not be modified because they will be overwritten when updated.
              If there are new Apps, they will be added to the list. The imported filters will not be modified.

              The Apps will be installed in the user folder. Thus only the user who imported the new Apps or updated the available ones will see them. To install Apps for all users or at a system level, a manual procedure for installing the Apps would need to be followed. 

              Help (bottom button)

              It links to this page.

               

               

               

              Import transactions from Paypal

              On the page web filter for PayPal transactions you will find the information about the new feature that makes it possible to import all the Paypal transactions directly into Banana Accounting and the instructions on how to proceed. 

              We have also prepared specific predefined templates for double-entry or multi-currency accounting that you can look at as an example or use as a separate accounting file just for the accounting transactions from Paypal.

              More information about all types of import filters can be found on the Import filters page.

               

               

              Merge file

              Il is possible to merge two files, but they have to belong to the same group (for example two double-entry accounting files). It is not possible to merge files belonging to different groups (for example one double-entry accounting file and one simple accounting file).

              In order to successfully merge two files, it is crucial that they have the same accounts numbering. Proceed as follows:

              • Open the file which will contain the data of both files
              • Select the Merge File command from the Tools menu
              • Select the path and the name of the file to be merged
              • Confirm the merge operation
              • If the files are not the same, even though they belong to the same group, (for example, accounting with VAT/Sales tax and accounting without VAT/Sales tax), a message will appear advising the probable loss of data.

               

              Import rows

              In order to import the rows, click on the Import Rows command of the Data menu.

              Activate the options of your choice in the following window:

              File name
              Using the Browse button, select the file from which to extract the data. By clicking on the OK button, confirm the options selected.

              Format
              This area contains the list of formats with which it is possible to import the data to the table. These include: ASCII format, Text, CSV.

              Options

              Import data from clipboard
              By selecting this box, the user can import data from the Windows clipboard.

              Autocomplete values
              It is advisable to select this function when it is necessary to import rows from a less complex accounting file into a more complex one. In this case, in the imported rows, some columns will stay blank. By selecting this function, the program will automatically complete the missing values with those from the current accounting.

              Fields header 
              By selecting this box, not only data, but field headers will be included in the import.

              Unicode (Utf-8)
              By selecting this box, all the data will be imported in a format readable by Unicode programs.

              Transferring data from other accounting software

              New import extensions

              In the new version Banana Accounting Plus, you will find new extensions for importing data from SmartBusiness and also files in .zip format.
              We advise you to switch now to Banana Accounting Plus and take advantage of the many new features.

              Recurring data importing from other programs

              It can often happen to be regularly needing to import data from other programs.

              For example:

              • in order to import monthly transaction from your salaries software
              • in order to import the invoices issued with a invoicing software
              • in order to import the payments made with your invoicing software
              • in order to import your sales transactions from your online shop
              • in order to import data from another accounting software
              • in order to import data from another cashbook management software (for example a restaurants or a hotel).

              In these cases you can proceed in two different ways:

              • adapt your data generating application by creating a txt file specifically set to be imported in Banana.
                For more information please consult the technical information on how to create a file to be imported in Banana;
              • create an import script that will transform data exported from another program so that they can be imported in Banana; depending on the installed import filters (see the Manage filters page), many formats can be available. See also how to create filters (Banana App)

              One time data importing from other programs

              If you are starting to work with Banana for the first time and you need to import your data from another software, you can easily transfer data from any accounting program, passing through MS-Excel.

              1. With your old accounting software, export the data in a format that can be read by Excel (CSV, txt, ...)
              2. Open the exported file with Excel
              3. In Excel, organize the data (columns) in the same order as they appear in the Banana tables (Accounts, Transactions)
              4. Open your new accounting file in Banana
              5. In the Accounts or Transactions table, add as many empty rows as there are rows to transfer from Excel.
              6. In Excel, select the data to be copied and use the Copy command
              7. Go in Banana and execute the Paste command.

              This method is useful to transfer data from MS-Money, Intuit Quicken and Quickbooks, and from most other accounting programs.

               

              Printouts/preview

              Print preview

              All the printouts of the various accounting documents can be saved in PDF, HTML, MS Excel and copied to the Clipboard, allowing the user to also access them many years later.

               

              Print

               

              The button pulls up the Printer Setup window from Windows. The selections are only valid for the current working session. Permanent alterations need to be input using the Windows control panel. Horizontal or vertical printing needs to be input under Page Setup and is only valid for each view.

              Accounting printouts

              You can find information on specific printouts for the different accounting types at the following pages:

               

              Page numbering

              You can access the page numbering feature by clicking on the icon on the Print Preview toolbar.

              In this dialog box are set the options for page numbering. The printing of the page number is enabled or disabled by using the settings of page setup or report.

              Start with
              The starting number for page numbering.

              Add prefix
              The prefix to insert to the page numbering.

              Page setup

              Allows to define the printing properties. Each view has its own printing setup.

              Header left
              This is where the title for the current view is shown. The title can be edited to appear at the top left of the printed page.

              Header right
              It is possible to enter a different text that will be printed at the top right-hand side of the page.

              Margins

              It is possible to input the page margins here: Left, Right, Top, Bottom. Measurements are in centimeters.

              Shrink page to printable area
              This function makes it possible to adapt the printable area when the print goes past the earlier defined page margins.

              Include in print

              When these functions are being activated, they allow to display the following data:

              File Headers
              This is the text that is being entered in the File and Accounting properties found in the File menu.

              Page Headers
              The page header will also be included in the printout.

              Table Name
              The table header (f.i. Accounts, Transactions, etc.) is also being included in the printout.

              Column headers
              These are the headers for the various table columns.

              Large font
              The program prints the headers using a slightly larger font.

              Page break
              When activated, this option maintains the entered page breaks; if not, they will be ignored, even if they are present.

              Page numbers
              Activate this option to request that the pages be numbered.

              Print time
              Activate this option to include the hour when the page was printed.

              Print date
              Activate this option to include the date when the page was printed.

              Row number
              Activate this option if a progressive number is to be given to each row.

              Grid
              The grid can be printed just as it is viewed on screen.

              Layout

              The program automatically adapts the page dimension.

              Font size %
              This allows the increase or decrease, on a percentage basis, of the size of the font to be printed.

              Reduce to page width
              If some columns exceed the width of the page, the program reduces the columns or reduces the zoom so that all the columns will be printed correctly on the page.

              As on screen
              The print-out will be carried out exactly as presented on the screen.

              In case the contents goes past the page dimension:

              • If the option "Reduce to page width" is being activated, the font size will be reduced;
              • If the option "Reduce to page width" is not being activated, the part that goes past the paper will not be printed.

              Print black and whilte
              All colors will be converted in grey scales.

              Print landscape
              To print in landscape format which makes the page read horizontal.

               

              Period

              This tab appears in many dialogs (for example the Account card) and can specify the period to be show or to be calculated.
              If for example a quarter is selected: in the account card only the transactions of the selected quarter will be shown, and in the balance sheet only the results for the selected quarter will be calculated.

              All
              If this option is selected, the entire accounting period is included.

              Period selected
              If a specified period is desired, indicate the start and end dates.

               

              Transactions with no date
              If there are transactions with no date, they will be considered only if you chose the whole period (All...)
              If however you enter the initial and final dates January 1sr and December 31, the transactions with no date will not be included in the report.

              Accounting

              Banana accounting makes different types of accounting available. Each user can choose the type he needs.

              With the Convert to new file command of the Tools menu, the user can go from one accounting type to another.

               

              Double-entry accounting

              The professional tool to manage assets, liabilities, expenses and income according to the international rules of the Double-entry (debit and credit) and to obtain a Balance Sheet and a Profit/loss Statement.

              The double-entry accounting application is available with or without the VAT management option.   

              Characteristics

              • Manages the estate accounts and the profit/loss accounts (assets, liabilities, expenses and revenue)
              • The accounting type with VAT features the VAT calculations and VAT reports
              • Produces all the accounting extracts: journal, account cards, balances by period and annual balances 
              • Allows Cost Centers and Segments management
              • Offers different ways of data presentation
              • Exports data to Excel, Html, Xml, Pdf
              • Imports data from different files formats

               

              Tables and File properties

              The double-entry accounting is composed by the following tables:

              • Accounts table
                Where the accounting plan is located with opening balances, and where groups and subgroups can be defined along with cost centers and segments.
              • Transactions table
                Where the accounting transactions are entered.
              • VAT Codes table
                Where the VAT/Sales tax codes are set, only if the VAT management option has been chosen.
              • Exchange rates table
                Where the different currencies are defined, only if the multi-currency accounting option has been chosen.
              • File properties
                Where the accounting general settings are defined.

               

              Changing accounting type

              In order to change your file language, rounding system, or in order to add VAT or multicurrency columns, please refer to the Convert to new file command, from the Tools menu.

              Theoretical part

              In this chapter, the basic theory of the Double-entry accounting is being explained.  

              Debit and Credit

              Double-Entry Accounting in Practice

              Main rules to learn how to manage double-entry accounting Double-entry accounting is based on four main account categories:

              ASSETS The accounts that represent the positive elements of the estate
              LIABILITIES The accounts that represent the negative elements of the estate
              COSTS The accounts that represent the costs (but not those related to the purchase of estate goods)
              REVENUES The accounts that represent the earnings (not those obtained by the sale of estate goods)
              • The account is an entity that groups the amounts that belong to the same transaction category.
              • Every account must be registered as debit or credit depending on the type of accounting transaction.
              • Double-entry accounting uses debit and credit instead of income and expenses.

              The General Rule

              ASSETS

              DEBIT

              LIABILITIES

              CREDIT

              COSTS

              DEBIT

              REVENUES

              CREDIT
              • The assets, liabilities, costs and revenues are subject to continuous variations: increases and decreases.

              The increasing variations

              INCREASE IN ASSETS

              DEBIT

              INCREASE IN LIABILITIES

              CREDIT

              INCREASE IN COSTS

              DEBIT

              INCREASE IN REVENUES

              CREDIT

               

              The decreasing variations

              DECREASE IN ASSETS

              CREDIT

              DECREASE IN LIABILITIES

              DEBIT

              DECREASE IN COSTS

              CREDIT

              DECREASE IN REVENUES

              DEBIT

              Instruments in Double-entry Accounting

              Double-entry accounting uses the following principal instruments: the Chart of Accounts, Journal, Balance Sheet and Profit and Loss Statement.

               

              Chart /Accounts

              This is the list of all the accounts that group the different transactions categories together (ex. cash book, bank, purchases, sales, etc.).

              • To use Banana Accounting, one must simply take an already predefined accounting plan, adapt it to the proper requirements and insert the transactions. The rest will be executed by the program.

              Journal

              This is the list of all the operations that influence the activity daily (withdrawals, deposits, purchases, sales, salaries, rent, etc.) It corresponds to that which the larger part of the small businesses already have even if it’s only on paper or Excel, to then give to the accountant.

              Balance Sheet

              This is a summary outline of the assets and liabilities. The difference between the assets and liabilities represents the net capital amount of the firm.

              Profit and Loss Statement

              This is a summary outline of all the costs and revenues. The balance represents the operational result (profit or loss).

              Starting Accounting

              Procedure to start accounting with Banana Accounting

               

              1

              Take an existing accounting model with a predefined chart of accounts.

              2

              Adapt the chart of accounts to the proper requirements.

              3

              Insert the transactions in the journal.

              Mathematical basis

              For the user of Banana's Double-entry accounting, it may seem strange that the revenue/income (sales) and the liabilities (start-up capital) appear in negative, while normally one expects that the sales appear in positive and the expenses in negative.

              The double-entry accounting is based on the debit and credit principle that usually appear in two seperate columns. If the amounts in debit and in credit appear in one column, the mathematics of the Double-entry accounting anticipates the use of the minus sign (-), so that the amounts in debit can be easily distinguished from the amounts in credit.

              Banana goes completely with the mathematical logic of the Double-entry accounting and thus indicates the amounts with the minus sign (and in red print to let the user distinguish even better the amounts in debit and in credit). In the Double-entry accounting the amounts in negative (credit) don't have the same meaning as in the accounting that is based on income and expenses.

              The indication of the credit amounts in negative is a much more efficient system than other ones that add codes to amounts, such CR, DEB, CR or brackets.

              This system is based on simple mathematical equations which assure that the accounting is correct. It is not by accident that the Double-entry accounting method has in fact been encoded by Luca Pacioli in 1494, one of the most illustrious mathematicians of the Italian Renaissance (he taught mathematics to Leonardo da Vinci). In his "Summa de arithmetica, geometria, proportioni et proportionalita", Luca Pacioli didn't just deal with the Double-entry accounting, but also with other mathematical questions.

              In the Renaissance there were no electronic calculators, and so they used to indicate the amounts in debit and in credit in separate columns. The result was that it became easier to totalize the amounts. Today, with the computers, no calculations need to be made and the principal issue is to use a user-friendly system which is at the same time easy and correct.

              For those interested in accounting mathematics and the equations on which Banana accounting is based, the following explanation can be interesting. 

              Debit/Credit

              The Double-entry accounting leans on the principle that each movement is noted in debit as well as in credit and the amounts have to match.

              Debit = Credit

              The balance (the total difference between debit and credit) has to always be equal to zero

              Debit - Credit = 0

              In order to easily distinguish (very useful while working on the screen), the amounts in credit are indicated in red, preceded by the minus sign 

              Debit + (-Credit) = 0

               

              Two transaction examples

              Debit

              Credit

               

              Debit + (- Credit)

              Cash income

              200

               

               

              200

              for product sales

               

              200

               

              -200

               

               

               

               

               

              Several cash payments

               

              170

               

              -170

              for purchase of merchandise

              100

               

               

              100

              for office supplies

              50

               

               

              50

              small expenses

              20

               

               

              20

              Total

              370

              370

               

              0

              Balance (Debit - Credit)

              0

               

              0


              Balance Sheet and Profit/Loss Statement

              The mathematics of the Double-entry accounting anticipates the use of two "accounts".

              • Balance Sheet Account (Balance Sheet) keeps note of the financial state at a certain moment.
                • Debit represents the Assets
                • Credit represents the Liabilities (here will always means including the Equity)
              • Profit/Loss Account (Profit and Loss) keeps note of the progress.
                • Debit represents the Expenses
                • Credit represents the Revenue

              The transactions are entered in debit and in credit in the appropriate accounts of the Balance Sheet and the Profit/Loss statement.

               

              Balance Sheet 

               

              Profit/Loss Statement 

              Registrazioni

              Assets

              Liabilities 

               

              Expenses

              Revenue

              Cash income

              200

               

               

               

               

              for product sales 

               

               

               

               

              200

               

               

               

               

               

               

              Several cash payments 

               

              170

               

               

               

              for purchase of merchandise

               

               

               

              100

               

              for office supplies 

               

               

               

              50

               

              small expenses 

               

               

               

              20

               

              Total

              200

              170

               

              170

              200

              Balance (difference debit - credit)

              30

               

              30

               

               

              Equations with two columns

              Debit = Credit

              370 = 370

              Assets + Expenses = Liabilities + Revenue

              200 + 170 = 170 + 200

              Assets - Liabilities = Revenue - Expenses

              200 - 170 = 200 - 170

              Balance = Balance

              30 = 30

               

               

               

              The same transactions can be represented in a single column (credit in negative)

              The result is, of course, the same.

               

              Transactions 

              Balance 

              Sheet 

               

              Profit/Loss 

              Statement

              Cash income 

              200

               

               

              for product sales 

               

               

              -200

               

               

               

               

              Several cash payments 

              -170

               

               

              for purchase of merchandise 

               

               

              100

              for office supplies 

               

               

              50

              small expenses 

               

               

              20

               

               

               

               

              Balence (debit - credit)

              30

               

              -30

               

               

              Equations single column (credit in negative)

              Debit - Credit = 0

              270 - 270 = 0

              Assets + Expenses - Liabilities - Revenue = 0

              200 + 170 - 170 - 200 = 0

              Assets - Liabilities - Revenue + Expenses

              200 - 170 - 200 + 170 = 0

              Balance - Balance = 0

              30 - 30 = 0

               

               

              Equations for the business results

              The business result is the balance (Debit - Credit) of the Balance Sheet and the Profit/Loss Statement.

               

              Equations double column

              Assets - Liabilities = Revenue - Expenses

              200 - 170 = 200 - 170

              Balance of the Balance Sheet = Balance of Profit/Loss Statement

              30

              Balance of the Balance Sheet = Assets - Liabilities

              30

               

               

              Equations for the determination of the result (in two columns)

              Profit 

              Assets > Liabilities

              Expenses < Revenue

              Balance

              Assets = Liabilities

              Expenses = Revenue

              Loss

              Assets < Liabilities

              Expenses > Revenue

               

              One has a profit when the assets are higher than the liabilities and the revenue more than the expenses.

              One has a loss when the liabilities are higher than the assets and the revenue is lower than the expenses. 

               

              Equations single column (credit in negative)

              Assets - Liabilities - (Revenue - Expenses) = 0

              200 - 170 - (-200 - 170) = 0

              Balance of the Balance Sheet - Balance of Profit/Loss Statement = 0

              30 - 30 = 0

              Balance of the Balance Sheet

              30

              Balance of Profit/Loss Statement

              -30

               

               

              Equations for the determination of the result in a single column

              Profit 

              Assets - Liabilities > 0

              Expenses - Revenue < 0

              Balance 

              Assets - Liabilities = 0

              Expenses - Revenue = 0

              Loss 

              Assets - Liabilities <0

              Expenses - Revenue > 0

               

              One has a profit, when the balance of the Balance Sheet is positive and the balance of the Profit/Loss Statement negative.  

              One has a loss, when the balance of the Balance Sheet is negative and the balance of the Profit/Loss Statement positive.

              Use of noting in a single column

              Noting the data in double columns is ideal for transactions in paper books. The amounts in debit and in credit are inscribed in separate columns. The totals are being calculated at the end of the page and the totals and calculation of the results are being done at the end of the period.  

              Computerized systems offer the possibility to keep the balances of the accounts constantly updated. For the calculations, the software therefore normally use noting in a single column, with the amounts in debit in positive and the amounts in credit in negative. In order to use noting in double columns, the software would have to register the credit amounts in the Balance sheet in negative, and, in the Profit/loss Statement, register the credit amounts in positive and the debit amounts in negative.

              For the programmer's point of view, this solution is more complicated, and thus the majority of the software use internally the mathematics of the single column and noting in double columns only for the presentation. 

              Banana Accounting instead systematically uses the minus sign to indicate the credit amounts. Initially, the user has to get used to this system, but it has the advantage of being linear and allows for a better understanding of the mathematics on which the Double-entry accounting is based, especially when more complicated operations are being required like write-off's, profit at the end of the year or VAT due/recoverable.  

              For the presentation of the Balance Sheet and the Profit/loss Statement, the logic of the double columns is however more adapted. 

              Thus the print-outs of the Balance Sheet and the Profit/Loss Statement that are used for the presentation of the results are edited with Assets, Liabilities, Expenses and Revenue always in positive. When the Profit/Loss Statement is presented in a scalar format (Revenue minus Expenses), the Revenue is indicated in positive and the Expenses in negative.

               

               

               

               

              Organize yourself

              At the basis of the accounting, there are the accounting documents and receipts.
              The type of one's organizing with regard to the accounting, depends on the size of the activity and the amount of documents.
              The way one organizes things has to be adapted to what is needed.
              We are listing down below an indication of possibilities that have proven to be very useful.
               

              The different types of documents
              It is important to distinguish and organize specifically the different types of documents.

              • Basic documents: contracts for rent, telephone subscriptions, statutes, insurance contracts and everything that gets signed only once and is valid for several years. These documents need to be kept in a separate folder or binder, containing just this type of documents. For some of these very important documents (like receipts for down payments, etc.) it may be useful to make a photocopy and keep the original in a safe or a safe place. Don't make holes in important documents, but put them in transparent plastic folders. This binder is the basis of your activity/company and you need to handle it carefully.
              • Documents related to employees: Contracts, insurances related to personnel, and other; it is useful to keep these in a separate binder.
                If there are lots of documents, we advise you to use one binder per theme.
              • VAT Declarations: it is good to keep a special binder with the different declarations that you present at a regular basis (quarterly, by semester or yearly). For your VAT inscription or other general documents, it is better to keep them together with the basic documents.
              • Accounting receipts and documents of the year: these are receipts, invoices or other items that are related to an expense or a receipt. These have to be kept separately, year by year. For every year you will have a binder with these kinds of documents.

               

              Accounting documents
              A good day- to-day order is needed in order to enter the accounting transactions and to control the situation of the company, such as the cash flow, the totals of debtors and creditors, etc.

              1. All accounting documents (receipts, invoices, tickets) usually have to be kept for a minimum of ten years.
              2. Classify and put the accounting documents in order by date, together with the related bank statements for the payment or the receipt.
              3. Write a progressive number on the accounting documents (statements and others). With this number, that should be inserted in the Doc column, you can locate the accounting document, with the accounting as a starting point.
              4. At the end of the year, print a copy of the journal and keep it together with the accounting documents.
              5. Usually a new binder is being used for each year for the accounting documents.


              Issued invoices or receipts with an accounting at the moment of payment
              Small companies and associations enter the invoices only in the accounting at the moment of payment (cash method).

              1. Separate the issued invoices and those for which you have received the payment.
              2. Verify regularly the invoices on hold for which payment still needs to be received. As soon as the due date for the payment has passed, it is useful to send a payment reminder. Don't let too much time pass by, make sure you receive the payment for unpaid invoices. This takes time, but is it important.
              3. Once these invoices are paid, put them together with the normal accounting documents.


              Issued invoices or receipts with an accounting on the sales volume
              The invoices are being registered at the moment they are issued as well as at the time of payment.
              See also: Clients/Suppliers Registers

              1. Separate the issued invoices and those for which you have received the payment.
              2. Verify regularly the invoices on hold for which payment still needs to be received.
                As soon as the due date for the payment has passed, it is useful to send a payment reminder.
                Don't let too much time pass by, make sure you receive the payment for unpaid invoices. This takes time, but is it important.
              3. When you enter the issuing of the invoice in the accounting, make note of the registration on the invoice. On the transaction row, use the "Doc. Original" column to insert the invoice number.
              4. Once the are invoices are paid, move them over to the "paid" section, and enter them in the accounting.
              5. When you have entered them, make note of the accounting transaction on the invoice (for example with a "checked" sign)


              Transactions / frequency

              • It is good to regularly enter the transactions in the accounting (daily, weekly, monthly).
              • We strongly advise you to not neglect entering the accounting transactions, so that you always have updated information and can evaluate the progress of your activity.
              • By going over the different expenses account numbers, you can easily have an overview of the different expenses that you made.
              • The accounting is not just done for the tax authority.

              Starting a new accounting file

              An even easier start with the new templates

              In the new Banana Accounting Plus version, the start of a new accounting is made easier because many predefined templates for every need are included directly in the program. If you don't have specific accounting knowledge, you can use the new Income/Expense templates or the Cash Manager with descriptive accounts. The work will be intuitive, fast and professional.

              We advise you to immediately switch to Banana Accounting Plus and take advantage of the many new features.

              In order to create a new accounting file, there are different modes.

              Creating an accounting file, starting from a template included in the program

              Here we explain how to start an accounting file, starting from an existing template included in the program.

              1. File menu, New command
              2. From the Group section, select Double-entry accounting
              3. In the File section, select Double-entry accounting or Double-entry accounting with VAT/Sales tax.
              4. In the Examples/Templates section, select the language/nation and choose one of the templates that is closest to your own needs.
              5. By clicking on the Online Templates button you can access our website where we published all templates available for free.

              Setting up the file properties (basic data)

              • From the File menu, File properties command, indicate the company name that will appear in the headers of the printouts and on the other data.
              • Select the basic currency, with which the accounting will be kept.

              General use of the program

              Banana Accounting inspires itself from Excel. The user directions and the commands are kept as similar as possible to the ones of Microsoft Office.
              For more information on the general use of the program, we refer to the explanations on our page Program interface.
              The accounting is being contained in tables; all of them have the same way of operating.

              Saving the file

              1. From the File menu choose the Save as... command, preferably indicating the name of the company and the current year (for example, "company_2017")
              2. Choose the folder where the file should be saved (for example, Documents -> Accounting)
              3. The program will add the "ac2" extension.

              Customizing the Chart of accounts

              In the Accounts table, customize the Chart of accounts and adapt it to your own needs:

              • Add new accounts and /or delete existing ones (see Adding new rows)
              • Modify the account numbers, the descriptions (for example, enter the name of your own Bank account), enter other groups, etc.
              • To create subgroups, please consult our Groups page.

              In the Chart of accounts, you can also define Cost centers or Segments, used to attribute the amounts in a more detailed or specific way.


              The Transactions

              The Transactions have to be entered into the Transactions table; together they compose the Journal.

              In the specific columns:

              • Enter the Date
              • Enter the Document number, manually assigned to the paper document. This makes it possible to easily locate the documents once the accounting transaction has been entered.
              • Enter the Description
              • Into the Debit account column, enter the destination account
              • Into the Credit account column, enter the account of origin.
              • Enter the Amount. In the accounting with VAT, enter the gross amount, VAT included. The program will separate the VAT, splitting the net cost or net income.

              Speeding up the recording of the transactions

              In order to accelarate the recording of the transactions, you can use

              • the Smart fill function that allows the automatic autocomplete of data that have already been entered at an earlier date.
              • the Recurring transactions function, used to memorize recurring transactions into a separate table.
              • importing your bank or post office statement from the e-banking.

              Transactions with VAT

              In order to enter transactions with VAT please proceed as follows:

              • from the File menu, choose New command and choose Double-entry accounting with VAT/Sales taxes
              • Choose one of the existing templates for your nation with double-entry accounting with VAT codes and VAT Codes table.
                In order to enter transactions with VAT, please visit the Transactions page.

              Transactions on multiple rows

              Transactions on multiple rows or Composed transactions are transactions involving more than two accounts and credits/debits on multiple accounts (for example when you pay different invoices from the bank account). In this case you need to enter the transaction on multiple rows:

              • in the first row enter the total amount and the account debited or credited
              • when all the individual debit and credit rows are entered there shouldn't be any difference

              For more details, consult the page Composed transactions.

              Checking customer and supplier invoices

              Banana allows you to keep an eye on the invoices to be paid and the receivable, issued invoices. Please consult:

              The Account card

              The Account card automatically displays all the transactions that have been recorded on the same account (for example, cash, bank, clients, etc).

              To display an account card, just position yourself with the mouse on the account number and click on the small blue symbol that appears.

              Account card by period

              To display the account card with the balances referring to a specific period, click on the Account1 menu, Account card command, and in the Period section, activate  Period Selected, entering the Start and the End date of the period.

              For more details, consult the Period page.

              Printing the Account card

              In order to print one account card, just display the card from the Accounts or the Transactions table and launch the print from on the File menu.

              To print several or all account cards, click on the Account1 menu, Account card command, and select the account cards that need to be printed. By means of the Filter, all the account cards, or only a part of all of them (for example, only accounts, cost centers, segments), that need to be printed can be automatically selected.

              For more details, consult the Account Card page.

              The Balance Sheet and Profit and Loss Statement

              The Balance sheet shows the balances of all the estate accounts, Assets & Liabilities. The difference between the Assets and the Liabilities determines the Share capital

               

              The Profit & Loss statement shows all the Expense & Revenue accounts. The difference between the Expenses & Revenue determines the Profit or Loss of the Accounting year.

              The display and the printing of the Balance Sheet is being executed from the Account1 menu, Enhanced Balance Sheet and Enhanced Balance Sheet with groups commands.

              • The Enhanced Balance Sheet command simply lists all the accounts without distinguishing Groups and Subgroups
              • The Enhanced Balance Sheet with groups command lists all the accounts while subdividing Groups and Subgroups; besides, it presents numerous features to customize the presentation, functions that are not provided in the Enhanced Balance Sheet.

              Data archiving in PDF format

              At the end of the year, when the entire accounting has been completed, corrected and audited, all the accounting data can be archived with the Create PDF dossier command of the File menu.

              The Budget

              Before you begin a fiscal year, you can estimate the costs and revenue, so you have your company's economic and financial situation under control.
               
              The budget can be set up in two different ways:
              1. Accounts table, Budget column. For each account, the annual budget amount is being indicated.
                In this case, when you set up the Budget from the Account1 menu, Enhanced Balance Sheet with groups command, the Budget column displays the amounts that refer to the entire year.
              2. In the Budget table, that can be activated through the Tools menu, Add new functionalities command.
                In this table, you can enter all the budgeted costs and revenue by means of entering transactions. If you activate this table, the column of the accounts table will be automatically deactivated.
                In this case you can set up a detailed budget, taking into account the possible variations over the year and in different periods of the year.

              For more details, consult the page Budget.

               

              Chart of accounts

              Financial situation under control

              You need to setup you chart of accounts in the Accounts table: setup the accounts and the groups where the accounts must be totalized. With this operation you create the accouts that will be used when entering the transactions. The chart of accounts structure is the same that will show in all Balanche sheet and Profit & Loss statement presentations.
              In the Accounts table there are also the columns of the initial balances, movements and current balance, which are automatically updated by the program.
              The chats of accounts therefore provides an immediate and complete view of your financial situation.

              • Liquidity accounts
              • Balance sheet
              • Profit & Loss statement
              • Result of the current year
              • Clients and Suppliers register
              • Cost and Profit Centers

              Different kinds of rows and sections

              The Accounts table (charts of accounts) is both the setup tool and the viewing tool for the economic and financial situation.

              In the chart of accounts (Accounts table) all data necerrary to group the mouvements are entered:

              • Accounts
                They indicate on what account (debit ore credit) the transactions must be registered.
                Each account has a code or number (account number), a description, a class and a group to which it belongs; they also have an opening balance, the current balance, the budget, etc...
              • Costs and Profits centers
                They are special accounts whose number is preceded by a full stop ".", a comma "," or by a semi-colon ";". Their purpose is to be able to assign some amounts to special accounts other than the basic accounting accounts.
              • Segments
                They are a sort of sub-accounts who's number is preceded by a ":". Their purpose is to be able to assign some transactions to subcategories of the accounting plan.
              • Groups
                Their purpose is to create rows where the program adds up the amounts of other rows.
              • Sections
                They indicate the accounting plan divisions for the Balance Sheet and Profit and Loss Statement printouts, ...

              The columns of the double-entry accounting charts of accounts

              • Section
                Codes are being entered that allow the user to only print determined parts of the Chart of accounts, when printing the Enhanced Balance sheet by groups.
              • Group
                Contains the code that defines that this is a group row. The group code is then used in the GR column to indicate the totalization of an account or group.
              • Account
                The account number, cost center or segment is being entered.
              • Description
                A text to indicate the name of the account, group, or section.
              • Disable (only visible in the Other view)
                By entering 1, the account does not appear in the autocomplete list, but can be used in the Transactions table;
                By entering 2, the account is disabled and can not be used.
              • BClass
                It indicates whether the account is 1 = Assets, 2 = Liabilities, 3 = Expenses, 4 = Revenue, see the Accounts
              • Gr (Totalize in)
                It indicates a group so that the program can totalize this line in the group.
              • Gr1 and Gr2
                Additional grouping codes to use with external accounting report files.
              • Opening balance
                Insert the account balance at the beginning of the year.
                The amounts in credit must be entered preceded by a minus sign. The total of the debit amounts (positive) and those in credit (negative) must balance and result in zero. If the opening balances do not balance a difference is shown in the information window.
                If you have added or pasted accounts and the difference is not correct, proceed with a Recheck of the accounting (Shift + F9)
              • Movement Debit and Movement Credit (Protected columns)
                The total of the debit and credit movements included in the Transactions table.
              • Balance  (Protected column)
                The balance of the account includes the opening balance and the movements in debit and credit.
                The balance in debit is positive, while a credit balance is negative (minus sign).
              • Budget
                The budget amount for the current year is being entered.
                The budget amount for the Expenses (debit) must be inserted in positive, the Revenue in negative (credit).
              • Difference Budget (Protected column)
                The difference between Balance and Budget amount.
              • Previous
                The balance of the account at the end of the preceding year.
                With the command "Create new year" or "Update opening balances", the values in the Balance column of the file of the preceding year are being carried forward.
                When a new accounting is being created and the user wants to obtain printouts with the amounts of the preceding year, the values of that year have to be entered manually.
              • Prev. yr. Difference (Protected column)
                The difference between the Balance and the amount of last year.
              • VATNumber
                The VAT number in case this account is linked to a client or a supplier.
              • VATCode
                The VAT code that needs to be applied automatically, when this account is being entered in the debit A/c or credit A/c column of the Transactions.
              • Adresses columns
                It is possible to have the program add addresses columns in order to manage customers or suppliers data.
                 

              Adding or moving columns

              • When an Amount column is being added in the Chart of accounts, the program composes the total of the amounts according to the selected grouping scheme
              • Added columns of the Number type, on the contrary, are not being totaled.
              • With the Columns setup command, the columns can be made visible, the sequences can be altered and it is also possible to add other columns.
              • With the Page setup command one can also define the layout of the print (portrait or landscape) and the zoom.
                 

              Accounts list ordered by description or other criteria

              In you need to order your accounts in a different way, use the Extract and sort rows command from the Data menu.

              Views

              The chart of accounts is created with default views.
              • Base Displayed are the principal columns, the grouping columns and the balances
              • Transaction Displayed are the columns with the Debit and Credit transactions.
              • Budget Displayed are the Budget column and the Difference Budget column. 
              • Previous Displayed are the Previous column and the Difference Prior columns regarding the previous year 
              • Other The Disable column, the VAT number and the Fiscal number column are being displayed.
              • Print Just the Account column, the Description and the Balance is being displayed.

              The views can be customized and others can be added with the command Views setup.

              Trial Balance sheet

              At any time, positioning yourself in the Accounts table and using the Print or Print preview commands (from the File menu), you can view and print the account plan or part of it.
              Also from the Accounts table, if you select Movement view, you can view and print your trial balance sheet.

              Advanced printouts

              The following commands allow the user to display and print the accounts in a different way:

              Accounts

              Bookkeeping accounts

              In order to create an account, go to the Accounts table and enter a number or a code in the Account column.
              This same number is then used in the Transactions table as Debit or Credit account.

              • The account number can be composed by numbers, letter and separations characters.
              • It is not possible to have more than one account with the same number.
              • Each account must have a BClass and must belong to a group.
                 

              The BClasse

              Each account must belong to one of the following BClasses:

              • 1  for Assets
              • 2  for Liabilities
              • 3  for Expenses
              • 4  for Income

              The BClasse number must be as indicated, regardless the account or group code. It is also possible to create Off Balance Sheet accounts (for example for warranty down payments, e conditional committments), that must have the following BClass:

              • 5 for Off Balance Sheet: Assets
              • 6 for Off Balance Sheet: Liabilities

               

              Opening balances

              The opening balance of each account is entered in the Opening + currency symbol column.

              • The Assets balances are shown normally
              • The Liabilities balances are entered with the minus sign (negative)
              • Usually only the Assets and Liabilities opening balances are entered.

              In order to automatically transfer the opening balances for the following year, please visit the Create New Year lesson.


               

              Opening balances differences

              In a correct accounting file, the total of the Assets opening balance should be equal to the total of the Liabilities opening balance, so no differences are shown.
              If the totals do not match, the program will show a warning message telling you that there is a opening balances difference (Information window).
              If you have changed some account numbers and you think the error message is not correct, please Recheck the accounting.
              When using Banana Accounting for the first time, the opening balances must be entered manually.

               

              Accounts with addresses

              It is possible to add a few columns in the chart of accounts, to include the addresses management:
              Tools menu -> Add new functionalities command

              This command will add in the Chart of accounts the following things:

              • several columns (name, last name, company, town, ...) where you can enter the client / supplier / member address and data
              • the Address view where you can see the added columns (in order to change the view or the views organization please consult the Tables setup page)

               

              Clients/supplier register
              When in the accounting plan you need to manage a clients/supplier register, meaning a specific account list for all clients, you need to have complete data with address, phone number, email, VAT number, etc. in this case adding the columns of the Address view is very useful.


               

              Groups

              The grouping and totaling system

              The Banana grouping and totaling system is based on the following columns:

              • Group (TOTAL row)
                When, in a row, a group identifier is being entered, the row becomes a TOTAL row.
                In this row the amounts of the Gr column, that contain the same identifier, are being totaled. 
                When a group is present, there cannot be an account. .
              • Gr (Adds this row into the TOTAL row)
                The number here must be one of the numbers defined in the Group column.

              With this system, an account can be totaled in a group row, the group in another group and so on... in order to create different totaling levels. 
              This totaling system is very powerful and flexible, but it takes some "getting used" to it, in order to be able use it well.

              Examples of the main groupes in the Double-entry accounting

              Every Chart of accounts uses its own totaling system. Hereunder the main groupes of the Double-entry accounting are being explained.

              In the Double-entry accounting, the total of the Debit balances (positive) together with the Credit balances (negative) have to result in 0 (zero).

              • The 00 is the row where all the amounts are being added together.
                It is the "Summa summarum" of all the Debit & Credit balances.
                In case the Balances columns do not amount to zero, it means there is a Debit/Credit difference and thus most likely a mistake. In these cases it is useful to proceed with a checking of the accounting (see next point).
                In the Debit and Credit columns of the Transactions view (Accounts table), there are only positive amounts, so also in the row of the 00 group, there will be the total of the transctions not equal to zero.

              The calculation sequence to arrive at 00 is therefore as follows:

              • The 1000 account -> group 1 (Total Assets)-> Group 00
              • The 2000 account -> group 2 (Total Liabilities) -> Group 00
              • The 3000 account -> group 3 (Total Revenue) -> Group 02 (result Profit & Loss Statement)  ->  Group 297 (Profit/Loss of the current year in the Balance Sheet) -> Group 2 (Total Liabilities) -> Group 00.
              • The 4000 account -> group 4 (Total Expenses) -> Group 02 (result Profit & Loss Statement)  ->  Group 297 (Profit/Loss of the current year in the Balance Sheet) -> Group 2 (Total Liabilities) -> Group 00.
                 

              The result of profit & loss statement is added in equity

              As you can see in the example, the Group 02 (Profit /Loss from Profit & Loss statement) is totalized in the 297 liabilities group (current year result).
              With this group organization, we have several advantages:

              • In current year operating result is displayed in the balance sheet
              • The Total Liabilities will match the Total Assets (provided that there is no accounting error).

              Adding or deleting subgroups

              Adding a totaling level

              With this system it is easy to add totaling levels.
              When we want to create a subgroup for the Cash & Cash equivalents accounts:

              • Enter an empty row after the bank account
                • Enter the value 10 into the Group column
                • Enter the value 1 into the Gr column
              • Indicate the Gr 10 in the accounts 1000 et 1020
              • The sequence for the calculation becomes:
                The 1000 account -> Group 10 (Cash & Cash equivalents) -> Group 1 (Total Assets) -> Group 00. 

              In case you want to insert another subgroup, "Current Assets", proceed in the same way.

              • Add an empty row above the row of the Total Assets.
              • In the new row:
                • Indicate the number 11 in the Group column
                • Indicate the number 1 in the Gr column
              • In the Clients and Goods for resale (inventory) rows, indicate the Gr 11.

              Deleting subgroups

              In case the Chart of accounts shows subgroups that are no longer needed or not wanted, these can be deleted. Just delete the row of the subgroup and modify the Gr of every account that was part of that subgroup.

              Checking of the structure

              Once the Chart of accounts has been set up, execute the Check accounting command of the Account1 menu. In case there are errors, the program issues a warning.

              Infinite loop error

              This warning appears when a Group is being totaled in a Group of a lower level, reason for which an infinite error loop is being created.
              There would be an infinite loop when, in the preceding example, the Assets Group (1) would be totaled in Group 10.
              The program, after having calculated the Group 1, would total the amount in Group 10, which in turn would total the amount in Group 1, and then again in 10 without ending.

              Profit & Loss Statement with Gross Profit

              It is also possible to use a Profit & Loss Statement that starts with the total Business result and that subtracts the costs.
              Hereunder the example of the Swiss PME Chart of Accounts is shown.


              Extended use of the totaling system

              The totaling system is very flexible:

              • In one Group, it is possible to add Groups as well as Accounts
                This can be seen in the earlier shown example where the Group Cash & cash equivalents (10) and the accounts (1100 and 1300) are being totaled in the Assets
              • You can use whatever kind of numbering
              • You can create up to a hundred totaling levels
                • The Total row can be after the rows
                • The Total row can be before the rows
                • The Total row can be completely elsewhere, in a separate position
                  This is being used to create registers (for example, a client register)
              • The accounts and the Groups can be totaled in one single other Group.
                It is not possible to total one and the same account at the same time in two groups.
              • This system is also being used to total the Cost centers and the Segments
                Pay attention though to not use different groups for normal accounts and for cost centers, because the resulting amounts will not be correct. 

              Totaling of the Amount columns

              The calculation procedure totals the amount columns

              • The amount columns defined by the system are being totaled.
              • The amount columns added by the user are being totaled.

              The sequence of the calculation

              The programme calculates the totals in the following manner:

              • Sets the values of the Amount columns of the Groups rows on zero
              • Totals the amounts of the Account rows into the Group rows (first calculation level)
              • Adds the balance of the Group rows into the Group(s) of a superior level
                Repeats the operation until all the levels have been calculated.

              Related Documents

               

              Sections

              In order to create automatically an Enhanced Balance Sheet with groups, the chart of accounts needs to be configured with special codes that are to be entered in the Section column:

              * Title 1 the asterisk separates the sections and indicates the main headers
              ** Title 2 to be entered for the secondary headers
              1 Assets to be entered in the row of the Assets title
              2 Liabilities to be entered in the row of the Liabilities title
              3 Expenses to be entered in the row of the Expenses title
              4 Revenue to be entered in the row of the Revenue title
              01 Client's Register to be entered in the row of the Client's Register title
              02 Supplier's Register to be entered in the row of the Supplier's Register title
              03 Cost Centers to be entered in the row of the Cost Centers title
              04 Profit Centers to be entered in the row of the Profit Centers title
              # Notes to be entered in the row of the Notes title
              #X Hidden data

              to be entered in the row from whereon the data have to be hidden

               

              Sections in the Assets

              • Enter a * on the same row as the Balance Sheet title
              • Enter 1 on the same row as the Assets title

               

              Sections in the Liabilities

              • Enter 2 on the same row as the Liabilities title


              Sections in the Profit & Loss Statement

              • Enter a * on the same row as the Profit/Loss Statement title
              • Enter 4 on the empty row below the Profit/Loss Statement title

              Note: when there is a clear distintion between Revenue and Expenses in the Chart of accounts, you need to:

              • Enter 3 on the same row as the Expenses title
              • Enter 4 on the same row as the Revenue (Income) title .

               

              Sections in the clients/suppliers register

              • Enter * in the same row as the Clients/Suppliers register title or on a empty row (as in the following example)
              • Enter 01 on the same row as the Clients register title
              • Enter 02 on the same row as the Suppliers register title

              The amounts will be shown in the same way as for the Assets and the Liabilities.
              This encoding is also valid when the clients and suppliers are configured as cost centers.

              In case there are cost or profit centers configured, enter the following elements

              • An * on the row of the Costs and Profit Centers title, or on a empty row
              • 03 on the same row as the Cost centers title or on an empty row preceeding the Cost Centers
              • 04 on the same row as the Profit centers title or on an empty row preceeding the Profit Centers

              The Cost Centers amounts will be shown as positive (in black) like the expenses; the Profit Centers amounts will be shown in negative (in red)  like the revenue;

              For more information please vist the Sections logic page

              Related document: Enhanced Balance Sheet with groups

               

              The Sections logic

              The sections different encoding entered in the Section column determines how the printout will come out.

              Each section is printed as a separate table.

              The directories

              • * Title 1 creates a level 1 directory.
                It can contain level 2 sections or directories.
                It is useful to group sections that need to be printed together, such as the Balance sheet, which contains Assets and Liabilities.
              • ** Title 2 creates a level 2 directory.

              The Base sections

              The section number or code determines:

              • how the amounts are printed; the amounts can be visualized just like in the Balance sheet or inverted.
                If the Credit amounts (in negative) are inverted, they will be visualized in positive, and the positive amounts will be visualized in negative.
              • which amount columns will be used; the Balance column or the Period Movement column are used.
                The Balance column indicates the account balance at a specific date (balance at Jun 30th).
                The Total Period Movement column indicates the movement amount on the indicated period.
                It is used for the Profit and Loss Statement and indicates the costs or the revenues for a certain period.

              Here is the explanation of the different sections

              • 1 Assets (amounts as in the accounting plan, balance column)
              • 2 Liabilities (inverted amounts, balance column)
              • 3 Costs (amounts as in the accounting plan, total movement column)
              • 4 Revenues (inverted amounts, total movement column)
                This section can be also used alone and it can include both costs and revenues (in case of a Profit & Loss Statement that starts with the total Business result and that subtracts the costs). In this case revenues would be displayed in positive and costs in negative.

              These sections must be unique. Therefore there can only be one 1 Assets, or one 2 Liabilities section. For other sections, like clients/suppliers register or cost center similar sections can be used.

              Derivatives Sections

              Those are Sections that are similar to the Base Sections

              • 01 Similar to Assets (amounts as in the accounting plan, balance column)
                It is used for the clients register.
              • 02 Similar to Liabilities (inverted amounts, balance column)
                It is used for the suppliers register.
              • 03 Similar to Costs (amounts as in the accounting plan, total movement column)
                It is used for Cost Centers.
              • 04 Similar to Revenues (inverted amounts, total movement column)
                It is used for Profit Centers.

              Other Sections

              There are other kinds of sections

              • # Indicates a Notes Section (it prints only the Description column)
                It is used for the Balance sheet attachments
              • #X Hidden Section. This section is not included in the sections selection and it is not printed.
                It is used to indicate parts not to be printed.

               

              Column width in printout

              The columns width is automatically set by the program.

              Sections 1, 2, 01, 02 have the same column width

              Sections 3, 4, 03, 04 have the same column width.

               

              Segments

              Introduction

              Segments are being used to have a more detailed classification of the costs, also to obtain calculations of components or departments of the company. By using the segments you can obtain a Profit & Loss Statement per unit, department or branch, without having to create specific accounts for each unit.
              For example a museum can use the segments in order to know the income, the personnel expenses or the setting up expenses for each exhibit.

              Segments are being used when a systematic attribution is necessary, that follows the transaction in debit or credit.
              Cost centers, on the contrary, are normally being used for additional cataloging, less structured and when the account sign is not necessarily being followed.

              Cost centers and segements can be used at the same time.

              Characteristics of the segments

              • Segments are accounts preceded by a colon ":".
              • Segments codes can consist of numbers or letters.
              • There may be up to 10 levels of segments.
              • The number of colons preceding the symbol for the segment indicates the number of level.
                • :LU segment of level 1
                • ::P1 segment of level 2
                • :::10 segment of level 3
              • For each level there may be an illimited number of segments.
              • The different levels of the segment are independent of each other.
              • The segments do not have BClasses and do not have a currency symbol
              • The calculations for segments are done in basic currency.
              • In the transactions, the segment follows the debit and credit account.
                It is not possible to record on a segment without having an account.
              • In the transactions, one can use a "-" as a separator instead of a ":" if on the File properties (Basic data) of the File menu the option Use the minus sign (-) as segments separator has been activated.
              • Account cards of the transactions on single segments can be obtained.

               

              Setting up segments

              The segments have to be configured in the Accounts table, Account column, at the end of the chart of accounts.

              • Insert an asterisk in the Section column in order to define the section relative to the segments
              • In the Description column enter the Segments title
              • Enter the description of the first-level segments, and in the Account column, insert ":"
                • List the segments of the first level, entering an identification code for each one of them in the Account column, preceded by ":"
                • Proceed by entering the segments of the second level (and, if necessary, those of the third), in the same way as those of the first level, with the only difference that the segment codes need to be preceded by "::" or by ":::", depending on their level.
                   

              Segment balance

              The segment is a subdivision of what has been entered on an account. The segment amount is thus always relative to an account, and in order to have the segment total, you need to use an Accounting report (from the Account1 menu), with a subdivision by segment (Subdivision tab). 

              In the chart of accounts the segment balance is indicated. This balance will be zero if the segment is used in both Debit and Credit accounts, since the amounts compensate themselves). The segment balance will be visible only when using it with the Credit or the Debit account, associated with the Profit and Loss statement account.

              Transactions

              The segments are being entered in the Transactions table, followed by the main account from the account segment.

              Each segment is preceded by the colon, or by the minus sign (-), in case the option Use the minus sign (-) as segments separator has been activated in the File and Accounting properties (File menu).

              If the chart of accounts contains accounts with "-" or "_", as for example in the clients/suppliers register's accounts), you can't use the same symbols as segments separators; in this case you need to deactivate the corresponding option and use the ":" symbol.

              When a segment that belongs to more than one level is being recorded, the segment of the first level needs to be entered right after the main account; then, continue with the code of the second level.


              Report

              Reports of the segments are obtained with:

              Report subdivision by level

              In the Enhanced Balance Sheet with groups, in the Subdivision tab, indicate the segment level to be used.


              Summary Report

              This is a summary with the segment that have been setup in the Accounting plan section, with a possible subdivsion (if desired) by period or by segment.

               

              Segment non assigned

              The "empy" segment gathers all the amounts that have been recorded without specifying a segment. It is possible to setup the title for this segment in the Accounts table. Please also select the Segment heather: Description option in the Subdivision section.

              Related document: Managing different projects

              Managing different projects

              With the Segments feature, it is possible to manage different projects, obtaining balance sheets that determine the profit or the loss of each project. 

              Example
              In an association, there are two projects that need to be managed:

              1. Courses
              2. Events

              On top of that, there are different branch offices with the same projects to be managed:

              • Rome
              • Milan

              The user wishes to obtain a balance sheet which indicates the profit or the loss of each project and branch office. 

               

              How to proceed:

              • Insert the segments at the end of the chart of accounts

              • Enter the transactions, and complete the debit and the credit accounts with the segments

              • From the Account1 menu, activate the Enhanced balance sheet with groups command
              • Select the available configurations in the different tabs; in the Sections tab in particular, deactivate the display of the Balance sheet accounts, the Client/Suppliers accounts and the Cost centers. The segments usually refer to the accounts of the Profit & Loss statement.

              • In the Subdivision tab, activate the Subdivision by segment option
              • Select the segment for which the balance sheet should be obtained (by project or by branch office)

              • Click on the OK button in order to display the report

              Report by projects

               

               

              Cost and Profit Centers

              The Cost and Profit centers (hereunder being indicated as Cost centers) allow the user to catalog the transactions according to different criteria than the usual accounts.

              Characteristics of Cost centers

              • The Cost and Profit centers (CC) are accounts, preceded by the ".", "," and ";" signs
              • There are three cost center levels:
                • CC1 preceded by a period "."
                • CC2 preceded by a comma ","
                • CC3 preceded by a semicolon ";"
              • Each level is independant of the other
              • For each level, there can be an unlimited number of cost centers.
              • A superior level can be used without using an inferior
              • Cost center codes can be alphabetic or numeric
              • Cost centers can have there own grouping, different than those of normal accounts. For the same level of cost centers, subgroups can be created. Be careful to not mix cost centers groups with other groups of a different level or with normal accounts or segments.
              • Each cost and profit center has its own account card, complete with transactions and balance
              • Recording on the cost center is independant of the account recorded in debit or credit. One can even record on a cost center without any account in the debit and credit column.
                 

              When to use cost centers

              Cost centers are usually being used to catalog certain expenses to specific activities, that are not necessarily linked between each other.

              • Projects, Events, Construction sites
              • Clients and suppliers, Members, Sales agents
              • Extra details for certain expenses

              The segments, on the contrary, follow the debit and credit accounts, and are being used as further subdivisions for expenses and revenue.

              It is possible to use cost centers and segments together at the same time.

              Setting up cost centers in the Accounts table

              Attention: If you work with a cash book, the cost and profit centers must be set up in the Categories table!

              • Create a specific section for the cost centers.
                This setup will be necessary for the presentation of the cost centers in the Enhanced Balance Sheet by groups.
                • Enter a section with an asterisk * for a section change
                • In the next row, enter 03 (or 04 for a profit center).
              • Add some empty rows for the cost center
                • In the Group column, enter the group to which the cost center account belongs
                • In the Account column, enter the cost center account precededs by a full stop "." for those to be registered in CC1 column (Transactions table), a comma "," for those to be registered in CC2 column and a semicolon ";" for the ones to be registered in the CC3 column.
                • In the Gr column, indicate the group in which the amounts have to be totalized.
                • In a Multi-currency accounting, the account currency is also specified.
              • Add the cost center groups
                • In one and the same group, totalize only one specific level.
                • As for normal accounts, different levels can be created.

               


              File Properties (VAT amount)

              In the File and accounting properties command, in the VAT tab you can set the amount of cost centers with the following options:

              • Use transaction amount - The amount of the cost center is registered according the registration amount
              • Use amount excluding VAT - The amount of the cost center is registered net of VAT.
              • Use amount including VAT - The amount of the cost center is registered inclusing the VAT.

               

              Transactions

              In order to register on the cost centers, it is assumed that the cost center accounts have already been entered into the Chart os accounts.

              To proceed with the recordings, you need to be in the Transactions table, in the Cost centers view; in the CC1, CC2, CC3 columns, you need to enter the cost center account without the punctuation that precedes it.

              • To record on the cost center in credit, the cost center needs to be entered preceded by the minus sign (-).
              • For the Income & Expense accounting, in the File and accounting properties, you can define for the cost centers to follow the sign of the category.
              • In order to record a global amount on more than one cost center of the same level, a different row needs to be created for each different cost center.


              Cost center account card

              The cost center is treated as any other account, so each cost center has its own account card with account balance and account transactions.
              In order to view all cost center account cards, click on the command Account/Category cards in the Account1, and then on the Cost centers button (Filter option).
               

              Related documents:

              Membership list

              In order to obtain the membership list with all the data that are useful for an association, the user needs to proceed as follows:

              • In the Accounts table, at the end of the Chart of Accounts, the membership list can be created by using the CC3 cost center column.

              • Activate the Address view, selecting from the Tools menu, the Add new functionalities command
              • In the window that appears, confirm the option Add addresses columns in Accounts table
              • Insert the data of the members
              • For a print-out: select the rows that need to be printed and activate the printing option only Selection.
                 

              In order to record the transfers from every member in the Transactions table, insert the CC3 account for each member, using the CC3 column. In order to display the CC3 column, click on the Columns setup command of the Data menu; double click on CC3 and activate Visible check box.

              In the Accounts table, the balance of the member's transactions is shown.

              To see all of a member's transactions, double-click on the CC3 account number.

              Related document: Cost and Profit centers

               

              Add / Rename

              Adding a new account or category

              • Position yourself in the row above the one where you want to add the new account
              • Add a new empty row with the command Add rows from the Edit menu
              • In the columns, insert the account number, the description, the BClass (1 for the Assets, 2 for the Liabilities, 3 for the Expenses and 4 for the Revenue), and the Gr which needs to be the same as the one inserted for the accounts belonging to the same Group.

              Note: If you first enter a transaction with a non existing account and later you create the new account in the accounting plan, you will first get an error message, that will go away only if you recheck the accounting with the Shift + F9 key, or the Recheck accounting command from the Account1 menu.

               

              Adding a new group

              • Position yourself in the row above the one where you want to add the new group
              • Add a new empty row with the command Add rows from the Edit menu
              • In the columns, insert the group number, the description and the Gr which needs to be the same as the group you wish this group to be totalized.

               

              Renaming an account or a group

              • Position yourself in the Account or Group column in the Accounts table, or in the Category column of the Categories table (or in the VAT code column in the VAT codes table)
              • Choose the Rename command from the Data menu
              • Enter the new account, group, category or code number

              The program will automatically update the Transactions table with the new number or code.

               

              Deleting an account or a group

              • Position yourself on the row number that contains the account that is to be deleted
              • From the Edit menu, click on the Delete rows command
              • Enter the number of rows that you wish to delete

              After deleting an account, a category or a group it is necessary to use the Recheck accounting command from the Account1 menu. The program will give you a warning message if the deleted account, category or group was used in the Transactions table.

               

              Opening balances

              Avoid mistakes with Banana Accounting Plus

              In order to facilitate checking your accounting work and to immediately find differences, in Banana Accounting Plus, our new version, we added the Balance column in the Transaction table. You can now see potential differences on each row and you can correct them right away. It is a very useful feature when closing the accounting period.
              Many of our clients have already tried it and are enthusiastic about it. We advise you to switch now to Banana Accounting Plus and take advantage of the many new features.

              Opening balances

              When using Banana Accounting for the first time, the opening balances need to be inserted manually in order to create the opening balance sheet.

              After having set up the Chart of Accounts, proceed as follows:

              1. Place yourself in the Accounts table, Base view, Opening column.
              2. Manually enter the opening balances of the Assets and Liabilities accounts. The Liabilities are entered preceded by the minus (-) sign.
              3. Check if the total Assets equals the total Liabilities so that your accounting balances. If there are differences in the opening balances you need to check and correct them.

              In order to automatically transfer the opening balances for the next year, consult the lesson Create New Year
               

              Transactions

              Avoid mistakes with Banana Accounting Plus

              In order to facilitate checking your accounting work and to immediately find differences, in Banana Accounting Plus, our new version, we added the Balance column in the Transaction table. You can now see potential differences on each row and you can correct them right away. It is a very useful feature when closing the accounting period.
              Many of our clients have already tried it and are enthusiastic about it. We advise you to switch now to Banana Accounting Plus and take advantage of the many new features.

              Entering Transactions

              Transactions must be entered in the Transactions table.

              The columns of the Transactions table

              The columns listed hereunder and preceded by an * are usually not visible.
              In order to make them visible, use the Columns setup command from the Data menu.

              Date
              The date the program uses to attribute the transaction to a certain time frame. The date should be within the limits of the accounting period defined in the Basic data of the accounting. In the Options tab, one can indicate whether the transaction date is required, if not this value can also be left empty.
              If there are locked transactions, the program gives an error message when an equal or earlier date than the one of the lock is being entered. 

              *Date Document
              The date of the document can be entered, for example the date of issue for an invoice.

              *Date Value
              The value date of the bank operation can be indicated. This value is being imported from an electronic bank statement.

              Document
              The number of the voucher that serves as a base for the accounting transaction. When entering transactions, it is advisable to indicate a progressive number on the document, so that the accounting document can be easily traced from the transaction.
              The autocomplete feature proposes progressive values as well as transaction codes that have been defined earlier in the Recurring transactions table.

              The program proposes the next document number, that can be resumed with the F6 key.

              • In case of a numeric numbering, the program simply increases the highest value found in the Doc column.

              • Alphanumeric numbering: the program increases the final numeric part; this is useful when one would like to keep a separate numbering for cash and bank movements.
                If earlier Doc number C-01 has been entered, and one starts to type C, the program proposes C-02.
                If earlier Doc number B104 has been entered, and one starts to type B, the program proposes B-105.
                If earlier Doc number D10-04 has been entered, and one starts to type D, the program proposes D10-05.

              In the recurring transactions you can setup transactions groups that can be reloaded with a single code.

              In order to add a large number of document numbers, you can also use Excel. You can create in Excel the desired quantity of document numbers and then copy and paste it into Banana, in the bcolumn of the Transactions Table.

              *Document Protocol
              An extra column in case an alternative numbering for the transactions or for the document is needed.
              The autocomplete feature proposes progressive values that function in the same way as the ones in the Document column.

              *Document Type
              Contains a code that the program uses to identify a type of transaction. If you prefer to use your own codes, it is advisable to add a new column.

              • 01 In the reports, this transaction is considered an opening transaction, so it doesn't show in the period but in the opening balances.
              • from 10 to 19: codes for customers' invoices
              • from 20 to 29: codes for suppliers' invoices
              • from 30 to 1000: codes reserved for future purposes.

              *Document Invoice
              A number of an issued or paid invoice that will be used together with the invoice control feature for customers/suppliers

              *Document Original
              The reference number present on a document, to enter, for example, the number of a credit note.

              *Link to external file
              Serves to enter a link to an external file, usually the accounting voucher.
              Pressing on the little arrow on the upper part of the cell, the program opens the document.

              *External reference
              Any reference number all ocated by a program that generated this operation. This value can be used to check whether a given task is imported twice.

              Description
              The text of the transaction.
              The autocomplete feature proposes the text of an already entered transaction, or of one that has been entered in the preceding year when the appropriate option has been activated. When pressing the F6 key, the program retrieves the data of the preceding row with the same description and completes the columns of the active row.

              In case the description begins with #CheckBalance, the transaction is being considered as one that serves to checkup the balance.
              Please consult our page Check accounting for more information on the subject.

              *Notes
              Useful to add notes to the transaction.

              Debit Account
              The account that will be charged.
              It is possible to also enter a segment in the Debit account column. These are usually separated by a ":" or a "-".
              In the accounts list, pressing the key with the segment separator symbol, one goes immediately to the next segment.
              If instead the Enter key is being pressed, the input finishes and one moves to the next column.
              The autocomplete feature proposes the accounts and segments. One can also enter a search text and the program shows all the accounts that contain that text in one of the columns.

              *Debit Account Description
              The description of the entered account retrieved from the Chart of accounts.

              Credit Account
              The account that will be credited. We refer to the explanation under Debit account for the rest of the information.

              *Credit Account Description
              The description of the entered account retrieved from the Chart of accounts.

              Amount
              The amount that will be entered unto the debit- and credit account.

              VAT columns
              Information on the VAT columns can be found att the VAT columns in the Transactions table page

              CC1
              The Cost center account preceded by "."

              *CC1 Description
              The description of the Cost center, retrieved from the Chart of accounts.

              CC2
              The Cost center account preceded by ","

              *CC2 Description
              The description of the Cost center, retrieved from the Chart of accounts.

              CC3
              The Cost center account preceded by ";"

              *CC3 Description
              The description of the Cost center, retrieved from the Chart of accounts.

              *Expiry date
              The date before which the invoice has to be paid.

              *Payment date
              Used in combination with the Show Expiry dates command.
              When instead using the invoices customers/suppliers control feature in order to check on the payments, a transaction has to be entered for an issued invoice and another one for the payment thereof.

              *Lock Number, Lock Amount, Lock Progressive, Lock Line
              More information at the Lock Transactions page.


              Adding new columns

              With the Columns setup command, it is possible to display, hide or move the order of columns, add new ones, or indicate that a column should not be included in the printout.

              • The added columns in the Transactions table will be added also in the Recurring transactions table, in the Account card and in the VAT report, without being made visible.
                In order to display these columns in the other tables, use the Columns setup command.
              • If a column of the "amount" type is being added, the entered amounts will be added up in the Account card. 


              Views

              When a new accounting is being created, the following views are being automatically created as well: 

              • Base: the main columns are being displayed
              • Cost centers:  the CC1, CC2 and CC3 columns are being displayed
              • Expiry dates:  the columns Expiry date and Payment date are being displayed
              • Lock: the columns relative to the Lock function are being displayed.

              With the Views setup command, the views can be customized and personal, added views can be created.
              With the Page setup command, you can modify the print mode of the view.


              Info window

              In the Information window at the bottom part of the screen, error messages and extra information about the used accounts and VAT codes are being displayed.
              For the accounts, the Account number, the Description, the Amount of the transaction (debit or credit) and the Current balance of the account is being indicated.

               

              Transaction types

              Avoid mistakes with Banana Accounting Plus

              In order to facilitate checking your accounting work and to immediately find differences, in Banana Accounting Plus, our new version, we added the Balance column in the Transaction table. You can now see potential differences on each row and you can correct them right away. It is a very useful feature when closing the accounting period.
              Many of our clients have already tried it and are enthusiastic about it. We advise you to switch now to Banana Accounting Plus and take advantage of the many new features.

              Simple transactions

              Simple transactions are the ones regarding two accounts (one Debit account and one Credit account) and entered in one single row. Each transaction has its own document number.


               

              Composed transactions

              Composed transactions with more than two accounts involved, have to be entered on several rows. The user should enter one account per row. The counterpart account for the entire transaction has to be entered on the first row.
              The document number, entered on the different rows, is the same because we are dealing with one and the same transaction.

              Note:
              In composed transactions, the dates of the transaction rows should be the same, otherwise, when doing calculations by period, there may be differences in the accounting.

               

              Recurring Transactions

              Recurring Transactions table

              In order to avoid rewriting always the same texts, it is possible to store transaction groups in the Recurring transactions table (Account2 menu). These groups are identified with a code and can be retrieved and entered into the Transactions table just by entering the corresponding code.

              When positioned on the Doc column of the Transactions table, the program proposes the list of the recurring transactions, grouped bycode. If one of these codes is selected:

              • the program enters the recurring rows that have the same code
              • the program completes the entered rows with the date and other values that have been entered earlier
              • the program enters the progressif number in the Doc column (based on earlier entered values)

              Entering recurring transactions

              • You need to enter into the Recurring transactions table (or copy from the Transactions table) the transaction rows that should be retrieved regurlarly.
              • Enter the code related to the recurring transactions group into the Doc column.
                Rows with the same group code will be retrieved together (transaction on multiple rows).

              • Progressive numbering of documents "docnum"
                If, when retrieving recurring transactions, you wish to have a Doc number different from the automatic one, you need to create a row containing the code "docnum" in the Doc column, and your desired text in the Description column. For the following rows, the text specified in the Description column, will be applied in the Doc column when retrieving the transactions
                • "0" when no automatic numberting is desired
                • "1"  progressive numbering
                • "cash-1" progressive numbering with the prefix "cash-" (cash-2, cash-3)
                  The program replaces the number indicated at the end of the text with the next progressive number.
                   
              • If you wish the program to suggest just one row per code, the description has to be preceded by:
                • An "*": displays just this row and not the others with the same code.
                • An "**" displays just this row, but don't retrieve this row (only title row).
                • An "\*" allows the user to start the description with an asterisk, without it being interpretated as a command.

              It is not possible to save customized setups in the Recurring transactions table; it uses the views and columns setup of the Transactions table.

              Retrieving the recurring transactions into the Transactions table

              • Enter the date and the information of the other columns that should not be modified
              • In the Doc column, choose one of the codes defined in the Recurring Transactions table and press Enter.
                • The program enters all the transactions with the same code, repeating the data column and other already entered values.
                • In the Doc column, a progressive number is being inserted or one as specified in the docnum
              • Or indicate the code in the Doc column and press F6

              Copying transaction rows into the Recurring Transactions table

              In order to copy rows from the Transactions table into the Recurring transactions table:

              • In the Transactions table, select the rows that need to be copied;
              • Edit menu -> Copy rows command;
              • Go into the Recurring transactions table;
              • Edit menu -> Insert copied rows command;

               

              Bank checks

              To enter issued bank checks, the user needs to insert an Issued checks account in the Liabilities. 

              The check is issued at the moment of paying a supplier and later on is being debited from the Bank current account.

              The Issued checks account card after the transactions.  

               

              Displaying expiry dates

              Customers & Suppliers Management

              In order to manage the invoices issued or received, we advise you to use the Customers Menu and the Suppliers Menu.

              Associate an expiry date to a transaction

              As an alternative to the customers and suppliers management, or for simpler checking purposes, you can also enter the payment date in the transaction row.

              This is an operating mode that consents simplified checkup.

              With the Columns Setup command (from the Data menu), you should make visible the Date Exp. and Date Pay columns.

              You should then enter the invoice expiration date in the Date Exp. column, and the invoice payment date in the Date Pay. column.

               

              Show expiry dates

              With the Show expiry dates command from the Account2 menu, the program displays the transaction rows that have an expiry date but no payment date.
               

               

              Link to a document

              Connecting digital documents to your accounting transactions

              With Banana, you can enter, for each transaction, links to digital documents stored on your computer.
              • Arrange a folder where you will save all your digital documents. It can be the folder where you keep your accounting file or subfolder.
              • Use this folder to save all files containing documents, invoices, receipts, etc.
              • Link the transaction to the digital document.
              • From the Account 2 menu choose the Link -> Open Link command to view the contents of the digital document.

               

              The DocLink Column

              The DocLink column (Transactions table) makes it possible to enter a link to an external file (usually a scan of a receipt or an invoice).

              • The DocLink column is usually not visible.
                In order to display it, use the Columns setup function.
              • Once the Link column is visible, you can directly edit the file name.
              • The file name is related to the accounting file; if the documents are in a sub-folder, the file name - in the DocLink column - will be preceded by the directory name.
              • It is equally possible to manually enter a web address in the Link cell.
                In order to open the linked document, click on the Open link command of the Account2 menu, or click on the small square that appears on the upper right hand corner of the cell that contains the link.

               

              Entering a link to a file

              There are two ways to enter a link to a document:

              • Place yourself on the row of the Transactions table and the activate the Add link command from the Account2 menu -> Links;
              • Select the file that corresponds to the document which needs to be linked and click on the Open button; the program inserts the link automatically. 
                The program enters the file name in the DocLink column, even if this last one would be invisible.

              Or

              • Display the DocLink column in the Transactions table. See: Columns setup;
              • Click on the small square at the upper right hand corner of the cell;
              • Indicate the path where the file can be found and select it.

               


              Editing a link

              Proceed in the same way as when entering a new link.
               

              Open link

              There are two ways to open the link:

              • Place yourself on the row of the Transactions table and the activate the Open link command from the Account2 menu -> Links;
              • Place yourself on the DocLink cell and click on the icon to open the link.

              For security reasons, the program opens only files with an extension that is considered secure, see Program Options -> Advanced, from the Tools menu.


              Remove link

              There are two ways to remove the link:

              • Place yourself on the row of the Transactions table and the activate the Remove link command from the Account2 menu -> Links;
              • Delete the contents of the DocLink cell.

               

              Lock transactions

              Blockchain certification

              Banana uses a digital certification system for the accounting data, using what is now called blockchain technology. Transactions can be locked and marked with digital codes that can guarantee, even after many years, that the accounting data are authentic. They also allow the user to make sure that the accounting data have not been modified. 

              Banana.ch was the first company in the world to use the blockchain technology in the accounting field. This method (US Patent No. 7,020,640) was developped and patented in 2002..

              This method guarantees one of the highest levels of data integrity and conformity to international law prescriptions. You can also see the evaluations on this matter of the audit company Ernst&Young, who verified the system conformity to the legislation requirements. The new versions of the Banana Accounting software don't use the MD5 method anymore (the one mentioned in the documents), but use the Hash SH256 method.

              This method, based on the blockchain calculation system, is considered so reliable that it is employed to ensure the validity of the bitcoin and of all other modern crypto-currency.

              The lock transactions command

              With the Lock transactions command of the Account2 menu, the accounting transactions are locked and marked with control codes that can certify, over the years, that the transactions have not been modified.

              • The validity of a possible already existing lock is being verified
              • The transactions until the lock date are being numbered progressively and are being locked. For each transaction, the digital code of the row and the progressive one are being calculated.
                The calculation of the digital codes is being done according to the sequence of the columns.
              • In the accounting is being indicated that transactions with an equal or earlier date than the lock date will no longer be accepted.

               

              Date of new lock (inclusive)
              Specify the date up until when the transactions will be locked.

              Password (optional)
              It is possible to insert a password to eventually unlock the transactions or to carry out a new lock in the future.
              If the program finds no errors in the transactions included in the lock date, it will lock the transactions, calculate and assign individual numbers and codes to each row of transactions which can be viewed in the Lock view on the Transactions table.

              Last lock
              The data of the following fields are automatically filled out by the program based on the last executed lock.

              Lock valid
              A "Yes" is shown if the lock is valid.

              Date of lock
              The date of the last executed lock is shown.

              Lock number
              This is the value automatically entered by the program in the last row of the LockNum column.
              When the lock is repeated, if the value of the last row lock number is unchanged, it means that the lock is valid and that the data have not been altered; if however the value is changed, the program shows the following codes:

              • (-1) if the lock is invalid from the first row
              • (-2) if there are rows that have the same LockNum.

              Progressive Hash
              This is the control code present in the last transaction.

              Lock View

              All digital codes are shown along with all the information that the program used to create the digital signature.

              • LockNum: the progressive number that identifies the row
              • LockAmt: the cumulative transactions total, similar to the total at the end of the page, as required by some national regulations
              • LockLine (hidden column): the digital code calculated according to the row values.
              • LockProg: the global electronic signature (SHA-256).

              The digital code LockProg
              This is the main element of the certification; it uses the blockchain methodology.
              The digital code is calculated according to the following values:

              • The contents of the current entry, including amounts, descriptions and the description of the account at the moment of the lock
              • The progressive number (LockNum)
              • The cumulative balance (LockAmt)
              • The progressive code of the preceding entry (LockProg).

              In case the accounting data undergo even the slightest modification (for example, a date or an amount is changed), the digital code will be different. If the control number remains the same, it implies that the data are original and therefore have not been changed.

              Check Lock

              With the Check lock info command of the Account2 menu, the program verifies the validity of the lock and displays the data.

              • The program recalculates the digital control codes and verifies if they correspond with the ones related to the transactions.
                • If the codes correspond, the lock is considered valid, and therefore the data are original
                • If they do not correspond, it means that the data have been changed and that they are not the original ones calculated at the time of the lock. 

              Unlock transactions

              The Unlock transactions command removes the lock and the control codes. If the lock was set with a password it will be necessary to reenter the password in order to remove the lock.
              If later on you want to relock the transactions, and they have not been modified, the control numbers will be the same as the ones of the earlier lock; if however some data have been changed, the control numbers will be different.

              Partial lock

              If the transactions have been locked, it is possible to unlock them even partially, from a specified date. If a lock password has been set, in order proceed unlocking the transactions, you need to enter it in the specific field.

              Why unlock the accounting?

              In principle, the locked accounting should not be unlocked. It might happen that, after the lock, you find errors in the accounting and see the need to make corrections.
              To have the opportunity to make further changes, users kept a copy of the file before the lock. If they found errors, they would restore the previous situation. In the meantime other transactions had perhaps been made, so often it happened that restoring previous versions of the accounting proved wrong. To avoid this unnecessary waste of time it was decided to make the Unlock transactions command available.

              The certification must not be confused with data security. The data certification is a methodology that ensures that the accounting data are original. To prevent data from being modified, the methodology is the one related to data security. Data security procedures, however, can only be implemented in an environment that limits data access.

              If the file is fully available to the user, such as when it is on a PC, people have complete control of the data. They can thus replace files easily. With a certification one cannot prevent that the data are being altered, but it will allow you to know if the data are the original ones.

              The person who keeps the books is responsible for the accounting and decides whether a change is permissible or not.

              Organizing the certification and data verification

              Once you locked the transactions of the period, you need to:

              • Print the lock information or print the last certified transaction row with its specific certification number (LockProgr).
              • Sign and store this information along with the accounting documentation or in any other safe place.

              In order to check that the accounting data are the original ones, you need to proceed as follows:

              1. Impart the Show lock info command.
              2. Go back to the document that shows the digital control number 
              3. Check whether the row identified with the LockNum still has the same digital control number
              • If the number matches , the accounting data are the same as those certified
              • If the number does not match , it means that the accounting data have been modified.      

              Banana works on developing applications that make it possible to compare two files and obtain indications regarding data that have been altered.

              Data security

              Digital certification ensures that the data are still the original ones. It does not prevent the modification of data.
              It is the responsability of the accountant to ensure that the data are not altered. Each administration must be organized according to its size and needs.
              Those who want to make sure that the data are not being altered by unauthorized persons , must employ other methods and tools, such as :

              • Save the data to a secure system (protected network drive), password protected.
              • Keep the copies of the data.
              • Encrypt archives.   


              Long-term archiving

              The accounting file contains the entered data. In order to open the file and obtain a report or an account card, you need to have the program at your disposition. 

              Banana Accounting gives the possibility to export all the accounting data, and its printouts as well, to Pdf, Html and Xml.
              The generated file can be saved on a CD and accessed on any computer even after many years, even by persons who do not have the Banana Accounting software.
               

              File and accounting properties

              This is where the main data of the accounting file are entered, such as the printout heading, the opening and closing dates, the basic currency, the company address, the profit and loss from exchange rate variation account (if you have a multicurrency accounting file), the VAT account (if you have chosen the VAT management option), the password, …

              The File and accounting properties window has the following tabs:

               

              Printouts

              New customization possibilities

              In the new Banana Accounting Plus version, the printing has been improved thanks to new possibilities of customization. Moreover, you can print the invoice with the QR code and other predefined and customizable layouts.

              We advise you to immediately switch to Banana Accounting Plus and take advantage of the many new features.

               

              Enhanced Balance sheet with groups - colored columns

              This example has been realized with the following features:

              Profit & Loss Statement with budget

              This example has been realized with the following features:

              Enhanced Balance sheet

              This example has been realized with the following features:

              Subdivision by quarter

              This example has been realized with the following features:

              Subdivision by segment

              This example has been realized with the following features:


              Pdf dossier with all the accounting data

              The file is being created with a summary that gives access to the different printouts in an easy way.

              The following data can be saved in PDF

              • Balance sheet and Profit & Loss statement
              • Accounts table, Transactions, VAT Codes, Totals
              • VAT reports
              • Account cards
                 

              If you save this file on a non-rewritable CD (to keep together with your accounting documents), this satisfies the legal requirements for archiving the accounting data.

              This example has been realized with the following features:

              File menu, Create Pdf dossier command

              Printing an extra column

              In order to print, in the Balance sheet, an extra column, the following features have been used:

               

              Enhanced Balance Sheet

              Print the Balance Sheet with your logo

              In the new Banana Accounting Plus version, the Balance Sheet with groups printout has been improved with new customization possibilities. Among the new features, the possibility to insert your logo.

              We advise you to immediately switch to Banana Accounting Plus and take advantage of the many new features.

               

              • The Balance Sheet represents all the Assets, Liabilities, Expenses and Income in a specific moment. The difference between Assets and Liabilities gives the personal capital.
              • The grouping of the accounts is done according to the contents of the BClass column.
              • The Enhanced Balance Sheet, shown in the preview, can be saved in different formats (PDF, HTML, MS Excel) and can be copied in the clipboard.
              • In order to calculate, display and print it at the end of year or the end of a period, activate the Enhanced balance sheet command from the Account1 menu.
              • Transactions without date are being considered as opening transactions and will not appear in the printouts of the Profit & Loss Statement.
              • The following window, in which several printing options can be activated, appears.

              See also Print Examples.
               

              Page header

              Rows 1 thru 4
              In this field, enter texts to use as headers when printing.

              Print cover page / Print date / Print page numbers
              The activated options will be shown in the print-out.


              Column header (Balance / Profit and Loss)
              The first two vertical fields refer to the Balance Sheet, the two second ones refer to the Profit and Loss Statement.

              Current year
              Insert the final date of the current accounting.

              Previous year
              In this field, enter the final date of the previous year's accounting.


              Print pages / Include in printout
              By selecting the appropriate cells, it is possible to choose the options that should be activated in the printouts.

               

              Other tabs

              The explanations for the other tabs are available at the following pages:


              Results

               

              Enhanced Balance Sheet with groups

              Print the Balance Sheet with your logo

              In the new Banana Accounting Plus version, the Balance Sheet with groups printout has been improved with new customization possibilities. Among the new features, the possibility to insert your logo.

              We advise you to immediately switch to Banana Accounting Plus and take advantage of the many new features.

              The Balance sheet with groups differs from the Balance sheet for the following characteristics:

              • Includes also subgroups in the printout, as in the chart of accounts (and not only groups).
              • Offers the possibility to exclude groups or accounts (for instance, to display only the total of the group and not the accounts of which the total is composed).
              • In the Chart of accountsSections it is possible to select which accounts to include or leave out in the printouts
              • It is possible to choose, for a given period, what kind of subdivision you want (for example in the first semester, you can choose wether to obtain the data by month or by quarter)
              • It is possible to have a subdivision by segment
              • ... and much more!

              In order to calculate, display and print the Enhanced Balance sheet by groups, click on the Enhanced balance sheet with groups command from the Account1 menu; a window appears, with different sections that allow the user to define the print setup.

              See also Print Examples.

               

              FAQ

              • If I exclude the groups with a zero balance, the title rows that refer to the excluded groups are still being displayed; how can I erase them?
                Go to Sections and activate Hide current row on the title rows that you wish to exclude.
              • I would like to exclude the display of the period in the titles of the printouts ("1st Semester 2013"); how can i do it?
                Go to the Headers section and deactivate the Print period option.
              • On the cover page, when there are long titles, I would like to be able to choose how to subdivide the texts on two rows and whether I wish to apply bold print. Is it possible?
                It is impossible to change the fonts on the cover page.
              • Some amounts are not included in the indicated period. Why?
                Transactions without a date are being counted as openings and do not appear in the printouts of the Profit & Loss statement. Be sure to enter the date into all the transactions.
              • The Total groups that contain all the accounts of the classes 3 and 4 are being renamed with the text Profit or Loss, depending on the result of the accounting period. Can I change that?
                Go to the Sections and overwrite the original text in the Alternate text zone of the active row.
              • In case the Show previous year option is being activated, and in the previous year file there are groups that are no longer present in the current year, the program will give error messages. Can I do something about it?
                In order to print the Balance sheet with data of the previous and the current year, the groups of the previous year have to also be present in the current year.

               

              Headers

              Header 1, Header 2, Header 3, Header 4
              Enter as headers the text you wish appearing in the printouts. They will be on the cover page and on each page headings.

              Print period and/or subdivision
              This option is active only when a specific period has been defined. When you deactivate this option, the period will not be indicated in the titles of the printouts.

              Footer

              Print page numbers
              By activating this function, page numbers will be printed.

              Print date
              By activating this function the date will be printed.

              Print cover page
              By activating this function the cover page will be printed.

               

              Layout

              Zoom
              The printout layout will change according to the entered value.

              Page orientation
              You can select the page orientation: automatic, landscape and portrait.

               

              Margins

              Top, Bottom, Left, Right
              It's the distance between the page border and the content.

              Header
              It's the distance between the page header and the content.

              Footer
              It's the distance between the page footer and the content.

              Increase margins to printable area
              If the content exceeds the page margins it will be automatically adjusted to fit the printable area.
               

              Sections

               

              This section can vary depending on the settings of the Section column of the accounting plan - See the related document: Sections in the accounting plan

              As on Accounts table

              The display and the printout settings of the Enhanced Balance Sheet with groups, are the same as in the Accounts table.
              Depending on the selection, there are different sections with different options:

              •     sections 1, 2, 3, 4, 01, 02, 03, 04... refer to the main items of the Balance Sheet
              •     account sections refer to the selected account
              •     group sections refer to the selected group


              Section*
              If you select a section with an asterisk, you will have the following options:



              Hide section
              Click on the section that you wish to hide.

              Hide current row
              Click on the row that you wish to hide.

              Start on new page
              Click on the header that you want to have on a new page and activate the option.

              Alternative text
              Enter an alternative text if you want to have a different one for the selected section or row.

              If you select a number or a group section (1, 2, 3, 4.....), there are extra options:

              Group for % calculation (%)
              This option is visible when selecting a section (Assets, Liabilities, ...). It is possible to indicate which group the % calculation should be based on.

              Hide child rows
              If you select a group and you activate this function, child rows of this group won't be printed in the Enhanced Balance Sheet.

              Show as account
              If you select a group and you activate this function, the group will be displayed as an account in the Balance sheet.

              External accounting report

              Print the Enhanced Balance Sheet by groups, based on the structure of the Accounting report file.

               

               

              Report File
              You can select the file of the External Accounting report with the Browse button.

              Grouping column
              Column in which the accounts refer to the groups defined in the External Accounting report. Available columns: Gr1, Gr2, Gr, BClasse and GrVat.

              Signal missing grouping
              Checks whether all accounts belong to a group in the External Accounting report.

               

              Rows

              Accounts, accounts with zero balance, accounts with transactions, groups with zero balance, empty rows.
              By activating the different options, you can include them in the printouts.

               

              Columns

              Balance Sheet, Profit & Loss Statement and Notes

              You can choose the options you wish to include in the Balance Sheet, in the Profit and Loss Statement and in the Notes:

              • Account number
              • Current: the balance or movement in basic currency referred to the selected period or period subdivision
              • Foreign currency: the balance in the account currency referred to the selected period or period subdivision
              • % of row: includes the column with the percentage referring to the total (for example, % total Assets)
              • Opening: opening balance at the beginning of the period
              • Budget: budget amount referred to the selected period or period subdivision
              • Previous period: the amount of the period previous to the selected period or period subdivision
              • Previous year: the amount of the same period in the previous year
              • Difference: the difference between the amounts of the current period and the other column (Budget, Previous period, Previous year)
              • % Difference: is the difference, expressed in percentage, between the current period and the other column (Budget, Previous period, Previous year)
              • Year-to-date: the balance or movement from the beginning of the accounting until the date of the last transaction.

              Headers editing, color or display change of the columns

              Each section has the Advanced button from where it is possible to change the column's settings and options.

               

              Columns (Advanced)

              By pressing the Advanced button, it is possible to change the column's header:

              • in order to make the column visible in the printout, check che corresponding checkbox
              • in order to change the sequence of the columns, drag up or down the name of the column you wish to move, or use the Move Up and Move Down buttons
              • In order to add new columns to be shown in the report (choosing them from a list) use the Add button
              • In order to remove some columns from the list, use the Remove button
              • In order to edit the display properties of a column (colors, headers, etc.) use the Properties button

               

              Headers and options (Columns properties)

              Headers

              Row 1/ Row 2 / Row 3
              It is possible to change the columns headers by selecting the Text option (from the drop down menu) and by entering the new header. If you select the Column option, the column name of the selected column will be shown.


              Options

              Visible
              If this cell is activated, the column header will be shown.

              Display as a total column
              If activated, this option only shows the amounts in the Totals column.

               

              Columns - add

              Add / Delete

              In the Balance sheet, Profit and Loss Statement and in the Notes, it is possible to add new columns (from the ones included in the list), or to delete the undesired ones. Starting from the Account1 menu -> Enhanced Balance sheet with groups -> Columns -> Advanced button -> Add button.

              If one or more options are being activated, the program includes:

              Accounts Table Columns

              If you click on the header a list of all the columns of the Accounts Table will be shown:
              You can then inlcude in the printout any column existing in the Accounts Table

              Accounting amounts

              These are the columns with the amounts calculated by the program, the opening balances and the entered transactions, for the indicated period or for the subdivision period

              Amount in the Account currency
              The account balances in foreign currencies will also be displayed.

              Current
              The balances of the current year will be displayed.

              Opening
              The Opening balances will be displayed.

              Previous (period)
              The balances of the previous period are being displayed (month, quarter, semester, etc).

              Previous Year
              The balances of the previous year are being displayed.

              YTD (Year To Date)
              This column is only available in the Profit & Loss Statement. The balances from the beginning of the year until the last transaction date are being displayed.

              Budget amounts

              See also Budget information. These are the columns with the amounts calculated by the program based on the budget amounts entered in the Accounts Table or in the Budget Table. If you created the Budget table and if some rows have been entered, the program will use the data of this table for its calculation, even if there are values in the Budget column of the Accounts Table.

              Budget (Current period)
              The amounts related to the foreseen budget of the current period are being displayed.

              Budget Previous
              The amounts related to the foreseen budget of the previous period are being displayed.

              Budget Previous Year
              The amounts related to the foreseen budget of the previous year are being displayed.

              Notes on calculation period

              The program cannot calculate amounts for periods overlapping between several accounting years or years with initial and final accounting dates that do not match.

               

              Colors (Columns properties)

              You can access this window by pressing on the Properties button, Colors tab (from the Enhanced balance sheet by groups command - Columns, from the Account1 menu)

              Change
              With this button you can change the text or the background color

              Default color
              With this button you can restore the default color for the text or the background.

               

              Subdivision

              From the Account1 menu choose the Enhanced Balance Sheet with groups command and select the Subdivision tab.

              None
              The whole period is shown.

               

              Subdivision by period
              This function makes it possible to display the dates of the selected period per day, month, bi-monthly, per quarter, per 4 months, per semester or per year. The selected period will be shown in the column headers. 

              Only segment
              Only the data related to the selected segment are being shown. 

              Create periods for the whole year
              When the accounting period is not the same as the solar year, but when the user still wants to see all months, this function needs to be activated. 

              Totals column
              This function creates a Totals column for the selected periods in the Profit / Loss Statement and in the Totals view of the Accounting reports command (Account1 menu).

              Max number of divisions
              The default maximum number of periods is 36. In particular cases, if the user would want to obtain special and very detailed statistics over a long time span, this value can be changed manually. A very high maximum number of periods can slow down the program.

               

              Subdivision by segment
              The data related to the selected segment are being shown. This option is only available if segments have been set.

              • Select all - all options will are selected
              • Void - only the amount not assigned to any segment is shown
              • Segments subdivision - Each subdivision will have the header given in the accounting plan. The data of the selected subdivision are shown.

              Totals column
              When this option is being activated, the totals for the selected segment will be obtained.

              Segment header
              You can choose the text to be displayed as column header for the segments.

               

              Period

              Explanation on the Period tab are available at the following link:

              https://www.banana.ch/doc8/en/node/2766

               

              Style Tab

              Use style
              There are different models of the Enhanced balance sheet provided. By selecting one, the user can obtain the Enhanced balance sheet of his choice. 

              Style property
              For each style, the color of the fonts and the backgrounds can be defined. 

              Value / Change... / Default
              These functions allow the user to change style or to restore the default style. 

              Ignore line formatting
              If this function is activated, the formatting will not be maintained.

               

              Number formats

              Divide by 1'000
              If there are big amounts, by activating this option, three zeros will be taken off.

              Show cents
              By activating this option the cents will be shown.

              Show zero amounts
              By activating this option it is possible to choose between having the zero amounts shown with the 0,00 number or with the -,- symbol.

              Negative numbers
              Negative amounts can be shown with a minus sign before the amount, after the amount or the amount can be shown between parenthesis. You can also activate the option to have the negative numbers shown in red.

               

              Texts

              This tab is used to alter the texts of the program columns headers for print-outs.

              In order to change the Value column you just have to double-click on the cell you want to edit.

               

              Attachments

              This sections allows you to add text that will be printent with the Balance sheet and Profit & Loss statement.

              • texts are printed after the Balance sheet and Profit & Loss statement.
              • each document begins on a new page

              Enhanced balance sheet Attachments


              Documents

              All documents listed in the Documents table (Html or text format) are listed here.

              • You can change the report sequence, just by dragging the item with your mouse
              • All documents with a check mark will be printed.

              Edit...

              A text editor will open allowing you to enter new text or edit the existing one.

              Add

              This button will open a text editor where you can add new text.
              If you haven't created the Documents table yet, the programm will automatically add it.

              Remove

              This button will remove the selected element and its content.


              Notes

              • This feature is not available in previous versions.
                If the file is open with a previous version of the Banana Accounting software, you will get a message that the file is not totally compatible.
              • If you edit this section and you press OK, in order to undo the operation you need to give the Undo command more that once.

               

              Composition

              Explanations on the Composition section are available at the following link:

              http://doc8.banana.ch/en/node/2768

               

              Account/Category cards

              The account card gives a complete list of the accounting transactions for one or several accounts, cost centers, segments and groupes.

              Opening the Account card

              There are two methods to open an account card or a category card:

              • Select the Account/category Card (Cash book and Income & Expense accounting) command or the Account card (Double-entry accounting) command of the Account1 menu in order to open and print several or all account cards.
              • On the account number cell there is a small blue symbol; click on it just once in order to obtain the account card.
                The groups of the Chart of accounts have the same symbol available as well, in order to display the account card.

              Updating the accounting card

              The account card table is temporary and it is calculated when the command is given to do so. If, in the Transactions table, transactions are altered or added, they are not automatically updated on the account card - the user needs to select the Account Cards command again or click, in the Transactions table, once more on the account number's blue symbol, or in case the account card is still open, click on the small Refresh button on the right side (see image hereunder).

              It is not possible to modify the data in the Account card. Double-click on the row number to go back to the original corresponding row of the Transactions or Budget table.

              The AccountSelected column

              In the AccountSelected column, which can be made visible, starting from any account card, through the Data menu -> Columns setup, the account on which the transaction took place is being displayed.
              When you get an account card of one or more accounts, groups and segments, you will see the exact account that has been used.

              The contra account in the account cards

              In the Account cards, the Contra Account column (C-Acct.), which indicates the account that completes the transaction, is being shown.



              When there are transactions on multiple accounts (transactions on multiple rows) as in the example hereunder, and there is one account entered in debit and several accounts in credit, or the other way around, the software deducts the possible contra account using the following logic:

              • In the first transaction row, the 1020 account is considered the common contra account of the transactions that follow.

              • On the Account card 1020, the composed transaction (Payment various invoices) shows the contra account indicated by the [*] symbol. It is impossible to have the indication of the contra accounts directly in the account card, because the account has several contra accounts (4500, 6700, 6700). For this reason the program indicates the [*] symbol in the C-Acct (Conta-Account) column, which means that we are dealing with a transaction on multiple accounts.

              • On the Account cards of the next transaction rows (4500, 6700, 6700), the common contra account is indicated between square brackets ("[1020]"), and indicates a deducted contra account.

              Cards of groups and classes

              In the Account card of a group or a class, all the transactions of the accounts that belong to the selected group or class are being grouped together.
              The accounts of the group or the class can be displayed by making the AccountSelected column visible.

              Print all account cards

              To print the Account cards:

              • Account1 menu, Account cards command
              • By means of the Filter, all the account cards that need to be printed completely or partially (for example, only accounts, cost centers, segments) can be automatically selected
              • In the various sections Period, Options, Composition, activate the desired options (for ex. period, 1 account per page, ...) 
              • Press OK to confirm, after having selected the desired options.

              For the explanations of the different tabs, please visit the next few pages: Accounts/Categories tab, Period and Options.
              The program will show the selected account cards.

              In order to print, choose the Print command from the File menu.

              When you have activated the Budget table in your file, you may choose which transactions you want to see (actual transactions or budget transactions).

              Save the settings

              In case you regularly print the account cards of specific accounts, for example, all those that concern the Sales accounts, it is useful to create a specific composition.

              • Go to the Composition tab
              • Create a new composition, using the New button
              • Indicate the name of the composition, for example "Sales accounts", in the Description field of the window
              • Select the accounts that you want to be printed.

              Every time you wish to print these accounts, you can select the composition that you created.

              Page setup

              In Page setup, you can specify the margins & other settings of the page.

               

              Accounts/Categories tab

              You can access this windows by choosing the Account1 menu -> Account cards command (see the Account cards page)

              Search

              Enter the account or the description in order to filter the accounts list.

              You can also enter the account to be displayed with segments (only experimental version).


              Accounts and segments can be combined (see developer explanations):.

              • 10000:01 will show all transactions of the 1000 account with the 01 segment. 
              • 1000|1001will show the transactions for account 1000 and 1001.


              Accounts

              The list of all available accounts appears.
              If you wish to print one or more account cards activate only the desired accounts.

              • (Select All)
                By activating this option, all the accounts that are part of the Chart of accounts are automatically selected.
              • Filter
                This function allows you to filter all account cards or just a selection, specifically:
                • Accounts, cost centre and segments - if no selection is made they are filtered by default
                • Accounts/categories (existing cost centres and segments are excluded)
                • Accounts, Cost centres (only segments are excluded)
                • Cost centres (accounts and/or categories and segments are excluded)
                • Segments (accounts and/or categories and cost centres are excluded)
                • Groups - existing groups will be shown - you need to select the ones to be printed
                • Classes - all classes will be shown - you need to select the ones to be printed.

              Actual or Budget

              When you have activated the Budget table in your file, you may select:

              • Actual transactions
                The entries in the Transaction tab will be processed.
              • Budget transactions
                The entries in the Budget tab will be processed.
                In the absence of the Budget tab, the amounts in the budget column of the account card, will be converted to monthly amounts on the basis of the opening and closing dates of the accounting file (if this one year, will be devided by 12 monthly instalments).


              Differences in accounting entries (account card 00)

              If differences in accounting entries occur (refer to the DEBIT - CREDIT difference error page), open the Group 00 account card (or the one in your Chart of Accounts that contains all the accounts of BClass 1,2,3,4).
              You will have a list of all transactions with the successive balances, which after each entering should equal zero. The row which balance is not at zero contains the error.

               

              Options tab

              Lines before end of page
              This function was created in order to avoid printing an account partially on one page and partially on the following. If the account card to be printed doesn't have at least a number of lines correspondent to the number input in this field, printing the whole card will be moved to the next page.

              One account per page
              By activating this function, each card will be printed on a separate page (even those with few transactions).

              Repeat column's headers
              By activating this function, the column headers will be repeated for each account, within the page.

              Include accounts with no transactions
              By activating this function, cards without transactions will be printed as well.

              View
              You can select the columns view to be included in the account cards display and printout:

              • Base
              • VAT
              • Cost centers
              • Expiration dates

              If no criteria is specified the program will keep the order present in the transactions table.

              Sort column
              In the account card, transactions can be sorted according to different data criteria:

              • Document date
              • Value date
              • Expiration date
              • Payment date

              Accounting report

              New Customization possibilities

              In the new Banana Accounting Plus version the Printouts have been improved thanks to the possibility of new customization possibilities.
              We advise you to immediately switch to Banana Accounting Plus and take advantage of the many new features.

              • This command allows the user to visualize the amounts of accounts with a specific grouping, for a specific period or with a specific subdivision.
              • In order to calculate, obtain and print reports, choose the Accounting reports command form the Account1 menu.
              • Transactions without date are being considered as opening transactions and will not appear in the printouts of the Profit & Loss Statement.

              Base tab

              Report
              You can select the desired grouping scheme:

              • As on Accounts table - the Report will show a list of all accounts just as in the Accounts table with the Opening balance and Balance columns
              • Accounts by class - the Report will show the list of the accounts but without subgroups
              • External accounting report - the Report will show the data according to a grouping system preset in a separate file (File menu, New command,  Double-entry accounting group, Accounting Report).

              Options
              You can select the accounts to be included or excluded:

              • Show group totals only - only the group totals will be shown
              • Include accounts with transactions - only accounts with transactions will be printed
              • Include accounts with 0 balance -  accounts with zero balance will be printed as well
              • Exclude groups without accounts - groups that contain only accounts with zero balance will not be printed.

              Other tabs

              The explanations for the other tabs are available at the following pages:

              Report result

              A new table is created where the results are shown.

              Journal

              With Banana Accounting the Journal corresponds to the Transactions table. It is possible to print the whole journal or just a part of it, selecting the rows that you wish to print.

              In order to personalize the journal printout you can change the columns order and headings: you can find all the information on how to proceed in the Columns setup page; you can also choose several options in the printout; please visit the Page setup page.

              There are different ways to print:

              • place yourself in the Transactions table and click on the Print icon
              • place yourself in the Transactions table and launch the Print command form the File menu
              • from the Account1 menu click on the Print journal by period command; in this case you should then indicate if you wish to print the whole table or just a specific period

              The information on the Period tab are explained in detail in the Period page of the General settings.
               

              In the Sort column tab in is possible to choose the criteria the journal should be sorted and printed.

               

              Budget

              Budget amounts entered in the Accounts table

              In the Accounts table, there is a Budget column where the budget for the current year can be entered.

              The Budget table, on the contrary, offers many more possibilities, and allows you to enter budget transactions, creating a detailed planning of your financial and cash (or cash equivalent) situation.

              For more information and examples please visit the Financial planning page.

               

              Adding the Budget table

              If your accounting file doesn't have the Budget table yet, proceed as follows.

              • Go to the Tools menu
              • Add new functionalities command
              • Choose Add Budget table
                Attention: this operation cannot be undone; if you want to go back to the previous situation, keep a copy of the pre-existing file.

              Thereafter, the program will:

              • Add the Budget table, carrying forward the budget values indicated in the Accounts table.
              • Lock the Budget column in the Accounts table.
                The values of this column are being calculated according to the budget transactions, using the period defined in the accounting tab basic data.


              Preparing the budget

              1. Enter the individual budget transactions in the Budget table
                Enter future operations as if they were normal transactions, but with a future date.
                For example:
                • If you want to have a budget for the monthly sales, enter a sale transaction: enter your cash or cash equivalent account in the Debit account column and enter the sales account in the Credit account column, for each month. As date you can enter a date around the end of each month and as amount you can enter the amount you expect it to be.
                  If you want to have a budget for each product sale, enter some sale transactions for each product with your expected sale volume.
                • For your expenses budget, enter some transactions entering your expense account in the Debit account column your cash or cash equivalent account in the Credit account column.
                  If there are recurring operations, you can use the Repeat column to specify the repetition pattern.
              2. Display the budget data
                • Go to the charts of accounts, and then into the Budget view, where you can view the total budget for your accounting period.
                • You can also use the Balance sheet with groups print option and check the Budget column option, which will display budgeted date next to the actually registered data.

               

              Budget table columns

              The Budget table columns are very similar to the Transactions table columns. In the following example, to make it easier to understand, we used accounts with letters. Normally you would use your own account numbers.

              In order to prepare a budget is normally enough the amount column.
              For more elaborate budgets you can also indicate the quantity, the unit prices, or you can enter a formula. The program will automatically calculate the amount in the Amount column.
               

              Entering the Budget transaction rows

              In the Budget table, the transactions can be entered in exactly the same way as in the Transactions table, indicating the date of the operation, the Debit and the Credit accounts and the amount. 

              You will here find the budget columns explanations (not all columns are visible in the image above):

              • Date column
                The future date when you expect the operation to take place:
                If you cannot precisely define the date, for example a monthly sales budget, enter the end of the month date.
              • Repeat column
                A repetition code can be entered, possibly preceded by a number
                (3M quarterly, 6M per semester, 7D weekly, 3ME quarterly end of month)
                • Empty: no repetition is taking place
                • "D" for a daily repetition (Day)
                • "W" for a weekly repetition (Week)
                • "M" for a monthly repetition (Month)
                • "ME" monthly repetition, but with a date at the end of the month.
                  If started the 28.02.2017, the next date will be 31.03.2017
                • "Y" for a yearly repetition (Year)
                • "YE" yearly, but with a date at the end of the month.
                  If started the 28.02.2015, the next date will be 29.02.2016.
              • End column
                The date beyond which no more repetition should appear is being indicated.
              • Variant column
                A possible variant form of the budget can be indicated here, in combination with the Apps.
              • ForNewYear column
                Here you can indicate how the transfer is to take place when Creating the New Year
                • No value: the date is being augmented by a year
                • "1" The date remains the same
                • "2" The operation is not being transferred to the new year
              • Debit account and Credit account, CC1, CC2, CC3 columns
                Just as in the Transactions table, you use these columns to define on which accounts the operation should be registered.
                You can also use segments and cost centers, to obtain a budget by segment or cost center.
              • Quantity column
                In this column you should enter the quantity description, for example sqm, ton, pc, ..
              • Price/Unit column
                The unit price that, multiplied by the quantity, should give the total amount.
                • In the Income & Expenses accounting files, you should enter the price unit in negative (with a minus sign), so the amount will be entered in the Expenses column
              • Amount column (in basic currency)
                The amount to be recorded.
                If the row has a repetition, the amount is indicated only in the first transaction; the amounts of the following transactions is shown in the account card.
                The program will automatically calculate the amount in the following cases:
                • If there is a value in the Quantity or Price/Unit columns, the amount is automatically calculated according to the content of these two columns.
                  • In a double-entry accounting file the result will be a positive amount
                  • In an Income & Expenses accounting file, if the result is positive it will be considered an income, if it is negative it will be considered an expense.
                • In case a formula was entered, the amount will be the result of the formula.
                  Formulas have priority over quantity and price/unit.
              • Total column
                This is the sum of the amounts of the repetitive rows that are part of the specific accounting period.
                To display the different amounts, use the Account cards command.
              • Formula column (in basic currency)
                This column gives the user the possibility to enter calculation formulas, of the javascript language, plus the programming functions of the Banana Apps as well.
                If there is a formula (or whichever text) the value of the Amount column is being set up according to the result of the formula. See below how to use it.
                • In a double-entry accounting file the formula result must always be a positive amount
                • In an Income & Expenses accounting file, if the result is positive it will be considered an income, if it is negative it will be considered an expense.
              • Amount in account currency column
                This is the transaction amount in account currency (see multi-currency transactions).
                This amount is necessary to calculate the value in basic currency, at the indicated exchange rate.
                If there is a formula, the value is the result of the calculation of the formula.
                In case of repetition, the first amount is being indicated.
              • Formula amount in account currency column
                A calculation formula can be entered.
                In case of repetition, the first amount is being indicated; the amounts of the following transactions is shown in the account card.
              • Total amount in account currency column
                This is the sum of the amounts in account currency of the repetitive rows that are part of the specific accounting period.
                If there is no date or if the initial or final date are not part of the accounting period, this column will be empty.


              Functions you can use in the Formula column

              If you want to see examples about formulas, please visit the following pages:

              In the Formula column you can enter a formula in JavaScript language, plus the Banana Apps programming functions.
              If there is a formula (or any text), the value in the Amount column is set according to the formula result.
              It allows you to enter calculation formulas, in the JavaScript language, plus the Banana Apps programming functions.

              • Last operation result.
                The formula is executed and the result displayed.
                10*3 //30 will be returned
                If there is a sequence of several operations separated by a semicolon ";", the last operation will be resumed.
                10*3;7;
                7 will be returned
              • Decimal separator.
                As decimal separator JavaScript only uses the point "."
                If you use a different separator, the number is likely to be truncated.
              • DEBUG  is a variable that can be true or false.
              • If true, in the messages, all the results of the formulas are being displayed.
              • row
                Is a javascript object that refers to the current row.
                The values of the cells can be retrieved with the value function ("columnNameXml").
                row.value("date") returns to the date of the transaction.
                • row.value ("JRepeatNumber") returns the progressive of the repetition.
                  The first repetition is 0.
              • budgetCurrent
                It is a table that contains the budget rows after the repetitions creation.
              • budgetExchangeDifference (account, [date, exchangeRate])
                This formula recalls the Banana.document.budgetExchangeDifference function.
              •  BudgetGetPeriod(tDate, period)
                Returns to the start date (startDate) and the end date (endtDate) relative to the date and the period where the period can be:
                • "MC", "QC", "YC" to indicate the month, the quarter or the current year.
                • "MP", "QP", "YP" to indicate the month, the quarter or the previous year.
                • t = BudgetGetPeriod('2015-01-01', 'MP') returns
                  t.strartDate // 2014-12-01
                  t.endtDate // 2014-12-31
              • The following functions are similar to those available with Banana.document, however, with the added possibility to indicate as startDate the period of BudgetGetPeriod so that the function uses the current date and as a start date and end date the date returned of BudgetGetPeriod.
                budgetBalance('1000', 'MP'); //returns the balance of 1000 to the end of the previous month
                budgetTotal('1000', 'MC'); //returns the total movement of the 1000 account for the current month.
                • budgetBalance(account, startDate, endDate, extraParam)
                • budgetOpening(account, startDate, endDate, extraParam)
                • budgetTotal(account, startDate, endDate, extraParam)
                • budgetBalanceCurrency(account, startDate, endDate, extraParam)
                • budgetOpeningCurrency(account, startDate, endDate, extraParam)
                • budgetTotalCurrency(account, startDate, endDate, extraParam)
                • budgetInterest( account, interest, startDate, endDate, extraParam)
              • credit(amount)
                If the amount is under 0 returns the amount in positive, if not 0 returns.
              • debit(amount)
                If the amount is greater than 0 returns the amount, if not 0 returns.
              • include
                Includes and executes a javascript file, with the possibility to create its own functions and variables that can be recalled in the script.
                • include "file:test.js" 
                  Executes the contents of the indicated file. The name refers to the file on which one is working.
                • include "documents:test.js" 
                  Executes the contents of the text document contained in the documents table.
                  This has to be a file of the "text/javascript" type.


              Variables

              It is possible to define and use variables directly in the rows.
              The variable must have been previously defined.

              price = 10;
              total = price * 5;
              

              User defined functions

              The user can define personal function with the JavaScript language, and recall them in the formulas.
              It is possibile to define functions:

              • Directly in a formula
              • In a JavaScript coded attachment; this attachment must have as row id the "_budget.js" name
              • In a text of the Documents table, that needs to be included with the Include command
              function Taxcalculation(profit)
              {
                 var percentage = 10;
                 if (profit > 50000)
                    percentage = 10;
                 else if (profit > 100000)
                    percentage =20;
                 return profit * percentage / 100;
              }
              


              Calculation and recalculation sequence

              Each time that you change an amount in the Budget table, or that you manually recalculate the file (Shift+F9), the program:

              • If it exists, first of all the program executes the "_budget.js" document content.
              • It recalculates the Budget table rows:
                • The program generates the repetitive row according to the Initial Date, Final Date and Repetition columns.
                  If there is in January a row with a monthly repetition, 12 identical rows will be created, each one with a date of a different month.
                • The budget rows are sorted by date (if they have the same date they will be listed in the order they were entered)
                  • The transaction amount is calculated according to the quantity and unit price or, if there is a formula, according to the formula result.
                  • For the multi-currency accounting, the program executes first the formula in the account currency, and then in the basic currency.
                    If there is no formula for the basic currency, the program will use the historic exchange rate and calculates the value in the basic currency.
                  • For the accounting files with VAT, the VAT is calculated according to the transaction's amount.
                • Rows previously processed will be used for the calculation of the following rows.
                  The accounts balance, at the budget row's date, will include the amounts previously processed.
                  If for example, in a February transaction you enter a formula to calculate the balance for the whole year, you will only get the balance up to the end of February.
              • It recalculates the budget values in the Accounts column, according to the budget transactions and to the opening balances.
              • It updates the Total column amount in the Budget table.

              If the initial or final date of the accounting is modified, as well as other values that are used for the calculation of the budget amounts (for example the VAT table), you need to operate a manual recalculation (Check accounting command from the Account1 menu).

              If you have many rows, with many recurring transactions and with a long calculation period, the program may slow down when recalculation the Budget table. In this case we suggest you to uncheck the manual recalculation in the File & accounting properties (File menu).


              Printing a budget

              In order to print your budget, use the Balance sheet with groups command from the Account1 menu. In the Columns section, activate the Budget column.

              If the budget was entered in the Budget table, you can also print the budget by period.


              Creating the New Year

              When creating the New Year, the program automatically recreates the budget transactions for the new year, according to the values of the New Year column in the Budget table. If this column is not visible you can activate it using the Columns setup command from the Data menu.

               

              End of the Year closure and New Year

              Avoid mistakes with Banana Accounting Plus

              In order to have continuity and serenity of work, it is also worth starting the New Year with an updated software.
              Facilitate checking your accounting work and immediately find differences: in Banana Accounting Plus, our new version, try the Balance column in the Transaction table. You can now see potential differences on each row and you can correct them right away. It is a very useful feature when closing the accounting period.
              Many of our clients have already tried it and are enthusiastic about it. We advise you to switch now to Banana Accounting Plus and take advantage of the many new features.
              Other resources: How to close and open the accounting year

              End of the Year closure and New Year

              At the end of every accounting year, before printing and filing the Balance Sheet and the Profit & Loss Statement, it is necessary to recheck the accounting file.
              Please visit the Recheck the accounting page.

              Tax aspects

              Before closing the accounting, is is necessary to proceed with a series of operations that have fiscal implications. The marchandise account needs to be adapted, the transactions for depreciations need to be entered, the accrued income and liabilities, the VAT declaration needs to be completed, establish how and unto which accounts the profit or loss has to be attributed and there are many other operations for verification and checking.

              From the program's point of view, there is no difference whether the profit is high or low. However, from a fiscal point of view, it implies a lot. These aspects need to be verified with your own tax advisor or accountant. It can be very useful, especially when you manage an accounting for the first the time and before you proceed with the closing of the books, to consult a specialist in order to understand what is required. The accountants are very busy at the beginning of the year and during the period preceding the deadline for the tax declaration. It can therefore be useful to meet with your accountant - or send him the accounting file - a few monts before the closing of the books, so that you can inform yourself on how to proceed.

              Create a New Year

              In order to start recording in the new year, with the Create New Year command of the Account2 menu and starting from the current year's file, a new accounting file is being created. Once the new year has been created and the file has been saved under a new name, the user can work in the file of the new year, but also in the one of the preceding year.

              You can thus create the file of the new year, even before having closed the year in which you are still working. After having entered the last modifications in the previous year, use the Update Opening balances command of the Account2 menu, to retrieve the opening balances and again attribute the profit of the last year.

              Performed Operations

              The Create New Year command:

              • Creates a new file (with no name) with the chart of accounts and all the settings identical to your current file, but without transactions.
              • Copies the data from the Balance column of your current file to the Opening column of the new file (only for the selected classes)
              • Adds the selected amount to the opening balance of the Profit or Loss from previous year account(s) in the new file.
              • Copies the data from the Balance column of your current file to the Previous Year column of the new file (for all the accounts).
              • Updates the opening and closing dates in the File and accounting Properties of the new file.
              • In the Multi-currency accounting, enters the closing exchange rates of the previous year as opening exchange rates.
                 

              Create New Year command

              • Open the current file and click on the Create New Year command from the Account2 menu: a window, that shows a difference corresponding to the profit or loss that has not yet been allocated, will appear. There may also be differences due to accounting errors.
              • From the list that appears, the user can select the account to which the result of the accounting period has to be allocated, or one can directly confirm with OK if the allocation of the result has to be postponed.

              Carry forward account opening balances
              The opening balances of the selected options are carried forward.
              Indicate which accounts are required to have opening balances carried forward. Usually the Profit and Loss Statements balances  are not carried forward. For specific needs you can always activate the option.

              Allocation profit/loss

              Total to allocate
              The program will indicate the profit/loss that needs to be shared between various accounts.

              Accounts/Amounts
              If only one account is selected, the amount will automatically entered. Select the account or accounts (up to three) in which the result of the accounting period has to be allocated. In case there are several destination accounts for the result of the accounting period, the amounts should be inserted manually in the different boxes. The program will automatically update the opening balances. The Total Assets will exactly match the Total Liabilities.

              Allocation of the result of the accounting period on more than three accounts.
              In this case, allocate the result of the accounting period automatically on the Profit or loss brought forward account as usual, and continue to proceed with the creation of the new year.

              In the new year (new file), Transactions table, proceed with a composed transaction in order to allocate the result of the accounting period from the Profit or loss brought forward account to the different destination accounts.

              • Confirm the File and accounting properties for the new year.
              • From the File menu, activate the Save as... command, indicating the folder where the new accounting file needs to be saved.

               

              Updating opening balances command

              The Updating Opening Balances command:

              • Retrieves the closing data of the indicated file
              • Copies them as data of the previous year in the current file (see Create New Year command).

              This command doesn't influence the already entered recordings. Infact, it is like when creating a new year, as if you are recording in the current year.

              Opening balances must be updated in the following situations:

              • When you have created the new year and afterwards you entered more transactions - or made corrections -  in the previous year
              • When the profit/loss of the previous year has not been allocated.

              Here is how to proceed to make the update:

              • Open the current year accounting file and choose the Update opening balances command from the Account2 menu
              • Select the previous year accounting file through the Browse button
              • Follow the same steps as the ones of the Create New Year command (see top of the page)

               

              Differences in the opening balances

              Avoid mistakes with Banana Accounting Plus

              In order to facilitate checking your accounting work and to immediately find differences, in Banana Accounting Plus, our new version, we added the Balance column in the Transaction table. You can now see potential differences on each row and you can correct them right away. It is a very useful feature when closing the accounting period.
              Many of our clients have already tried it and are enthusiastic about it. We advise you to switch now to Banana Accounting Plus and take advantage of the many new features.

              Differences in the opening balances

              At the opening of the Accounting year, the amounts of the Total Assets should correspond to the Total Liabilities, otherwise it is not possible to have a correct balancing. You need to check that in the information window there is no Opening balances difference message. If there is, you first need to correct the opening balances of the Balance Sheet so that the Total Assets balances the Total Liabilities (Opening balance column).

              In the following example the program shows an error message reporting a difference of 150.- CHF.

              After having corrected the opening balances the Total Assets must correspond to the Total Liabilities.

              It is also possible to check the balancing in the Totals table.

               

              Multi-currency accounting

              Multi-currency accounting is based on the double-entry accounting method and can also manage accounts and transactions in foreign currencies.

              Many topics of the multicurrency accounting are the same as the double-entry accounting. In order to find missing lessons or in-depth information, we advice you to consult our internet pages on the Double-entry accounting.

              Characteristics 

              • Manages the accounts also in foreign currency.
              • Calculates the conversion automatically, based on the exchange rate inserted in the Exchange rate table
              • Calculates the exchange rate differences automatically
              • Offers Balance Sheets and Profit and Loss Statements in a second currency as well.

              In order to change from a double-entry accounting file to a multi-currency accounting file, check the Convert to new file command

              Information

              Chart of accounts, file properties and exchange rates table
              We suggest to choose one of the already configured examples and to personalize it according to your needs. Please note that the chart of accounts must include the account for profit and loss from exchange rate variation and there must be accounts in foreign currencies.


              Transactions
              Accounting transactions must be entered in the same way as the double-entry accounting transactions


              Printouts


              Conversion

              In order to add multicurrency features to a double entry accounting file, please visit the Convert to new file page.

              If you want to change the basic currency of an existing accounting file (for example if your accounting file is in EUR and you want it in USD), proceed as follows:

              • Save the file under a different name
              • In the File properties
                • Indicate the new basic currency
                • Delete the reference to the previous year file
              • In the Exchange rates table enter the exchange rates referred to the basic currency
                • If there are many transactions to be converted, in the exchange table you can enter intermediate exchange rates (for examble for each month, indicating the beginning of the month's date). The program will use the historic exchange rate in the transactions.
              • In the accounting plan
                • Replace the old currency with the new one
                  You can use the Find and Replace function also (selected area only)
                • If there are opening balances, you need to re-enter them in the new currency
                • Also the Previous year balance, budget and other columns must be converted
              • In the Transactions table
                If there are trasactions, you need to correct them row by row:
                • For those transactions that are already in the right currency, with the F6 key the program recalculates the amount in the new basic currency.
                • For other transactions you need to enter the right amount tin the basic currency and then press F6
              • In the Budget table
                Proceed just as in the Transactions table
              • Use the Check accounting command, fix possible errors, and keep using the Check accounting command until there are no more error messages.

               

              Theoretical part

              In this part, the basic theoretical notions about currency exchange are being explained.

              Exchange rates and accounting issues

              Every nation has its own currency and to obtain another currency it is necessary to buy it using the appropriate exchange. The price of a currency compared to another is called the exchange rate. To change money means to convert the amounts of one currency to another. The exchange (exchange rate) varies constantly and indicates the rate of conversion.

              For example, on January 1st

              • 1 Euro (EUR) was equal to 1.32030 US Dollar (USD)
              • 1 US Dollar was equal to 0.7580 Euro
              • 1 EUR was equal to 1.60970 Swiss Franc (CHF)
              • 1 EUR was equal to 157.2030 Japanese Yen (JPY)

              Multi-currency Accounting One talks about multi-currency accounting or multi-value accounting when accounts in different currencies are kept. It is necessary to have multi-currency accounting when a company has bank, cash, and debtors’ accounts in more than one currency. Even if just one account is in a foreign currency it is necessary to administer a multi-currency accounting.

              Basic Currency

              The amounts referring to different currencies cannot be totaled directly. It is necessary to have a basic currency to refer to and to use for the totals. The main point of accounting is that the totals of the “Debit” balances must correspond to the totals of the “Credit” balances. To verify that the accounting is balanced, there must be a single currency with which to do the totals. If there are different currencies, the basic currency must be indicated before anything else. Once the basic currency has been chosen and some operations have been executed, the basic currency can no longer be changed. To change the basic currency, the accounting must be closed and another opened with a different basic currency. The basic currency is also used to establish the Balance Sheet and to calculate the profit or loss of theoperation.

              Each amount has its equivalent in basic currency

              To be able to add the totals and verify that the operations balance, it is necessary to have the equivalent in basic currency for every transaction. In this way you can check that the total of the Debit entries is the same as the total of the Credit ones. If the basic currency is Euros and there are transactions in US Dollars, there needs to be an exchange value in Euros for every transaction in US Dollars. All the Euro amounts will be totaled to verify that the accounting balances.

              Account currency

              Each account has its own currency symbol which indicates in which currency the account will be administered. You must therefore indicate what the currency of the account will be. Each account will then have its own balance expressed in its own currency. Only entries in this currency will be permitted on this account. If the account is in Euro, then there can only be Euro entries on this account; if the account is in USD, then there can only be entries in the specified USD currency on this account. When you have to administer entries in YEN, then you have to have an account whose symbol is the YEN.

              Account Balance in basic curency

              For each account, alongside the balance in the account’s own currency, the balance in basic currency will also be kept, in order to calculate the balance sheet in basic currency.
              The account card for the USD bank account has to correspond exactly to the bank statement as far as the USD amounts are concerned.
              The value in basic currency will always be specified for each accounting entry. If the account is in USD, in the entries there will be, beyond the amounts in USD, also its value in EUR. The EUR balance will be given by the sum of all the entries expressed in EUR. The actual balance in basic currency will depend on the exchange rate factors used to calculate the exchange value of each, single entry to EUR.
              If on a given day you take the actual balance in USD and convert it to EUR at the daily exchange rate, you will get an exchange value that differs from the balance of the account in basic currency. This difference is due to the fact that the exchange rate used for entries on a daily basis is different from the actual daily exchange rate.
              Thus there is a difference between the actual value at the daily exchange rate and the accounting balance in basic currency. This accounting difference is called the exchange rate difference.
              The difference between the balance in basic currency and the calculated value has to be registered, when the accounting is closed, as an exchange rate profit or loss.

               

              Balances in another currency (currency2)

              All the accounting reports will be calculated in basic currency. If you take the basic currency values and change them to another currency, you will get the balance in another currency. The program has a Currency2 column where all the values are automatically entered and presented in the currency specified as Currency2. The logic for the conversion of the amounts is the following:

              • If Currency2 is the same as the account or operation currency, then the original value will be used.
              • If the account is in USD and Currency2 is USD, the USD amount will be used.
              • In all other cases the basic currency amount will be used and changed into Currency2.
              • The daily exchange rate is used. Even for past entries, the exchange value in Currency2 will be expressed on the basis of the most recent exchange rate, and not on the historical one used on the day of the entry.

              You need to pay attention to the fact that a balance converted to another currency will show small differences in the totals. Often the converted value of a total is not equal to the sum of split exchange values, as can be seen from the following example:

               

              Moneta base EUR

              Moneta 2 USD

                   

              Cash

              1.08

              1.42

              Bank

              1.08

              1.42

              Total Assets

              2.16

              2.84

                   

              Personal capital

              2.16

              2.85

              Total Liabilities

              2.16

              2.85

              In the basic currency, total assets are equal to total liabilities. It is permitted to present a Balance Sheet that contains differences only if they are understandable and if it is indicated that they were due to calculations from another currency.

              Accounts table, Currency 2 view

               

              Converting currencies

              Variability of exchange rates

              The purchase/sale of currencies occurs in a free market. The price (exchange rate) is based on the law of supply and demand. The differences in the exchange value can be more or less important according to the fluctuations of the exchange rate.

              Date

              Exchange rate EUR/USD

              Equivalent in EUR
              of USD 1000.00

              Equivalent value difference compared to 01-01

              01-01

              1.32030

              1'320.03

               

              31-03

              1.33350

              1'333.50

              13.47

              30-06

              1.34750

              1'347.50

              27.47

              30-09

              1.42720

              1'427.20

              107.17

               

              The exchange rate
              The exchange rate refers to the basic currency. There are always two different exchange values between two currencies, according to the currency that is used as the basic currency.

              For the USD and Euro currency, there are therefore two different exchange rates:

              • If the basic currency of the exchange is EUR then the exchange rate is 1.32030
                1 Euro (EUR) corresponds to 1.32030 US Dollars (USD)
              • If the basic currency of the exchange is USD then the exchange rate is 0.75800
                1 US Dollar corresponds to 0.75800 Euros

              In the current document, the Euro will be regularly used as the basic currency, to which other currencies will be compared.


              Inverse exchange rate
              Having the exchange of EUR/USD at 1.32030, it is possible to find the exchange rate of USD/EUR by dividing 1 by the exchange rate.

              Exchange rate

              Inverse exchange rate

              1/exchange rate

              Inverse exchange rate rounded to 6 digits

              EUR/USD 1.32030

              0.75800

              0.758000

               

              The exchange values calculated with an inverse exchange can turn out to be different from the originals because of the roundings.

              Exchange rate

              Inverse exchange rate

              Exchange value 10000 x original exchange rate

              Exchange value 10000 x inverse exchange rate

              Difference

              EUR/USD 1.32030

              0.75800

              13'203.00

              13'192.61

              10.39

              Don't use inverse exchanges rates in order to avoid differences.
              For example, for the transition to Euros, it was prohibited to use inverse exchange rates.


              Multiplier
              There are currencies that have very large exchange rates.

              Always on January 1st

              • 1 US Dollar = 670,800 Turkish Lira
              • 1 Turkish Lira (TRL) = 0.00000149 US Dollar (USD)

              Instead of using so many zeros, it can be said that

              • 1000 Turkish Lira (TRL) = 0.00149 US Dollar (USD)

              In this case, the multiplier is 1000 instead of 1.


              Precision
              As a rule, an exchange rate is specified with a precision of at least 6 figures after the decimal.
              There are, however, cases where it is necessary to use more precision.

              • 1 Turkish Lira (TRL) = 0.00000149 US Dollar (USD)

              When the precision is changed and the exchange is rounded in a different way, the amounts also change. The precision with which the exchange is specified is very important.


              Lowest denomination
              For coin and paper money, especially, low denominations are used. As a rule the lowest denomination for Swiss francs is five centimes (0.05). When an exchange occurs, for example EUR/CHF:

              1 EUR = 1.60970 CHF

              EUR

              Exchange rate

              Actual exchange value in CHF

              Rounded to lowest CHF denomination

              Difference

              Effective exchange rate

              10.00

              1.60970

              16.09

              16.10

              0.01

              1.61

              Calculation of exchange rates and values
              When the Euro is the basic currency

              The exchange factor for EUR/USD is1.32030
              1 Euro (EUR) is equal to 1.32030 US Dollars (USD).

              Calculation of the exchange value:
              Multiply the basic currency amount by the exchange factor:

              EUR 100 x 1.32030 = USD 132.03

              Calculate the basic currency amount:

              Divide the destination currency by the exchange rate:

              USD 132.03 / 1.32030 = EUR 100

              Calculate the exchange factor:

              Divide the basic currency amount by the destination currency amount:

              EUR 100 / USD 132.03 = 0.7574

              Exchange rates for purchases and sales
              Banks carry out the purchase and sale of currencies and maintain a margin of earnings. They apply different exchange rates depending on whether a determined value is being bought or sold.

              Sale: the bank receives domestic money and gives (sells) foreign money.

              Purchase: the bank receives (purchases) foreign money and gives domestic money.

              Currency exchange and banknotes exchange (premium)
              Currency exchange: exchange for written transactions (from one account to the other).
              Banknote exchange: exchange for banknotes.
              Premium: commission for converting a written amount to cash.

              To exchange currency, the banks maintain a lesser margin (the difference between purchase/sale) compared to exchanging banknotes. When a written value is to be transformed (credit on the account) into cash currency, the bank applies a commission, called a premium.

              Differences when changing back to basic currency
              When an amount is exchanged into another currency, it is expected that the reverse exchange will render the same amount as it was originally.

              Basic amount

              Exchange rate

              Exchange value

              Return

              100.00

              1.32030

              132.03

              100.00

              However, you do not always come up with the same amount when converting currency back. Because of rounding errors, there can be cases where the same return value cannot be obtained.

              Basi amount EUR

              Exchange rate

              Exchange value in USD

              Retourn in EUR

              Differece in EUR

              328.67

              1.32030

              433.94

              328.66

               

              328.68

              1.32030

              433.95

              328.67

              0.01

              328.69

              1.32030

              433.96

              328.68

              0.01

               

              Differences of totals through splitting
              The total exchange value of the components of an amount does not always give the same exchange value as the overall amount.
              In this example, the amount of 2.16 EUR gives an exchange value in USD of 2.03. By splitting the amount and adding the two exchange values, 2.04 can be obtained.

              Amount in EUR

              Exchange rate

              Exchange value in USD

              2.16

              1.32030

              2.85

               

               

               

               

              1.08

              1.32030

              1.42

              1.08

              1.32030

              1.42

              Totale 2.16

               

              2.84

              Differenza

               

              0.01

              These mathematic differences cannot be eliminated if they are not recorded properly.

               

              Revaluations and exchange rate differences

              Exchange rates vary all the time and therefore also the exchange value to basic currency varies. Between one period and another, there will inevitably be exchange rate differences.

              Exchange rate differences are not accounting errors but simple adjustments of the values made necessary in order to keep the accounting figures in step with normal fluctuations.

              As you open the accounting, the figures in the balance column are equal to those present in the opening column. When there are entries, these will update the figures in the balance column.

              The calculated balance column contains the exchange value to basic currency for the account balance, at the daily exchange (on the exchange rate table). The difference between the balance in basic currency and the calculated balance is the exchange rate difference.

               

               

              Currency at opening

              Exchange value at

              opening in EUR

              Basic currency balance in EUR

              Calculate balance at 30.03.200xx in EUR

              Exchange rate difference

              Exchange rate

               

               

              1.32030

              1.32030

              1.30150

               

               

               

               

               

               

               

               

              Cash

              EUR

              93.80

              93.80

              93.80

              93.80

               

              Bank

              USD

              100.00

              75.74

              75.74

              76.83

              1.09

              Real estate

              EUR

              1'000.00

              1'000.00

              1'000.00

              1'000.00

               

              Total Assets

               

               

              1'169.54

              1'169.54

              1'170.63

               

               

               

               

               

               

               

               

               

               

               

               

               

               

               

              Loan

              USD

              -500.00

              -378.70

              -378.70

              -384.17

              -5.47

              Personal capital

              EUR

              -790.84

              790.84

              -790.84

              -790.84

               

              Total Liabelities

               

               

              -1'169.54

              -1'169.54

              -1'175.01

               

               

               

               

               

               

               

               

               

               

               

               

               

               

               

              Loss

               

               

               

               

              -4.38

               


              At March 30th the EUR/USD exchange rate is different from the one at the beginning of the year. In the above example there were no accounting entries during the three-month period. The situation, from an accounting point of view, has not changed since the beginning of the year. Despite this the total of the updated balance, using the rate at the end of March, is different when compared to the beginning of the year. The credit bank balance and the loan in USD have a different value in EUR. There are therefore consequences for the accounting even though there have been no entries.

              In the above example, you will notice that the Euro is now worth less against the dollar compared to the beginning of the year. The dollar is therefore worth more against the Euro.

              The exchange value of the balance on the account in USD is greater than it was at the beginning of the year. You have a greater estate and therefore a profit on the exchange rate.

              On the debit side there is a USD 500.00 loan. Now the exchange value in EUR is greater compared to the value input at the beginning of the year. The value of the loan has increased and brings about a loss due to the exchange rate difference.

              In the following example we shall use the hypothesis that there has been the opposite development. We imagine that the Euro has increased in value and is therefore worth more against the USD. The exchange value in EUR of an amount in dollars is less than the one at the beginning of the year.

               

               

               

              Currency at opening

              Exchange value at opening EUR

              Calculate balance at 30.03.20XX Eur (Hypothetical)

              Exchange rate differece

              Cambio

               

               

              1.32030

              1.36150

               

               

               

               

               

               

               

              Cash

              EUR

              93.80

              93.80

              93.80

               

              Bank

              USD

              100.00

              75.74

              73.44

              -2.30

              Real estate

              EUR

              1'000.00

              1'000.00

              1'000.00

               

              Total Assets

               

               

              1’169.54

              1'167.24

               

               

               

               

               

               

               

               

               

               

               

               

               

              Loan

              USD

              -500.00

              -378.70

              -367.24

              11.46

              Personal capital

              EUR

              -790.84

              -790.84

              -790.84

               

              Totale Liabelities

               

               

              -1’169.54

              -1'158.08

               

               

               

               

               

               

               

               

               

               

               

               

               

              Profit

               

               

               

              9.16

              9.16

              As a consequence of an increase in the Euro/dollar exchange rate, you have a USD bank deposit with an exchange value in EUR which is less than at the beginning of the year. The total worth has diminished and there is therefore a loss.

              The USD loan has a lower exchange value in EUR. A lesser liability is an advantage for the company and there is thus an exchange rate profit.

              Exchange rate profit

              You have an exchange rate profit when:

              • The exchange value of your assets increases (increase of the investments)
              • The exchange value of the liabilities decreases (decrease of the loans).

              Exchange rate losses

              You have an exchange rate loss when:

              • The exchange value of your assets decreases (decrease of the investments)
              • The exchange value of the liabilities increases (increase of the loans).


              Accounting features foe exchange rate differences

              Exchange rates can evolve in different ways. Often they rise, only to fall again. The principle rule for accounting is that the figures written on the Balance Sheet must be true ones. When you present your Balance Sheet, the exchange values of foreign currency accounts must be made at the exchange rate on the day of presentation.

              The exchange rate difference is calculated as if you had to definitively convert the amount to basic currency. In reality there is no definitive conversion so you are only dealing with a correction to the accounting.

              Closing exchange rate

              At the end of each year it is necessary to prepare the complete Balance Sheet. The exchange rates thus have to be updated with the closing exchange rates. It is also necessary to enter the exchange rate differences once and for all; if these are not entered, then there will be differences in the opening balances.

              Enter the exchange rate diferences
               

               

               

              Currency balance

              Account balance EUR

              Calculate balance at 30.03.200xx EUR (hypothetical)

              Exchange rate difference

              Exchange

               

               

              1.32030

              1.36150

               

               

               

               

               

               

               

              Bank

              USD

              100.00

              75.74

              73.44

              -2.30

               

               

               

               

               

               

              Exchange rate difference

              EUR

               

              -2.30

               

               

               

               

               

               

               

               

              Bank

              USD

              100.00

              73.44

              73.44

              0.00

              As can be seen from the above example, the bank balance is USD 100.00. For the accounting it has been valued at 75.74 EUR. Today’s actual exchange, though, is only EUR 73.44. There is a difference of EUR 2.30 EUR in basic currency. The entry must therefore decrease the EUR amount. You proceed with a transaction that debits the bank account and credits the exchange rate loss account by EUR 2.30. As you can see, the actual bank account balance of USD 100.00 has not been altered. The entry only alters the basic currency balance.

              When entering the exchange rate difference, you need to be sure that the exchange value in basic currency corresponds to the actual exchange value, calculated at either the daily exchange rate or the closing one.
              The figures in the account currency must not be altered. You must therefore proceed to make an entry that only alters the basic currency balance on the specific account.

              As the account on the other side you will have the exchange rate profit or loss account.

               

              Transactions with exchange rates at the time of purchase

              Enties on account valued with the exchange rate of the time of purchase

              When the positions, valued with exchange rates of the time of purchase (historical ones) are increased or decreased, you have to calculate the exchange of the exchange rate table, taking into account the development of the amounts being brought forward.


              USD amount

              Exchange

              EUR exchange value

              Total USD

              Total EUR

              Historical Exchange

              Acquisition of shares

              100'000.00

              0.9416

              106'202.00

              100'000.00

              106'202.00

              0.9416

              Increase of shares

              50'000.00

              0.8792

              56'870.00

              150'000.00

              163'072.00

              0.919839

              Investiments and special exchange rates

              Investments valued at the exchange rate of the time purchase

              Certain investments (shares, real estate abroad) are valued using the exchange rate of the time of purchase (historical exchange) and not the current one. The exchange rate profit and loss is not accounted for until it is actually realized. You must therefore make certain these accounts do not get valued using the current exchange rate.

              In order to input a fixed, historical exchange, you need to create a supplementary currency on the account table (e.g. USD1) with a fixed exchange rate. This currency will then only be used for this account with a fixed rate. If you have to make a transfer from the USD account to the USD1 account, you proceed exactly as if you were working with two different currencies. For this reason you will have to use a two-line entry.


              Opening with special exchange rates

              Inputting the opening balances in the “opening” column, foreign currency amounts will be converted to basic currency at the opening exchange rate.
              If this system proves not to be flexible enough (you need various special rates or there are rounding differences) the opening can be done manually by making normal entries, indicating the amounts and the exchange rates you want for each account. In this case, the “opening” column of the Accounts table will be left blank.

               

              Starting a multi-currency accounting

              Creating an accounting file, starting from a template included in the program

              In order to create a new accounting file, there are different modes.
              Here we explain how to start an accounting, starting from an existing template included in the program.

              1. File menu, New command
              2. From the Group section, select Double-entry accounting
              3. In the File section, select Double-entry accounting or Double-entry accounting with VAT/Sales tax.
              4. In the Examples/Templates section, select the language/nation and choose one of the templates that is closest to your own needs
              5. By clicking on the Online Templates button you can access our website where we published all templates available for free.
              6. Select the language and the country for the templates.

              Setting up the file properties (basic data)

              Accounting tab

              • Indicate the company name that will appear in the headers of the printouts and on the other data.
              • Select the basic currency, with which the accounting will be kept.


              General use of the program

              Banana Accounting inspires itself from Excel. The user directions and the commands are kept as similar as possible to the ones of Microsoft Office.
              For more information on the general use of the program, we refer to the explanations on our page Program interface.
              The accounting is being contained in tables; all of them have the same way of operating.

              Saving the file

              1. From the File menu choose the Save as... command, preferably indicating the name of the company and the current year (for example, "company_2017")
              2. Choose the folder where the file should be saved (for example, Documents -> Accounting)
              3. The program will add the "ac2" extension.


              Exchange rates table

              Before entering multi-currency transactions it is necessary to define the parameters of the used currencies in the Exchange rates table.


              Customizing the Chart of accounts

              In the Accounts table, customize the Chart of accounts and adapt it to your own needs:

              • Add accounts and /or delete existing accounts (see Adding new rows)
              • Modify the account numbers, the descriptions (for example, enter the name of your own Bank account), enter other groups, etc.
              • To create subgroups, please consult our Groups page.

              In the Chart of accounts, you can also define Cost centers or Segments, used to attribute the amounts in a more detailed or specific way.


              The Transactions table

              The  multicurrency transactions have to be entered into the Transactions table; together they compose the Journal.

               

              Speeding up the recording of the transactions

              In order to accelerate the recording of the transactions, you can use

              • the Smart fill function that allows the automatic autocomplete of data that have already been entered at an earlier date
              • the Recurring transactions function, used to memorize recurring transactions into a separate table
              • the import of your bank or post statement from e-banking


              Checking customer and supplier invoices

              Banana allows you to keep an eye on the invoices to be paid and the receivable, issued invoices. Please consult:


              The Account card

              The Account card automatically displays all the transactions that have been recorded on the same account (for example, cash, bank, clients, etc).

              To display an account card, just position yourself with the mouse on the account number and click on the small blue symbol that appears.

              Account card by period

              To display the account card with the balances referring to a specific period, click on the Account1 menu, Account card command, and in the Period section, activate  Period Selected, entering the Start and the End date of the period.
              For more details, consult the page Period.

              Printing the Account card

              In order to print one account card, just display the card from the Accounts or the Transactions table and launch the print from on the File menu.

              To print several or all account cards, click on the Account1 menu, Account card command, and select the account cards that need to be printed. By means of the Filter, all the account cards, or only a part of all of them (for example, only accounts, cost centers, segments), that need to be printed can be automatically selected.

              For more details, consult the page Account Card.


              The Balance Sheet and Profit and Loss Statement

              The Balance sheet shows the balances of all the estate accounts, Assets & Liabilities. The difference between the Assets and the Liabilities determines the Share capital

               

              The display and the printing of the Balance Sheet is being executed from the Account1 menu, commands Enhanced Balance Sheet or Enhanced Balance Sheet with groups.

              • The Enhanced Balance Sheet command simply lists all the accounts without distinguishing Groups and Subgroups
              • The Enhanced Balance Sheet with groups command lists all the accounts while subdividing Groups and Subgroups; besides, it presents numerous features to customize the presentation, functions that are not provided in the Enhanced Balance Sheet.


              Data archiving in PDF format

              At the end of the year, when the entire accounting has been completed, corrected and audited, all the accounting data can be archived with the Create PDF dossier command of the File menu.


              The Budget

              Before you begin a fiscal year, you can estimate the costs and revenue, so you have your company's economic and financial situation under control.
               
              The budget can be set up in two different ways:
              1. Accounts table, Budget column. For each account, the annual budget amount is being indicated.
                In this case, when you set up the Budget from the Account1 menu, Enhanced Balance Sheet with groups command, the Budget column displays the amounts that refer to the entire year.
              2. In the Budget table, that can be activated through the Tools menu, Add new functionalities command.
                In this table, you can enter all the budgeted costs and revenue by means of entering transactions. If you activate this table, the column of the accounts table will be automatically deactivated.
                In this case you can set up a detailed budget, taking into account the possible variations over the year and in different periods of the year.

              For more details, consult the Budget page.

               

              File properties (Foreign currency)

               

              Account for exchange rate profit
              From the accounts list, select the one for the exchange rate profit present in the Chart of Accounts.

              Account for exchange rate loss
              From the accounts list, select the one for the exchange rate loss present in the Chart of Accounts.

              Currency 2
              It is possible to select a second currency in order to view the balances in a currency different from the basic one.

              Exchange Rate valid even from basic currency
              If this option is checked, the program will use the last entered exchange rate in the Exchange rate table (Exchange rate column).

               

              The multi-currency chart of accounts

              The Chart of accounts of the multi-currency accounting is the same as the one of an accounting without foreign currency, except for the specifics that are indicated here below.

              Basic currency

              In the File and accounting properties, the basic currency should be defined and in the Exchange rate table, the foreign currencies should be defined.
              In the example here below, the basic currency is the CHF, which, as can be seen, appears in the column headers with the amounts in basic currency.

              Account currency

              Each account has a currency symbol, which can be the same as the basic currency or a currency symbol that is different from the basic currency, indicated in the Exchange rate table.
              • The Assets and the Liabilities (Balance sheet accounts) can be in basic currency or in foreign currency.
              • The Costs (Expenses) and Revenue accounts must be in basic currency.
              Assets and Liabilities accounts, other than in basic currency (CHF in the example), can also be set in different currencies.
               
               
              Income and Expenses accounts must be set in basic currency.
               
               

              Explanation of the columns of the multicurrency accounting

              • The opening balance in basic currency.
                A protected column, calculated by the program based on the opening balance in currency and the opening exchange rate (exchange rate of the exchange rate table indicated in a row without date).
              • The current balance in currency.
                Calculated by the program, using the opening balance in currency and the currency amount indicated in the transaction rows. 
              • The current balance in basic currency.
                Calculated by the program, using the opening balance in basic currency and the amount in basic currency indicated in the transaction rows.
              • The calculated balance
                Is the balance in the account currency converted at the current exchange rate (exchange rate of the exchange rate table indicated in a row without date).
              • In the Other view from the Account table, there is the Exch. rate Diff. Acct.
                In this column, for specific account/accounts, you can enter an account (or several accounts, separated by a semicolon) in order to enter the exchange rate differences. These are different accounts from those in the File and accounting properties (account for exchange rate profit and loss).
                If in the Exch. rate Diff. Account column there are no accounts, the program will register exchange rate differences on the accounts indicated in the File and accounting properties; if however accounts are indicated both in the File and accounting properties and in the Exch.rate Diff.Acct. (Other view), the program will only consider the accounts indicated in the Exch.rate Diff.Acct., and ignore the File and accounting properties indications.

               

              Opening Balances

              • Before entering the opening balances, the opening exchange rates for the different currencies have to be indicated in the Exchange rate table.
                The opening exchange rate is the one indicated in the Rate Opening column in the row of the exchange rate without date.
                The opening exchange rate must be equal to the closing exchange rate of the preceding year. See Differences in the Opening Balances.
              • The Opening balances have to be inserted in the Accounts table, in the Opening currency column, Base view. This operation needs to be done for both basic currency and foreign currency accounts.
              • The Opening Basic currency column is protected; the program automatically calculates the value in the basic currency on the basis of the opening exchange rate shown in the Exchange rate table.
              • The opening balances for the liabilities have to be entered with the minus sign (-) in front of the amount.
              • The opening balances of assets and liabilities have to balance out; for more information please visit the Recheck the accounting page.


              Revaluation accounts and historical exchange rates

              The exchange rates are fluctuating. The actual value of the balance in the account currency varies therefore depending on the foreign exchange fluctuation.

              The basic currency amount of an account is being calculated using the opening exchange rate and the exchange rates that are indicated in the transactions. Because this value corresponds to equivalent of today's exchange rate, it is necessary to revaluate the account.
              The revaluation takes place by calculating the exchange rate differences. We need to record on the account just an amount in basic currency (exchange rate difference), so that the balance in basic currency results equal to the equivalent (calculated balance)

              This alignment operation is done at the end of the year, before closing the accounts, or when you want to print a balance sheet with exchange values that correspond to the current reality. See the command Create transaction for exchange rate variation.

              There are accounts (related to, for example, investments) for which a so-called historic exchange rate is being used. By an historical exchange rate we mean un exchange rate that doesn't vary over time.

              In order to have exchange rates that don't change, an extra currency symbol (for example EUR2) must be created in the Exchange rate table. To this currency, the same exchange rate is always being applied.

              You can create as many currency symbols as you need for the different accounts with historic exchange rates.

              Group totals in foreign currency

              Normally, the columns with amounts in foreign currency don't have totals, as it has little sense to calculate totals for values in different currency.

              If you have a group that includes only accounts in a specific currency, the currency symbol can be indicated at a group level and, in the Accounts table, the program totalizes these amounts. If there would be accounts with various currency symbols, there would be no amount indicated (the program would not report an error either).

               

              Differences in the opening balances

              When, in the preceding year, the exchange rate differences have not been calculated, the program signals, in the New Year, a difference in the opening balances.

              In order to resolve this problem, there are two possibilities:

              If the preceding accounting year has not yet been audited, calculate the exchange rate differences in the preceding year,
              If the preceding year has already been closed and revised, you must proceed with an adjustment of the opening balances of the new year:
              • Open the file of the New Year
              • Insert in the Assets or the Liabilities (Accounts table), according to the situation, a new account Unrecorded Exchange rate differences or record the amount in the 1090 Internal tranfers account (as in the following example)
              • In the Opening Currency column, insert the amount corresponding to the exchange rate difference.

              • At 01.01, the exchange rate difference account has to be put to zero by means of a transaction (Transactions table), using the account related to the exchange rate differences (Exchange rate profit/loss) of the profit/loss statement as its counterpart.

              After the transaction to arrange the exchange rate differences has been made, the account that has been used should have a balance of zero, or equal to the amount corresponding to the balance prior to the transaction.

               

               

               

               

               

               

               

               

               

              Exchange rates table

              Before entering multi-currency transactions it is necessary to define the parameters of the used currencies in the Exchange rates table.

              Columns of the Exchange rate table

              Date
              The date for the exchange rate.

              • Exchange rate rows without date. Actual and Opening exchange rate.
                For each used foreign currency, it is necessary to have a row in the Exchange rate table with an exchange rate and without a date.

                • Exchange rate
                  This is the one that is considered to be the most recent and also the closing exchange rate.
                  It is being used for the calculation of the Balance Calculated column (Accounts table) and always when there is no historical exchange rate.
                • Rate Opening
                  It is being used to convert the opening balance amounts of foreign currencies into the opening balance amounts of the basic currency of the accounting.
              • Rows with a data (historical exchange rates)
                In the here indicated cases, the program chooses the exchange rate with a the date equal to the transaction row or with the closest preceding date to that row.

                • If you have an historical exchange rate, the value in the Exchange rate column will be proposed as default change when you insert a new transaction;
                • When transactions for exchange rate variations are being created and the option to use the historical exchange rate is being activated;
                • When entering an exchange rate with a date, an Opening exchange rate should not be indicated.

              Ref. Currency
              This is the currency that serves as the basis for the exchange rate (the CHF in our example.)

              Currency
              This is the destination currency, the one into which the value of the “Ref. Currency” will be converted.

              Text
              A text to indicate the foreign currency that we are dealing with.

              Fixed
              True or false. If there is a fixed exchange rate, enter Yes in this column. The used exchange rate is specified in the Exchange Rate column.

              Mult.
              The multiplier is usually 1, 100 or 1000 and is used to obtain the effective exchange rate. The multiplier is used for currencies which have a very low unit value in order to avoid having to insert exchange rates with many zeros. The multiplier can also be negative (-1). In this case, the program will use an inverted exchange rate or else it will act as if the currencies inserted in the Currency and Reference Currency columns had actually been inverted. Do not alter the multiplier once there are already transactions in the same currency, otherwise the program will signal a transaction error due to erroneous exchange rates.

              Exchange rate
              This column shows the actual exchange rate or the closing exchange rate for the currency compared to the reference currency.
              It is also being used for calculating the exchange rate differences. Before calculating the exchange rate differences or closing the accounting, this value must be updated by entering the closing exchange rate.

              The exchange rate and the multiplier are being applied according to the following formulas

              • With multiplier > 0
                Currency amount = Ref. currency amount* (exchange rate / |mult.|)
                 
              • With multiplier < 0
                Ref. currency amount = Currency amount * (exchange rate / |mult.|)

              Opening Exchange rate
              This is the exchange rate at the moment the accounting is opened. To be indicated only on a row without date. 

              • It is used to convert the opening amount of the foreign currency into the opening amount of the accounting’s basic currency.
              • Should be corresponding to the closing exchange rate of the preceding year.
                If the closing exchange rates are not equal to the opening exchange rates, the Assets and Liabilities might result into different totals; see Differences in the Opening Balances.
              • The opening exchange rate should never be changed in the course of the year, otherwise exchange rate differences are being created in the total of the opening balances.
              • When creating a new year or when updating the opening balances, the program defines the opening exchange rate with the value indicated in the Exchange rate column (row without date) of the accounting of the previous year.

              Minimum
              This column shows the minimum exchange rate accepted. If a lesser exchange rate is used during the entry, there will be a warning.

              Maximum
              This column shows the maximum exchange rate accepted. If a greater exchange rate is used during the entry, there will be a warning.

              Decimal Points
              This column shows the number of decimal points to be used when rounding the amounts in currency2.

              Modifications in the Exchange rate table

              The exchange rates entered in the transactions are standalone and independent of the exchange rates shown in the Exchange rate table. If you change an exchange rate in the Exchange rate table, there will be no repercussions in the transactions already submitted.
               
              However, the following modifications do have repercussions:
              • Modification of the Opening exchange rate
                The next time you recalculate the accounting, the balances in basic currency of the accounts will be recalculated with the new exchange rate. Therefore, pay attention when modifying the Opening exchange rates once you have inserted the opening balances.
                If you modify the Opening exchange rates and there are opening balances, it is important to recalculate the accounting.
              • Modifying the multiplier
                • When changing the multiplier of a currency already used in the Transactions table, the program will report a warning as soon as the accounting is being recalculated or will move to the transaction row.
                  The transaction amount and the correct amount in the basic currency will have to be reentered.
                • When the accounting is being recalculated, as a result the opening balances in basic currency will be recalculated.

              Direct an indirect exchange rates

              • Direct exchange rates are those where the basic currency and the foreign currency are being indicated on the same row.
                In the example below there are direct exchange rates USD->EUR and USD->TRL.
              • Indirect exchange rates are those where a direct exchange between two currencies is not being indicated (not recommended).
                The exchange rate is deducted by the programn based on other combinations of entered exchage rates
                In this example, the EUR->TRL exchange rate has not been defined, and the program relies on combining the USD-EUR and USD-TRL.
              The program supports indirect exchange rates. Howver, we recommend using only direct exchange rates. Avoid the use of accounts where the direct exchange rate between the basic currency and the currency of the account is not specified. With indirect exchanges, it might not always be clear which exchange rate is being applied.
               
               
               
               

              Incompatible exchange rates from previous versions

              When the basic currency is entered as the reference currency, the exchange rates with a multiplier greater than 1 can present calculation differences between Banana 8 and the previous versions. In these rare cases, while opening an accounting file of a previous version, a warning message appears and the file is being opened as "read only".

              To get the same amounts, correct the multiplier and the exchange rate as follows:
              • Open the file in Banana 8 and confirm the warning message;
              • Recheck the accounting (Shift + F9);
              • The warning messages "Transaction multiplier is not the same as the one in the Exchange rate table" can be ignored;
              • Verify whether the balances and the result of the accounting period present differences compared to those displayed in earlier versions. If there are no differences, just save the accounting under a new name; otherwise, it is necessary to proceed as follows:
              • In the Exchange rate table, for the exchange rates with a multiplier greater than 1, correct the exchage rate by multiplying it with the value of the multiplier and define the multiplier as 1. For example, if we have a multiplier of 100 and an exchange rate of 0.9944608, correct the exchange rate to 99.44608 and the multiplier to 1;
              • Recheck the accounting (Shift + F9);
              • The warning messages "Transaction multiplier is not the same as the one in the Exchange rate table" can be ignored, or it is possible to delete them by clicking, in the corresponding transaction row, on the amount in basic currency and by pressing the F6 key;
              • Verify whether the balances and the result of the accounting period correspond with the ones indicated in earlier versions;
              • Save the file under a new name;
              • At this time, you can define the exchange rates and the multiplier in the preferred format, reverse or direct, with or without multiplier, verifying the balances and the result of the accounting period after each modification.

               

              Transactions

              With regard to the exchange rates, multiplier and historical exchange rates, please refer to the page Exchange rates table.
               

              Explanations of the columns

              In the Transactions Table of the multi-currency accounting, other than the columns of the double-entry accounting, there are the following extra columns:

              • Currency amount
                This is the amount of the currency specified in the column with the currency symbol.
                This amount is used by the program to update the balance of the related account in currency. 
              • Currency
                This is the currency symbol of the currency to which the amount refers.
                The currency symbol has to be the Basic currency, specified in the File and accounting properties, or the currency symbol of an annount indicated in the columns  Debit A/C or Credit A/C.
                You can also use a different currency as long as the indicated Debit A/C and the Credit A/C are Basic currency accounts.
                In this case the amount in currency is used as a reference, but will not be used for accounting purposes
              • Exchange rate
                Used to convert the foreign currency amount in its Basic currency equivalent.
              • Amount in Basic currency
                The transaction amount, expressed in Basic currency.
                This amount is used by the program to update the balance of the related account in Basic currency
              • Exchange rate multiplier
                Normally not visible in the view, this value is multiplied by the exchange rate.
                 

              Types of entries in the multicurrency accounting

              Please note

              All amounts, those in basic currency as well as those in foreign currency, have to always be entered into the Currency Amount column.

              For each transaction, there are two accounts (debit account and credit account). In the program, only one foreign curency per transaction row can be used. So there can be the following direct combinations:

              • Entries between two accounts in basic currency with the amount in basic currency. (in the image, transactions n.1 in the Doc column)
                The account currency is the basic currency.
              • Entries between two accounts in basic currency with the amount in foreign currency (Doc 2)
                The indicated accounts are in basic currency, but the currency symbol and the amount in currency, indicated in the transaction row, are not in basic currency, but in a different currency.
                To insert the different currency, the user has to manually change the currency symbol.
                This is being used when one goes abroad and money is being changed in order to pay in local currency. In this case we do not have a specific account.
                For the calculation of the balance (both accounts being in basic currency) only the amount of basic currency column is being used.
              • Entries between an account in foreign currency and one in basic currency  (Doc 3)
                The currency needs to be the one of the account in foreign currency.
                For the calculation of the balance of the account in foreign currency, the program uses the amount in foreign currency and for the balance in basic currency, the program uses the amount in basic currency.
              • Entries between two accounts with the same foreign currency (Doc 4)
                The currency needs to be the same as account currency of both accounts.
              • Entries with two accounts in different foreign currencies (Doc 5)
                For example, the bank makes an exchange operation between two foreign currencies:
                In this case, the transaction needs to be recorded on two rows.
                The amount in basic currency needs to be the same. It is useful to use an amount close to the current exchange rate to avoid excessive exchange rate differences.
                In order for the amounts in basic currency to be equal, the amount in basic currency needs to be indicated manually, and the program will calculate the exchange rate. 
              • Exchange rate differences (Doc 6)
                The goal of this transaction is to realign the balance of the Basic currency account with the equivalent of the Foreign currency account at today's exchange rate.
                On the Foreign currency account, only the amount in Basic currency related to the exchange rate differences is being recorded.
                They are automatically generated with the Create transaction for exchange rate variation command.
                • For the exchange rate profits, the program automatically indicates the account to be revaluated in debit and the exchange rate profit account in credit. The exchange rate profit account is indicated in the File and Accounting properties (Basic Data), or in the specified account -> Exchange rate differences account column of the "Other" view (intended for one or several specific accounts).
                • For the exchange rate losses, the program automatically indicates the account to be revaluated in credit and the exchange rate loss account in debit. The exchange rate loss account is indicated in the File and Accounting properties (Basic Data), or in the specified account -> Exchange rate differences account column of the "Other" view (intended for one or several specific accounts).
                • The Currency amount is being left empty
                • The Curency symbol is the basic currency
                • In the Basic currency amount column, the amount of the revaluation of the account (profit or loss) is being indicated.

              Establishing the exchange rate

              The accountant is the one who decides which exchange rate to use for each single operation. Generally, the following rusles are being applied:

              • For normal operations, the exchange rate of the day is being used
              • For buying or selling currency, the values indicated by a money exchange office or a bank are being used.
                First the amount in foreign currency is being indicated in the program and then the amount in basic currency. The program calculates the exchange rate. The exchange rate indicated by the bank can be slightly different, because banks specify exchange rates with few figures after the decimal point and often round the amounts.
              • When several operations with the same exchange rate are being recorded, it is useful to update the exchange rate in the Exchange rate table, so that the program can automatically apply it.
              • For operations from abroad that are subject to VAT, the national authority might impose a standard exchange rate. In this case, that exchange rate should be inserted in the Exchange rate column of the transaction
              • To purchase real estate or equity investments, an historical exchange rate is being used. In that case, a currency symbol needs to be created in the Exchange rate table (for example USD1) with an historical exchange rate, that is not being subject to the fluctuations of the exchange rate.
                One can create as many currency symbols as desired for all historical exchange rates.

              Transactions with VAT

              The VAT account and the account from which the VAT is being deducted have to be in basic currency. It is impossible to use a VAT code to deduct the VAT from a foreign currency account. In order to record operations with VAT that have accounts in foreign currency as their counterpart, two transaction rows have to be used:

              • First, the amount of the purchase is being recorded on an Internal transfers account in basic currency and the related VAT code is being applied. The amount in basic currency has to be calculated using an exchange rate in accordance with the requirements of the Tax administration.
              • In a second row, the balance of the Internal transfers account is being put to zero; as its counterpart, the account in foreign currency should be entered.
                The amount used for this transaction, both in basic currency and in foreign currency, has to be excluding VAT. Obviously, the exchange rate that has to be used is the same one as the one being used in the preceding transaction.

              In the example, the basic currency is the CHF. We are dealing with a national purchase, but paid from a foreign curency account (EUR).


              Automatisms while entering multicurrency transactions

              When a new transaction is being entered, the data in the above mentioned columns have to be completed.

              When some values of the transaction row are modified, the program completes the transaction with the predefined values. If these values do not satisfy the user's requirements, these have to be modified in the transaction row.

              The modification of the values in the Exchange rate table have no effect on already entered transaction rows. Thus, when the exchange rate in the Exchange rate table is modified, this has no influence whatsoever on already inserted transactions.

              • When the amount in currency is entered and there is either a Debit A/C or a Credit A/C, and no other values are entered, the program operates as follows:
                • the currency symbol is retrieved from the account in use, giving priority to the account that is not in basic currency;
                • the exchange rate, defined in the Exchange rate table, is applied with the following logic:
                  • the historical exchange rate is applied, with a date earlier or equal to the transaction date
                  • tf there is no historical exchange rate to be found, the exchange rate from the row without date is applied.
                • the multiplier, defined in the Exchange rate table, is applied or the number 1 if it is the basic currency;
                • the amount in basic currency is calculated.
              • When the amount in currency is modified (and there are already other values present), the program operates as follows:
                • the amount in basic currency is calculated with the existing exchange rate
              • If the currency symbol is modified the program operates as follows:
                • the exchange rate with the multiplier is applied and the amount in basic currency is calculated (like above)
              • If the exchange rate is modified the program operates as follows:
                • the amount in basic currency is calculated using the entered exchange rate
              • When the amount in basic currency is modified the program operates as follows:
                • the exchange rate is recalculated.

              More help

              • While being positioned on the Currency Amount column and pressing the F6 key, the program rewrites all values with the earlier explained logic, as if there were no values present. This feature is useful when the Debit A/C or the Credit A/C is modified.
              • If there is a registration with a single account in basis currency (in 'Multiple transcations' - see Transaction types) and its value of the column 'Currency' has been changed manualy in a currency symbol of a foreign currency, it is necessary to be positioned on the cell of the column 'Currency' and press the F6 key in order to update the Exchange rate and calculate the amount in basis currency.
              • Smart fill for the Exchange rate column
                The program suggests several exchange rates, picking them up from the Exchange rates table or from exchange rates previously used in the transactions.
                 

              Info window

              In the info window, the program indicates:

              • Differences, if any, between the Debit and Credit total movements in baskic currency
              • Explanation on the different uses of the F6 key

              For the accounts related to the transaction row on which one is positioned, the program always indicates in the Info windows:

              • the account number
              • the account description
              • the transaction's amount in basic currency
              • the current account balance in basic currency
              • the account currency symbol
              • the transaction's amount in the account currency (if different from the basic currency)
              • the current account balance in currency (if different from the basic currency)
                 

              Data transfer from earlier versions

              In version 4 or earlier, the absence of a currency symbol in the Transactions table was being interpreted as a transaction in basic currency.
              In version 7 and in version 8, each transaction needs to have its own currency symbol. Therefore, when you update from version 4 to version 7 or 8, in the accounting file, the transactions without a currency symbol need to be completed.

               

              Exchange rate differences

              At the latest when the accounting period is being closed, the currencies need to revaluated in Basic currency, creating adjustment transactions for exchange rate loss or gain, due to the fluctuations of the exchange rates (for the theoretical aspects, please check Revaluations and exchange rate differences).

              The Create transaction for exchange rate variation... command, from the Account2 menu, calculates the revaluations for the foreign currencies accounts.

              Date of the transactions for the exchange rate differences
              Enter the date your exchange rate differences transactions should have.

              The program will suggest the final date of the current month, related to the last entered transaction.

              If there are transactions for exchange rate differences with the same date, the program asks whether they should be replaced.
              The program considers the transactions for the exchange rates differences as existing if they have the same date, doc, description, accounts and currency and when there is no amount in the account currency.

              Document number
              Enter the document number your exchange rate differences transactions should have.

              Use historical exchange rates (exchange rate rows with date)
              For the calculation of the exchange rate differences, the program uses the exchange rates of the Exchange rate table without a date (the most recent exchange rates). With the option Use historical Exchange rates, the program instead uses the exchange rates of the Exchange rate table with an equal or earlier date than the one indicated.

              Values used to create the transactions

              For more information, we refer to our page Multi-currency transactions.

              Amount of the transaction

              • Transactions for exchange rate differences are being created only for the accounts in foreign currency which, at the specified date, have a different balance in basic currency compared to the calculated one.
              • For the amount in basic currency, the difference between the account balance in basic currency and the account balance in foreign currency converted in basic currency is being used.

              Account balance
              For the calculation of the exchange rate differences, the balances in the account currency and in basic currency are being used, at the specified date.

              Exchange rate profit and exchange rate loss accounts
              As exchange rate profit and loss accounts are being used, in order of priority:

              1. The indicated accounts entered in the specific column of the chart of accounts.
              2. The exchange rate profit & loss accounts indicated in the File and Accounting properties.

              Position of inserted rows
              If, while imparting the command, you find yourself in the Transactions table, the rows are being inserted at the position of the cursor.
              Otherwise, they will be inserted at the end or at the previous position in case they are replacing existing transactions.

              Before using the command

              1. In the File and Accounting properties of the File menu, Foreign Currency section, make sure that the Exchange rate profit and loss accounts are being indicated. It is equally possible to indicate the same account for both the exchange rate profits or losses.
              2. Make sure that the accounts in foreign currency are being updated and that the balances in foreign currency of these accounts (for exemple bank accounts) correspond with the balance indicated by the bank.
              3. Update the current exchange rates of the Exchange rate table.
                You should indicate the closing exchange rates or those of a period's end in the rows without a date, in the Exchange Rate column (do not modify the opening exchange rate in the Rate Opening column). In order to calculate the Exchange rate differences, the program uses the exchange rates of the rows without a date. If these last ones are absent, the program gives an error message.
                 


              Exchange rates for the New Year

              To have the Opening balances of the New Year in Basic currency correspond exactly with the closing balances of the preceding year,  the Opening Exchange rates of the New Year, indicated in the Exchange Rate table, have to be the same as those being used for the closing of the accounting, so:

              • The closing exchange rates have to be indicated in the Exchange rate column of the rows without a date;
              • The opening exchange rates have to be indicated in the Rate Opening columns of the roes without a date.

              The procedure of creating a new year or of the updating of the opening balances, copies the closing balances (Exchange rate column, rows without date) of the previous year into the opening exchange rates (Exchange rate table, Rate Opening column,  rows without date) of the new year's file.

               

              Account card

              Columns and views of the account card

              In the Account card, there are three groups with of columns with transactions Debit, transactions Credit and the Balance in different currencies.

              • Basic currency
                Indicated are the Opening Balance, the Transactions, and the Balance in Basic currency.
              • Account currency
                The Transactions in the Account currency are being indicated.
                When the accounts are in Basic currency, these values are identical to those of the Basic currency.
              • Currency2
                For every transaction, the amount in Currency2 is being indicated. The amount in Currency2 is the equivalent of the amount in Basic currency, converted at the actual rate for the Currency2 currency symbol.
                Please consult Exchange rates and accounting issues.
              • Base view
                At the same time, the columns in Basic currency and the columns in the Account currency are visible.  

              In the column headers, the related currencies are being indicated.

              With the appropriate commands, it is possible to modify the disposition of the columns and create other views.

              Data editing

              It is not possible to modify the data in the Account card. Double-click on the (underlined) row number to go back to the original corresponding row of the Transactions or Budget table. More details are available on the Account card page (paragraphe Updating the Account card).

              Info Window

              In the lower part of the screen, the Info window, the values of the accounts related to the active transaction are being indicated.

              • Account number
              • Account description
              • Transaction amount of the account in Basic currency
              • Actual Account Balance in Basic currency
              • Account's currency symbol
              • Transaction amount of the account in the Account currency
              • Actual Account Balance in Account currency

               

              Enhanced Balance Sheet

              The Enhanced Balance Sheet in the multi-currency accounting is done the same way as the one in double-entry bookkeeping. Information is available at the following link: Enhanced Balance Sheet.

              The difference consists in the fact that the foreign currency accounts report the amounts in foreign currency as well as in the basis currency (amount converted).

               

              Enhanced Balance Sheet by groups

              The Enhanced Balance Sheet by groups in multi-currency accounting is done the same way as the one in double-entry bookkeeping. Information is available at the following link: Enhanced Balance Sheet by groups.

              The difference consists in the fact that the foreign currency accounts report the amounts in foreign currency as well as in the basis currency (amount converted).

               

               

              Accounting Reports

              Accounting Reports in multi-currency accounting are done the same way as the ones in double-entry bookkeeping. Information is available at the following links: Accounting report; External accounting report.

               

              Income & Expense accounting

              Introduction

              Income & Expense accounting is the ideal tool to manage the accounts of small to medium size companies, associations,  private enterprise or project planning. It can be configured with or without VAT.  On the other hand, it does not have the multi-currency options, that you will find in the double-entry book keeping version.

              It does include:

              • Income & Expense - allows you to manage income and expense for several accounts.
              • Cash book - used to keep track of the income and expenses of one single account .

              Features

              • Manages your balance sheet and income statement (assets, liabilities, income and expense)
              • VAT option allows VAT calculations and VAT tax returns
              • Process all your accounting records: accounting journal, account cards, periodical and annual reporting
              • Lets you manage your Cost Centres and their Segments
              • Multiple options to present your data
              • Export to Excel, Html, Xml, Pdf
              • Import various types of data files.

               

              Tables and Properties files

              Income & Expense accounting contains the following tables:

              • Accounts
                Where you find the Chart of Accounts, the opening balances and define your groupings.
              • Categories
                Define the categories of Income & Expense here, the cost centres and segments.
              • Transactions 
                Record your transactions here.
              • VAT Codes
                If you have selected the VAT option, enter your VAT codes here. By selecting one of the VAT templates, VAT codes will be allocated correctly, allowing you to have a facsimile of your official VAT statement.
              • File and accounting properties
              • Manage the general settings of your accounting here.

               

              Immediate information

              The account balances will be displayed instantly in the Accounts and Categories tables, after the income and expense recordings. Balances will be adjusted automatically after each registration of a transaction and you will not need to require a specific report to have an overview of your accounts, which you can call up via the Accounts and Categories tabs.

               

              Support

              • Detailed information on the different functionalities of the program, with concrete examples and screenshots of the software, for your use
              • Free support for one year included.

              Topics similar to Double-entry accounting

              Commands

              Printouts

               

              Getting started

              In order to start working with your Income & Expense accounting, proceed as follows:

              • Download the Banana Accounting 8 software
              • Install Banana Accounting 8 software by entering your license key.

               

              Creating a new accounting file

              • From the File menu, activate the New command
              • Select the Income & Expense accounting group and the Income & Expense accounting File (with or without VAT)
              • Select the Examples/Templates according to your language and nation

              Banana provides predefined templates.
              You may download:

              • from the program - select the language / country and choose the model that suits you
              • Clicking the button Online Templates  - you will access our Apps page internet site, where all existing accounting templates are available free of charge. You can run a detailed search by entering the language, country, and category of activity (company type, non-profit, independent ...).


              Setting up the File properties

              Set up your own data from the File and Accounting properties command and save with your own file name.


              Customize the Accounts table

              In the Accounts table, you can customize the estate accounts, according to your own needs:

              • you can change the account numbers
              • you can change the Description
              • In the Opening column you need to enter your opening balances

              Please remember, that for the Liabilities' accounts (f.ex. debts), the opening balance should be preceded by the minus (-) sign.

              This operation needs to be executed only the first time using Banana Accounting, since from then on, every end of the year, when creating a New Year (Account2 menu, Create New Year command), the opening balance will be automatically transferred.


              Customize the Categories table

              In the Categories table, customize the income (earnings/revenue) and expense (expenses/costs) categories.
              The Category numbers can be amended, as well as the Description.
              The categories don't and must not contain an opening balance, in order to determine the result of the accounting year.


              Transactions table

              In the Transactions table, the daily income and expense transactions are entered, indicating the account, for which the transaction was made and the category to which the income or expense is attributed.



              In the appropriate columns:

              • Enter the date
              • Enter the document number that is manually assigned to the paper document. This allows you to easily find documents, once the accounting transaction has been entered.
              • Enter a description
              • In the Income columns enter the income amount
              • In the Expenses column, enter the expense amount
              • In the Account column enter the account number (it has to be an existing account in the Accounts table, ex. Bank)
              • In the Category column enter the expense or income category (it has to be an existing category in the Category table).

              Speeding up the recording of the transactions

              In order to speed up the recording of your transactions, you can use:

              Transactions with VAT

              In order to enter transactions with VAT please proceed as follows:

              • from the File menu, choose New command and choose Income /Expenses accounting with VAT/Sales taxes
              • Choose one of the existing templates for your nation of the Income/expenses accounting with VAT type
                In order to enter transactions with VAT, please refer to the Transactions page.

              Transactions on multiple rows

              Transactions on multiple rows, or Composed transactions are transactions involving more than two accounts and credits/debits on multiple accounts or categories (for example when you pay different invoices from the bank account). In this case you need to enter the transaction on multiple rows:

              • in the first row enter the total amount of the income or expense and the account from which this amount is debited or credited
              • in each subsequent row, enter the income or expense amount in the category column, and enter the appropriate category number.
                Each i
                ndividual amount is recorded on different row. When all the individual income and expenses rows are entered there shouldn't be any differences.

              The Account card

              The Account card allows you to have a complete list of entries relating to the same account or the same group.

              • To open an account card you click once on the account number cell and then click once on the small blue arrow appearing in the upper right corner of the cell.
              • To open multiple account cards you must select the Account cards command from Account1 menu.
              • To update the account cards, following changes in the Transactions table, you must click on the two circular arrows symbol, located at the top right of the account card.


              The category card

              The Category card allows you to have a complete list of entries relating to the same category.

              • To open a category card you click on the account number cell and then click once on the small blue arrow appearing in the upper right corner of the cell.
              • To open multiple category cards you must select the Account cards command from Account1 menu.
              • To update the category cards, following changes in the Transactions table, you must click on the two circular arrows symbol, located at the top right of the category card.

              Account cards per period

              To open an account card with account balances at predefined dates, click on Account1 in the menu, Account cards ... and click Period selected in the Period tab to insert your selected period.

              Consult the Period page for further information.

              Print the Account cards

              To print an Account card, open it from any table (Accounts or Transactions) and start printing from the File menu.

              To print out several or all the Account cards, click Account1 menu, select Account cards and select the Accounts you wish to print. The filter in the window allows you to select automatic selection of all accounts, cost centers, segments, groups etc ...

              For further information refer to the Account Cards page.

               

              Enhanced Statement

              To view the Enhanced Statement and the Enhanced Statement with groups, choose the Account1 menu and then the Enhanced statement or Enhanced statement with groups command. You can also obtain statements by period.

              Archive data in PDF format

              At the end of the year, when the accounting is done, corrected and revised, you can store all accounting data with the Create Pdf dossier command from the File menu.

              The Budget

              Before starting your accounting year, you can create a budget with your assumed expenses and revenue, in order to have control over the financial and economic situation of your company.

              The budget can be set in two different ways:

              • From the Budget column of the Categories table. For each account the yearly budget is indicated.
                In this case, when you process the budget from the Account1 menu, Enhanced statement with groups command, the Budget column shows the amounts that relate to the entire year.
              • From the Budget table, that you need to manually activate using the Add new functionalities command from the Tools menu.
                In this table all estimates are entered as budget transactions, either income or expenses. If you activate this table, the Budget column of the Accounts table is automatically deactivated.
                In the Budget table you can setup a detailed budget that takes into account possible variations during the year and in different periods of the year.

              Related document: Transactions, Enhanced statement.

               

              Accounts

              Estate accounts are entered in the Accounts table. Only one account is entered in the cash register (cash, bank, postal account ...); In Income/Expense accounting more accounts are entered (cash, customers, suppliers ...) and the accounts that refer to existing debt must have the opening amount with preceded by the minus sign (-).

              The columns of the Accounts table:

              Section
              Enter an asterisk to signal a section change. For example, to distinguish Total Assets from Cost Centers.
              Values must be entered in the Sections table for presenting the enhanced Statement with groups.
              Refer to the Sections page for further details and information.

              Group 
              Values are added up for the categories that have the same GR. They are fundamental for totalization.

              Account
              Enter the number or initials of the account to be managed (cash, bank, post).

              Description
              Enter a description for the relative account.

              Gr
              Enter a value that identifies the category belonging to a specific group.

              Opening
              Entering an account balance is only necessary if a new file is opened or Banana Accounting 8 software is used for the first time. When creating a new accounting year, balances will be generated automatically.

              Income
              This locked column displays the balance of incoming entries. The balance will be updated automatically after each registration.

              Expenses
              This locked column displays the balance of expenses. The balance will be updated automatically after each registration.

              Balance
              This locked column displays the balance resulting after income and expenses. The balance will be updated automatically after each registration.

              Opening balance

              The first time Banana Accounting 8 software is used and new file is created, opening an account balances must be entered manually in the Accounts table Opening column.

              Balances for Liabilites accounts must be entered preceeded by a minus (-) sign.
              When creating a new accounting year, balances for the new year will be generated automatically.

               

              Categories

              The headings for Income and Expenses are entered in the Categories table via two principal groupings, which may - in their turn - contain subgroups. The set of categories will determine the profit or loss for the accounting period.

              Groupings:

              In the example below, there are three principal groupings:

              • Group 3 - Total for Categories that have 3 in their Gr column (total Income)
              • Group 4 - Total for Categories that have 4 in their Gr column (total Expenses)
              • Group 00  - Total for groups 3 and 4 (Total Income and Expenses), which will determine the result for the accounting period.

              The columns of the Categories table:

              Section

              Enter an asterisk in the row that contains the title, to signal a section change, that will be displayed in the enhanced Statement with groups.
              (the asterisk is inserted in the "Operating Result" title row in our example).

              If different sections than Income and Expense are planned, such as Cost and Profit centers, another asterisk may be entered on the respective title row. Refer to the Sections page for further details and information.

              Group 
              Enter an identifier (numerical or sign) identical to the one entered for each category in the GR column. The totals for each category belonging to the same GR will then be added up (in our example, Group 3 totals the Income Category and group 4 the Expenses category)

              Description
              Enter a description for the relative Income or Expense Category.

              GR

              Each Category has an identifier that allows the establishment of the totals for the relevant Group (in our example all categories of Income are GR3, because they will be total in Group 3, Total Income.

              Income
              This locked column displays the balance of incoming entries. The balance will be updated automatically after each registration.

              Expenses
              This locked column displays the balance of expenses. The balance will be updated automatically after each registration.

              Balance
              This locked column displays the balance resulting after income and expenses. The balance will be updated automatically after each registration.

               

              Printouts

              Instant information

              Account balances, income and expense are on ready display in the Accounts and Category tables.
              After each entry of a transaction, balances are adjusted automatically and there is no need to run a report, as you can simply display the Accounts or Categories tables.

              Advanced printouts

              All printing is run from the Account1 menu, where the different functions for prining are located:

              • Journal by period command. You can display and print the whole table or just a specified period.

              • Account/Category cards command. You may select all cards or define your selection.
                Define the required period in the Period tab and click the required settings in the Options tab. Print settings can be saved in the Composition tab so they can be resumed without them to be having defined again.

              • Enhanced statement command. You may also print a defined period and various options and compositions may be included.

              • Enhanced statement with groups command. You may also print a defined period and various options and compositions may be included.

              • Accounting report command. The required options are displayed in the Accounts table. Reports are possible for current, previous periods or previous years; each period may contain subdivisions and the compositions can be saved.

              Example of printout of Enhanced statement with groups

               

               

               

               

              Enhanced statement with groups

              This feature is only available in version 7.0.4 or higher. It allows the user to obtain the Enhanced statement with groups, with all the options that are available in the Double-entry accounting.

              The Enhanced statement with groups makes it possible to:

              • Include all the groups that are present in the Accounts- and the Categories tables nn the printout,
              • Exclude groups or accounts individually
              • Select a subdivision by period
                (for example, in the first semester, one can select to have a subdivision by month or per quarter)
              • Select a subdivision by segment.
              Below are listed the explanations pertaining to the Income & Expense only; for complete documentation, please refer to the explanations of the Enhanced Balance sheet with groups page.
               
              See also Print Example.
               

              Sections

              The sections present in the Accounts- and/or Categories table make it possible to define a set of accounts and categories to be printed with the 'Enhanced statement with groups' command from the 'Account1' menu.

              • The sections are indicated in the Sections column of the Accounts- and the Categories table
              • An * (asterisk) indicates the beginning of a section
              • A ** (double asterisk) indicates the beginning of a subsection
              • A # indicates the beginning of the Notes section
              • A section ends once the next one begins
              • Contrary to the Double-entry accounting, it is not possible to use numerical identications for the sections
              • In case no section has been indicated, the program will enter them automatically when the command is used for the first time
                • In the Accounts table "Estate"
                • In the Categories table "Operating result"
              • It is recommended to create separate sections if there are cost centers, segments or clients/suppliers registers.
                In this way, it is possible to print reports with just the information that concerns the user.

               

              Configurations of Accounts & Categories

              In the dialogue window, you can define how to print the accounts and the categories.

              • The accounts, present in the Accounts table, will always be printed with the balances at the end of the indicated period.
              • The categories will always be printed with the movements of the indicated period.

               

               

               

               

              Enhanced Statement

              • The Enhanced Statement gives an overview of the progression of the Estate situation and the operating result of the year. This function is present in the Income & Expense accounting.
              • The Enhanced Statement is calculated and displayed by means of the Enhanced Statement command, from the Account1 menu.
              • In the window that pops up, you have the possibility to insert the header that will display on the first page of the Enhanced Statement; furthermore, a series of options can be selected in order to include further details in the printout. 
              • Transactions without date are being considered as opening transactions and will not appear in the printouts of the Profit & Loss Statement.

              See also Print Example.

              Page headers

              Rows 1-4

              These rows allow the definition of the Staement's headers.

              Column heade

              Initial date

              Insert the initial date of the accounting.

              Data finale

              Insert the final date of the accounting.

              Previous year

              Insert the final date of the previous year's accounting.

              Print pages

              Checking the boxes you define the options you desire to appear in the statement printout:

              Accounts

              The accounts will be printed..

              Initial page

              The initial page of the document with the file headers will be printed.

              Categories

              The categories will be printed.

              End of page after Accounts

              The accounts and the categories will be printed on two different pages..

              Include in printout

              By selecting the boxes, you choose the options that must appear in the printout.

              Other Tabs

              The explanations for the other tabs are available at the following pages:

               

               

              Accounting report

              • This command displays the amounts of accounts according to a certain grouping, for a specified period or per subdivision.
              • Transactions without date are being considered as opening transactions and will not appear in the printouts of the Profit & Loss Statement.

              Display

              You select the desired grouping scheme:

              • Accounts - the Report will show a list of all accounts with the following columns: opening balance, income, expenses and account balance
              • Categories - the Report will show a list of all categories with the following columns: opening balance, income, expenses and account balance.

              Options

              You select the accounts to be included or excluded:

              • Exclude accounts - only the categories will be printed
              • Include accounts with no transactions - accounts with no transactions will be printed as well
              • Include accounts with 0 balance -  accounts with zero balance will be printed as well
              • Exclude groups without accounts - groups of accounts with zero balance will not be printed.

              Other Tabs

              The explanations for the other tabs are available at the following pages:

               

              Transactions

              Avoid mistakes with Banana Accounting Plus

              In order to facilitate checking your accounting work and to immediately find differences, in Banana Accounting Plus, our new version, we added the Balance column in the Transaction table. You can now see potential differences on each row and you can correct them right away. It is a very useful feature when closing the accounting period.
              Many of our clients have already tried it and are enthusiastic about it. We advise you to switch now to Banana Accounting Plus and take advantage of the many new features.

              The transactions are entered in the Transactions table.
              For every transaction enter the date, document number, description, incoming or expense, the account and the category.

              • Income/Expenses: enter the amount coming in or going out.
              • Account: enter one of the Estate accounts (cash, bank, post, clients, suppliers...).
              • Category: enter an income or expense category.

              Speeding up the recording of the transactions

              In order to accelerate the recording of the transactions, you can use

              Examples of transactions without VAT

              The columns of the Transactions table

              Date
              Enter the date for the transaction of Income or Expense

              Doc
              Enter Doc number. The number of the paper document is normally assigned here; this will facilitate retrieval of documents at later dates.

              Description
              Enter a description for the relative Income or Expense.

              Income
              Enter Income amount.

              Expenses
              Enter Expense amount.

              Account
              Enter the Estate account (cash, bank, Post, clients, suppliers..).

              Category
              Enter a category of Income or Expense, as defined in the Category table.

              Examples of transactions with VAT

              Additional columns

              Depending on the type of Income / Expense accounts setup (with or without VAT) there are additional columns where VAT data is entered.

              VAT Code
              Enter the VAT code referring to a sale or a cost. There must be a code in the VAT Codes table.

              Refer to the Transactions page for explanations of VAT codes and further information.

              In the Account and Category columns, instead of entering the account and category number you can also write the text you wish to find.
              The software will show you the list with all the accounts and categories containing the entered text. With the Arrow down key you can move directly in the list and select the desired account number by pressing the Enter key.

              In order to display the movements of an account or a category, after entering the transactions, click on the small blue symbol in the account/category cell (top right corner of the selected cell).

              Account and category card

              In the account or category card, the presentation of the transactions is very similar to the ones of the Transactions table. If you enter further transactions or make changes (always operated in the Transactions table), you can update the account/category card by clicking the Refresh icon on the right side of the screen.

               

              New Year

              You can automatically transfer to the New Year in the following ways:

              • Open the file of the terminated year and click on the Create New Year command from the Account2 menu.
              • Confirm the basic data of the Accounting properties.
              • Save the file under a new name.

              The program will automatically carry forward :

              • The accounts, the opening balances
              • The categories will be carried forward without an opening balance, because you start from scratch, in order to determine the business result for the New Year.

               

              Cash book

              Introduction

              The ideal tool to manage the cash account of small sized companies, associations,  private enterprises or project planning.
              It can be configured with or without VAT.  On the other hand, it does not have the multi-currency functions.

              Features

              • Manages your cash account, or another estate account and income and expenses
              • VAT option allows VAT calculations and VAT tax returns
              • Process all your accounting records: accounting journal, account cards, periodical and annual reporting
              • Manage the Cost Centers and Segments
              • Several possibilites to submit and present your data
              • Export to Excel, Html, Xml, Pdf
              • Import various types of data files.

              Tables and Properties files

              The Cash book is part of the Income & Expense accounting type. It contains the following tables:

              • Accounts
                Where you find the Cash account or another estate account you manage and the relative opening balance.
              • Categories
                Define the categories of Income & Expense here, the Cost Centres and their segments.
              • Transactions 
                Record your transactions here.
              • VAT Codes
                If you have selected the VAT option, enter your VAT codes here. By selecting one of the VAT templates, VAT codes will be allocated correctly, allowing you to have a facsimile of your official VAT statement.
              • File and accounting properties
                Manage the general settings of your accounting here.

              Immediate information

              The account balances will be displayed instantly in the Accounts and Categories tables, after the income and expense recordings.
              Balances will be adjusted automatically after each registration of a transaction and you will not need to require a specific report to have an overview of your financial situation, which you can call up via the Accounts and Categories tabs.

              Support

              • Detailed information on the different functionalities of the program, with concrete examples and screenshots of the software, for your use
              • Free support for one year included.

              Topics similar to Double-entry accounting

              Commands

              Printouts

               

              Getting started

              To start working with Banana Accounting 8 software, proceed as follows:

              • Download Banana Accounting 8 software
              • Install Banana Accounting 8 software by inserting the license key.

              Creating a new accounting file

              • From the File menu, activate the New command
              • Select the Income & Expense accounting group and the Cash Book File (with or without VAT)
              • Select the Examples/Templates according to your language and nation

              Banana provides predefined templates.
              You may download:

              • from the program - select the language / country and choose the model that suits you
              • Clicking the button Online Templates  - you will access our Apps page internet site, where all existing accounting templates are available free of charge. You can run a detailed search by entering the language, country, and category of activity (company type, non-profit, independent ...).

                Setting up the File properties

                Set up your own data from the File and Accounting properties command and save with your own file name.

                Inserting the opening balance of the account

                Enter the account you wish to manage in the Accounts table of the Cash book and the initial amount in the Opening column.N. Activating the Creating a new year ... command in the Account2 menu will automatically generate the opening balances to be carried forward.
                Only one account can be entered at a time.

                Customizing the Categories table

                In the Categories table, customize the income and expense categories, according to your own needs. It is possible to:

                • change the category numbers
                • change the description
                • delete categories
                • add categories
                • insert subgroups
                • delete subgroups

                All balances of the categories will determine the result of the accounting year (profit or loss) and must therefore not contain any balances.

                Add new categories

                If new categories need to be added in an already existing group, proceed as follows:

                • Insert an empty row (Edit menu, Insert rows ... command) before the Total of the Group 
                • Insert the number or sign for the category in the Category column
                • Insert the Description that identifies the category
                • Insert the identical Gr of the other categories belonging to the Group Total in the Gr column.

                Add subgroups

                To add new subgroups, proceed as follows:

                • Insert an empty row (Edit menu, Insert rows ... command) where wish to add a new subgroup
                • Insert a number or sign in the last empty row of the Group column (in our example 31 - Other income)
                • Insert the Description that identifies the new subgroup
                • Insert the Group Total number in the Gr column (in our example 3 - Total sales).

                Delete categories or subgroups

                Select the categories or subgroups you wish to delete and proceed in the Edit menu, Delete rows ... command to eliminate.

                Transactions

                In the Transactions table, income and expense transactions are entered, indicating the category to which the income or expense is attributed.

                Speeding up the recording of the transactions

                In order to speed up the recording of your transactions, you can use:

                Transactions with VAT

                In order to enter transactions with VAT please proceed as follows:

                • from the File menu, choose New command and choose Income /Expenses accounting - Cash book with VAT/Sales tax
                • Choose one of the existing templates for your nation.In order to enter transactions with VAT, please refer to the Transactions page.

                The Category or Group card

                The Category or Group card allows you to have a complete list of accounting entries relating to the same category or group. 

                • To open an category or group card you click once on the account number cell and then click once on the small blue arrow appearing in the upper right corner of the cell.
                • To open multiple category or group cards you must select the Account cards command from Account1 menu.
                • To update the category or group cards, following changes in the Transactions table, you must click on the two circular arrows symbol, located at the top right corner of the account card.

                Account cards per period

                To open an category cards with account balances at predefined dates, click on Account1 in the menu, Account/Category cards ... and click Period selected in the Period tab to insert your selected period.

                Consult the Period page for further information.

                Print the Category card

                To print a Category card, open it from any table (Accounts or Transactions) and start printing from the File menu.

                To print out several or all the Account/category cards, click Account1 menu, select Account/category cards and select the accounts/categories you wish to print. The filter in the window allows you to select automatic selection of all categories, cost centers, segments, groups etc ...

                For further information refer to the Account Cards page.

                Enhanced Statement

                To view the Enhanced Statement and the Enhanced Statement with groups, choose the Account1 menu and then the Enhanced statement or Enhanced statement with groups command. You can also obtain statements by period.

                Archive data in PDF format

                At the end of the year, when the accounting is done, corrected and revised, you can store all accounting data with the Create Pdf dossier command from the File menu.

                The Budget

                Before starting your accounting year, you can create a budget with your assumed expenses and revenue, in order to have control over the financial and economic situation of your company.

                The budget can be set in two different ways:

                • From the Budget column of the Categories table. For each account the yearly budget is indicated.
                  In this case, when you process the budget from the Account1 menu, Enhanced statement with groups command, the Budget column shows the amounts that relate to the entire year.
                • From the Budget table, that you need to manually activate using the Add new functionalities command from the Tools menu.
                  In this table all estimates are entered as budget transactions, either income or expenses. If you activate this table, the Budget column of the Accounts table is automatically deactivated.
                  In the Budget table you can setup a detailed budget that takes into account possible variations during the year and in different periods of the year.

                 

                Printouts

                Instant information

                The account balance and those of the income and expense categories are on ready display in the Accounts and Category tables.
                After each entry of a transaction, balances are adjusted automatically and there is no need to run a report, as you can simply display the Accounts or Categories tables.

                Advanced printouts

                All printing is run from the Account1 menu, where the different functions for prining are located:

                • Journal - command to define the period. You can display and print the whole table or just a specified period.

                • Account/Category cards command. You may select all cards or define your selection.
                  Define the required period in the Period tab and click the required settings in the Options tab. Print settings can be saved in the Composition tab so they can be resumed without them to be having defined again.

                • Enhanced statement command. You may also print a defined period and various options and compositions may be included.

                • Enhanced statement with groups command. You may also print a defined period and various options and compositions may be included.

                • Accounting report command. The required options are displayed in the Accounts table. Reports are possible for current, previous periods or previous years; each period may contain subdivisions and the compositions can be saved.

                Example of printout of Enhanced statement with groups

                Transactions

                The transactions are entered in the Transactions table.

                For further information relative to the columns used in the Transactions table of the Cash book, refer to the Transctions (Income & Expense accounting) page. 
                For each operation enter the following:

                • the date
                • the document number
                • the description
                • the income or expense amount
                • the category relevant to the income or expense in the Category table
                • should the transaction be subject to VAT tax, enter the VAT code in the VAT code column.
                  The VAT codes are listed in the VAT codes table.

                Speeding up the recording of the transactions

                In order to accelerate the recording of the transactions, you can use

                Examples of transactions without VAT

                Examples of transactions with VAT

                Category card

                To display the entries of a category, click once on the small blue arrow appearing in the upper right corner of the cell.

                The display of entries in the Categories table is identical to the one in the Transactions table.
                To update the category or group cards, following new entries or changes in the Transactions table, you must click on the two circular arrows symbol, located at the top right corner of the category or group card.

                 

                Customers sub-menu

                New settings and documentation

                In the new Banana Accounting Plus version, in the Accounts table, new columns have been added in order to allow you to enter more information about your customers and, new features automatically resume the data in the Invoicing. Moreover, you will find a new and in-depth documentation to work in a very professional way:

                We advise you to immediately switch to Banana Accounting Plus and take advantage of the many new features.

                Customers' register and checking of open invoices

                Directly in the accounting you can:

                Features under development, only available in the Experimental version:

                Setting up and using the customers and invoices features

                1. Setting up the register and the customers' accounts in the Chart of Accounts
                2. Setting up the Customers' & suppliers' settings
                3. Setting up the Transactions table and entering the invoices
                4. Reports Open, overdue and issued invoices
                5. Printing invoices (Experimental version).

                Notes for the use of multi-currency

                • The Reports are based on the customer's account currency balances; possible exchange rate differences will not be taken into account.
                  In the Issued invoices table, the recordings of exchange rate differences are also listed, while in other prints only the customer's currency amount is used.
                • The reports Description column will reproduce the first row description for each invoice.
                • For the accounting files based ont cash received you can setup a customers register with the Cost Centers.

                Example file

                 

                 

                Setting up the accounts

                New settings and documentation

                In the new Banana Accounting Plus version, in the Accounts table, new columns have been added in order to allow you to enter more information about your customers and, new features automatically resume the data in the Invoicing. Moreover, you will find a new and in-depth documentation to work in a very professional way:

                We advise you to immediately switch to Banana Accounting Plus and take advantage of the many new features.

                Introduction

                The following explains how to set up separate accounts for each customer and a group for customers, so that you can have a list of separate invoices per customer.

                In case you only have a few invoices and don't want to keep a detail per customer, you can also have just one account to record all customer invoices.
                The list of invoices will then be for all customers and not for individual customers.

                Setting up the Clients' register

                We will show you how to create a separate section in the chart of accounts with the Clients' register.
                • Each client is a separate row in the chart of accounts and has its own account number
                • There is a group that groups all the customers accounts
                  This group is then grouped in a group present in the Assets.


                At the end of the Chart of accounts, add:

                Tabella conti

                • The total Clients will be totalized in the summary groupe 110A of the Gr column.
                • The same code or number used for the Gr (110A), must be used in the Assets Group column, in the row corresponding to the Total Customers of the Balance Sheet.
                  The groups' numbering can be freely chosen (see Groups).
                   


                Managing the Customers' register with the Cost centers

                In case you don't want customers to be visible on the Balance Sheet (for example, for transactions with VAT on cash received), customer accounts can be created by using the Cost centers (CC3).

                Setting up the clients/suppliers register with cost centers

                For all Swiss users who manage the VAT on cash received, this setup is the best to manage the VAT.
                It is possible to manage the customers/suppliers register as cost centers (see also the Cost and Profit Centers page):

                • we advise you to use the CC3 cost centers (the one where the accounts are preceeded by a semi-colon ";")
                • the cost center balances for customers and suppliers will not appear in the Balance Sheet.
                   

                Transactions

                More information is available at the page Clients and Suppliers with VAT on Cash received.

                Without register

                The customers accounts and groups can be entered as normal accounts into the Assets section.

                Activating the Address columns (optional)

                It is possible to add some specific columns in the Chart of accounts, to insert the address and other customers data:

                • Choose the Add new functionalities command from the Tools menu
                • Choose the Add addresses columns in the Accounts table command
                  (If you don't see this option in the list, it means that this function has already been activated).

                The program adds in the Accounts table:

                • An Address view where the added columns are visible.
                • The columns that allow to insert the address data and other information.
                  • To display one or more of these columns, use the Columns setup command from the Data menu, also in the other views.
                  • To create other views with only certain columns, use the Views setup command (Data menu).

                Select the Accounts table, Address view and add the desired information to the customers' accounts.

                Tabella conti, vista indirizzi


                Setting up the Customers' parameters

                • Select the Account2 - Customers - Settings command
                • Please indicate in "Group or account", the group of the Chart of accounts in which the different customers' accounts are grouped.
                • For an explanation of the different options, go to Customers and Suppliers settings.
                   

                 

                Customers' & suppliers' settings

                Impostazioni clienti/fornitori

                 

                 

                 

                 

                 

                 

                 

                 

                 

                This dialogue is identical for both customers and suppliers functions.
                The following explains the functions related to customers, but they also apply to suppliers.
                As long as you have not indicated the customer or supplier group, the customer menu choices are disabled.

                Group or account

                Select the generic group or account that contains the Customers or Suppliers list. The group or the account needs to be already present in the Accounts table. See Setting up the Customers' register and Setting up the Suppliers' register.

                Due date invoices (in days)

                The program uses the following order of priority to calculate the invoice deadline:

                • The due date if you entered it into the transaction row.
                   If there is more than one date for the same invoice number, the most recent one.
                • If the number of days is indicated in the PaymentTermInDays column of the Accounts' table, the date of the transaction increased by the number of days.
                • The date of the transaction is increased by the days indicated in the settings dialogue.

                Include transactions from previous (..) years (in years)

                •  If 0, the program will not display invoices from the previous year, but only the opening balances of the customer account.
                •  If 1, the program will also include the invoices of the previous year in the customer card.
                •  If 2 or more, the program will also include invoices from the years before in the customer card.

                Link to the invoice document

                You can insert a link to an invoice file (pdf, doc or other). When the link is being opened, the program substitutes the value <DocInvoice>  with the invoice number present in the row.  

                The link can contain:

                • The XML name <DocInvoice> or the name of another column contained between <>. 
                  If you use the  "<DocInvoice>.pdf" command and you are on the row with invoice number 100, the program tries to open the "100.pdf" file. You can also precede the filename with the name of a directory.
                • You can use any file name extension. This extension must, however, be included in the list of file extensions considered safe (Tools- Program options-Advanced).
                • It is also possibile to indicate a path preceding the field name that contains the name of the document that has to be opened.
                  With the link "c:\temp\<DocInvoice>.pdf" and the invoice number 100, the program proceeds to open the file c:\temp\100.pdf.
                  The name of the directory is relative to the directory where the file is located.

                Opening an invoice document

                •   Place yourself in the Invoice column of the transaction row related to the invoice you want to open
                •   Use the right mouse button to open the context menu
                •   Choose the command Open invoice link.

                 

                Entering transactions

                Displaying the Invoice column in the Transactions table

                The invoice number has to be entered in the Invoice column (DocInvoice) which, in the default settings, is not visble in the Transactions table.

                In order to display the column:

                • Select the Transactions table
                • Data menu
                • Columns setup command
                • Activate the Visible option for the DocInvoice column

                The Invoice columns becomes visible.

                Tabella registrazioni

                The Open Invoice link and Extract invoice rows commands, described hereunder, are linked to the Invoice column (right click on the Invoice column's cell).

                Autocomplete of invoice data

                When a payment is being recorded or an issued invoice is being corrected, the program proposes suggestions to complete the transaction automatically. Proceed as follows:

                • Create a new transaction row and add the date
                • In the Invoice column, press the F2 key; the list of open invoices will appear. If you write an invoice number or an account number, the list will be filtered based on the entered text.  
                • Select the desired invoice and press Enter. The program automatically completes the transaction with the description, debit or credit account and the amount. As usual, these data can be manually modified. 
                • Apart from the date, it is possible to also indicate the Customer account before pressing F2 in order to display the list of open invoices; in this case the list will be filtered based on the Customers account of the transaction row.
                Note

                The list displayed in the Invoice column includes both the Customers' and Suppliers' invoices. A supplier's invoice can have the same number as the invoice of another supplier, because the display criterium takes, apart from the invoice number, also the number of the Supplier's acccount into consideration.  

                Pagamento fattura

                The Open Invoice link and Extract invoice rows commands, described hereunder, are linked to the Invoice column (right click on the Invoice column's cell).

                Recording an issued invoice

                Emissione fattura
                 

                Recording a payment

                • Insert the transaction date
                • Place yourself in the Invoice column cell and click on the F2 button. If the F2 button doesn't work, you need to activate your customers/suppliers settings, by entering your register's group (ex.: Account2 menu, Customers, Settings). A list of all open invoices will appear.
                • As an alternative you can also start to enter the invoice number, the customer/supplier name or the amount, and the program will show you the list of the open invoices according to your search data.
                • Select the desired invoice and press Enter.
                • The program completes the Transaction with the Description column, the Credit account and the Amount.

                Pagamento fattura

                Enter the account into which the invoice amount has been transferred

                Pagamento fattura
                 

                Recording a credit note

                In order for the amount to be deducted from the original invoice, the same invoice number needs to be used. If the corrective document (for example, a credit note) presents a different number that needs to remain available, such a reference can be entered in another column, like Doc. Original.

                Nota di credito
                 

                Extract invoice rows and Open invoice link commands

                The Extract invoice rows command displays the transactions of the selected invoice.
                The command is available by clicking on the small blue arrow at the upper right corner of the cell or with the right mouse button.

                Comandi contestuali
                 

                Comandi contestuali

                 

                Scheda fattura

                The Open Invoice link command establishes the text that has been defined in the Customers' settings (Account 2 - Customers - Settings - Link to the Invoice document).

                For example, if the invoices have been created with Winword and saved in the Documents folder, these files can directly be opened by setting up the command line with the text 'C:\Users\myname\Documents\<DocInvoice>.doc' . The program substitutes <DocInvoice> with the text corresponding to the column and executes the command.

                In the command line, it is possible to also indicate other columns of the table by using their XML names.

                If the message 'File with extension considered unsecure' appears, add the extension (for example .doc) through the command Tools - Program Options, Advanced, File extension.

                 

                Customers' invoices lists

                Displaying the invoices issued to customers
                 

                Estratto clienti/fornitori

                This dialogue is identical for both customers and suppliers functions.
                The following explains the functions related to customers, but they also apply to suppliers.

                All customers (suppliers)

                Displays the Customers' Balance detail of all customers that belong to the group defined in the Customers and Suppliers settings.

                Only selected customer (supplier)

                Displays the Customers' Balance detail of a selected customer that belongs to the group defined in the Customers and Suppliers settings.
                 

                Example of a Customers Balance detail  (Account2 menu - Customers command - Invoices issued to customers...)Estratto clienti/fornitori


                Displaying the open invoices

                Command: Account2 - Customers - Open invoices by customer

                In this table, the invoices that have an open balance are being listed.

                Fatture aperte

                 

                 

                 

                 

                 

                 

                 

                 

                 

                 

                 

                 

                Displaying the overdue invoices

                Command: Account2 - Customers - Open invoices by due date

                In this table, the invoices that have an open balance are being listed, grouped by aging period.

                Fatture scadute

                 

                Creating invoices

                New layouts

                In the new Banana Accounting Plus version, two new highly customizable layouts have been added:

                We advise you to switch now to Banana Accounting Plus and take advantage of the many new features.

                This Functionality is currently only available with Banana Accounting 9.


                For more information, please refer to the corresponding Banana 9 documentation.

                 

                 

                Suppliers sub-menu

                New settings and documentation

                In the new Banana Accounting Plus version, in the Accounts table, new columns have been added in order to allow you to enter more information about your customers and, new features automatically resume the data in the Invoicing. Moreover, you will find a new and in-depth documentation to work in a very professional way:
                 

                We advise you to immediately switch to Banana Accounting Plus and take advantage of the many new features.

                Suppliers sub-menu

                The features, present in the Suppliers sub-menu (from the Account2 menu), allow you to obtain the following lists: 

                 

                Logic for checking Suppliers' invoices

                In order for the program to be able to prepare the lists of received invoices:

                • In the Invoice column of the Transactions table, indicate the invoice number.
                • In the Debit or Credit column of the Transactions table, indicate the account number of the Supplier


                Also, before entering the transactions:

                • In the Chart of accounts, Supplier accounts and/or groups need to be created
                • If desired, address columns can be added
                • In the Suppliers set up, indicate the Suppliers group or the general Suppliers account.


                You also need to choose if, in the Chart of accounts, you need to have:

                • An account for each Supplier.
                  This is necessary when the list of invoices needs to be presented separately by supplier.
                  In this case, a row needs to be created for the Suppliers and each supplier account refers to this group in the GR column (see hereunder).
                • One single account in which all the Suppliers are contained
                  The list of the open, expired invoices will be for all the Suppliers together and not per each individual Supplier.

                 

                Notes:

                • Reports are based on the account currency balances; possible exchange rate differences will not be taken into account.
                • The reports Description column will reproduce the first row description for each invoice.
                • For the accounting files based ont cash received you can setup a suppliers register with the Cost Centers.

                 


                Detailed explanations

                Setting up Suppliers accounts

                • Setting up the register
                • Activating the address columns (optional)
                • Setting up the suppliers' settings

                Entering transactions

                • Displaying the Invoice column in the Transactions table
                • Entering the invoice that is being issued
                • Entering a payment
                • Entering a credit note
                • The Extract invoice rows and Open invoice link commands

                Reports and printouts

                • Displaying the open invoices
                • Displaying the expired invoices
                • Displaying the Invoices received from Suppliers

                Automatic autocomplete


                Example file

                Setting up the accounts

                Setting up the Suppliers' register

                The Suppliers accounts & groups can be emtered just like regular accounts, directly into the Chart of accounts
                 
                It is equally possible to create a separate section with the Suppliers' register. In this way, only the total of the Suppliers' group is visible in the Chart of accounts and in the register all the individual Suppliers' accounts are being displayed.

                To create the Suppliers' register, add at the end of the Chart of accounts:

                • A * section (header)  (see Sections)
                • A 02 section for the Suppliers (see Sections)
                • The Suppliers' accounts that are needed (see Adding a new account). The account numbering can be freely chosen. 


                Tabella conti

                • The total Suppliers will be totalized in the summary groupe 200A of the Gr column.
                • The same code or number used for the Gr (200A), must be used in the Liabilities Group column, in the row corresponding to the Total Suppliers. The groups numbering can be freely chosen (see Groups).


                Managing the Suppliers' register with the Cost centers

                In case you don't want Suppliers to be visible on the Balance Sheet (for example, for transactions with VAT on cash received), Suppliers accounts can be created by using the Cost centers (CC3). This process is similar to the Clients cost centers.

                 

                Activating the Address columns (optional)

                 

                It is possible to add some specific columns in the Chart of accounts, to insert the address and other Supplier data:

                • Choose the Add new functionalities command from the Tools menu
                • Choose the Add addresses columns in the Accounts table command
                  (If you don't see this option in the list, it means that this function has already been activated).

                The programme adds in the Accounts table:

                • An Address view where the added columns are visible.
                • The columns that allow to insert the address data and other information.
                  • To display one or more of these columns, use the Columns setup command from the Data menu, also in the other views.
                  • To create other views with only certain columns, use the Views setup command.

                Select the Accounts table, Address view and add the desired information to the Suppliers accounts.

                Tabella conti, vista indirizzi

                 

                Setting up the Suppliers' parameters

                • Select the Account2 - Suppliers - Settings command
                • Please indicate in "Group or account", the group of the Chart of accounts in which the different Suppliers' accounts are grouped.
                • For an explanation of the different options, go to Customers and Suppliers settings.

                 

                Entering transactions

                Displaying the Invoice column in the Transactions table

                The invoice number has to be entered in the Invoice column (DocInvoice) which, in the default settings, is not visible in the Transactions table.

                In order to dispaly the column:

                • Select the Transactions table
                • Data menu
                • Columns setup command
                • Activate the Visible option for the DocInvoice column

                Tabella registrazioni

                 

                 

                 

                 

                 

                 

                 

                 

                 

                 

                 

                 

                The Open Invoice link and Extract invoice rows commands, described hereunder, are linked to the Invoice column.

                Recording a received invoice

                Emissione fattura

                 

                 

                 

                 

                 

                 

                 

                 

                 

                Recording a payment

                • Insert the Transaction date
                • Place yourself on the Invoice column and press the F2 key
                  The list of Open invoices will be opened.
                • Select the desired invoice and press Enter.
                  The program completes the Transaction with the Description column, the Debit account and the Amount.

                Pagamento fattura

                 

                 

                 

                 

                 

                 

                Enter the account used to pay the invoice.

                Pagamento fattura

                 

                 

                 

                 

                 

                 

                 

                 

                Recording a credit note

                In order for the amount to be deducted from the original invoice, the same invoice number needs to be used. If the corrective document (for example, a credit note) presents a different number that needs to remain available, such a reference can be entered in another column, like Doc. Original.

                Nota di credito

                 

                 

                 

                 

                 

                 

                 

                 

                 

                Extract invoice rows command and Open invoice link

                The Extract invoice rows command displays the transactions of the selected invoice.

                The command is available by clicking on the small blue symbol above at the upper right coner of the cell or with the right mouse button.

                Comandi contestuali

                 

                 

                 

                 

                 

                 


                The invoice rows can also be extracted by clicking on the invoice number with the right mouse button, Extract invoice rows command.

                Comandi contestuali

                 

                 

                 

                 

                 

                 

                 

                 

                Scheda fattura

                 

                 

                 

                 

                 

                 

                 

                The Open Invoice link command establishes the text that has been defined in the Suppliers' settings (Account 2 - Suppliers - Settings - Link to the Invoice document).

                For example, if the invoices have been created with Winword and saved in the Documents folder, these files can directly be opened by setting up the command line with the text 'C:\Users\myname\Documents\<DocInvoice>.doc' . The program substitutes <DocInvoice> with the text corresponding to the column and executes the command.

                In the command line, it is possible to also indicate other columns of the table by using their XML names.

                If the message 'File with extension considered unsecure' appears, add the extension (for example .doc) through the command Tools - Program Options, Advanced, File extension.

                 

                Reports and printouts

                Displaying the open invoices

                Command: Account2 - Suppliers - Open invoices by supplier

                In this table, the invoices that have an open balance are being listed.

                Fatture aperte

                Displaying the overdue invoices

                Command: Account2 - Suppliers - Open invoices by due date

                In this table, the invoices that have an open balance are being listed, grouped by aging period.

                Fatture scadute

                Displaying the Invoices received from suppliers

                Command: Account2 - Suppliers - Invoices received from Suppliers

                In this table, all the invoices that are part of the Suppliers' register, or that belong to an individual supplier, are being listed

                Estrtto clienti

                 

                 

                VAT Management

                Pages with more in-depth information:

                Theory

                VAT (Value-added Tax) is a tax that weighs on the final consumer. Every VAT subject must calculate and periodically deposit the tax to the Revenues Authority.

                Every country has its own VAT rates that are established in different percentages depending on the type of merchandise or service. Certain merchandise and services are exempt or excluded.

                The percentages vary according to the financial necessity of the country; therefore, there can be changes over the years.
                 

                VAT rate

                In this document, to make calculations easier, we will use the following rates:

                • 10 % normal rate
                • 5% reduced rate
                • 0% excluded operations or exempt operations
                   

                VAT calculation

                Net Price x VAT Percentage / 100 = VAT Amount

                Example:
                Net price 300
                Tax rate 10%
                VAT amount = 300 x 10 / 100 = 30
                 

                Gross price calculation

                Net price + VAT Amount = Gross Price

                Example:
                300 + 30 =  330

                Sometimes the gross amount is known and it is necessary to find the net and VAT amounts.


                Net price calculation

                Gross Price / (100 + VAT rate) x 100 = Net Price

                Example:
                330 / (100 + 10) x 100 = 300

                The net price represents the cost (purchase) or the revenue (sale) of the company
                 

                VAT amount calculation

                Gross Price - Net Price = VAT Amount

                Example:
                330 - 300 = 30

                or

                330 - [330 / (100 + 10) x 100] = 30

                The VAT amount represents the debit (sales) or the credit (purchases) towards the Revenues Authority.
                 

                VAT rate calculation

                VAT Amount  / Net Amount x 100  = VAT Rate

                Example:
                30 / 300 x 100 = 10%

                or

                [330 - 330 / (100 + 10) x 100]/100 = 10%

                Another example:
                20 / 400 x 100 = 5%

                This way of calculating is used when the rate is not known.

                 

                VAT Codes Table

                The VAT Code table setup allows the definition of all the parameters that are necessary to manage the transactions with VAT. The setup refers to:

                • VAT due or recoverable
                • Transaction amount recorded as net, gross, or VAT amount at 100% (Customs VAT)
                • Freely definable applicable VAT rates
                • Freely definable account in which VAT must be recorded
                • Special rounding off for each code
                • Definable grouping and totaling method

                The VAT Codes table has a Base view and a Complete view (see top of the table hereunder). The difference between the two is the fact that the Complete view presents several columns that are not available in the Base view. These columns serve to accommodate some specific options.  

                How to calculate

                The parameters indicated in the VAT Codes table are being used to calculate the VAT of the individual transactions. The parameters established in the VAT Codes table cannot be changed in the transactions. This modality guarantees that the VAT calculations are correct and uniform.

                Please note: if the values of a VAT Code, which has already been used in the transactions, are being modified, the changes are not active immediately; in this case it is necessary to activate the Recheck accounting command (Account1 menu -> Recheck accounting). When the VAT Codes table is being modified, the program invites the user, through a message in the Info window, to execute a complete recalculation as a precaution. 

                The following table refers to the codes being used according to the Swiss legislation:

                Detailed description of the columns

                In the following columns, insert the following data:

                • Group: a code or number that identifies the group to which the code belongs. In the example we have inserted 1 for the sales, 2 for the purchases, T for the total. 
                • VAT Code: the code to identify and carry forward the VAT code in the transactions.  
                • Description: a text for the description of the VAT Code or the group.
                • Disable:
                  - Entering 1, the VAT code isn't displayed in the autcomplete list (Transactions table), but can still be used;
                  - Entering 2, the VAT code is disabled and cannot be used.  
                • Gr: code of the "Group" in which the row has to be added.
                • Gr1: In the image of the table above, the grouping codes representing the numbers for the Swiss VAT declaration are being shown.
                • Gr2: code for additional groupings.
                • Due VAT
                  If the word Yes is being inserted, this means that the VAT is at debit (due to the State)   
                  If the cell is empty, this means that the VAT is at credit (recoverable) 
                • Amount type: indicates how the software considers the transaction amount:
                  0 (or empty cell) with VAT/sales tax (the transaction amount is considered VAT included) 
                  1 = without VAT/Sales tax (the transaction amount is considered VAT excluded)
                  2 = VAT amount (the transaction amount is considered the VAT amount) 
                • % VAT: VAT code percentage 
                • Non ded.: if, for a VAT code, it is not possible to deduct the full 100%, enter the non deductible percentage here (example 100%)
                • VAT% on gross: is usually being left empty. In special cases, the word "Yes" has to be inserted only if the VAT percentage has to be applied on the gross amount (VAT included) and not on the taxable amount. 
                • VAT account: the account on which the calculated VAT is being automatically.
                  In the File and Accounting properties (File menu), a general account, that will be used as the VAT account, can be defined.
                  It is also possible to set up a specific account for every individual VAT code.
                • Round Min: minimum value for rounding, to be used only in particular cases. By preference, the rounding indicated in the basic data of the accounting (f.i. minimum rounding value 0.05) is being used.
                • Don't warn: there are particular transactions that the software could interpret as mistaken, but which, in reality, are correct. In order to avoid for the software to signal error messages, insert the word Yes for the code that is concerned. 

                When the transactions with VAT are inserted, by applying the VAT Code in the VAT Code column, the software calculates automatically all the amounts related to the VAT and transfers them in the VAT account. 

                Rechecking of the accounting file

                When rechecking the accounting file, if transactions are not locked, the program will reload the VAT parameters assigned to each code. If a VAT code setting has been changed, the change will be taken into account in the corresponding transactions columns (that cannot be edited by the user).

                For this reason, when editing the VAT table, the program suggests to operate a full accounting recheck.

                Adding a new percentage 

                When a new percentage is added, a new row has to be added; in the new row, insert the data of the new VAT code with the new percentage, while paying attention to insert the correct grouping. Don't change a code that has already been used in the transactions.   

                Groupings

                By creating groups with multiple totaling levels, the user can obtain the totals that are necessary for the VAT declaration.   
                In the VAT report, by activating the option Use own grouping scheme, the software calculates the totals exactly as indicated in the sequence of the indicated groupings in the VAT Codes table. 
                The groupings are being used to obtain totals for groups of transactions, for example, the totals for all exportations or importations. 

                 

                Related document: Import VAT codes

                 

                File properties (VAT/Sales tax tab)

                This tab only appears if an accounting with VAT/Sales tax management is chosen.

                VAT Account
                The Automatic VAT account, that is present in the chart of accounts, is defined here as default. In this case, the VAT account does not need to be inserted in the VAT Codes Table.

                VAT/Sales tax rounding
                This is where the user inserts how the VAT/Sales tax amounts should be rounded; if, for example, the user inputs 0.05, the VAT/Sales tax amounts will round to multiples of 0.05.

                Cost Centers 1 (CC1), 2 (CC2), 3 (CC3)
                For each type of Cost Center, the user can select which amount to use for the transaction in the cost center.

                • Use transaction amount
                • Use amount inclusive VAT/Sales tax
                  (When cost centers are being used for Client/Suppliers accounts)
                • Use amount without VAT/Sales tax
                  (When cost centers are being used for Revenue and Expenses)

                Note: If one of these parameters is modified, the accounting must be recalculated.

                 

                Related documents: VAT Management, Cost and Profit Centers

                 

                Arrondi IVA

                Le système TVA suisse prévoit pour le calcul de la TVA que celle-ci se fait calculé au centime, sans arrondi.  

                Pour ceux qui ont la nécessité d'avoir un arrondi des montants TVA pour les centimes, la procédure suivante a été prévue:

                • Dans le tableau Écritures, insérer les Écritures comme d'habitude, en appliquant le code TVA approprié
                • Dans la ligne suivante, enregistrer le compte des charges ou des produits, utilisé dans la ligne précédente, en débit et en crédit
                • Dans la colonne montant, enregister les centimes de l'arrondi
                • Dans la colonne Code TVA, insérer un code TVA avec type montant 2 (montant TVA au 100%) par exemple M80-2
                • Quand les centimes doivent être déduits, insérer le code précédé par le signe moins "-M80-2".

                 

                Associate VAT code to the account

                In an accounting with VAT, in the Accounts table, it is possible to associate a VAT code to the income/expense accounts, so that, when the sales and purchases are being recorded, the program automatically inserts the VAT code and completes the columns with the VAT data while entering the account number.  

                In order to associate the codes:

                • Click on the Other view. In this view, the VAT code column is visible by default.
                  In case you wish to display the VAT code column in the Base view, click on the Data menu, Columns setup command (see Related document at bottom of this page).
                • Insert the VAT codes for the income/expenses in the VAT code column.

                .

                Related document: Columns setup

                 

                Configurer les comptes TVA

                Quels sont les comptes TVA?

                Les comptes TVA sont des fiches comptables d'où on enregistre les montants TVA, calculés selon les configurations des codes TVA.

                Quand on utilise un code TVA, le programme calcule automatiquement, selon les valeurs de l'écriture:

                • le montant imposable et le montant TVA
                • le montant qui doit être enregistré sur le compte Débit
                • le montant qui doit être enregistré sur le compte Crédit
                • le montant qui doit être enregistré sur le compte TVA
                • comment doit être enregistré le montant TVA (en Débit ou en Crédit)

                En déplaçant le curseur sur l'écriture, en bas de la fenêtre d'information, le programme affiche les montants enregistrés sur les différents comptes.

                Configurer les comptes TVA

                Compte TVA général (automatique)

                Si configuré dans les Propriétés fichier (menu Fichier) comme prédéfini, ce compte TVA est utilisé à chaque fois qu'il y a une écriture pour un code TVA qui n'a pas de compte TVA défini.

                Compte TVA pour le code TVA

                Pour chaque code TVA, dans le tableau Codes TVA, colonne Compte TVA, on indique le compte qui doit être utilisé pour les écritures qui utilisent ce code TVA.

                Utiliser un seul compte TVA ou plusieurs comptes?

                Dans la comptabilité, il faut séparer la partie Actifs des Passifs. Toutefois, si la TVA récupérable est compensée par le montant de la TVA due, seulement le montant TVA effectivement dû est affiché dans le Bilan.
                Du point de vue comptable réel, dans la plupart des cas il n’est pas indispensable d'avoir plusieurs comptes TVA; en fait il est préférable d’avoir un seul compte TVA.
                Pour l’application de la déclaration, cependant, il est utile d’avoir différents types d’opérations de TVA distinctes. Dans les programmes qui n’utilisent pas les codes TVA, il faut séparer chaque opération sur des comptes séparés. Avec Banana, grâce aux codes TVA et au Résumé TVA, il est possible d'obtenir des détails beaucoup plus importants :

                • mouvements et totaux (TVA imposable, TVA, TVA comptabilisée)
                • mouvements et totaux par pourcentage TVA
                • mouvements et totaux par compte TVA
                • mouvements et totaux regroupés selon TVA due et selon TVA récupérable.

                Pour des contrôles d'opérations TVA, il n'est pas nécessaire d'utiliser plusieurs comptes TVA séparés.

                Banana Comptabilité laisse donc le choix d’utiliser le compte général ou plusieurs comptes TVA.

                Avantages d’utiliser un seul compte TVA

                Après plusieurs années, nous avons vu que l’utilisation d’un compte TVA unique est beaucoup plus intuitive; pour les plans comptables suisses nous avons donc décidé d’utiliser un seul compte TVA (2201, Décompte TVA), évidemment en laissant à chacun la possibilité de modifier les paramètres.
                • Bilan et compte de résultat beaucoup plus facile à lire (il n’ya pas beaucoup de comptes TVA).
                • Possibilité d'avoir des comptes (par exemples, des produits) d'où enregistrer des opérations avec plusieurs taux TVA.
                • Connaître immédiatement la TVA due, sans avoir à additionner les différents comptes.
                • Vue immédiate de toutes les transactions TVA
                  La fiche Décompte TVA montre toutes les opérations TVA en Débit et en Crédit.
                 

                Avantages de l’utilisation de plusieurs comptes de TVA

                Comme dit, si l'on utilise des codes TVA, l'enregistrement sur un compte TVA spécifique est une répétition des informations qui sont déjà disponibles grâce aux codes TVA et leur Résumé TVA detaillé.

                Dans les pays tels que l’Allemagne, il est habituel d'avoir un compte TVA différent pour chaque type d'opération, afin que la déclaration TVA puisse être faite à l’aide des soldes des différents fiches de compte TVA.

                Dans ces cas, pour assurer la compatibilité avec ce système, on peut considérer qu'il est utile d’avoir des comptes TVA différents pour chaque code TVA.

                Clôture comptes TVA à la fin d'une période

                À la fin de la période de calcul pour la TVA, il est utile de clôturer les comptes TVA de Débit et de Crédit et de déplacer le solde sur un compte unique:

                • On voit, de façon comptable, quel est exactement le solde dû
                • Le compte "2201, Décompte TVA" recommence avec un solde zéro pour chaque période. Il est donc plus facile d'avoir le contrôle sur d'éventuelles différences et erreurs.

                Pour la clôture périodique du compte "2201, Décompte TVA", consulter la page Clôture périodique et paiement TVA.

                 

                Transactions

                Accounting Charts templates included in Banana Accounting are already set with the VAT accounts, the VAT according to VAT report account (automatic), both in the chart of accounts and in the File and accounting properties of the File menu - VAT tab (in this case you don't need to enter any VAT account into the VAT codes table).

                In case you are not using the Charts of accounts already available in Banana, make sure that the necessary VAT accounts are present in your own Chart of accounts. Our advice is to use a "VAT according to VAT report" account and to enter it into the File and Accounting properties, VAT/Sales tax Tab.

                In the VAT codes table, there are codes both for the sales and the purchases. When entering the transactions, use the appropriate VAT code. 

                The software automatically splits the VAT amounts and records them in the "VAT according to VAT report" account or in the VAT account that has been indicated by the user in the File and Accounting properties.

                 

                VAT columns in the Transactions table (Complete VAT view)

                You can find the full explanation of the main Transactions table columns in the Transactions page.

                In the Double-entry accounting files with VAT or in those of the Income & Expense accounting with VAT, you will find the following VAT columns:

                • VAT Code: for each transaction with VAT you need to enter one of the VAT codes from the VAT codes table
                • VAT %: the program automatically enters the VAT percentage associated with the VAT code you entered
                • VATExtraInfo: A code related to extra info about the VAT, to be used only in very exceptional cases.
                  It is possible to enter a symbol to identify specific VAT cases. The program suggests options, corresponding to the VAT Codes that start with a colon ":".
                • %Eff.: the program automatically enters the VAT percentage referred to the net amount. This percentage is different from the normal percentage when this one is referred to the gross amount.
                • Taxable: once you enter the VAT code, the software automatically indicates the taxable amount (without VAT)
                • VAT amount: the program automatically indicates the VAT amount
                • VAT A/C: the account where the VAT is registered is automatically indicated (for Switzerland normally is the 2201 VAT report account); this account was previously entered in the File Properties, VAT tab (from the File menu).

                   
                • Amount type: this is a code that indicates how the software considers the transaction amount:
                  • 0 (or empty cell) with VAT/sales tax, the transaction amount is VAT included
                  • 1 = without VAT/Sales tax, the transaction amount is VAT excluded
                  • 2 = VAT amount, the transaction amount is considered the VAT amount at 100%
                  • Amount type not editable: Default mode.
                    • The column is protected
                    • The program uses the associated value of the VAT Codes table
                    • When you edit the value in the VAT Codes table and you recalculate the accounting, the program uses the new value associated with this VAT Code.
                  • Amount type editable: this option can be activated with the Add new functionalities command. The activation of the option cannot be undone.
                    • When you edit the VAT Code, the program uses the Amount type associated with this code.
                    • The value can be edited manually
                    • When the accounting is being recalculated, the value indicated in the Transactions table is being maintained.
                       
                • Non. Ded. %: this indicates the non deductible %.
                  • When you enter or change the VAT Code, the program uses the Non. Ded. % associated to this VAT Code in the VAT Codes table.
                  •  You can manually edit the value
                • VAT Acc.: this is the VAT amount registered in the VAT account.
                  It is calculated by the program according to the Transaction amount, the Amount type and the non deductable percentage.
                • VAT number: this is the code or VAT number of your client/supplier.
                  When you enter a transaction with VAT, it is possible to enter the VAT number of your counterparty. If in the Accounts table, in your clients/suppliers register, you also enter their VAT number, this is automatically loaded in the Transactions table, in the VAT number column.

                Transactions with VAT

                Before entering transactions with VAT, we advise you to visit the Transactions page.

                The most common way of entering a VAT transactions is to enter the gross amount (amount including VAT), then apply to it the appropriate VAT code, choosing it among the ones included in the VAT codes table and according to your transaction type (Purchase, Sale, Discount, ...).


                 

                How to correct VAT transactions

                If you see the mistake right away, you can just edit the transaction row; this is only possible if you haven't sent your VAT report yet and if there is no transactions lock.

                If however your accounting file is locked or if you have already sent your VAT report, you cannot simply delete the wrong transaction, but you need to operate some cancellation-transaction and then re-enter the correct transaction.

                In order to rectify VAT operation you need to:

                • make a new transaction by inverting the Debit and Credit accounts used in the wrong transaction
                • enter the same amount
                • enter the same VAT code but preceeded by the minus sign (ex.: -V80)
                • enter a new transaction with the correct accounts, amount and VAT code

                Depending on the entity of the mistake, you should consider informing your local VAT office; usually they ask you to download a specific form for correcting mistakes in the previous VAT period.

                Transactions with different VAT codes

                When the total amount of an invoice is composed by several amounts with different VAT percentages, you need to register as follows:

                • each amount with a specific VAT percentage needs to be entered on a different row with its own VAT code (enter the gross amount)
                • once you finish the multiple registration, check that the sum of the differents amount and the VAT amounts correspond to the invoice total.

                Here is an example:


                VAT EXEMPTION
                If in your invoice you also have some items VAT exempt, you need to operate as above, choosing the VAT exempt code from the VAT Codes table.

                Credit note

                In case an operation, that has been entered at an earlier date, needs to be cancelled, the same VAT code that has been used for the initial operation needs to be entered with the minus sign (-). In this way the VAT is being rectified.

                Instead of using the minus sign prior to the VAT code, it is also possible to use the specific VAT codes for discounts that have been configured in the VAT Codes table.
                 

                Example of a credit note on a sale

                When a client finds a defect on a sold product, usually a credit note on his behalf is being issued. The credit note implies a decrease of the income and as a result a recovery of the VAT (Sales tax).

                For example, we enter a sale amount of 12'000 including a 8% VAT. We then issue on the client's behalf a credit note of CHF 200.- for a product defect.

                For a recovery of the VAT on the amount of the credit note, the VAT code of the sales has to be entered with a minus (-) sign.


                Example of a credit note on a purchase

                When we receive a credit note from a supplier, the same process as explained above applies: we use the same account codes but reverted, and we use the same VAT code with the minus (-) sign.

                For example, we enter a purchase amount of 3'000 (invoice payment) including a 8% VAT. We then receive a credit note of CHF 300.-  from our supplier for a product defect.

                 

                Period closing and VAT payment

                VAT account reset at the end of the quarter report

                At the end of the period, the VAT account balance will be charged to the Due VAT account (or to the Treasury VAT account).

                VAT account card before charging the period balance to the Due VAT account

                Transaction for charging the quarter balance to the Due VAT account

                VAT account card after charging the period balance to the Due VAT account

                 

                VAT payment

                The Due VAT account (or the Treasury VAT account) will have a zero balance when you pay the due VAT.
                With this system you can control your balance each quarter and in case of mistakes you can find in which period the balance does not correspond any more.

                Due VAT account card after quarter payment

                Note: the VAT payment process we just explained refers to the Swiss effective VAT payment method and the Swiss flat rate payment method with VAT separation.
                If you use the Swiss flat rate payment methos without VAT separation, you can find specific information on the VAT payment and accounting assestment page (available only in Italian, German or French).
                 

                How to register a credit note (Switzerland)

                If at the end of a period, when calculating the VAT report, the previous VAT is bigger than the due VAT, your VAT report has a Debit balance.

                In order to charge the VAT report account you need to enter a transaction as follows:

                • put in Debit A/C the Due VAT account
                • put in Credit A/C the VAT report account

                Usually in Switzerland the VAT credit is reimbursed, without having to move the credit to the following period.

                When your VAT is reimbursed you need to enter a transaction as follows:

                • put in Debit A/C your equity account
                • put in Credit A/C your Due VAT account (where the balance should go to zero)

                 

                VAT Report

                The VAT Report elaborates and displays the VAT calculation according to the selected period and parameters.

                Procedure:

                • Select, from the Account1 menu, the VAT report command

                When activated, the following options allow the user to include the following data in the VAT report:
                 
                Include transactions
                All the transactions with VAT/Sales tax are included.

                Include totals by Account
                All totals of operations with VAT/Sales tax, grouped per individual account, are included.
                 
                Include totals by Code
                All totals of operations with VAT/Sales tax, grouped per individual VAT code, are included.

                Include totals by Percentage
                All totals of operations with VAT/Sales tax, grouped per individual percentage, are included.

                Include unused codes
                Also the unused codes of the VAT Codes table will be listed.

                Use own (Group, Gr) grouping scheme
                The operations with VAT/Sales tax are grouped according to the groupings of VAT Codes table.

                Sort transactions by
                By activating this cell, the transactions are sorted on the basis of a preselected option (Date, Doc., Description, etc….).
                 
                Partial report
                By specifying a code or a group and by activating the necessary options, the software calculates the total of the operations with VAT/Sales tax of
                • only code specified (by selecting from the list)
                • only group specified (by selecting from the list).

                 

                Other sections
                The information relating to the other sections are available on the following internet pages:

                VAT Report / transactions with totals by code

                The overall total in the last row of the VAT report has to correspond with the amount for the end of period of the Automatic VAT account, Balance column, on the condition that both of them refer to the same period.

                The data of the VAT report can also be transferred to and elaborated by other programs (f.i. Excel, XSLT) and be presented in formats that are similar to the forms of the tax authority

                For Switzerland, one can automatically obtain a document similar to the form that has to be sent to the VAT office. This form shows the amount to enter for each number.  Please consult (in German, French, or Italian) Swiss VAT Report.

                 

                Check accounting

                Avoid mistakes with Banana Accounting Plus

                In order to facilitate checking your accounting work and to immediately find differences, in Banana Accounting Plus, our new version, we added the Balance column in the Transaction table. You can now see potential differences on each row and you can correct them right away. It is a very useful feature when closing the accounting period.
                Many of our clients have already tried it and are enthusiastic about it. We advise you to switch now to Banana Accounting Plus and take advantage of the many new features.

                You can recalculate and check your accounting in different ways:

                • with the Shift + F9 keys (Windows and Mac) or Cmd + 9 (Mac)
                  Primary accounting recheck
                • with the Check accounting command from the Account1 menu
                  this solution includes several extensive control options - Extensive accounting recheck

                If there are error messages or differences you should correct them.

                Primary accounting recheck

                This command will execute the following operations:

                • it will reset the accounts balances, as well as the cost centers and segment balances
                • it will verify and report if there are errors in the various tables (Accounts, Transactions, VAT Codes and Exchange rates tables)
                • it will re-enter all the operations as if they were being entered for the first time
                  • for the multi-currency accounting, it will recalculate the opening balances in the basic currency using the latest exchange rates
                  • if the transactions rows are not locked, it will recalculate all transaction rows:
                    • the VAT percentages are taken from the VAT Codes table and the VAT amounts are recalculated again
                  • it will update the account balances, as well as the cost centers and the segment balances
                  • in the Cashbook the progressive account balance in the Transactions table is recalculated
                • it will recalculate the Accounts and Categories table totals (income and expenses)
                  • it will update the Diff. Budget and the Previous year columns
                  • in the multi-currency accounting, it will update the Calculated balance with the latest exchange rate and the exchange rate difference

                 

                Extensive accounting recheck - the Check Accounting window

                On top of the basic accounting recheck, additional checks are executed.

                Recalculate accounting plus additional checks
                This is one of the most useful features: the entire accounting file is being rechecked, all the balances are recalculated and the user is notified if errors are found.

                Accounting properties
                This option is being activated by default. The program verifies whether the data entered into the File and accounting properties correspond to the actual accounting (for example: opening and closing date, VAT account, accounts for exchange rate differences, etc.).

                Transactions

                Differences within transactions
                If this option is activated, the program verifies whether there are differences between Debit and Credit or between Accounts and Categories in the Income & Expense Accounting. The rows where the differences occur are being indicated in the Messages Window. Also, the program shows the total difference amount in the Information window at the bottom of the screen (only when being positioned in the Transaction table).

                Include intermediary differences
                If this option is activated, the program verifies whether there are differences between Debit and Credit, in composed transactions (transactions over multiple rows). Often differences are caused by incomplete entries or errors in the amounts (as for example in the following example, in the transaction n. 8).

                Balances checks (#CheckBalance)
                By activating the Transactions option as well as this one, The program checks whether an account balance is equal to the one being inserted for verification (for example, between the bank account balance on the bank statement and the balance of that same account in the accounting file). In case the balances don't match, the program indicates the error.

                In order to proceed with this check, one has to:

                • In the Transactions table: enter #CheckBalance in the Description column, as well as the currency code and the balance of the account (example: #CheckBalance CHF 28'000..00). Into the Debit column, enter the account to be checked. The Amount column remains empty. The amount to be checked has to be entered with the same number of decimals as the one of the account to be checked.
                • Activate the option through the Account1 menu
                • While the accounting is being checked, when there are differences between the checking balance and the account balance, the program shows the error while indicating the row.

                The program has detected a difference between the checking balance and the account balance in the file

                Same document with different dates
                f this option is activated, the program will alert if transactions with the same Doc number have a different date. On composed transactions (=transaction on more than one row), where there is no correspondence between Doc and Date, the program cannot correctly determine the counterparty.

                Accounts

                Chart of accounts structure
                If this option is activated, the program checks whether the chart of accounts structure is correct.

                Existence of exchange rate differences
                If this option is activated, the program checks whether there are unrecorded exchange rate differences.

                Opening balances differ from last year's balances
                If this option is activated, the program verifies whether the opening balances of the new year match with the closing ones of the previous year.

                Personalized checks (Add On)
                If this option is activated, the program runs checks on the functions that have been added by user (Add Ons), for customized verifications.

                Include additional checks with the shortcut Shift + F9
                When this option is activated, the program will run all the checks activated in the dialog window, when pressing Shift+F9. Otherwise only an accounting recalculation will be done (Mac version: Shift + Cmd + 9).

                 

                Accounting report file

                The Accounting Report is a file type in which the presentation of a report is being set up, indicating the way in which the accounts are being grouped.

                Thereafter, the Accounting report can be executed through the commands of the accounting:

                The grouping system, created in this manner, can be linked to the accounting to extract and totalize the accounts.

                There are two ways of doing this:

                • Grouping based on the indicated groups
                  This manner is useful when one wants to group the accounts according to different criteria, for example, present the Balance sheet and the Profit/Loss statement according to a grouping system that is different than the one set up in the Accounts table.
                  • In the Report, the grouping system is being created.
                  • For each account of the Accounts table in the accounting, in the GR1 column (or another column), indicate the group in which the account has to be grouped.
                  • When the Report is being executed, all the accounts that are marked with groups in the report file are being carried forward.
                • Grouping based on the indicated accounts
                  This manner is useful when one doesn't want a report with all the accounts but with only a few selected accounts.
                  • In the Report, indicate the accounts of the Accounts table from the Accounting file that should be included.
                  • When the Report is being executed, only the indicated accounts are being carried forward.

                 

                How to create an Accounting report file

                In order to create an Accounting report file: i

                • File menu, New ->
                • Double-entry accounting -> Accounting Report
                • It is possible to choose an existing model or get started with a new one
                • Once created, save the file under a new name.

                The columns of the Accounting report

                The Accounting report file includes the same columns as those in the Chart of accounts of the accountiung file. They make it possible to create the groupings and the totals.

                Sections
                This column is being used to indicate the value that is to be used in the presentation.
                For the different possibilities, see the documentation about the Sections.

                Group
                The group in which the accounts of the accounting have to be totalized or a group of the report.

                Account (only visible in the Complete view)
                The account that has to be included in the report.

                • If there are accounts, when the report is executed only those indicated will be carried forward.
                • In case no account has been indicated, the accounts that have been linked through a group will be carried forward.

                Description
                Description for the grouping or of the row itself.

                Gr
                In the Gr column, one indicates the total in which the row has to be totalized.

                Tot
                If the word "Yes" is being entered, only the Total row is being displayed and not the accounts that are a part of this total.
                Please look at 'Show groups' totals only' in the Accounting report.

                Keep
                Usually, the totalization rows that have accounts with balances are included in the report.
                If you indicate "Yes" in this column, the row is in any case always displayed. This can be applied to both the totals and to the accounts.

                With mov.
                This applies to groups that have a zero balance.
                The row will only be displayed if there have been transactions (movements) during the time period.
                 

                Creating a Report linked through the group

                 
                • In the Report, create a system of groups and subgroups as desired.
                • In the Accounts table one indicates, in the Gr1 or Gr2 column, the group in which the account has to be totalized.
                  In case the Gr1 column (or another preferred one) is not visible, make it visible with the Columns setup command.
                • The accounts that are not being linked will not be included in the Report.
                • Execute the Report through the commands:

                Creating a report that groups only some selected accounts of the accounting

                This modality is active even when in the report only one account has been indicated.
                Do not indicate any account, if you wish that the report is being executed in the group modality.

                In the report are being indicated:

                • The accounts of the accounting that have to grouped together.
                  Only the indicated accounts will be included in the report.
                • The groups in which the accounts have to be grouped together.

                Execute the Report using the commands:

                • Enhanced balance sheet with groups from the Account1 menu (then Chart of accounts -> Sections -> External accounting report)
                • Accounting report from the Account1 menu (then choose the Base section and the External accounting report option).

                Documents table

                The new Documents table allows you to include texts, images or programming codes (scripts) into your accounting file.
                This table is normally automatically created when attaching some documents to the Balance sheet, using the Account1 - Balance sheet command or the Account1 - Balance sheet with groups command -> Attachments section.

                The Documents table has the following columns:

                • Id column
                  This is the document's name.
                  Documents beginning with the "_" sign have specific meanings.
                  • "_budget.js"
                    You can enter specific functions created for the Budget table.
                • Description
                  A short file description (optional)
                • Attachments
                  Contains the file.
                  If you click on the cell, an icon will appear to add or edit the file content.

                Including a logo when printing the invoices

                Some invoice templates are already set to resume a possible logo uploaded in the documents table.
                To add the image:
                • Add a new row
                • In the Id column, write 'logo'
                • In the Attachment column, double-click on the cell, or select the Edit symbol, select the type of Image document and select the picture you want to insert in the printout.
                  The logo must be an image with a width of 120px and height of 100px.

                You can also add other images, to be used in customized templates.

                 

                 

                HTML Editor

                 

                Adding the ${...} field

                The ${...} field allows the user to add dynamic text to the document, for instance an account's balance or a Banana table. The Banana API interface is available at the following web address https://www.banana.ch/doc8/en/node/4714
                The command can be added manually or through the command Edit - Add script

                Printing the current balance of account  1020

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

                Output of the Accounts table, columns:  Account, Group, Description, Balance (command not yet available)

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

                It is possible to write the javascript code in a separate document and include the script through the command Banana.include.
                The scripts can be saved in the Documents table or in a local file.

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

                 

                Adding a page break

                The command can be added manually or through the comand Edit - Add page break

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

                The command ${PAGEBREAK} is not yet available, the current command to add a page break is:
                <!--pagebreak-->

                 

                Aggiungi funzionalità contabilità

                Aggiungi colonne Indirizzi nella tabella Conti

                Per i file di contabilità.

                Questa funzione permette di aggiungere, nella tabella conti, le colonne che servono per inserire gli indirizzi dei clienti, dei fornitori, dei soci o altro.

                Il programma aggiunge nella tabella conti:

                • la vista Indirizzi dove sono visibili le colonne aggiunte.
                • Le colonne che permettono di inserire i dati dell'indirizzo e altre informazioni.
                  • Per rendere visibili una o più di queste colonne anche nelle altre viste usare il comando Disponi colonne del menu Dati.
                  • Per creare altre viste con delle colonne specifiche, usare il comando Disponi Viste.

                Aggiungi tabella preventivo

                Per i file di contabilità.

                Questa funzione aggiunge la tabella Preventivo dove si possono inserire le registrazioni che riguardano il preventivo.
                Il programma aggiunge:

                • La tabella preventivo, riprendendo i valori di preventivo indicati nella tabella conti (se esistono)
                • Blocca la colonna preventivo nella tabella conti
                  I valori di questa colonna saranno calcolati in base alle registrazioni di preventivo e come periodo, quello definito nei dati base contabilità.
                   

                Maggiori informazioni sono disponibili alla pagina Preventivo.

                Modifica colonna tipo importo IVA nelle registrazioni

                Per i file di contabilità, con IVA.

                Questa funzione permette di rendere modificabile la colonna Tipo imp. (Tipo importo IVA) nella tabella Registrazioni.

                La colonna permette di inserire per ogni registrazione, quando occorre, uno dei seguenti tipi di importo IVA:

                0 (o cella vuota), si intende IVA inclusa
                1 = IVA esclusa, si intende IVA esclusa
                2 = importo IVA, l'importo della registrazione è considerato importo IVA al 100 %
                Per ogni registrazione, il programma immette in automatico nella colonna Tipo importo i dati predefiniti della tabella Codici IVA (per ogni codice). Se eccezionalmente, per un codice IVA cambia il tipo di importo, è possibile inserire manualmente 1 o 2.

                Nota

                Utilizzando questa funzionalità ci sono delle incompatibilità dei dati IVA con le versioni precedenti che non avevano questa funzionalità.

                Utilities application

                 

                The Utilities application allows you to create the following file types:

                By clicking on the Online Templates button you can access our website where we published all templates available for free.

                 

                Additional functions

                The following commands are particularly useful when used with these applications:

                 

                Link between tables

                You can create a link between a field of one table to another one, through the Id field.
                For example:

                • Add a new simple table named "Projects"
                  • In the Id column indicate a project symbol and in the Description column a small explanation.
                • In another simple table, add the following text columns:
                  • ProjectsId (Table name plus "Id")
                    When you go into edit mode a list of the available projects will be displayed.
                  • ProjectsDescription (Table name plus "Description")
                    This column must be protected.
                    When you change the ProjectsId contents, the description text will be displayed.
                • When you add a column, proceed with a check of the accounting or close and reopen the file to activate the link.

                 

                 

                Address Book

                This is an application for managing data lists and printing labels.

                Characteristics:

                • Free definition of the fields
                • Possibility of printing only the selected rows
                • Free setting of the label format
                • Copy/Paste addresses from other programs (Excel and Word)

                 

                The Address Book presents three tables:

                • Groups
                • Contacts
                • Diary


                Groups

                In the Groups table, one can define for each row, in the Id column, an identification code for a Group and enter the corresponding description in the Description column (es. cli - Clients, sup - Suppliers, col - Colleagues, etc.)

                Contacts

                The table presents the columns where the addresses can be entered.

                The columns

                There are different columns. The biggest part of the columns is invisble. The Colums setup command has to be used in order to:

                • Display the columns
                • Change the order of the displayed columns
                • Add other columns
                   
                The name is based on the VCard standard.
                 
                • Id is the contact number.
                  This is needed when you want to connect a contact to the diary, to the loans or to another table.
                  While being on that column and pressing F6, there is an automatic progressive numbering.
                • Prefix: you can enter "Mr", "Mrs", etc.
                • Family or Company name (if it concerns a company).
                  If the contact is a contact person for a company, you can enter the company or entity to which the contact belongs in the Organisation column.
                  When pressing F6 on the Name or Family Name column, the program separates or inverts the name and last name.
                  If there are more than two names, this feature is not able to distinguish which one are the names or family (last) names.
                • LetterStart: is the greeting that is being used at the beginning of a letter. This is being used for a mail merge.
                  For example: Dear John or Dear Mr Smith.
                  The program suggests possible texts according to the contents that have already been entered into the columns.
                   

                The views

                There are different views available and each view distinguishes itself from another one through the presence of specific columns; in this example (Address Book file), we have the Base, Name, Address2, Archive and Complete views. In the Complete view, all the columns are visible.


                Diary

                In the Diary table, you can record all kind of notes, day after day and refer to the entered contacts.

                Synchronize the data with Google

                Manages your own Address book with the Google contacts.

                When clicking on the Synchronize with Google (Download) command of the Utilities1 menu, a window appears that displays a Chrome browser page integrated in Banana and that asks for your Google login.

                • Enter your email address and the password of your own Google account.
                • Banana saves only the email corresponding with the Google account.
                  The session's data and the password are not being saved in Banana, but are being managed by Google chrome.


                Download

                This feature takes the contact data from Google into Banana, or updates the Banana contacts.

                • In the Groups table, the groups that are present in Google are being resumed.
                • In case there are already data in the table, the program merges the different data.
                   

                Send

                Sends the modified data to Google, or updates the Google contacts.

                • If in the "GoogleNotSynchronized" column "Yes" is being indicated, the contact is not being synchronized with Google.
                • In order to send the data, these have to be downloaded earlier.
                  If you have edited the data on your telephone, you need to first download the data and then press Send.


                References

                For the technical details referring to the connection made, please consult the Google Api documentation.

                • https://developers.google.com/google-apps/contacts/v3/
                • https://developers.google.com/gdata/docs/2.0/elements#gdReference
                   

                Printing Addresses/labels

                Information on printing addresses/labels can be found on the following web page Print label.

                 

                Library and collections

                How to use it / introduction

                This is an application that allows you to keep a list of books, objects and contacts, and check on objects borrowed and returned.

                There is a free downloadable template for libraries where you can also find all the explanations on how to use it.

                 

                Groups table

                In this table you can assign to each user a group, for example to partition children between Kindergarten and Primary school users, etc.
                You can enter a group Id (Id column). In the Description column you enter a text describing the group.

                For a detailed explanation of the columns, please consult  the Address Book page.
                 

                Contacts table

                In the Contacts table you can to enter users data, divided into several customizable columns (you can keep visible only the ones you need and hide all others - you can also add new ones).

                For a detailed explanation of the columns, please consult  the Address Book page.
                 

                Items table

                In this table you can enter your items data. 
                There are different ways of entering the items data: copy and paste from Excel, automatic data retrieving from the Internet, etc.
                See detailed explanations below.

                Columns

                There are various columns and it is also possible to add new ones.

                • Id: the item number that has to be attributed.
                  The F6 key assigns the number progressively.
                  It is also possible to use a prefix. For example: A-001,  after that, the program suggests A-002.
                • ISBN
                  The International Standard Book Number.
                  When entering the ISBN in the Id column and pressing the F6 key, the program automatically completes all the book's data in the other columns, incorporating them from the Google database, provided there is an internet connection available.
                  Any already present information will be overwritten.
                  For more information see: Google documentation.
                  • The data in the Google database are not always complete. For example, the title might be present, but the editor or other data might be missing.
                  • In order to know which data are available on Google, please visit the following page:
                    https://www.googleapis.com/books/v1/volumes?q=9781906042509, entering after q= the book's ISBN number.
                    If you see "totalItems: 0" it means that the book is NOT in Google's database
                    If you see a page in a JSon format (programmers format) with the book's data, it means that the book IS in Google's database.
                • Title
                  Is the title of the work.
                • Author
                  There can be several authors entered, separating them with semicolon ";".
                • Publisher
                  There can be several editors entered, separating them with semicolon ";".
                • Return date
                  The projected return date for this item.
                  This column is automatically completed according to the checked out item.

                Entering books data

                Books data can be entered in different ways:

                • Manual insertion - You can manually enter the books data in the Items table (see previous paragraph)
                • Retrieve data from Excel - If you already have a list of books from another program or Excel, you can simply copy/paste the data.
                  In order to
                  copy / paste the data you need to make sure the columns in Excel as arranged in the same order as in Banana. If the column order is the same in both programs you can copy the data in block, otherwise you need to proceed column by column. The copy/paste operation is possible from Excel or from txt files. 
                • Retrieve book data automatically from the internet - The ISBN column is very useful if you have an Internet connection: each book has an ISBN code (internationally recognized and generally written on the back of the cover); If you enter a book's ISBN code on the appropriate column in Banana and press the F6 key (or Cmd + 6 for Mac), the program automatically retrieves the books data from the Internet and inserts all data (title, author, publisher, etc. even a small summary).
                • If the book has different authors or publishers, just separate the names with a semi-comma ";" - they will also be found individually in searches (for example if you need to find all the books of a certain author).

                 

                Loans table

                In the Loans table you can enter the checked out items, the expiration date and the return date.

                Columns

                • Date
                  The data of the loan.
                • ItemId
                  The item number. A search can be made based upon the title.
                • ContactId
                  The contact number. A search can be made based upon the name, family name, place.
                • Expiration date
                  The projected date for the item's return.
                  If you enter "+30", the program proposes the date that come 30 days later.
                • Return date
                  Enter the return date.
                   

                How to manage the loans

                Loan of a book

                • Add a new line and indicate the date of the loan (useful shortcut: hitting dot "." on your keyboard will automatically generate the current date!)
                • In the Item Id column, as you start typing the title of the book or library user, the program will display all choices available in your database; just select the right option and press the F6 key: the program will automatically fill the Item Id and Description cells.
                • In the Expiration column (date of return for the book) the program automatically enter a date 30 days after your current date, but you can manually change it: you can enter the number of actual days (for example +40) to generate the correct return date (40 days later).

                Return of a book

                • From the Utilities1 menu, choose Items return;
                • This will open a window where you type the name of the library user. This will display all books on loan to this library user.
                  • You can now check all returned books (usually a library user returns all the books he has on loan simultaneously).
                  • Click the Apply button and the program will automatically insert the actual return date in the Date column.
                  • In case of error, return to the Loans table and click the Undo command.

                How to archive data

                The Archive feature avoids the adding up of too many transactions of lent and returned books. Outdated data to be archived in hidden tabs without being deleted. This data can be recalled at any time for statistics or any other use.

                Store data of returned books

                • Choose Archive data from the Utilities1 menu and then Archive table data -> Loans. The program will delete all transactions of already returned books from the Loans table and store them in the Archive table.
                • Only books on loan that are not yet returned will be shown in the Loans table.

                Store contact information no longer used

                As for your books, you can equally archive your old and unused contacts

                • Indicate a storage date for all the contacts you wish to archive.
                • Choose the Archive data from the Utilities1 menu and then Archive table data -> Contacts..


                Diary - organization and internal notes

                Diary table

                In the Diary table you can enter daily notes and connect them to a specific contact.
                You can for example organize the shifts of people working at the library, post notes or important facts, lists of things to do, etc. 
                Each row of record has it's column for date, description, expiration date, the contact Id of the originator.


                 

                Printouts

                Everything that you see on screen can be printed or saved in a pdf format.

                In the BananaApps section (look for library), you can also find extensions for specific printouts:

                • printout of the complete book catalog in pdf, to be published on the internet
                • printout of the users details with the books they have loaned and the ones still to be returned

                 

                Print library labels

                Label printing

                You can print two different types of labels:

                • small labels (containing the book code) for use on the spine of the book, so that they are visible on the bookshelves
                • larger labels are used on the inside of the cover, maybe mentioning that the book has to be returned at a specified date

                Labels can be printed either on the basis of the Banana file, where you have registered all the books in the library, or from an empty file in case you wish to print a list with codes, that you will then assign to the books.

                Printing labels for the spine of the book

                You can choose the format that best suites your needs by consulting the websites of label producers (for example A4 sheets, 25,4 mm x 10 mm - Herma 10001 or Herma 4333 models).

                In order to print the labels, you can open a new blank file in Banana, containing no data (File menu -> New), but, as stated, you may wish to start from an existing file in your library.

                There is a useful Excel function to generate a large amount of codes in a speedy manner, rather than entering them manually or than using  F6 key. Here is how you do it:

                Open a new Excel file; in cell A1 entere the library code that suited your purpose (any combination of letters and numbers will do) - for example B-1000.

                Choose the bottom right angle of your cell with your mouse (the point will now be a cross), and, while holding down the right click, drag down along the column; Excel will automatically generate autoprogressive numbers.

                Now copy (Ctrl + C keys) the codes that have been generated into Banana's Items table, in the Id column (Ctrl + V keys).

                You can now create the label.

                Chose the Labels -> Print command from the Apps menu. This window will be shown:

                It is important to have the Items table selected as the source for Data;  now you can define your label by pressing the Change... key in the Labels format section.

                In the window now shown, entere the margins and other characteristics of your chosen label, Herma 10001 in this case.

                Before hitting the OK key, opene the Composition tab, where you can assign a name to your custom settings (so they can be used in the future). In this case it's Book codes (Spine).

                Hitting the OK key will now return you to the Print labels window.

                Once you have defined the size of your label, you still need to indicate it's contents.

                Enter the Label tab to do so.

                In the example, the label only needs to indicate the book's code, i.e. the RowId column.

                You can therefore select the RowId line in the available list and press the Add Field button.

                RowId will show in View labels.

                Pressing the OK button will generate a preview of your label.

                You may now print using your Herma sheets.
                 

                Printing labels for the inside cover

                Choose your label format. In the example a 70x36mm (Herma 4630 or Avery 3490) format hase been chosen. The steps to follow are identical to the previous example::

                • First, choose the Labels -> Print command from the Apps menu
                • Click Change in the Labels format section
                • Enter the margins for your new label in Labels format window.
                • Before hitting the OK key, open the Composition tab, where you can assign a name for your new custom settings (Inside Cover label, for example), than hit OK.
                • Select Label in the Print label section to add the content of your label.

                You may enter text, other than the available fields, as well.

                Pressing the OK button will generate a preview of your label.

                Note:

                The models available in Banana already include the two mentioned label formats: label for the spine of the book and label for the inside of the cover.

                Related features:

                Management of yearly membership fees

                If you run a library requiring an annual membership fee, or if fees are charged for the loan of individual books, it is useful to use the accounting functions of Banana Accounting.
                Please check our page Accounting templates.

                 

                 

                Simple table

                This is a table that can be set up according to the needs of the user. One can add columns and views and give them the most appropriate header, with the Colums setup and Tables setup commands of the Data menu.

                 

                Depreciable assets register

                New functions for amortizations

                In the new Banana Accounting Plus version, the Fixed Assets Register has been improved with new features for an even more complete reporting.

                We advise you to immediately switch to Banana Accounting Plus and take advantage of the many new features.

                Available for now only in the Experimental version. This feature is under development.

                This feature allows you to manage the depreciable assets, and, at the end of the period, automatically creates the depreciation transactions. It has the following tables:

                • Items table
                  Where you list the depreciable assets and the depreciation parameters
                • Transactions table
                  Where you enter the depreciation transactions, as well as purchases assessments
                • Depr. Type table
                  Indicates the various depreciation types.
                • Trans. Type table
                  Indicates the various transaction types


                Logic of the Software

                The software allows you to track the value of your Assets in your Accounting.

                All depreciable assets are entered in the Items table with all the parameters required for the effective calculation of depreciation. The following values figure in the Items table program:

                The program uses the following values:

                • Asset at purchase value
                • Historic value (purchase value +/- assessment of appreciation or depreciation)
                • Accounting value (historic value +/- corrections due to depreciations)
                • Fiscal value (Accounting value +/- correction of fiscal value).

                Variations of value for a specific item are entered in the Transactions table:

                • A function for automatic calculation of periodical amortisation of predefined basic values, is integrated. Transaction values can be adjusted manually (as, for instance, in a varying calculation for a first accounting year).
                • Transactions can be added manually for appreciation, extraordinary amortization, adjustment of fiscal value and so on.


                Items Table

                Where you enter assets subject to depreciation and their groups.

                This table contains the following columns; The ones marked with an asterisk (*) are protected and calculated by the program:

                • Group
                  If a value is present it means that the row is a group.
                  Items and groups values are added up in this row.
                • Id
                  The Item Id
                • Description
                  The item description.
                • In Group
                  The group the row belongs to. This must be a value present in the Group column.
                • Account
                  The account to which the item is being attributed in the accounting.
                  This account can also be a group.
                • Date Begin
                  The item purchase date (or at which the item was entered in the accounting file)
                • Document Date
                  The date of the item purchase document, if available
                • Initial value
                  The purchase value.
                • Purchase Variation*
                  The total purchase value, positive or negative, indicated in the transactions.
                • Purchase Value*
                  The initial value plus the purchase variation.
                • Historical Variation*
                  The positive or negative value of the historical variation (revaluations or write-downs) indicated in the transactions.
                • Historical Value*
                  The purchase value plus historical variation.
                • Book variation*
                  The positive or negative accounting value (depreciations or reverse depreciation entries) indicated in the transactions.
                • Book value*
                  Historical value plus book variations.
                • Fiscal Variation*
                  The positive or negative value of the fiscal adjustments indicated in the transactions.
                • Fiscal Value*
                  The Book Value plus the fiscal adjustments.
                • Residual Value
                  A possible minimal residual value to be indicated.
                  If the residual value is equal or bigger than the book value, no more depreciation rows are created.
                • Estimate value
                  An item's probable estimated value
                • Depreciation Id Type
                  The depreciation type applied to this item
                  The depreciation type can also be indicated for the group.
                • Depreciation Percentage
                  The depreciation percentage.
                  The depreciation percentage can also be indicated for the group.
                • Depreciation amount
                  A possible depreciation amount if the depreciation is not specified as a percentage.
                • Depreciation Percentage 2
                  The additional depreciation percentage to be applied to this item.The depreciation type can also be indicated for the group.
                • Depreciation Months First Year
                  The number of months the item needs to be depreciated in the first year.
                • Contra Account
                  The account where the depreciation should be registered
                  The contra account can also be indicated for the group.
                • Serial Number
                  The item's serial number
                • Warranty Date
                  The warranty expiration date.
                • Insurance Value
                  The value this item or group is insured for.
                • Insurance name
                  The insurance company's name.
                • Insurance number
                  The insurance policy number.
                • Insurance expiration
                  The insurance policy's expiry date.
                • Insurance cancellation
                  The date by which legal notice needs to be given to the insurance company if automatic renewal is not desired.
                • Archive Date and Archive notes
                  Columns you might use if you need to archive the item.


                Transactions table

                This is the table where you enter the items variations. It has several columns:

                • Date
                  The transaction date
                • Transaction Type Id
                  The transactions type, identical to the one in the Transaction table.
                • Transaction Type Description*
                  The description from the Items table is displayed.
                • Item Id
                  The Item Id.
                • Items Description*
                  The items description from the Items table is displayed.
                • Notes
                  An additional note concerning the transaction.
                • Purchase Variation
                  The item (+/-) variation compared to the purchase or sale.
                • Historical Variation
                  The Item (+/-) variation compared to a item revaluation or write-down.
                • Book Variation
                  The item (+/-) variation value compared to the book variation.
                  This is particularly used for negative depreciations
                • Fiscal Variation
                  This is the fiscal variation amount.
                • Depreciation Type Id
                  The Depreciation type code as shown in the Items table.
                • Depreciation Type Description
                  The depreciation code descriptions as per the Items table.
                • Depreciation Percentage
                  The depreciation percentage applied.
                • Account
                  The Assets account where the operation must be registered
                • Contra Account
                  Contra account (for example the depreciation account) where the operation must be registered.
                • Archive Date and Archive notes
                  Columns you might use if you need to archive the item.


                Depreciation type table

                • Id
                  The depreciation code.
                  These codes are fixed and must not be modified.
                  If you change the Id number the program will not operate correctly anymore.
                  • 00 No depreciation. No depreciation will be created.
                  • 01 Complete depreciation of the item. The item is depreciated all at once.
                  • 02 Indicated amount. The depreciation is calculated, based on the entered amount.
                  • 10 On the historical value. The depreciation is calculated as a percentage of the historical value.
                  • 11 On the book value. The depreciation is calculated on the book value.
                • Description
                  The code explanation
                   

                Transactions type table

                • Id
                  The transaction type code
                  These codes are fixed and must not be modified.
                  If you change the Id number the program will not operate correctly anymore.
                  • 01    Initial value. Used to enter an initial value, instead of entering the initial value in the Items table
                  • 11    Purchase or production
                  • 15    Sale or value reduction.
                  • 21    Revaluation
                  • 25    Devaluation
                  • 31    Reverse depreciation
                  • 35    Depreciation
                  • 36    Additional depreciation
                  • 41    Fiscal value increase
                  • 45    Fiscal value reduction
                • Description
                  The code explanation

                Utilities1 menu

                Create depreciation rows

                It requires a date.
                If you launch this command, the program automatically creates the monthly or yearly depreciation transactions based on the item parameters previously entered in the Items table.

                • If the parameters Depr. Type, Percentage, Account or Contra account for the item are not entered, but have been entered for the group the item belongs to, the software will use the group parameters to create the depreciation transactions.

                Show Journal

                Will display all operations with the variation of values and the cumulative value.

                Show items report

                Will display the variations for each item and item groups for the selected period.

                Planned developments to the software

                 

                Transfer of accounting

                Under preparation, currently unavailable.

                To resume amortization in accounting.

                Printing

                It is planned to develop printing modules within BananaApps, that will go beyond existing available printing templates, allowing for more flexibility and tailor made solutions.

                Do not hesitate to report your needs and requirements to our programmers, possibly by sending an example of the type of report  you wish to use, as an Excel table, with columns, totals, header data, and formatting. 

                Different types of amortization

                It is equally planned to develop modules within BananaApps for this feature, to include different types of amortization, aiming to deliver a tailor made solution to you.

                Do not hesitate to report your needs and requirements to our programmers.

                 

                 

                Utilities1 Menu

                The Utilities1 menu includes various commands that are specific for the Utilities applications.
                The general commands, available in all the Utilities applications, are explained hereunder.
                Other commands, specific for the Address Book and the Library application, are explained in the corresponding documentation.

                Recheck all...

                Checks everything and gives a warning in case there are errors.

                Sort contacts by name

                Sorts the rows of the Contacts table in ascending order by Name, Family Name, Second Name, Place.

                Archive Data menu

                The program keeps a list of the rows that have been archived, for each table.

                The archived rows are being shown in the Archived rows table. Select the rows that need to be shown.

                Archive data

                Moves the rows of a table (Contacts, Items, Loans, Diary) to the Archived data table, where:

                • The Archive data column is not empty.
                • For the Loans table, there should be an expiration date and a return date (a "closed" loan)
                   

                A list of tables is being shown. The tables present on this list contain rows that can be archived.
                If there are no tables with rows that can be archived, the selection is empty.


                 

                Show archived data

                Shows a list of the archived rows of a specific table.


                 

                Questions and answers

                Before contacting us, please verify if your question is one of the following:

                • Is Banana Accounting 8 compatible with Apple macOS 10.12 "Sierra"?
                  Yes, the program is compatible from on version 8.0.4
                   
                • Is Banana Accounting 8 available for iOS?
                  At the moment, there is no Banana Accounting version available for iOS, but we are planning to release one in the future.
                   
                • Is Banana Accounting available for Android?
                  Yes, Banana for Android is available from on version 8.00.4. More information can be found on the Android page. 
                   
                • How many mandates can be managed with Banana Accounting?
                  Banana Accounting has no limits on mandates. You can manage an unlimited number of mandates.
                   
                • I installed Banana Accounting 8 and the accounting file opens in the preceding version. What can I do?
                  Please follow the procedure on the page Associate .ac2 files with the most recent Banana version.
                   
                • When the Banana 8 Starter Edition is being installed, the Banana 8 icons become Banana 7. What can be done?
                  Open the Banana 8 files and in the Tools menu, Program Options, click on the button "Associate *.ac2 files to the program".
                   
                • Is there a multi-license version?
                  If your company needs several licenses, we can provide you with one single license key, just give us a call or contact us by email.
                  Discount of 10% when purchasing 20 or more licenses. For other quantities, please consult our price list.  
                   
                • Transferring from one Operating System to another.
                  Besides the Windows version, Banana Accounting 8 exists also in a native version for Mac and Linux. Each version has its own license; therefore, Banana Accounting 8 cannot be installed on different Operating Systems with one single license key. Those who already have one or another Banana version, can buy version 8 for Windows, Mac and Linux at the upgrade price. As an alternative you can download and use for free the Banana Experimental and then purchase the full license of Banana Accounting 9.
                • Is the Cash book free in version 8?
                  The Cash book is not free in version 8. It is included in the complete version that is for sale.
                   
                • How to convert from one accounting type unto another (for example, from an accounting without VAT to one with VAT)
                  It is possible to go from one type of accounting to another with the Convert to new file command from the Tools menu. The program creates a new file that should be saved under a new name. It maintains all the data that have already been entered and adds (or eliminates) the columns that are specific to the new accounting type.
                   
                • Does Banana Accounting manage the inventory?
                   Currently there are no modules to manage the inventory.
                   
                • Does Banana Accounting generate invoices?
                  From Banana Experimental, it is possible to manage the invoicing. However, some functions are still in a test phase.
                   
                • Banana Accounting needs to be reinstalled, but I can’t find my license key…
                  In case you still have access to the software, click on the Help menu-> Manage license keys and send us the registration code by email, with a request to receive your own license key once more. This is a service for which you will be charged.
                   
                • What should I do with my own data files when I update Banana Accounting?
                  Nothing: your data files are automatically updated when opened with a new version.
                   
                • Banana 8 and incompatible exchange rates from previous versions
                  When the basic currency is entered as the reference currency, the exchange rates with a multiplier greater than 1 can present calculation differences between Banana 8 and the previous versions.
                  To solve the problem, please consult our page Incompatible exchange rates from previous versions.
                   
                • Is it possible to import data from other accounting software?
                  Yes, just follow the instructions on this internet page: Transferring data from other accounting software.
                   
                • Can I install Banana Accounting on my laptop or on a second computer?
                  Installation on a laptop or on a second computer (with the same license key) is allowed as long as both computers belong to the same owner.
                   
                • Can I purchase with a credit card?
                  Yes it is possible to buy with a credit card. In order to buy from Switzerland, please connect to the page Purchase from Switzerland.
                  In order to buy from abroad with a credit card, please connect to the page Purchase from other nations.
                   
                • In the printout of the Enhanced Balance sheet by groups, the expenses and revenue have the minus sign in front of the amount. Why?
                  In the Accounts table, check the BClass column; the numbers should be as follows: 1 for the Assets,  2 for the Liabilities, 3 for the Expenses and 4 for the Revenue. Also, check the Section column: there should be 1 in the row of the Assets title, 2 for the Liabilities, 3 for the Expenses and 4 for the Revenue, 01 for the Clients register, 02 for the Suppliers register, 03 for the Cost centers and 04 for the Profit centers.
                   
                • Password recovery
                  If you are not able to remember the password anymore, our technicians can recover it for you, so that you will have access to your file. Please send us your support request by email, with the file attached to it. Very soon you will receive an email with your password. Password recovery is a paid service
                   
                • I get an error message. What now?
                  By clicking on the symbol next to the error message (in the Info or Messages window) you will be directly connected to the online page explaining the error message and suggesting possible causes and solutions.

                If you still need assistance, you can contact us with our Contact form or phone +41 (0)91 210 49 37.

                 

                View Data

                Banana Accounting 8 Software allows for reading and appropriate displaying of multiple file formats.

                View CSV File

                When opening, or dragging and dropping a file of the CSV or JCSV type in the Banana window, Banana will automatically create a simple Table type file, resuming the columns and data contained in the CSV table.

                 

                View ISO 20022 file

                The Banana software allows the user to view and print the contents of ISO20022 - camt. 052, camt. 053 (included version 4), camt. 054 - and MT940 bank statements.
                The transactions of the electronic bank statement, with description, amount income or expenses, are being presented in separate columns and can be printed or pasted into Excel.

                Open the ISO 20022 or MT940 file

                In order to open and see the file :

                • Download your bank statement in ISO 20022 format
                  If it is a compressed file, extract the XML file to be displayed with its own utility (p.es. 7zip)S
                • Install and open Banana Accounting
                • Drag the file inside Banana Accounting: Banana immediately shows all entries with text and date, amount and the progressive balance (the file is being opened as "read only")
                • The data of the bank statement can then be printed or copied into Excel or other programs

                In this image, one can see how an exemple file is being displayed


                Additional indications

                • The opening balance in the ISO 20022 file is entered into the Accounts table.
                • The column width can be adapted with the mouse. 
                • To align the text of the description on several lines, use the command Format -> Calculate all row heights
                • To categorize the movements and get statements, enter the appropriate categories in the Categories table and display the Categories column in the Transactions table with the Columns setup command.
                  Or, create a new file with an existing template and categories and accounts already set up, and import the data of the bank statement as explained in the page Import ISO 20022 file.
                • In the free Starter Edition mode, files with more than 70 transactions cannot be saved.

                More information

                For more information with regard to the ISO 20022 Standard, please consult the page Import ISO 20022 file.

                 

                Developers

                BananaApps

                Introduction

                With BananaApps you can extend the functionalities:

                • Create own calculations or reports.
                  • Interest calculation.
                  • Statistics on transactions data .
                  • Report based on special query.
                • Import data from proprietary file format.
                  Import data from a bank file format and automatically assign accounts.
                  Import data from an invoice software.
                  Consolidate accounting data entered with other software.
                • Export data in a custom format.
                  Create a an Export file for the Tax autorities.
                  Export the balances of some accounts in a format ready to be published on internet or inserted in other documents.
                • Check the accounting data.
                  Test transactions for a particular condition; You can show the rows that didn't meet the condition in a table, or display a message with detailed information to the user;

                At the moment can only retrieve data from Banana and not modify values in accounting files.

                Install and run BananaApps

                See documentation on the Menu Apps and command Manage Apps.

                Examples file

                On github.com/BananaAccounting you will find repository of BananaApps.

                On the tutorial section you will find a file that contains different basic examples.

                 

                 

                App File

                Javascript compliant script

                BananaApps are essentially Javascript compliant script files ( ECMA-262). People knowing Javascript can easily write BananaApps.

                A BananaApp file contains the following two sections:

                • Apps's attributes
                  The apps's attributes give information about the script, like it purpose, description and so on.
                  They are inserted at the beginning of the file through tags in comment's lines.
                   
                • The exec() function 
                  The function exec() is the function that is called every time a BananaApps is executed.
                  It has one argument, the requested input data as a string or a Banana.Document object.
                  It return the result as a string.
                  The format of the returned string match the format defined by the tag @outputformat. Errors are notified through exceptions (clause throw), or just by returning a string beginning with "@Error:"

                For a list of supported javascript functions, objects and properties see:  Qt ECMAScript Reference.

                BananaApps interact with Banana Accounting through some global objects made available by Banana Accounting, like for example 'Banana.document'. Those objects are described under the Banana Script API.

                BananaApp "Hello World" example

                Here an example that open a print preview windows, and show a document with the text "Hello world!!!". Other examples are found in the BananaApps tutorial.

                // @id = ch.banana.report.helloworld
                // @version = 1.0 
                // @doctype = nodocument 
                // @publisher = Banana.ch SA 
                // @description = Account balance for all days in a month 
                // @task = app.command 
                // @timeout = -1
                function exec() { 
                   //Create the report
                   var report =Banana.Report.newReport('Report title');
                   //Add a paragraph with some text
                   report.addParagraph('Hello World!!!');
                   //Preview the report
                   var stylesheet = Banana.Report.newStyleSheet();
                   Banana.Report.preview(report, stylesheet);
                }
                

                BananaApps have a strong Security model

                BananaApps are secure for the fact that are confined within Banana.
                BananaApps are NOT ALLOWED to directly write or read file, web resource, change computer setting or execute programs.

                BananaApps, contrary to Excel Macro, can be run with the confidence, they will not change any data and modify any file or computer settings.

                To accesso or write to file you need to use the Banana Api that display a dialog box to the user.

                • To write file you need to use the export functionality, that display a dialog where the user indicate the file name where to save.
                • To import file you need to use the import functionality that display a dialog where the user specify the file name.

                BananaApps file extention '.sbaa'

                Since Banana Experimental 8.0.4.170127 the extention for BananaApps is '.sbaa'.

                A .sbaa file can be either a text file containing java script code or a packaged qt resource file. The application determine automatically the type of the file. When Banana load a packaged .sbaa file, a file that can contains several apps, it look for all .js files contained in the package that have an attribute section. Those files are readen and a corresponding entry is inserted in the Apps menu.

                Note: for previous versions than 8.0.4.170127 the extentions were .js for single file apps and .rcc for packaged apps.

                BananaApps as a single javascript file

                The script is all included in a file.

                • BananaApp are saved in in UTF-8 file without BOOM.
                • Prior to run the BananaApp you need to install it through the Manage Apps command or by drag and drop.

                BananaApps as packaged file

                It is possible to package one or more apps composed by one or more files (.js,  .qml and other files) in one single .sbaa BananaApp file. This is very practical for distributing Apps composed by two or more files, or packages with two or mores BananaApps.

                When Banana load a packaged .sbaa file, it look for all .js files contained in the package that have an attribute section. Those files are readen and a corresponding entry is inserted in the menu Apps.

                Files in packages can include other files in the same package using the directive '@includejs' or the method  'Banana.include(fileName)'. It is not possibile to include files outside the package.

                // Include a script via @includejs attribute
                // @includejs = somescript.js"  
                
                // Include a script via Banana.include() method
                Banana.include(somescript.js);
                

                To create a packaged file edit a .qrc file and open it in Banana via the File Open command or drag and drop. The application will compile the qrc file and create a corresponding single .sbaa file.

                It is also possibile to create package files with the 'rcc' tool from the Qt Resource system.

                • Install the Qt Sdk
                   
                • Create a .qrc file with the list of the files to be included

                  Example: ch.banana.script.report.jaml.qrc
                <!DOCTYPE RCC><RCC version="1.0">
                 <qresource>
                     <file>ch.banana.script.report.jaml.js</file>
                     <file>lib/jaml-all.js</file>
                 </qresource>
                 </RCC>
                • Compile the .qrc file
                rcc -binary ch.banana.script.report.jaml.qrc -o ch.banana.script.report.jaml.rcc
                
                

                Install BananaApps

                Banana App can be installed with the Manage Apps command or by drag and drop in Banana windows.

                Embedded BananaApps in documents

                In the table Documents you can add script file.
                On the BananaApps tutorial you will find different basic examples embedded in a document that you can run and edit.

                Best way to distribute the App

                • Single App file (Script file)
                  • Easier to edit, move and update.
                  • Can be included in the menu Apps
                  • Can be used by different accounting file
                • Embedded apps
                  • Not available in the menu Apps 
                  • Only relative to the file where it is included.
                  • More difficult to update
                • Packaged App file
                  • Same as Script file but cannot be easily changed
                  • Protected from user modification

                 

                 

                 

                 

                Apps Attributes

                At the beginning at the script there should be a part that define the Apps Attribute.

                // @api = 1.0
                // @id = ch.banana.apps.example.docfilepath
                // @description = Hello world
                // @task = app.command
                // @doctype = nodocument
                // @publisher = Banana.ch SA
                // @pubdate = 2015-05-12
                // @inputdatasource = none
                // @timeout = -1

                The attribute is a commented text line

                • Sart with //
                • Followed by the attribute that start with @
                • Fossowed by the " = " and the value

                Tags defines the purpose (import, export, extract, ...), the name displayed in the dialogs, the kind of data it expect to receive, the kind of data it returns, and other information of the script. Tags are inserted at the beginning of the script in comment's lines though the following syntax: "// @tag-name = tag-value".

                Attribute list

                Attribute name Required

                Value 1)

                Description
                @api Yes

                The required API version.

                Available API versions:
                1.0

                Define the required API to be executed in the form of MAIN_VERSION.SUB_VERSION

                The implemented API in the application have to be equal or newer.

                @description[.lang] Yes The name or description of the script

                This text will be displayed in the dialogs.

                This tag is localisable.

                @docproperties   any text Define a property the script is writen for.
                With this attribute you can manually select for what document the script is visbile in the menu Add-ons and can be run. The property can be added to the document though the dialog Add-Ons.
                The property can be any text (ex.: "datev", "realestate", ...). Mulitple properties can be defined wiht a ';' as separator (ex.: "datev;skr03").
                @doctype Yes nodocument
                *
                XXX.*
                XXX.YYY
                !XXX.YYY
                ...

                Define the type of document the script is writen for.
                With this attribute you can define for what type of document the script is visbile in the menu Add-ons and can be run.

                nodocument = doesn't require an open document, the add-on is always visible
                * = for any type of document, always visible if a document is open
                *.*  = for any type of document, always visible if a document is open
                100.* = for Double entry accountings
                110.* = for Income & Expenses accountings
                130.* = for Cash Books
                400.* = for Addresses and Labels
                100.100 = for accountings without VAT and without foreign currrencies
                100.110 = for accountings wiht VAT
                100.120 = for accountings with foreing currencies
                100.130 = for accountings with VAT and foreign currencies

                The sign ! is used to invert the definition.

                The above codes can be combined togheter like the following examples:

                100.130 = for double entries with VAT and with foreign currencies
                100.120;100.130 = for double entry with foreign currencies
                100.*;110.*;130.* = for all accounting files
                !130.* = for any filesexcept cash books
                @exportfilename   A string defining the name of the file where to export the data. If the string contains the text <Date>, it will be replaced by the current date in the format of yyyyMMdd-hhmm.
                @exportfiletype  

                A string defining the type of data exported

                txt
                ...
                This parameter is used for export scripts, it defines the type of exported data and it is used for the extension in the save file dialog.
                @id Yes An identification of the script It is used when setting and reading the preferences.
                In order to avoid duplicate banana.ch use the following scheme.
                country.developper.app.domain.name
                for example:
                ch.banana.app.patriziato.consuntivopersubtotali
                @includejs   Relative path to a javascript .js file to load before the execution of the script. Include the javascript file. Every function and object defined in the file are then available to the current script.
                @inputdatasource   One of the following values:
                none
                openfiledialog
                fixedfilepath 2)
                With this attribute you can specify if you don't need to input data, if you want the user to select a file to import (openfiledialog), or if you want to get a file which path is defined in @inputfilepath. If you set fixedfilepath the program will ask the user the permission to open this file, the user's answer will be saved for the next execution.
                @inputencoding  

                The encoding of the input data.

                One of the following values:
                latin1
                utf-8
                iso 8859-1 to 10
                ...

                The encoding used to read the input file (for import apps).

                If the attribute is empty or not defined, the application try to decode the input data with utf-8, if it fails, the application decode the input data with latin1.

                For a complete list see QTextCodec

                @inputfilefilter[.lang]  

                The file filter for the open file dialog

                Ex.: Text files (*.txt *.csv);;All files (*.*)

                This value describes the file filters you want to show in the input file dialog. If you need multiple filters, separate them with ';;' for instance.

                This tag is localizable.

                @inputfilepath   The file to read for the input data If the script has the value fixedfilepath as @inputdatasource, you can define here the path of the file to load.
                @inputformat   One of the following values:
                text
                ac2
                If "text" the filter receive the selected file in inData as a text. If "ac2" the filter receive the selected file in inData as a Banana.Document object.
                @outputencoding  

                The encoding of the input data.

                One of the following values:
                latin1
                utf-8
                iso 8859-1 to 10

                The encoding used to write the output file (for export apps).

                For a complete list see QTextCodec

                @outputformat   One of the follwing values:
                tablewithheaders
                transactions.simple
                If the script has an import tasks this value define the format of the returned value. The format transaction.simple contains the transaction as income / expenses. For details of the formats see Import data from a txt file.
                @pubdate Yes The publication date in the format YYYY-MM-DD This publication date is also used for scripts published by Banana.ch to check if newer version exist.
                @publisher   The publisher of the script  
                @task Yes

                One of following values:
                app.command
                export.file
                export.rows
                export.transactions
                import.rows
                import.transactions
                import.accounts
                import.categories
                import.exchangerates
                import.vatcodes
                report.general
                report.customer.invoice
                report.customer.statement
                report.customer.reminder

                This value define the purpouse of the script, and determine in which dialog or menu the script is visible.

                @timeout   The timeout for the script in milliseconds, default is 2000 (2 seconds). If you set -1 the timeout is disabled and the application allow you to abort it though a progress bar. If the script takes longer than this value to finish, it will be aborted and a message showed. If you have a script with a very long run time, you can increase the timeout or set it to -1.

                1) Default values are listed in bold.

                2) Function not yet available

                 

                Example:

                // @api = 1.0
                // @id = ch.banana.apps.example.docfilepath
                // @description = Hello world
                // @task = app.command
                // @doctype = nodocument
                // @publisher = Banana.ch SA
                // @pubdate = 2015-05-12
                // @inputdatasource = none
                // @timeout = -1
                
                /**
                 * Hello world example for Banana Accounting.
                 */
                function exec(inData) {
                    Banana.Ui.showInformation("", "Hello World");
                    
                    if (Banana.document) {
                       var fileName = Banana.document.info("Base","FileName");
                       Banana.Ui.showInformation("Current document", fileName);
                    }
                }
                
                

                 

                Apps Parameters

                Apps parameters allow to initialize and set parameters that are relative to a BananaApps, for example:

                • Parameters for the printing.
                • Header of a report that are set once only.

                The script should provide a function settingDialog() that is called when the user click on the Set Parameters on the Manage Apps dialog.

                The function settinDialog() should:

                1. Read the existing setting with the Banana.document.getScriptSettings();
                2. Request user to enter the information
                3. Set the modified values with the function Banana.document.setScriptSettings(paramToString);
                  The JSon text will be saved within the accounting file.
                   
                function settingsDialog() {
                   var param = initParam();
                   var savedParam = Banana.document.getScriptSettings();
                   if (savedParam.length > 0) {
                      param = JSON.parse(savedParam);
                   }   
                   param = verifyParam(param);
                   
                   param.isr_bank_name = Banana.Ui.getText('Settings', texts.param_isr_bank_name, param.isr_bank_name);
                   if (param.isr_bank_name === undefined)
                      return;
                   var paramToString = JSON.stringify(param);
                   Banana.document.setScriptSettings(paramToString);
                }
                

                the function Exec() should then read the setting.
                It is a good practice to check and verify if the setting are valid.

                function printDocument(jsonInvoice, repDocObj, repStyleObj) {
                  var param = initParam();
                  var savedParam = Banana.document.getScriptSettings();
                  if (savedParam.length > 0) {
                    param = JSON.parse(savedParam);
                    param = verifyParam(param);
                  }
                  printInvoice(jsonInvoice, repDocObj, repStyleObj, param);
                }

                API

                The whole API (Application Program Interface) made available for Banana is under the namespace "Banana".
                The are different objects and methods that belong to the name space Banana, that can be accessed by the javascript at run time:

                Data formats

                Date

                Date values are in ISO 8601 format "YYYY-MM-DD".

                Decimal

                Decimal values have a  '.' (dot) as decimal separator and doesn't have a group separator. For example: "12345.67".

                Decimal values are rounded according to the accounting settings.

                Text

                Text values can contain any character supported by UTF-8.

                Time

                Time values are in ISO 8601 format "HH:MM:SS". The formats "HH:MM" and "HH:MM:SS.ZZZ" are also accepted.

                 

                 

                API Versions

                List of API Version made available by Banana Accounting.

                Banana Accounting Version API Version
                7.0.6 1.0
                8.0.4 or more recent 1.0

                 

                Banana (Objects)

                Banana is the namespace (object) through which all Banana script's methods, class and objects are accessible.

                Banana.application

                The object Banana.application represent the running application.

                Banana.console

                The object Banana.console is used to sent message to the debug the script.

                Banana.Converter

                The class Banana.Converter contains methods useful to convert data from and to various formats.

                Banana.document

                The object Banana.document represent the current document opened in the application. It contains base properties and methods, see Banana.Document (Base), and if the document represent an accounting document it contains additional accounting's properties and methods, see Banana.Document (Accounting). If any document is opened this object is of type Undefined.

                Banana.IO

                The class Banana.IO is used to read and write files.

                Banana.Report

                The class Banana.Report enable you to create reports, preview and print them in Banana Accounting.

                Banana.script

                The object Banana.script is used to get informations about the running script.

                Banana.SDecimal

                The class Banana.SDecimal contains methods useful to do decimal math calculation.

                Banana.Ui

                The class Banana.Ui contains predefined dialogs to interact with the user, and methods to load dialogs from .ui or .qml files.

                Banana.Xml

                The class Banana.Xml contains methods to parse and access Xml data.

                Banana Methods

                Banana.compareVersion(v1, v2)

                Compare two version strings. Versions string are in the form of "x.y.w.z". Returns 0 if v1 and v2 are equal, -1 if v2 is later and 1 if v1 is later.

                Since: Banana Accounting 8.0.5

                var requiredVersion = "8.0.5";
                if (Banana.compareVersion && Banana.compareVersion(Banana.application.version, requiredVersion) >= 0)
                   Banana.Ui.showInformation("Message", "More recent or equal than version " + requiredVersion);
                else
                   Banana.Ui.showInformation("Message", "Older than version " + requiredVersion);
                

                Banana.include(path)

                The method Banana.include(path) include a javascript file evaluating it.
                If an error occour, i.e. the file is not found or is not valid, the method throws an exception.

                The path is relative to the current script being executed, if no protocol is specified. Otherwise depending on the protocol it can be relative to the main script's folder, the document's folder or the name of a document attacched to the current file.
                - <relative_path_to_current_script>/<file_name>
                - file:script/<relative_path_to_main_script>/<file_name>
                - file:document/<relative_path_to_file>/<file_name>
                - documents:<attachment_name>

                Scripst included though the method Banana.include(path) can include other scripts trhough the method Banana.include(path), but not via the script's attibute @includejs. The method Banana.include(path) garantees that each distinct script is evaluated once, even if it is included more than one time from differents scripts. Path can contain ".." (parent folder), in the case the destination path is outside the main script's folder, the method will throw a security exception.

                Since: Banana Accounting 8.0.5

                Banana.include("cashflowlib.js");
                Banana.include("folder/cashflowlib.js");

                 

                Banana.Application

                Banana.Application represent the interface to the program and can be accessed through Banana.application.

                Properties

                isBeta

                Return true if the application is a beta version.

                var isBeta = Banana.application.isBeta;

                Since Banana 8.0.7

                isExperimental

                Return true if the application is a beta version.

                var isExperimental = Banana.application.isExperimental;

                Since Banana 8.0.7

                serial

                Return the serial of the application in the form of "80006-170428".

                var serial = Banana.application.serial;

                Since Banana 8.0.7

                version

                Return the version of the application in the form of "8.0.4".

                var version = Banana.application.version;

                locale

                Return the locale of the application in the form of "language_country", where language is a lowercase, two-letter ISO 639 language code, and country is an uppercase, two- or three-letter ISO 3166 country code.

                var locale = Banana.application.locale;

                progressBar

                Return an object of type ProgressBar used to give the user an indication of the progress of an operation and the ability to cancel it.

                var progerssBar = Banana.application.progressBar;

                 

                Methods

                addMessage(msg [, idMsg])

                Add the message msg to the application. The message is showed in the pane "Messages", and in a dialog if the application option "Show Messages" is turned on.

                If idMsg is not empty, the help button calls an url with script's id and message's id (idMsg) as parameters.

                Banana.application.addMessage("Hello World");

                See also: Table.AddMessage, Row.AddMessage, Document.AddMessage.

                clearMessages()

                Clear all the messages showed in the pane "Messages".

                Banana.application.clearMessages();

                showMessages([show])

                Enable or disable the notification of new messages through the message dialog.

                Banana.application.showMessages(); // Next messages are showed to the user through the message dialog.
                Banana.application.showMessages(false); // Next messages will not pop up the message dialog.
                

                openDocument(ac2FilePath [, password] [, title])

                Open the ac2 file located in filePath and return an Object of type Banana.Document or undefined if the file is not found. The path can be relative, in this case the base directory is the path of the current document.

                If the path is empty or contains a "*" or a "?" an open file dialog is showed to the user, and the title is used in the caption of the file open dialog.

                With this function you can also open ISO 20022 and MT940 files, in this case a cash book with the transactions of the file is returned.

                var file1 = Banana.application.openDocument("*.*");
                if (!file1)
                   return;
                
                var file2 = Banana.application.openDocument("c:/temp/accounting_2015.ac2");
                if (!file2)
                   return;

                 

                Banana.Application.ProgressBar

                Banana.Application.ProgressBar is the interface to the program progress bar and can be accessed through Banana.application.progressBar. The progressBar object is used to give the user an indication of the progress of an operation and the possibility to interrupt the running process. The progress bar is showed in bottom left corner of the application windows.

                Methods

                finish()

                Notify that the operation has been completed and close the progress bar.

                progressBar.finish();

                pause()

                Notify that the operation has been paused, the cursor icon is set to the arrow cursor or poiting hand cursor. This is usually called before showing a dialog.

                Banana.application.progressBar.pause();
                var result = dialog.exec();
                Banana.application.progressBar.resume();

                resume()

                Notify that the operation has been resumed, the cursor icon is set back to an hourglass or watch cursor. This is usually called after a dialog has been closed.

                Banana.application.progressBar.pause();
                var result = dialog.exec();
                Banana.application.progressBar.resume();

                start(maxSteps)

                Start the progress indicator and define the number of steps this operation needs before being complete.

                You can call several times this method to split the progress in main and sub steps. Every call of the method start() should be paired with a call of the method finish().

                // Example use of a progress bar
                var progressBar = Banana.application.progressBar;
                progressBar.start(10);   
                for (var i = 0; i < 10; i++) {
                    ...
                    if (!progressBar.step(1)) {
                       return; // Operation canceled by the user
                    }
                }
                progressBar.finish();           
                
                

                step([stepCount])

                Advance the progress indicator of stepCount steps. If stepCount is not defined it advance of one step.

                Returns false if the user canceled the operation, otherwise true.

                progressBar.step(1);

                Example multiple steps inside a block

                // Two blocks of progress bar inside a progressBar
                
                var progressBar = Banana.application.progressBar;
                
                progressBar.start(2);           
                
                // Block 1
                progressBar.start(10)     
                for (i=0;i < 10; i++) {
                     progressBar.step(1);
                }
                progressBar.finish();       
                
                // Block 2
                progressBar.start(10)     
                for (i=0;i < 10; i++) {
                     progressBar.step(1);
                }
                progressBar.finish();           
                
                progressBar.finish();         

                 

                 

                Banana.Console

                The Banana.console object is used to display debug messages.

                • Debug messages are displayed on the message window
                • To see debug and log messages you should enable the option Show Debug Messages under Tools -> Program Options -> Developer
                • To see critical and warning messages you should enable the option Show Developer Warnings and Messages under Tools -> Program Options -> Developer

                console.critical(msg)

                Display the msg in the message windows as a critical.

                Banana.console.critical("critical message");

                console.debug(msg)

                Display the msg in the message windows.

                Banana.console.debug("Debug message");

                console.log(msg)

                Display the msg in the message windows.

                Banana.console.log("Log message");

                console.warn(msg)

                Display the msg in the message windows as warning.

                Banana.console.warn("Warning message");

                 

                Banana.Converter

                The class Banana.Converter is a collection of methods useful to convert various formats to and from data tables (array of array).

                Methods

                arrayToObject( headers, arrData, skipVoid)

                Converts an array of array string to an array of objects

                • headers is an array of strings that will become the properties of the objects.
                • arrData is an array containing array of strings
                • skipVoid if true skip void lines, if not present is set to false
                    // read a CSV file
                    var ppData = Banana.Converter.csvToArray(string, ',');    
                    // first line is header
                    var headers = ppData[0];
                    // remove first line
                    ppData.splice(0, 1);
                    // convert in array of objects
                    var arraOfObjects = Banana.Converter.arrayToObject(fileData.headers, ppData, true);

                csvToArray(string [, separator, textdelim])

                Convert a csv file (coma separated values) to an array of array.

                The parameter string contains the text to convert. The parameter separator specify the character that separates the values, default is a comma ','. The parameter textDelim specify the delimiter character for text values, default is a double quote '"'.

                Example:

                var text = "1, 2, 3\n4, 5, 6\n7, 8, 9";
                var table = Banana.Converter.csvToArray(text);
                var value = table[0][1];
                value == '2'; // true

                flvToArray(string, fieldLengths)

                Convert a flv file (fixed length values) to an array of array.

                The parameter string contains the text to convert. The parameter fieldLengths is an array with the lengths of the fields.

                Example:

                //               6                  20       8
                var text = "120608Phone               00002345";
                var table = Banana.Converter.flvToArray(text, [6,20,8]);
                var value = table[0][2];
                value == '00002345'; // true

                mt940ToTable(string)

                Converts mt940 file to a table (array of array).

                naturalCompare(a, b [, caseSensitive])

                Compare two string so that the string "2" is considered less then "100" as it would be with normal string compare.
                This function can be passed to array.sort function.

                • a first value to compare
                • b second value to compare
                • return value is -1 if a < b, 1 if a > b and 0 if a == b
                Banana.Converter.naturalCompare(a,b);

                objectArrayToCsv(headers, objArray, [separator])

                Converts an array of objects (with identical schemas) into a CSV table.

                • headers An array of strings with the list of properties to export
                • objArray An array of objects. Each object in the array must have the same property list.
                • separator The CSV  column delimiter. Defaults to a comma (,) if omitted.
                • return value a string containing the CSV text.
                var csvText = Banana.Converter.objectArrayToCsv(headers, objArray, ";");

                stringToCamelCase(string)

                Converts a text to camel case, where only the first letter every word is upper case.

                Banana.Converter.stringToCamelCase("this is an example"); 
                // returns "This Is An Example"

                stringToLines(string)

                Convert a text in an array of lines. The end line character can be '\n', \r' or a combination of both.

                Banana.Converter.stringToLines("this is\nan\nexample"); 
                //returns ["this is", "an", "example"]

                stringToTitleCase(string)

                Converts a text to title case, where only the first letter of the text is upper case.

                Banana.Converter.stringToTitleCase("this is an example"); 
                // returns "This is an example"

                arrayToTsv(table [, defaultChar])

                Converts a table (array of array) to a tsv file (tabulator separated values). If a string contains a tab it will be replaced with defaultChar or a space if defaultChar is undefined.

                Banana.Converter.arrayToTsv(table);

                arrayToCsv(table)

                Converts a table (array of array) to a csv file (coma separated values). Doubles quotes in text are replaced by apos. Texts containing comas are inserted in doubles quotes.

                Banana.Converter.arrayToCsv(table);

                toDate(date[, time])

                Convert a date and/or time to a javascript date object.

                The parameter date is a string in the formats YYYYMMDD or YYYY-MM-DD.

                The time parameter is a string in the fromats HHMM[SSZZZ] or HH:MM[:SS.ZZZ].

                Banana.Converter.toDate("2015-12-31");
                Banana.Converter.toDate("20151231");

                toInternalDateFormat(date [, inputFormat])

                Converts a date to the internal format: YYYY-MM-DD.

                The parameter date  can be a string or a date object.

                The parameter inputFormat specifies the date input format, if it is not specified the local date format is used.

                Example: 

                Banana.Converter.toInternalDateFormat("31-12-13", "dd-mm-yy");
                // returns "2013-12-31"
                Banana.Converter.toInternalDateFormat(new Date());
                // return current date in format "yyyy-mm-dd"
                

                toInternalNumberFormat(value [, decimalSeparator])

                Converts a number to the internal format: 123456.78.The internal number format use the character '.' as decimal separator, and doesn't contain a group separator. 

                The parameter value can be a string or a number object.

                The parameter decimalSeparator specifies the character used to separate the decimals, if it is not specified the local decimal separator is used.

                Example: 

                Banana.Converter.toInternalNumberFormat("1200,25", ",");
                // returns "1200.25"

                toInternalTimeFormat(string)

                Converts a time to the internal format: HH:MM:SS.ZZZ.

                Banana.Converter.toInternalTimeFormat("11:24"); 
                // returns "11:24:00"

                toLocaleDateFormat(date [, format])

                Converts a date to the local format.

                The parameter date can be a string or  a date object.

                The parameter format specifies the date ouptut format, if it is not specified the local date format is used.

                Banana.Converter.toLocaleDateFormat("2014-02-24")
                // returns "24.02.2014"
                

                toLocaleNumberFormat(value [, decimals = 2, convZero = true])

                Converts a number to the local format.

                The parameter value can be a string or a number object.

                The parameter decimals set the number of decimals.

                The parameter convZero set the format returned for zero values. If false the method returns an empty string, if true it returns the zero value as string.

                Example: 

                Banana.Converter.toLocaleNumberFormat("1200.25") 
                // returns "1'200,25"

                toLocaleTimeFormat(string [, format])

                Converts a time to the local format.

                The parameter format specifies the time ouptut format, if it is not specified the local time format is used.

                Banana.Converter.toLocaleTimeFormat("11:24:42");
                // returns "11:24"

                 

                 

                Banana.Document (Accounting)

                Banana.Document is the interface to a document in Banana Accounting.

                Banana.Document has base methods, that apply to all documents, see Banana.Document (Base), and method that are specific to the type of documents. This page describes the methods for the accounting files.

                In the table documents of the example file there are also some example code.

                Methods for accounting's files

                This method are available only if the Document is of type Accounting

                accountDescription(account [,column])

                Return the Description of the specified account.

                • Account can be an account or a Group (Gr=)
                • Column can be an alternative column name to retrieve.
                var descriptionAccount = Banana.document.accountDescription('1000');
                var descriptionGroup = Banana.document.accountDescription('Gr=10');
                var gr = Banana.document.accountDescription('1000','Gr');

                accountsReport([startDate, endDate])

                Return the account report for the specified period. Start and end date can be a string in form 'YYYY-MM-DD' or a date object.

                var report = Banana.document.accountsReport();
                var report = Banana.document.accountsReport('2017-01-01', '2017-03-31');
                

                budgetBalance(account [, startDate, endDate, function(rowObj, rowNr, table)])

                Sum the amounts of opening, debit, credit, total and balance for all budget transactions for this accounts .

                var budget = Banana.document.budgetBalance('1000');

                See for more detail the function currentBalance.

                budgetCard(account [, startDate, endDate, function(rowObj, rowNr, table)])

                Return for the given account and period a Table object with the budget account card.

                var card = Banana.document.budgetCard('1000');

                For more ditails see currentCard.

                budgetExchangeDifference( account, [date, exchangeRate])

                Return the unrealized exchange rate Profit or Loss fo the account at the specified date. 

                • account must be a valid account number not in base currency
                • date
                  • a date that is used to calculate the balance
                  • if empty calculate up to the end of the period
                • exchangeRate
                  • if empty use the historic exchange rate for the specified date or the current if not a valid exchange rate for the date are found.
                  • if "current" use the current exchange
                  • if number for example "1.95" use the specified exchange rate.
                • Return value
                  • Positive number (debit) are exchange rate Loss.
                  • Negative number (credit) are exchange rate Profit.
                  • empty if no difference or if the account has not been found or not a multicurrency accounting file.
                // unrealized exchange rate profit or loss for the account 1000
                // last balance and current exchange rate
                var exchangeRateDifference = Banana.document.budgetExchangeRateDifference('1000');
                
                // at the end of Semptember and hystoric exchange rate
                var exchangeRateDifference = Banana.document.budgetExchangeRateDifference('1000', "2017-09-31");
                
                // at the end of Semptember and current exchange rate
                var exchangeRateDifference = Banana.document.budgetExchangeRateDifference('1000', "2017-09-31", "current");
                
                // at the end of Semptember and specified exchange rate
                var exchangeRateDifference = Banana.document.budgetExchangeRateDifference('1000', "2017-09-31", "1.65");

                Available from Banana version 8.05

                budgetInterest( account, interestRate, [startDate, endDate, , function(rowObj, rowNr, table)])

                Return the calculated interest for the budget transactions. 

                For more information see the currentInterest and current Balance

                // calculate the interest debit for the whole period
                var interestDebit = Banana.document.budgetInterest('1000','5.75');
                
                // calculate the interest credit for the whole period
                var interestDebit = Banana.document.budgetInterest('1000','-4.75');

                currentBalance(account [, startDate, endDate, function(rowObj, rowNr, table) ])

                Sum the amounts of opening, debit, credit, total and balance for all transactions for this accounts.

                The calculations are perfermed by traversing by creating a journal (see journal() function) with all the transactions , and selecting the transctions with the parameters specified.
                The computation is usually very fast. But if you  have a file with many transactions especially the first query could take some time. 

                var currentBal = Banana.document.currentBalance('1000','','');
                var openingBalance = currentBal.opening;
                var endBalance = currentBal.balance;
                
                • Return value
                  Is an object that has
                  • opening the amount at the begining of the period (all transactions before)
                  • debit the amount of debit transactions for the period
                  • credit the amount of credit transactions for the period
                  • total the difference between debit-credit for the period
                  • balance opening + debit-credit for the period
                  • amount it the "normalized" amount based on the bclass of the account or group.
                    If there are multiple accounts or groups, takes the first BClass of the first.
                    • for BClass 1 or 2 it return the balance (value at a specific instant).
                    • for BClass 3 or 4 it return the total (value for the duration).
                    • For BClass 2 and 4 the amount is inverted.
                  • openingCurrency the amount at the begining of the period in the account currency
                  • debitCurrency the amount of debit transactions for the period in the account currency
                  • creditCurrency the amount of credit transactions for the period in the account currency
                  • totalCurrency the difference between debit-credit for the period in the account currency
                  • balanceCurrency opening + debit-credit for the period in the account currency
                  • rowCount the number of lines that have bben found and used for this computation
                  • bclass (double entry accounting only) is the bclass of the account or group used to express the amount.
                    The bclass is the value entered in the columns bclass.
                    It is taken in consideration the first account or group specified. If for examble you query two account that first that has bclass 2 and the second that has bclass 1. The bclass would be 2.
                    The bclass is assigned by following this steps. :
                    • The bclass of the specified account or group.
                    • The blcass of the partent group, for the same section.
                    • The blcass of the section.
                • Account
                  • can be an account id, a cost center or a segment.
                  • can be a cobination of account and segments, separeted by the semicolon ":"
                    In this case it returns all the transactions that have the indicated account and segments
                    • 1000:A1:B1
                  • can be differents accounts and multiple segments separated by the "|"
                    In this case it include all transactions that have the one of the specified accounts and one of the specified segments
                    • 1000|1001
                    • 1000|1001:A1:B1
                    • 1000|1001:A1|A2:B1
                    • can be a wildCardMatching
                      Wildcards can be used for accounts, segments, Groups or BClass and in combination
                      • ?  Matches any single character.
                      • *  Matches zero or more of any characters
                      • [...] Set of charachtes
                      • "100?" match "1001, 1002, 1003, 100A, ...)
                      • "100*" Matches all accounts starting with 100
                      • "100*|200*:A?" Matches all accounts starting with 100 or 200 and with segments with A and of two charachters.
                      • "[1234]000" Matches "1000 2000 3000 4000"
                  • Can be a group or a BClass.
                    It include all the transactions where the account used belong to a specified Group o r BClass.
                    It is also possible to use wildcards.
                    The program first create a list of accounts and then use the account list.
                    Do non mix mix groups relative to normal accounts, with groups relative to cost center or segments. Calculation could provide unexpected results.
                    • BClass (for the double entry accounting only)
                      • BClass=1
                      • BClass=1|2
                    • Gr for groups that are in Accounts table.
                      • Gr=100
                      • Gr=10*
                      • Gr=100|101|102
                    • GrC for group that are in the Category table of the income and expenses accounting type.
                      • GrC=300
                      • GrC=300|301
                  • Contra Accounts or other fields selection
                    Transactions are included only if they have also a value corresponding
                    After the "&&" you can insert a field name of the table journal.
                    • 1000&&JContraAccount=2000 return all transctions of the account 1000 that have a contra account 2000.
                      As per accounts you can specify multiple contra accounts, BClass=, Gr= with also wildcards.
                    • 1000&&JCC1=P1|P2 will use only transactions on account 1000 and that also have the CC1=.P1 or .P2
                • StartDate
                  • is a string in form 'YYYY-MM-DD' or a date object.
                  • If startDate is empty the accounting start date is taken.
                • End date:
                  • is a string in form 'YYYY-MM-DD' or a date object.
                  • If endDate is empty the accounting end date is taken.
                • function(rowObj, rowNr, table)
                  This fuction will be called for each row of the selected account.
                  The function should return true if you want this row to be included in the calculation.
                function exec( string) {
                    // We retrive the total sales (account 4000) only for the cost center P1
                    var balanceData = Banana.document.currentBalance('4000','', '', onlyCostCenter);
                    // sales is a revenue so is negative and we invert the value
                    var salesCC1 = -balanceData.total;
                    // display the information
                    Banana.Ui.showText("Sales of Project P1: " + salesCC1);
                }
                
                // this function return true only if the row has the cost center code  "P1"
                function onlyCostCenter( row, rowNr, table){
                   if(row.value('JCC1') === 'P1') {
                      return true;
                   }
                   return false;
                }
                

                Examples

                Banana.document.currentBalance("1000")              // Account 1000 
                Banana.document.currentBalance("1000|1010")         // Account 1000 or  1010 
                Banana.document.currentBalance("10*|20*")           // All account that start with 10 or with 20
                Banana.document.currentBalance("Gr=10")             // Group 10
                Banana.document.currentBalance("Gr=10| Gr=20")      // Group 10 or  29
                Banana.document.currentBalance(".P1")               // Cost center .P1
                Banana.document.currentBalance(";C01|;C02")         // Cost center ;C01 and C2
                Banana.document.currentBalance(":S1|S2")            // Segment :S1  and :S2
                Banana.document.currentBalance("1000:S1:T1")        // Account 1000 with segment :S1 or ::T1
                Banana.document.currentBalance("1000:{}")           // Account 1000 with segment not assigned 
                Banana.document.currentBalance("1000:S1|S2:T1|T2")  // Account 1000 with segment :S1 or ::S2 and ::T1 
                                                                    //   or ::T
                Banana.document.currentBalance("1000&&JCC1=P1")     // Account 1000 and cost center .P1

                currentCard(account [, startDate, endDate, function(rowObj, rowNr, table)])

                Return for the given account and period a Table object with the transactions for this account.

                Row are sorted by JDate

                parameters:

                • account can be any accounts, cost center or segment as specifiend in currentBalance.
                • startDate any date or symbol as specifiend in currentBalance.
                • endDate any date or symbol as specifiend in currentBalance.

                Return columns the same as for the Journal() function.

                var transactions = Banana.document.currentCard('1000','2015-01-01','2015-12-31');

                currentInterest( account, interestRate, [startDate, endDate, , function(rowObj, rowNr, table)])

                Return the calculated interest on the specified account.
                Interest is calculate on the effective number o days for 365 days in the years.

                • account is the account or group (same as in the function currentBalance)
                • interestRate. In percentage "5", "3.25". Decimal separator must be a "." 
                  • If positive it calculate the interst on the debit amount.
                  • If negative it calculate the interest on the credit amounts.
                • startDate, endDate, function see the currentBalance description.
                  If no parameters are specified it calculate the interest for the whole year.
                // calculate the interest debit for the whole period
                var interestDebit = Banana.document.currentInterest('1000','5.75');
                
                // calculate the interest credit for the whole period
                var interestDebit = Banana.document.currentInterest('1000','-4.75');

                exchangeRate( currency, [date])

                Return the exchange rate that convert the amount in currency in basic currency.

                The exchange rate is retrieved from the Currency table, already considering the multiplier.

                • If no date is specified the exchange rate without date is used.
                • If a date is specified it retrieve the exchange rate with the date minor or equal the specified date.

                invoicesCustomers()

                Return a table with the customers invoices from the transaction table. A customer group must be defined and invoices must be numbered using the column DocInvoice.

                invoicesSuppliers()

                Return a table with the suppliers invoices from the transaction table. A supplier group must be defined and invoices must be numbered using the column DocInvoice.

                journal([originType = ORIGINTYPE_NONE, int accountType = ACCOUNTTYPE_NONE])

                Return for the given parameters a Table object with all the amount registered on the accounts.
                The journal contain a row for each account used.

                • originType specify the row to be filtered for
                  Can be on of
                  • ORIGINTYPE_NONE no filter is applied and all rows are returned (current and budget)
                  • ORIGINTYPE_CURRENT only the normal transactions are returned
                  • ORIGINTYPE_BUDGET only the budget transactions are returned
                • accountType specify the row to be filtered for
                  • ACCOUNTTYPE_NONE no filter is applyied and all rows are returned
                  • ACCOUNTTYPE_NORMAL only rows for normal accounts are returned
                  • ACCOUNTTYPE_CC1 only rows for Cost Center 1 are returned
                  • ACCOUNTTYPE_CC2 only rows for Cost Center 2 are returned
                  • ACCOUNTTYPE_CC3 only rows for Cost Center 1 are returned
                  • ACCOUNTTYPE_CC Cost Center rows are returned same as using (ACCOUNTTYPE_CC1 | ACCOUNTTYPE_CC2 | ACCOUNTTYPE_CC3)
                // get all transactions for normal accounts
                var journal = Banana.document.journal(Banana.document.ORIGINTYPE_CURRENT, Banana.document.ACCOUNTTYPE_NORMAL );

                For each account used in the transaction table (AccountDebit, AccountCredit, CC1, CC2, CC3) the program generate a Journal row with the JAccount column set with the specific account. 
                For a double entry account transaction that use AccountDebit, AccountCredit, AccountVat, CC1, CC2, CC3 the Journal will contain 6 rows. If the transaction has only AccountDebit and AccountCredit only 2 rows will be generated.

                The column JAmount  contains the exact amount registered on the specific account. 

                The returned table has all the columns of the transaction's table plus the following columns.

                The return columns are:

                • JDate the date of the transction.
                • JDescription the transaction's description.
                • JRowOrigin the row number in the transaction's table (rows begin from 0).
                • JTableOrigin the source table.
                • JRepeatNumber the progressive number of the repetition of budget transactions.
                • JAccount the account for this line.
                  There is one row for each account (AccountDebit, AccountCredit, AccountVat, CC1, CC2, CC3).
                • JAccountDescription the Description for this account.
                • JAccountClass the BClass number for this account.
                • JAccountGr the Gr for this account.
                • JAccountGrDescription the Gr for this account.
                • JAccountGrPath the whole Gr path.
                • JAccountCurrency the currency of thi account.
                • JAccountType as defined above (ACCOUNTTYPE_NORMAL, ACCOUNTTYPE_CC1, ...)
                • JAmount the amount in basic currency registered on the account (positive is debit, negative is credit).
                • JAmountAccountCurrency the amount in the account currency (positive i debit, regative is credit).
                • JTransactionCurrency the transaction's currency.
                • JAmountTransactionCurrency the amount in transaction's currency.
                  For account with currency not in tranasctions currency the exchange rate of the transaction is used.
                • JTransactionCurrencyConversionRate is the conversion rate to obtain amounts in transaction's currency. 
                  Multiply the transcation's amount in basic currency with the JTransactionCurrencyConversionRate  and you will have the amount converted in transaction's currency.
                  The conversion rate has 12 significant decimal so only by very large conversion should be have conversion differences.
                • JVatIsVatOperation true if this row has a Vat code.
                • JVatCodeWithoutSign the Vat code without the evetually preceeding '-'.  For example "-V10" becomomes "V10".
                • JVatCodeDescription the Description for this Vat code.
                • JVatCodeWithMinus true if the Vat code is preceeded by "-".
                • JVatCodeNegative true if the Vat amount is negative (deductible).
                • JVatTaxable the amount VatTaxable with the sign that follow the JVatCodeNegative
                • VatTwinAccount the account where the net amount (without VAT) is being registered . 
                  In case of a transaction where the Gross amount is CHF 1100, then the VAT is CHF 100 and the net amount is CHF 1000. The VatTwin account will be the account where the CHF 1000 is being registered.
                  We use the name Twin for the fact that the VatTwinAccount follows the sign of the VatAccount.
                  If the Vat amount is registered in debit, the VatTwinAccount will be the AccountDebit.
                  If the Vat amount is registered in credit, the VatTwinAccount will be the AccountCredit.
                • JContraAccount the contra account.
                  The contra account is deducted based on the other accounts and the sequence in the transactions table.
                • JContraAccountType one of the following value:
                  • CONTRAACCOUNTTYPE_NONE  for no contra account
                  • CONTRAACCOUNTTYPE_DIRECT when there is on the same line credit and debit accounts.
                  • CONTRAACCOUNTTYPE_MULTIPLEFIRST the first line of a transaction on more accounts. 
                    The first transactions after a line with debit and credit accounts or with a different date.
                  • CONTRAACCOUNTTYPE_MULTIPLEFOLLOW the second or following line of a MULTIPLEFIRST with the same date.
                  • CONTRAACCOUNTTYPE_VAT  the line for the Vat Account
                • JContraAccountGroup the line number corresponding to the row number of the CONTRAACCOUNTTYPE_MULTIPLEFIRST
                • JCC1 the CC1 without the preceeding sign
                • JCC2 the CC2 without the preceeding sign
                • JCC3 the CC3 without the preceeding sign
                • JSegment1 .. JSegment10 the segment relative to the account
                • JDebitAmount the amount debit in basic currency
                • JCreditAmount the amount credit in basic currency
                • JDebitAmountAccountCurrency the amount debit in account currency
                • JCreditAmountAccountCurrency the amount credit in account currency
                • JBalance the balance amount (for account card) in basic currency
                • JBalanceAccountCurrency the balance amount (for account card) in account currency
                • JOriginType as defined above
                  • ORIGINTYPE_CURRENT
                  • ORIGINTYPE_BUDGET
                • JOperationType on of
                  • OPERATIONTYPE_NONE = 0
                  • OPERATIONTYPE_OPENING = 1
                    The row is generated from the opening balance
                  • OPERATIONTYPE_CARRYFORWARD = 2
                    The row is used from the account card and is the balance of the account at this moment.
                  • OPERATIONTYPE_TRANSACTION = 3
                    The row is generated from the Transactions table if it is ORIGINTYPE_CURRENT
                    or from the budget table if the row is ORIGINTYPE_BUDGET
                  •  OPERATIONTYPE_INVOICESETTLEMENT = 21

                     

                journalCustomersSuppliers([originType = ORIGINTYPE_NONE, int accountType = ACCOUNTTYPE_NONE])

                Same as journal with additional settlements rows for closing invoices and the following columns:

                • JInvoiceDocType
                • JInvoiceAccountId
                • JInvoiceCurrency
                • JInvoiceStatus
                • JInvoiceDueDate
                • JInvoiceDaysPastDue
                • JInvoiceLastReminder
                • JInvoiceLastReminderDate
                • JInvoiceIssueDate
                • JInvoiceExpectedDate
                • JInvoicePaymentDate
                • JInvoiceDuePeriod
                • JInvoiceRowCustomer (1=Customer, 2=Supplier)

                previousYear([nrYears])

                Return the previous year as a Banana.Document object. If the previoius yeas is not defined or it is not foud it return null.

                • nrYears is the number of years to go back, default is one.
                var previousYearDoc = Banana.document.previousYear();
                var previousTwoYearDoc = Banana.document.previousYear(2);

                projectionBalance(account, projectionStartDate [, startDate, endDate, function(rowObj, rowNr, table) ])

                Same as currentBalance but use the budget data starting from the projectionStartDate.

                This functions calculate a projection of the end of year result (or specified period) combining the current data and the budget data for the period non yet booked.

                if projectionStartDate is empty the result will be the same as currentBalance.

                If you have already booked the 1. semester and would like to have a projection up to the end of the year

                // We have booked the 1. semester and would like to have
                // a projection up to the end of the yer
                var cashProjection = Banana.document.projectionBalance('1000','2015-07-01');
                var cashEnd = projection.balance;
                var salesProjection = Banana.document.projectionBalance('3000','2015-07-01').total;
                var salesForYear = -salesProjection.total;

                projectionCard(account, projectionStartDate [, startDate, endDate, function(rowObj, rowNr, table) ])

                Same as currentCard but use the budget data starting from the projectionStartDate.

                If projectionStart date is empty result will be the same s currentCard.

                var transactions = Banana.document.projectionCard('1000','2015-01-01','','');

                endPeriod([period])

                Return the end date in the form of 'YYYY-MM-DD'.

                The endDate and startDate functions are used to retrieve the date of the accounting, so that you can create scripts that works on file of different years.

                var dateEnd = Banana.document.endPeriod();
                var dateStartFebruary = Banana.document.endPeriod('2M');
                • Period:
                  • If period is not present the return value is the end date of the accounting.
                  • The period is added the starting account date, and than is returned the last date of the period..
                  • Period (for example 2M = 2 months) is a number followed by one of the following charachters
                    • D for days
                    • M for months
                    • Q for quarters
                    • S for semesters
                    • Y for years
                  • Assuming that the Start accounting date is 2015-01-01
                    • 1M return 2015-01-02
                    • 2M return 2015-02-28
                    • 2Q return 2015-06-30
                    • 2S return 2015-12-31
                    • 2Y return 2016-12-31

                See also startDate.

                startPeriod ([period])

                Return the end date in the form of 'YYYY-MM-DD'.

                The endPeriod and startPeriod functions are used to retrieve the date of the accounting, so that you can create scripts that works on file of different years.

                var dateStart = Banana.document.endPeriod();
                var dateStart3Q = Banana.document.endPeriod('3Q');
                • Period:
                  If period is not present return the start date.
                  • Period (for example 2M = 2 months) is a number followed by one of the following charachters
                    • D is for Days
                    • M for Months
                    • Q for Quorters
                    • S for Semester
                    • Y for year
                  • With 1 the starting date of the accounting is returned.
                  • Assuming that the Start accounting date is 2015-01-01
                    • 1M return 2015-01-01
                    • 2M return 2015-02-01
                    • 2Q return 2015-04-01 
                    • 2S return 2015-07-01
                    • 2Y return 2016-01-01

                See also endDate.

                vatBudgetBalance(vatCode[, startDate, endDate, function(rowObj, rowNr, table) ])

                Sum the vat amounts for the specified vat code and period, using the Budget data.

                var vatTotal = Banana.document.vatBudgetBalance('V15');

                vatCurrentCard(vatCode[, startDate, endDate, function(rowObj, rowNr, table) ])

                Retrieve the transactions relative to the specified VatCode.

                var vatTransactions = Banana.document.vatCurrentCard('V15');

                vatCurrentBalance(vatCode[, startDate, endDate, function(rowObj, rowNr, table) ])

                Sum the vat amounts for the specified vat code and period.
                For more info see :

                Example: 

                var currentVat = Banana.document.vatCurrentBalance('V15','','');
                var vatTaxable = currentVat.vatTaxable;
                var vatPosted = currentVat.vatPosted;
                
                • Return value:
                  Is an object that has
                  • vatTaxable the amount of the taxable column
                    (the sign is the same as the vatAmount)
                  • vatAmount the amount of vat
                  • vatNotDeductible the amount not deductible
                  • vatPosted VatAmount - VatNotDeductible
                  • rowCount the number of lines that have bben found and used for this computation
                • VatCode
                  One or more VatCode defined in the tabel Vat Codes.
                  Multiple vat code can be separated by "|" for example "V10|V20", or you can use vildcard "V*".

                vatProjectionBalance(vatCode, projectionStartDate, [, startDate, endDate, function(rowObj, rowNr, table) ])

                Same as vatCurrenBalance but use the budget data starting from the projectionStartDate.

                var projectionVat = Banana.document.vatProjectionBalance('V15','','');
                var vatTaxable = projectionVat.vatTaxable;
                var vatPosted = projectionVat.vatPosted;

                vatProjectiontCard(vatCode, projectionStartDate, [, startDate, endDate, function(rowObj, rowNr, table) ])

                Same as vatCurrentCard but use the budget data starting from the projectionStartDate.

                var vatTransactions = Banana.document.vatProjectiontCard('V15','2015-01-01','','');

                vatReport([startDate, endDate])

                Return the vat report for the specified period.

                Start and end date are strings in form 'YYYY-MM-DD' or a date object. If startDate is empty the accounting start date is taken. If endDate is empty the accounting end date is taken.

                var vatReport = Banana.document.vatReport('','');

                 

                 

                Banana.Document (Base)

                Banana.Document is the interface to a document in Banana Accounting. The current opened document can be accessed through the property Banana.document. A document can be also opened with the method Banana.application.openDocument.

                Properties

                cursor

                Return a Cursor object with the current position of the cursor and the range of the selected rows.

                var currentCursor = Banana.document.cursor;

                locale

                Return the locale of the document in the form of "language_country", where language is a lowercase, two-letter ISO 639 language code, and country is an uppercase, two- or three-letter ISO 3166 country code.

                var locale = Banana.document.locale;

                rounding

                Return the rounding context of the current file that can be used with the SDecimal math functions.

                var rounding = Banana.document.rounding;

                tableNames

                Return an array with the xml names of the tables in the document.

                var tableNames = Banana.document.tableNames;

                 

                Methods

                addMessage(msg[, idMsg])

                Add the message msg to the document. The message is showed in the pane "Messages", and in a dialog if the application option "Show Messages" is turned on.
                If idMsg is not empty, the help button calls an url with script's id and message's id (idMsg) as parameters.

                See also: Application.AddMessage, Table.AddMessage, Row.AddMessage.

                Banana.document.addMessage("Message text");

                clearMessages()

                Clear all the document's messages showed in the pane "Messages".

                Banana.document.clearMessages();

                getScriptSettings()

                Get the settings of the script saved in the document. You use this method to get settings that are private to the running script. It is possible to save the settings of the script through the method "setScriptSettings". 

                With this method Settings are saved and restored under the script id, If you change the script's id you will lose the saved settings.

                Example:

                // Initialise parameter
                param = {
                   "searchText": "",
                   "matchCase": "false",
                   "wholeText": "false"
                };
                
                // Readscript settings
                var strData = Banana.document.getScriptSettings();
                if (strData.length > 0) {
                   var objData = JSON.parse(strData);
                   if (objData)
                      param = objData;
                }
                

                Since Banana 8.0.8

                getScriptSettings(id)

                Return the settings saved in the document under the id 'id'.

                You use this method to get settings that are shared between scripts. As id we recommend to use a substring of the script's id. For example if you have the scripts 'ch.banana.vat.montlyreport' and 'ch.banana.vat.endofyearreport', then you can use as id 'ch.banana.vat'.

                Example:

                // Initialise parameter
                param = {
                   "searchText": "",
                   "matchCase": "false",
                   "wholeText": "false"
                };
                
                // Readscript settings
                var strData = Banana.document.getScriptSettings('ch.banana.vat');
                if (strData.length > 0) {
                   var objData = JSON.parse(strData);
                   if (objData)
                      param = objData;
                }
                

                Since Banana 8.0.8

                info(section, id)

                Return the info value of the document referenced by section and id. Section and Id correspond to the xml name listed in the Info table, see command File info in menu "Tools" and set the view to complete to see the XML columns. If the value referenced by section and id doesn't exist, an object of type undefined is returned.

                Example:

                // Get some value of the accounting file 
                var FileName = Banana.document.info("Base","FileName");
                var DecimalsAmounts = Banana.document.info("Base","DecimalsAmounts");
                var HeaderLeft = Banana.document.info("Base","HeaderLeft");
                var HeaderRight = Banana.document.info("Base","HeaderRight");
                var BasicCurrency = Banana.document.info("AccountingDataBase","BasicCurrency");
                
                // For openingDate and closureDate use instead startDate and endDate
                var openingDate = Banana.document.info("AccountingDataBase","OpeningDate");
                var closureDate = Banana.document.info("AccountingDataBase","ClosureDate");
                
                // For file accounting type
                var FileType = Banana.document.info("Base","FileType");
                var FileGroup = Banana.document.info("Base","FileTypeGroup");
                var FileNumber = Banana.document.info("Base","FileTypeNumber");
                

                FileTypeGroup / FileTypeNumber combinations:

                • 100 Double entry accounting
                  • 100 No VAT
                  • 110 With VAT
                  • 120 Multi Currency
                  • 130 Multi Currency with VAT
                • 110 Income and Expense accounting
                  • 100 No VAT
                  • 110 With VAT
                • 130 Cash Book
                  • 100 No VAT
                  • 110 With VAT
                • 400 Address / Labels
                  • 110 Labels
                  • 120 Address

                scriptSaveSettings(string)

                Save the settings of the script in the document. The next time the script is run, it si possible to read the saved settings with "scriptReadSettings".

                With this method Settings are saved and restored under the script id, If you change the script's id you will lose the saved settings.

                Example:

                // Save script settings
                var paramString = JSON.stringify(param);
                var value = Banana.document.scriptSaveSettings(paramString);
                

                Deprecated since Banana 8.0.8. Use setScriptSettings instead.

                scriptReadSettings()

                Return the saved settings of the script.

                With this method Settings are saved and restored under the script id, If you change the script's id you will lose the saved settings.

                Example:

                // Initialise parameter
                param = {
                   "searchText": "",
                   "matchCase": "false",
                   "wholeText": "false"
                };
                
                // Readscript settings
                var strData = Banana.document.scriptReadSettings();
                if (strData.length > 0) {
                   var objData = JSON.parse(strData);
                   if (objData)
                      param = objData;
                }
                

                Deprecated since Banana 8.0.8. Use getScriptSettings instead.

                setScriptSettings(value)

                Save the settings of the script in the document. It is possible to read the saved settings of the script with the method "getScriptSettings". 

                With this method Settings are saved and restored under the script id, If you change the script's id you will lose the saved settings.

                Example:

                // Save script settings
                var paramString = JSON.stringify(param);
                var value = Banana.document.setScriptSettings(paramString);
                

                Since Banana 8.0.8.

                setScriptSettings(id, value)

                Save the settings in the document under the id 'id'. It is possible to read the saved settings with "getScriptSettings(id)".

                You use this method to set settings that are shared between scripts. As id we recommend to use a substring of the script's id. For example if you have the scripts 'ch.banana.vat.montlyreport' and 'ch.banana.vat.endofyearreport', then you can use as id 'ch.banana.vat'.

                Example:

                // Save script settings
                var paramString = JSON.stringify(param);
                var value = Banana.document.setScriptSettings('ch.banana.vat', paramString);
                

                Since Banana 8.0.8.

                table(xmlTableName)

                Return the table referenced by the name xmlTableName as a Table object, or undefined if it doesn't exist.

                Banana.document.table("Accounts");

                table(xmlTableName, xmlListName)

                Return the table referenced by the name xmlTableName with the rows of the list xmlListName as a Table object, or undefined if the table or the list don't exist. The default list is the 'Data' list.

                Banana.document.table("Transactions", "Examples");
                Banana.document.table("Transactions").list("Examples");  // alternative way

                See also: Table.list, Table.listNames.

                Since Banana 8.0.5

                value(tableName, rowNr, columnName)

                Return the value in table tableName, row rowNr and column columnName as string. If the table, row or column are not founds it return an object of type undefined.

                Banana.document.value("Accounts", 5, "Description")

                 

                 

                Banana.Document.Cursor

                Banana.Document.Cursor is the interface to the cursor and can be accessed through Banana.document.cursor.

                Properties

                tableName

                Return the xml name of the current table.

                var currentTable = Banana.document.cursor.tableName;

                rowNr

                Return the number of the current row.

                var currentRow = Banana.document.cursor.rowNr;

                columnName

                Return the xml name of the current column.

                var currentColumn = Banana.document.cursor.columnName;

                selectionTop

                Return the index of the top row of the current selection.

                var currentSelectionTop = Banana.document.cursor.selectionTop;

                selectionBottom

                Return the index of the bottom row of the current selection.

                var currentSelectionBottom = Banana.document.cursor.selectionBottom;

                 

                Banana.Document.Row

                Banana.Document.Row is the interface of a row.

                Properties

                isEmpty

                Return true if the row is completly empty.

                var isEmpty = tRow.isEmpty;

                rowNr

                Return the index of the row.

                var rowNr = tRow.rowNr;

                uniqueId

                Return the unique id (an interger value) of the row.
                Banana assign to every new row a unique id, this value is fix a will never change.

                var uniqueId = tRow.uniqueId;

                 

                Methods

                addMessage(msg [, columnName] [, idMsg])

                Add the message msg to the document. The message is showed in the pane "Messages", and in a dialog if the application option "Show Messages" is turned on.

                If idMsg is not empty, the help button calls an url with message's id (idMsg) as parameter.

                If columnName is not empty, the message is connected to the column columnName. With a double click over message in the message pane, the cursor jump to the corresponding table, rowNr and columnName.

                See also: Application.AddMessage, Table.AddMessageDocument.AddMessage.

                var accountsTable = Banana.document.table("Accounts");        
                var tRow = accountsTable.row(4);
                tRow.addMessage("Message text");

                toJSON([columnNames])

                Return the row as JSON string. If the parameter columnNames is defined, only the columns in the array are included in the file.

                // Return all the columns of the row
                var json = tRow.toJSON();
                
                // Return only the defined columns of the row
                var json = tRow.toJSON(["Account", "Description", "Balance"]);

                value(columnName)

                Return the value in column columnName. If the column is not found or the object is invalid it return the value undefined.

                var accountsTable = Banana.document.table("Accounts");        
                var tRow = accountsTable.row(4);
                tRow.value("Description");
                

                 

                Banana.Document.Table

                Banana.Document.Table is the interface of a table.

                Properties

                name

                Return the xml name of the table.

                var table = Banana.document.table("Accounts");
                var tName = table.name;

                columnNames

                Return the xml names of the table's columns as an array.

                var table = Banana.document.table("Accounts");
                var tColumnNames = table.columnNames;

                listName

                Return the xml name of the list that this table object reference to. The default list is the 'Data' list.
                Since Banana 8.0.5

                var table = Banana.document.table("Accounts");
                var tListName = table.listName;

                listNames

                Return the xml names of the available lists as an array. The default list is the 'Data' list.
                Since Banana 8.0.5

                var table = Banana.document.table("Accounts");
                var tListNames = table.listNames;

                rowCount

                Return the number of rows in the table.

                var table = Banana.document.table("Accounts");
                var tRowCount = table.rowCount;

                rows

                Return the rows of the table as an array of Row objects.

                var table = Banana.document.table("Accounts");
                var tRows = table.rows;

                 

                Methods

                addMessage(msg, rowNr [, columnName] [, idMsg])

                Add the message msg to the queue of the document. The message is showed in the pane "Messages", and in a dialog if the application option "Show Messages" is turned on.

                If idMsg is not empty, the help button calls an url with message's id (idMsg) as parameter.

                If rowNr is different than "-1" the message is connected to the row rowNr. if columnName is not empty, the message is connected to the column columnName. With a double click over message in the message pane, the cursor jump to the corresponding table, rowNr and columnName.

                See also: Application.AddMessageRow.AddMessage, Document.AddMessage.

                var table = Banana.document.table("Accounts");
                table.addMessage("Message string", 3, "description");

                extractRows( function(rowObj, rowNr, table), tableTitle)

                Extract the rows that passed the test defined by function and show them in the table "Selections". The title of the table is set to tableTitle.

                findRows( function(rowObj, rowNr, table))

                Return an array of Row objects that pass the test defined in function.

                findRowByValue(columnName, value)

                Return the first row as Row object that contains the value in the the column columnName. Or undefined if any row is found.

                var cashAccountRow = Banana.document.table('Accounts').findRowByValue('Account','1000');
                if (!cashAccountRow)
                   //Row not found
                

                list(xmlListName)

                Return a new table object with the rows of the list xmlListName, or undefined if the list xmlListName doesn't exist.

                var recurringTransactions = Banana.document.table('Transactions').list('Examples');
                var archivedProducts = Banana.document.table('Products').list('Archive');

                Since Banana 8.0.5

                row(rowNr)

                Return the Row at index rownr as Row Object, or undefined if rowNr si outside the valid range.

                var table = Banana.document.table("Accounts");
                var row = table.row(3);

                toJSON([columnNames])

                Return the table as JSON string. If the parameter columnNames is defined, only the columns in the array are included in the file.

                var table = Banana.document.table("Accounts");
                var json = table.toJSON();

                toHtml([columnNames, formatValues])

                Return the table as Html file. If the parameter columnNames is defined, only the columns in the array are included in the file. If formatValues is set to true, the values are converted to the locale format.

                Example:

                //Show the whole row content of the table Accounts
                Banana.Ui.showText(Banana.document.table('Accounts').toHtml());
                
                //Show some columns and format dates, amounts, ... as displayed in the program
                Banana.Ui.showText(
                   Banana.document.table('Accounts').toHtml(['Account','Group','Description','Balance'],true)
                );

                toTsv([columnNames])

                Return the table as Tsv file (Tab separated values). If the parameter columnNames is defined, only the columns in the array are included in the file.

                var table = Banana.document.table("Accounts");
                var tsv = table.toTsv();

                value(rowNr, columnName)

                Return the value in row rowNr and column columnName as string. Or undefined if the row or column are not found.

                var table = Banana.document.table("Accounts");
                var account = table.value(3,'Account'); 
                var description = table.value(3,'Description');

                 

                 

                Banana.IO

                The Banana.IO class is used to read and write to files.

                Since: Banana Accounting 8.0.7, only in Banana Experimental

                Introduction

                The API Banana.IO and Banana.IO.LocalFile allow a script to read or write to files in a secure way. The script can only read or writes to files that are first selected by the user though the corresponding dialogs. The script has no direct access to files on the file system. After the script finished, the permissions to write or read files are canceled.

                For example to write the result of a script to a file:

                var fileName = Banana.IO.getSaveFileName("Select save file", "", "Text file (*.txt);;All files (*)")
                if (fileName.length) {
                   var file = Banana.IO.getLocalFile(fileName)
                   file.codecName = "latin1";  // Default is UTF-8
                   file.write("Text to save ...");
                   if (!file.errorString) {
                      Banana.IO.openPath(fileContent);
                   } else {
                      Banana.Ui.showInformation("Write error", file.errorString);
                   }
                } else {
                   Banana.Ui.showInformation("Info", "no file selected");
                }
                

                To read the content of a file:

                var fileName = Banana.IO.getOpenFileName("Select open file", "", "Text file (*.txt);;All files (*)")
                if (fileName.length) {
                   var file = Banana.IO.getLocalFile(fileName)
                   file.codecName = "latin1";  // Default is UTF-8
                   var fileContent = file.read();
                   if (!file.errorString) {
                      Banana.IO.openPath(fileContent);
                   } else {
                      Banana.Ui.showInformation("Read error", file.errorString);
                   }
                } else {
                   Banana.Ui.showInformation("Info", "no file selected");
                }

                Methods

                getOpenFileName(caption, path, filter)

                The method getOpenFileName returns an existing file selected by the user. If the user presses Cancel, it returns an empty string. The file selected by the user is then allowed to be readen, but not written.

                The parameter caption is the caption of the dialog.

                The parameter path is path inclusive the file name to be selected. If the path is relative, the current open document path or the user's document path is used.

                The parameter filter set the files types to be showed. If you want multiple filters, separate them with ';;', for example: "Text file (*.txt);;All files (*)".

                var fileName = Banana.IO.getOpenFileName("Select file to read", "", "Text file (*.txt);;All files (*)")
                

                Since: Banana Accounting 8.0.7, only in Banana Experimental

                getSaveFileName(caption, path, filter)

                The method getSaveFileName returns an existing file selected by the user. If the user presses Cancel, it returns an empty string. The file selected by the user is then allowed to be readen and written.

                The parameter caption is the caption of the dialog.

                The parameter path is path inclusive the file name to be selected. If the path is relative, the current open document path or the user's document path is used.

                The parameter filter set the files types to be showed. If you want multiple filters, separate them with ';;', for example: "Text file (*.txt);;All files (*)".

                var fileName = Banana.IO.getSaveFileName("Select file to write", "", "Text file(*.txt);;All files (*)")

                Since: Banana Accounting 8.0.7, only in Banana Experimental

                getLocalFile(path)

                The method getLocalFile(path) return an object of type Banana.IO.LocalFile that represent the requested file. This method always return a valid Banana.IO.LocalFile object.

                The parameter path to the file. 

                Since: Banana Accounting 8.0.7, only in Banana Experimental

                openUrl(path)

                The method openUrl(path) open the file referred by path in the system default application.

                The parameter path to the file. 

                Since: Banana Accounting 8.0.7, only in Banana Experimental

                openPath(path)

                The method openPath(path) show the folder containing the file referred by path in the system file manager.

                The parameter path to the file. 

                Since: Banana Accounting 8.0.7, only in Banana Experimental

                Banana.IO.LocalFile

                The LocalFile class represent a file on the local file system. See Banana.IO for an example.

                Since: Banana Accounting 8.0.7, only in Banana Experimental

                Properties

                codecName

                The name of the codec to be used for reading or writing the file. Default is 'UTF-8'.

                errorString

                Read only. The string of the last occured error. If no error occured it is empty.

                Methods

                read()

                Returns the content of the file. This function has no way of reporting errors. Returning an empty string can mean either that the file is empty, or that an error occurred. Check the content of the property errorString to see if an error occured.

                write(text [, append])

                Write text to the file. If append is set to true, text is appended to the file. Return true if the operation was succesfully, false otherwise.

                 

                Banana.Report

                The class Banana.Report enable you to create reports, preview and print in Banana Accounting.

                Introduction

                The report logic is similar to the HTML / CSS logic:

                1. Create a Report object .
                  • A report contain a list of ReportEements (paragraphs, texts, tables and other)
                  • The element can contains other sub-elements
                  • For each element you can add a class that is used for rendering the element
                2. Create a StyleSheet
                3. You preview and print a report by passing the Report and the Stylesheet object.

                Each report sturcture has:

                • a ReportElement list
                • a Header Element list
                • a Footer Element list
                // Report
                var report = Banana.Report.newReport("Report title");
                report.addParagraph("Hello World !!!", "styleHelloWorld");
                
                // Styles
                var stylesheet = Banana.Report.newStyleSheet();
                var style = stylesheet.addStyle(".styleHelloWorld");
                style.setAttribute("font-size", "96pt");
                style.setAttribute("text-align", "center");
                style.setAttribute("margin-top", "50mm");
                
                var style2 = stylesheet.addStyle("@page");
                style2.setAttribute("size", "landscape");
                
                // Print preview
                Banana.Report.preview(report, stylesheet);

                 

                Methods

                newReport(title)

                Creates a report with title 'title'. The returned object is of type Banana.Report.ReportElement.

                To the report you can then add the desired elements, like paragraphs, texts, tables, and so on that construct the structure of the report.

                var report = Banana.Report.newReport("Report title");

                 

                newStyleSheet()

                Creates an empty stylesheet. The returned object is of type Banana.Report.ReportStyleSheet

                To the stylesheet you can add the styles that format the report.

                var stylesheet = Banana.Report.newStyleSheet();

                 

                newStyleSheet(fileName)

                Creates a stylesheet from a file. The file has the same syntax as CSS stylesheets. The file path is relative to the script's path. The path can't contain a '..'' (parent directory).

                The returned object is of type Banana.Report.ReportStyleSheet.

                You can add further styles to the returned stylesheet.

                var reportStyles = Banana.Report.newStyleSheet("styles.css");
                
                *** Content of file styles.css ***
                .helloWorldStyle
                {
                font-size: 96pt;
                text-align: center;
                margin-top: 50mm;
                }
                
                @page
                {
                size: landscape;
                }
                *** End of file styles.css ***
                

                 

                preview(report, stylesheet)

                Opens a print preview Dialog and shows the report with the given stylesheet. 

                The page orientation is given by the stylesheet. The default size and orientation is taken from the default printer, or can be set through the stylesheet.

                // Set landscape orientation
                stylesheet.addStyle("@page {size: landscape}");
                
                // Set page size and orientation
                stylesheet.addStyle("@page {size: A5 lanscape}");
                
                // Displays the report
                Banana.Report.preview(report, stylesheet);
                

                 

                Example: Hello world

                // Simple test script using Banana.Report
                //
                // @id = ch.banana.script.report.helloworld
                // @api = 1.0
                // @pubdate = 2017-01-02
                // @publisher = Banana.ch SA
                // @description = Report Hello world
                // @task = app.command
                // @doctype = *
                // @inputdatasource = none
                // @timeout = -1
                //
                
                function exec(string) {
                
                   // Create the report
                   var report = Banana.Report.newReport("Report title");
                   
                   // Add a paragraph to the report
                   report.addParagraph("Hello World !!!", "helloWorldStyle");
                
                   // Define some styles
                   var stylesheet = Banana.Report.newStyleSheet();
                   
                   var style = stylesheet.addStyle(".helloWorldStyle");
                   style.setAttribute("font-size", "96pt");
                   style.setAttribute("text-align", "center");
                   style.setAttribute("margin-top", "50mm");
                
                   var style2 = stylesheet.addStyle("@page");
                   style2.setAttribute("size", "landscape");
                
                   // Open Preview
                   Banana.Report.preview(report, stylesheet);
                }

                 

                Exemple: an example with tables, page breaks and differents styles

                Result

                Script

                // Test script using Banana.Report
                //
                // @id = ch.banana.script.report.report
                // @api = 1.0
                // @pubdate = 2017-01-02
                // @publisher = Banana.ch SA
                // @description = Test report api
                // @task = app.command
                // @doctype = *
                // @outputformat = none
                // @inputdatasource = none
                // @timeout = -1
                //
                
                function exec(string) {
                
                   // Report
                   var report = Banana.Report.newReport("Report title");
                
                   var pageHeader = report.getHeader()
                   pageHeader.addClass("header");
                   pageHeader.addText("Page header");
                   report.getFooter().addFieldPageNr();
                
                   var watermark = report.getWatermark();
                   watermark.addParagraph("Sample built with Script Report API");
                 
                   report.addParagraph("Report title", "titleStyle");
                   report.addParagraph("1. Text", "chapterStyle").setOutline(1);
                
                   report.addParagraph("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do " +
                    "eiusmod tempor incididunt ut labore et dolore magna aliqua. " +
                    "Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip " +
                    "ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit " +
                    "esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non " +
                    "proident, sunt in culpa qui officia deserunt mollit anim id est laborum.");
                 
                   var paragraph2 = report.addParagraph();
                   paragraph2.addText("Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do ");
                   paragraph2.addText("eiusmod tempor incididunt ut labore et dolore magna aliqua. ", "blueStyle");
                   paragraph2.addText("Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ", "boldStlyle");
                   paragraph2.addText("ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit ", "underlineStyle boldStyle");
                   paragraph2.addText("esse cillum dolore eu fugiat nulla pariatur.");
                   paragraph2.addLineBreak();
                   paragraph2.addText("Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.", "italicStyle");
                
                   report.addParagraph("2. Table", "chapterStyle").setOutline(1);
                
                   var table = report.addTable();
                   table.getCaption().addText("Table caption");
                       
                   var tableHeader = table.getHeader();
                   var tableHeaderRow = tableHeader.addRow();
                   tableHeaderRow.addCell("Description", "", 2);
                   tableHeaderRow.addCell("Income");
                   tableHeaderRow.addCell("Expense");
                   tableHeaderRow.addCell("Balance");
                 
                   var tableRow = table.addRow();
                   tableRow.addCell();
                   tableRow.addCell("Initial balance");
                   tableRow.addCell();
                   tableRow.addCell();
                   tableRow.addCell(Banana.Converter.toLocaleNumberFormat("157.00")).addClass("balanceStyle");
                
                   var tableRow = table.addRow();
                   tableRow.addCell(Banana.Converter.toLocaleDateFormat("2014-02-11"));
                   tableRow.addCell("Transfer from post office account");
                   tableRow.addCell(Banana.Converter.toLocaleNumberFormat("500.00"));
                   tableRow.addCell();
                   tableRow.addCell(Banana.Converter.toLocaleNumberFormat("657.00")).addClass("balanceStyle");
                 
                   var tableRow = table.addRow();
                   tableRow.addCell(Banana.Converter.toLocaleDateFormat("2014-02-20"));
                   tableRow.addCell("Various payments");
                   tableRow.addCell();
                   tableRow.addCell(Banana.Converter.toLocaleNumberFormat("7250.00"));
                   tableRow.addCell(Banana.Converter.toLocaleNumberFormat("-6593.00")).addClass("balanceStyle negativeStyle");
                
                   var tableRow = table.addRow("totalrowStyle");
                   tableRow.addCell();
                   tableRow.addCell("Total transactions");
                   tableRow.addCell(Banana.Converter.toLocaleNumberFormat("500.00"));
                   tableRow.addCell(Banana.Converter.toLocaleNumberFormat("7250.00"));
                   tableRow.addCell(Banana.Converter.toLocaleNumberFormat("-6593.00")).addClass("balanceStyle negativeStyle");
                 
                   report.addParagraph("3. Bookmarks and links", "chapterStyle").setOutline(1);
                
                   report.addParagraph("3.1 Internal links", "chapter2Style").setOutline(2);
                   report.addParagraph("-> link to bookmark on page 2").setLink("bookmarkpage2");
                
                   report.addParagraph("3.2 External links", "chapter2Style").setOutline(2);
                   report.addParagraph("-> link to Banana.ch web page").setUrlLink("http://www.banana.ch");
                 
                   report.addPageBreak();
                 
                   var chapter4 = report.addParagraph("4. Pages", "chapterStyle");
                   chapter4.setOutline(1);
                 
                   report.addParagraph("Bookmark on page 2").setBookmark("bookmarkpage2");
                 
                
                   // Styles
                   var docStyles = Banana.Report.newStyleSheet();
                 
                   var pageStyle = docStyles.addStyle("@page");
                   pageStyle.setAttribute("margin", "20mm 20mm 20mm 20mm");
                 
                   var headerStyle = docStyles.addStyle("phead");
                   headerStyle.setAttribute("padding-bottom", "1em");
                   headerStyle.setAttribute("margin-bottom", "1em");
                   headerStyle.setAttribute("border-bottom", "solid black 1px");
                    
                   var footerStyle = docStyles.addStyle("pfoot");
                   footerStyle.setAttribute("text-align", "right");
                 
                   var paragraphStyle = docStyles.addStyle("p");
                   paragraphStyle.setAttribute("margin-top", "0.5em");
                
                   var captionStyle = docStyles.addStyle("caption");
                   captionStyle.setAttribute("margin-top", "1em");
                
                   var titleStyle = docStyles.addStyle(".titleStyle");
                   titleStyle.setAttribute("font-size", "24");
                   titleStyle.setAttribute("text-align", "center");
                   titleStyle.setAttribute("margin-bottom", "1.2em");
                
                   docStyles.addStyle(".chapterStyle", "font-size:16; margin-top:2em; margin-bottom:0.2em");
                   docStyles.addStyle(".chapter2Style", "font-size:12; margin-top:1.4em; margin-bottom:0.2em");
                 
                   var tableStyle = docStyles.addStyle("table");
                   tableStyle.setAttribute("border", "2px solid red");
                 
                   docStyles.addStyle("td", "border: 1px dashed black; padding: 2px;");
                
                   var tableColStyle = docStyles.addStyle(".balanceStyle");
                   tableColStyle.setAttribute("background-color", "#E0EFF6");
                   tableColStyle.setAttribute("text-align", "right");
                
                   var totalRowStyle = docStyles.addStyle(".totalrowStyle");
                   totalRowStyle.setAttribute("font-weight", "bold");
                
                   var totalBalanceStyle = docStyles.addStyle(".totalrowStyle td.balanceStyle");
                   totalBalanceStyle.setAttribute("text-decoration", "double-underline");
                
                   docStyles.addStyle(".blueStyle", "color:blue");
                   docStyles.addStyle(".underlineStyle", "text-decoration:underline;");
                   docStyles.addStyle(".italicStyle", "font-style:italic;");
                   docStyles.addStyle(".boldStyle", "font-weight:bold");
                
                   // Open Preview
                   Banana.Report.preview(report, docStyles);
                }
                

                Banana.Report.ReportElement

                The class Banana.Report.ReportElement represents the report itself and every element in the report, like sections, paragraphs, tables, texts and the report itself.

                Once you create a new report through the method Banana.Report.newReport() you can start adding sections, paragraphs, texts, tables and so on. 

                When you add an element with one of the add methods, you get as return value an object of type

                Elements as a container of other elements.

                Banana.Report.ReportElement that represents the added element.
                To this object you can add further elements and by this way construct the structure of the report.

                Report
                   +  Paragraph
                   +  Table
                      +  Row
                         + Cell
                         + Cell
                      +  Row
                         + Cell
                         + Cell
                      ...

                Even if this interface enable you to add tables to text elements or columns to paragraphs, the result will be undefined.

                Formatting like text size, text color, margins, and so on are set separately through a Banana.Report.ReportStyleSheet object.

                 

                Methods   

                addClass(classes)

                Add classes to the node. A class binds the element to the corresponding class style definend in Banana.Report.ReportStyleSheet as used in CSS Stylesheets.

                var report = Banana.Report.newReport("Report title");
                report.addParagraph("1250.00").addClass("balanceStyle");

                addSection([classes])

                Add a section and return the created section as a Banana.Report.ReportElement object.

                You can add sections only to sections, cells, captions, headers or footers.

                var report = Banana.Report.newReport("Report title");
                
                //Add a section with a style
                var section = report.addSection("sectionStyle");
                section.addParagraph("First paragraph");
                section.addParagraph("Second paragraph");

                addParagraph([text, classes])

                Add a paragraph and return the created paragraph as a Banana.Report.ReportElement object.

                You can add paragraphs only to sections, cells, captions, headers or footers.

                var report = Banana.Report.newReport("Report title");
                
                //Add an empty paragraph
                report.addParagraph(" ");
                
                //Add a paragraph with a text
                report.addParagraph("Hello World !!!");
                
                //Add a paragraph with a text and a style
                report.addParagraph("Hello World !!!", "styleHelloWorld");
                

                addText(text [, classes])

                Add a text node and return the create text as a Banana.Report.ReportElement object.

                You can add texts only to sections, paragraphs, cells, captions, headers or footers.

                var report = Banana.Report.newReport("Report title");
                
                //Add a text 
                report.addText("Hello world !!!");
                
                //Add a text with a style
                report.addText("Hello world !!!", "styleHelloWorld");

                addTable([classes])

                Add a table and return the created table as a Banana.Report.ReportElement object.

                You can add tables only to the report or sections.

                var report = Banana.Report.newReport("Report title");
                var myTable = report.addTable("myTable");

                addColumn([classes])

                Add a column and return the created column as a Banana.Report.ReportElement object.

                You can add columns only to tables.

                var column1 = myTable.addColumn("column1");
                var column2 = myTable.addColumn("column2");
                var column3 = myTable.addColumn("column3");

                addRow([classes])

                Add a row and return the created row as a Banana.Report.ReportElement object.

                You can add rows only to tables, table headers or table footers.

                var tableRow = myTable.addRow();
                ...

                addCell([span])

                Add an empty cell and return the created cell as a Banana.Report.ReportElement object.

                You can add cells only to rows. You can span cells over columns but not over rows.

                tableRow.addCell();      //span empty cell over 1 column (default value)
                tableRow.addCell("", 3); //span empty cell over 3 columns
                ...
                

                addCell(text [,classes, span])

                Add a cell to the node and return the created cell as a Banana.Report.ReportElement object.

                You can add cells only to rows.You can span cells over columns but not over rows.

                tableRow.addCell("Bank", "firstCellStyle", 3);      //span cell over 3 columns
                tableRow.addCell("1200.65", "secondCellStyle, 1);   //span cell over 1 column
                ...

                addLineBreak()

                Add a line break and return the created line break as a Banana.Report.ReportElement object.

                You can add line breaks only to paragraphs or cells.

                // Add a line break to a paragraph
                var p = report.addParagraph(" ");
                p.addLineBreak();
                
                // Add a line break to a cell
                var c = tableRow.addCell();
                c.addLineBreak();
                

                addPageBreak()

                Add a page break node and return the created page beak as a Banana.Report.ReportElement object.

                You can add page breaks only to the report or sections.

                var report = Banana.Report.newReport("Report title");
                ...
                report.addPageBreak();
                ...
                

                addImage(path [,classes])

                Add an image and return the created image as a Banana.Report.ReportElement object. Supported formats are png  and jpg.

                The path can be relative to the script's folder, the document's folder, the name of a document attacched to the file or a data uri scheme (for images imbedded in the document).
                - file:script/<relative_path_to_script_folder>/<image_name>
                - file:document/<relative_path_to_file_folder>/<image_name>
                - documents:<document_name>
                - data:[<media type>][;charset=<character set>][;base64],<data>

                You can add images only to sections, paragraphs, cells, captions, headers or footers.

                The parameter path can be absolute or relative to the script path.

                Since: Banana Accounting 8.0.5

                var report = Banana.Report.newReport("Report title");
                
                // Add an image located in the script folder
                report.addImage("file:script/logo_abc.jpg");
                
                // Add an image located in the dcoument folder
                report.addImage("file:document/logo_mnp.jpg");
                
                // Add an image saved in the table documents
                report.addImage("documents:logo_xyz.jpg");
                
                // Add an image (a red dot) included in the document
                report.addImage("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUA AAAFCAYAAACNbyblAAAAHElEQVQI12P4//8/w38GIAXDIBKE0DHxgljNBAAO 9TXL0Y4OHwAAAABJRU5ErkJggg=="); 
                

                addImage(path, widht, height [,classes])

                Overloaded method to add an image and return the created image as a Banana.Report.ReportElement object.

                The parameters widht and height have the same syntax as css lenhgt values. They can be absolute (ex.: "30px", "3cm", ... ) or relative (ex.: "50%", "3em", ...).

                Since: Banana Accounting 8.0.5

                var report = Banana.Report.newReport("Report title");
                report.addImage("documents:image_logo", "3cm", "5cm");

                addFieldPageNr([classes])

                Add a field with containg the page number and return the created field as a Banana.Report.ReportElement object.

                You can add this field only to sections, paragraphs, cells, captions, headers or footers.

                var report = Banana.Report.newReport("Report title");
                ...
                // Add the page number to the paragraph
                report.addParagraph("Page ").addFieldPageNr();
                
                // Add a page number to the footer
                var footer = report.getFooter();
                footer.addText("Page ");
                footer.addFieldPageNr();

                getWatermark()

                Return the watermak element.

                Only the report has a watermak element.

                var watermark = report.getWatermark();
                watermark.addParagraph("Watermark text");

                getHeader()

                Return the header of the element. 

                Only tables and the report have an header element.

                var report = Banana.Report.newReport("Report title");
                
                //Report
                var reportHeader = report.getHeader();
                reportHeader.addClass("header");
                reportHeader.addText("Header text");
                
                //Table
                var table = report.addTable("myTable");
                var tableHeader = table.getHeader();
                tableRow = tableHeader.addRow();
                tableRow.addCell("Description");
                tableRow.addCell("Amount");
                

                getFooter()

                Return the footer of the element. 

                Only tables and the report have a footer element.

                //Report
                var footer = report.getFooter();
                footer.addText("Footer text");

                getCaption()

                Return the caption of the element. 

                Only tables have a caption element.

                var table = report.addTable("MyTable");  
                var caption = table.getCaption();
                caption.addText("Table caption text", "captionStyle");

                getTag()

                Return the tag of the element, like 'body', 'p', 'table', 'td' and so on.

                var report = Banana.Report.newReport("Report title");
                ...
                report.getTag(); // returns 'body'
                footer.getTag(); // returns 'pfoot'
                ...
                

                getTitle()

                Return the title of the element.
                Only a document element have a title.

                var report = Banana.Report.newReport("My Report Title");
                var title = report.getTitle(); // return 'My Report Title'

                Since: Banana Accounting 8.0.5

                setOutline(level)

                Set the outline level, this is used to create the index when exporting to pdf.

                report.addParagraph("1. Text").setOutline(1);

                setBookmark(bookmark)

                Set a bookmark (or anchor), this is used in conjunction with setLink().

                report.addParagraph("Bookmark on page 2").setBookmark("bookmarkpage2");

                setLink(bookmark)

                Set a link to a bookmark. See setBookmark().

                report.addParagraph("-> link to bookmark on page 2").setLink("bookmarkpage2");

                setPageBreakBefore()

                Set to insert a page break before the element.

                // Insert a page break before a paragraph
                report.addParagraph("Hello world!!!").setPageBreakBefore();
                
                // Insert a page break before a table
                   /* first create a table then... */
                myTable.setPageBreakBefore();

                setSize(width, height)

                Set the size of the element.

                The parameters widht and height have the same syntax as css lenhgt values. They can be absolute (ex.: "30px", "3cm", ... ) or relative (ex.: "50%", "3em", ...).

                You can only set the size of an image element.

                Since: Banana Accounting 8.0.5

                var image = report.addImage("C:/Documents/Images/img.jpg");
                image.setSize("3cm", "6cm");
                

                setStyleAttribute(attr_name, attr_value)

                Set a style attribute to the element. Attributes ids and values follow the CSS specification. This attibute correspont to the inline styles in Css.

                paragraph.setAttribute("font-size", "24pt");
                

                setStyleAttributes(attributes)

                Set style attributes to the element. Attributes ids and values follow the CSS specification. Those attributes correspond to the inline styles in Css.

                paragraph.setAttribute("font-size:24pt;font-weight:bold;");
                

                setTitle(title)

                Set the title of the element. 

                Title can be only set to a document element.

                Since: Banana Accounting 8.0.5

                document.setTitle("Annual report");
                

                setUrlLink(link)

                Set a link to an external file (file://...) or a web page (http://....).

                To the element the class "link" is automatically added.

                report.addParagraph("Link to Banana.ch web page").setUrlLink("http://www.banana.ch");
                 

                Banana.Report.ReportStyle

                The class Banana.Report.ReportStyle represent a single style in a stylesheet. It is used to set the style attributes.

                Methods

                setAttribute(attr_name, attr_value)

                Set the attribute value. Attributes ids and values follow the CSS specification.

                style.setAttribute("font-size", "24pt");

                setAttributes(attributes)

                Set attributes values. Attributes ids and values follow the CSS specification.

                style.setAttributes("font-size:24pt;font-weight:bold;");

                 

                Supported attributes

                font
                font-family
                font-size
                font-style
                font-weight

                margin [top, right, bottom, left]
                margin-top
                margin-bottom
                margin-left
                margin-right

                padding
                padding-top
                padding-bottom
                padding-left
                padding-right

                hanging-ident
                text-align
                text-decoration
                text-ellipsis
                vertical-align
                color
                background-color

                border
                border-top
                border-top-style
                border-top-color
                border-top-width
                border-bottom
                border-bottom-style
                border-bottom-color
                border-bottom-width
                border-left
                border-left-style
                border-left-color
                border-left-width
                border-right
                border-right-style
                border-right-color
                border-right-width

                display
                overflow
                float
                text-wrap
                width
                max-width
                min-width
                height

                page-break-after
                column-break-after
                line-break-after
                page-break-before
                column-break-before
                line-break-before
                page-break-inside
                line-break-inside

                size
                position
                left
                top
                right
                bottom

                transform (matrix, translateX, translateY, translate, rotate, scaleX, scaleY, scale, skewX, skewY and skew)
                transformOrigin

                orphans

                fill-empty-area

                 

                Non standard attributes and values

                width-sym
                This attribute contain a string. Columns with the same width-sym will be layouted with the same width.

                layout-sym
                This attribute is a string. Tables with the same layout-sym attribute will have the same layout for the width of the columns.

                overflow
                This attribute has the non standard value "shrink". The content of the node will be down scaled to fit given space.

                style.setAttribute("overflow", "shrink");
                

                overflow-shrink-max
                This attibute the maximal down scaling factor (like 0.8). 

                style.setAttribute("overflow-shrink-max", "0.6");

                text-decoration
                This attribute can also contains the values "double-underline" or "double-strong-underline".

                style.setAttribute("text-decoration", "underline");

                border-style
                This attribute can also contain the values "double" and "double-strong".

                style.setAttribute("border-style", "double");

                flexible-width
                This attribute can contain the value "always" and is only used with columns. If in a table one or more columns have the attribute "flexible-widht", only those columns are enlarged to get the desired table widht, untouching the other. Otherwise all columns are enlarged.

                fill-empty-area
                With this attribute you can fill the remaing space of your page with lines. Lines can be defined through the attribute, which is a string and contains the color, the style and the width of the line.

                Style can be: solid, dash and dot.
                Examples:

                var style1 = stylesheet.addStyle("@page", "black solid 1");
                var style2 = stylesheet.addStyle("@page", "green dash 0.5");

                 

                 

                 

                Banana.Report.ReportStyleSheet

                The class Banana.Report.ReportStyleSheet is used to set the styles to format a report.

                Page size and orientation

                At this moment the report is rendered based on the page size defined in the default printer device.
                You can't define a page size, bu you can set the orientation with the Style @page.

                Page orientation can't be set only once per report, you can't switch from potrait to landscape. 

                var stylesheet = Banana.Report.newStyleSheet();
                stylesheet.addStyle("@page").setAttribute("size", "landscape");

                Methods

                addStyle(selector)

                Create a new style with the given selector. The return object is of type Banana.Report.ReportStyle.

                The syntax of selector follow the CSS specification.

                • Style name without a preceding dot are reserved predefined tags like "td", "p", "table"
                • Style name for new class need a preceding point ".myStyle" in the addStyle method.
                  The dot name is not used when adding the class name to the element
                report.addParagraph("Text to print 24pt", "myStyle");
                var style = stylesheet.addStyle(".myStyle");
                myStyle.setAttribute("font-size", "24pt");
                myStyle.setAttribute("text-align", "center"); 
                
                report.addCell("Text to print");
                var styleTd = stylesheet.addStyle("td");
                styleTd.setAttribute("font-weight", "bold");

                 

                addStyle(selector, attributes)

                Create a new style with the given selector and attributes. The return object is of type Banana.Report.ReportStyle.

                The syntax of selector and attributes follow the CSS specification.

                var style2 = stylesheet.addStyle(".style2", "font.size: 24pt; text-align: center");
                 

                parse(text)

                Load the styles from the given text. The text follow the CSS specification.

                stylesheet.parse(
                  "p.style1 {font-size:24pt; text-align:center;}" +
                  "@page {size:A4 landscape;}"
                  );
                

                 

                The selector

                The selector follow the css syntax, following you will find some examples:

                Selector Selected elements
                .xyz

                Select all elements with class xyz

                NB.: When you set the class to a ReportElement you enter the name without '.'

                table Select all tables
                table.xyz Select all tables with class xyz
                table.xyz td Select all cells in tables with class xyz
                 
                Tag selectors
                @page page
                body content of the report
                phead page header
                pfoot page footer
                div section
                p paragraph
                table table
                caption table caption
                thead table header
                tbody table body
                tfoot table footer
                tr table row
                td table cell

                 

                You can get the tag of an element through the method getTag();

                 

                Report FAQ

                How can I set the orientation of the page and the margins

                // Set landscape orientation
                styleSheet.addStyle("@page", "size: landscape");
                
                // Page margins top, right, bottom, left
                styleSheet.addStyle("@page", "margin: 20mm 20mm 20mm 25mm");

                 

                How can I set the size of the page

                // Set page size
                styleSheet.addStyle("@page", "size: A5");

                 

                How can I set the margins of page header and footer

                styleSheet.addStyle("phead", "margin-bottom:2em");
                styleSheet.addStyle("pfoot", "margin-top:2em");

                 

                How can I print the page number on the right of the page footer

                document.getFooter().addFieldPageNr("alignright");
                stylesheet.addStyle("pfoot", "text-align:right");
                

                 

                Can I print the total number of pages

                No

                 

                I like a style implemented in a report of Banana Accounting, where can I get the used stylesheet?

                In print preview export the report as html and look at the code. You will find the used styles.

                 

                Banana.SDecimal

                The Banana.SDecimal (String Decimal) provide functions to do decimal math calculation that

                • use decimal string in the form of '10.00' or '-10' as argument and return value
                  • '.' is interpreted as the decimal separator
                  • thousand separator are not allowed
                • has up to 34  digits of numeric precision
                • do accurate decimal rounding

                You can use this functions instead of the javascript Number that use floating point arithmetic and are not very suitable for accounting calculation do the rounding differences.

                var r = Banana.SDecimal.add('6.50', '3.50');   // return '10.00'
                var r = Banana.SDecimal.divide('10', '2');     // return '5.00'
                var r = Banana.SDecimal.divide('10', '2', ''); // return '5'
                var r = Banana.SDecimal.divide('10', '2');     // return '5.00000'
                

                Rounding context

                Functions can be passed a rounding context that specify the rounding properties:

                • decimals is the number of decimal digits (default value is 2)
                  • null returns the value unrounded.
                  • '0' returns with no decimals.
                  • '1' to '33' returns the value with the indicated number o decimals.
                • mode is the rounding mode (default value is HALF_UP)
                  • Banana.SDecimal.HALF_UP the amount are rounded to the nearest. The 0.5 are rounded up.
                  • Banana.SDecimal.HALF_EVEN the amount are rounded to the nearest. The 0.5 are rounded up or down based on the preceding digit.

                If the rounding context is omitted no rounding is done.

                Rounding context of the accounting file

                All Banana document file have a rounding context that can be retrieved with the property Banana.document.rounding (see Banana.document).

                Examples:

                // no context
                var r = Banana.SDecimal.divide('10', '3'); // return '3.3333333333333333333333333'
                
                // with context
                var context = {'decimals' : 4, 'mode' : Banana.SDecimal.HALF_UP};
                var r = Banana.SDecimal.divide('10', '3', context);        // return '3.3333'
                var r = Banana.SDecimal.divide('10', '3', {'decimals':0}); // return '3'
                
                // use the rounding property (accunting file 2 decimals)
                var r = Banana.SDecimal.divide('10', '3', Banana.document.rounding); // return '3.33'
                

                Functions

                abs(value1, [, rounding])

                Returns the value1 without the sign and rounded as indicated

                var r = Banana.SDecimal.abs('-10') // return '10.00'

                add(value1, value2 [, rounding])

                Returns the sum of value1 and value2.

                var r = Banana.SDecimal.add('6.50', '3.50'); // return '10.00'
                

                compare(value1, value2)

                Returns an integer value

                • 1 if value1 > value2
                • 0 if value1 = value2
                • -1 if value1 < value2
                Banana.SDecimal.compare('3.50', '2'); // return '1'
                Banana.SDecimal.compare('3.00', '3'); // return '0'
                

                divide(value1, value2 [, rounding])

                Returns value1 divided by value2.

                var r = Banana.SDecimal.divide('6', '3'); // return '2.00'

                isZero(value)

                Returns a boolean

                • true if value is zero
                • false if value is not zero
                var r = Banana.SDecimal.isZero('3.00'); // return 'false'

                max(value1, value2 [, rounding])

                Returns the max of value1 and value2.

                var r = Banana.SDecimal.max('6', '3'); // return '6.00'

                min(value1, value2 [, rounding])

                Returns the min of value1 and value2.

                var r = Banana.SDecimal.min('6', '3'); // return '3.00'

                multiply(value1, value2 [, rounding])

                Returns value1 multiplied by value2.

                var r = Banana.SDecimal.multiply('6', '3'); // return '18.00'

                remainder(value1, value2 [, rounding])

                Divide value1 by value2 and returns the reminder.

                var r = Banana.SDecimal.reminder('10', '3'); // return '1.00'

                round(value1, [, rounding])

                Returns value1 round to the spcified rounding context.

                var r = Banana.SDecimal.round('6.123456'); // no context no rounding 
                r = Banana.SDecimal.round('6.123456', {'decimals':2}); // return '6.12'
                

                roundNearest(value1, nearest, [, rounding])

                Returns value1 round to the specified minimal amount.

                var r = Banana.SDecimal.roundNearest('6.17', '0.1'); // return '6.1'
                r = Banana.SDecimal.roundNearest('6.17', '0.05', {'decimals':2}); // return '6.15'
                

                invert(value, [, rounding])

                If positive returns a negative value, if negative returns a positive value.

                var a = Banana.SDecimal.invert('5'); //return '-5'
                var b = Banana.SDecimal.invert('-2.50'); //return '2.50'

                sign(value)

                Returns an integer value

                • 1 if value > 0
                • 0 if  value = 0
                • -1 if value < 0
                var r = Banana.SDecimal.sign('-5'); // return '-1'

                subtract(value1, value2 [, rounding])

                Subtract value2 from value1 and returns the result.

                var r = Banana.SDecimal.subtract('10', '3'); // return '7.00'

                 

                Locale conversion

                To convert to and from the locale format use the Banana.Converter functions

                • Banana.Converter.toInternalNumberFormat(value [, decimals, convZero])

                • Banana.Converter.toLocaleNumberFormat(value [, decimalSeparator])

                var sum = Banana.SDecimal.add('10000', '2000'); // return '12000.00'
                var printValue = Banana.Converter.toLocaleNumberFormat(sum); // return "12'000.00"

                 

                 

                Banana.Script

                Banana.Script represent the interface to the script file and can be accessed through Banana.script. It is used to get the parameters values defined in the script. For example if you want to print out in a report the publishing date of the script.

                Properties

                Methods

                getParamValue(paramName)

                Return the value definend in the script file of the parameter paramName. Return an empty string or the internal default value if the parameter is not defined. Return the first found value, if the parameter is defined multiple times.

                Banana.script.getParamValue('pubdate'); // returns for example '2016-05-11'
                

                getParamValues(paramName)

                Return all the values defined in the script file of the param paramName . Return an empty array if the parameter paramName is not defined.

                // Script.js example:
                // ...
                // @authors = Pinco
                // @authors = Pallino
                // ...
                
                Banana.script.getParamValues('authors'); // returns ['Pinco', 'Pallino']
                

                getParamLocaleValue(paramName)

                Return the localized value definend in the script file of the param paramName. Return an empty string the parameter is not defined.

                // Script.js example:
                // ...
                // @description = English desciption
                // @description.it = Descrizione italiana
                // @description.de = German Beschreibung
                 ...
                
                Banana.script.getParamLocaleValue('description'); // returns 'Descrizione italiana' for a system running with the locale 'italian'.

                Banana.Ui

                This class Banana.Ui contains methods to interact with user interface.

                Methods

                createUi(uiFilePath)

                Read the file uiFilepath and return an object representing the dialog. The uiFileName has to be in the same directory as the running script. For details and examples see Script dialogs.

                If an error occurred undefiend is returned.

                Example:

                @includejs = ch.banana.calculator.dialog.js;  // Define the class Calculator
                                                              // that control the .ui file
                ...
                var calculatorUi = Banana.Ui.createUi("ch.banana.calculator.dialog.ui");
                var calcJs = new Calculator(calculatorUi); 
                calclatorUi.exec();  //Show the dialog

                getDouble(title, label [, value , min, max, decimals])

                Show the user a dialog asking to insert a double. Return the inserted double or undefined if the user clicked cancel.

                var a = Banana.Ui.getDouble("Title text", "Label text");
                var b = Banana.Ui.getDouble("Title text", "Label text", "10.0");

                getInt(title, label [, value, min, max, steps])

                Show the user a dialog asking to insert a integer. Return the inserted integer or undefined if the user clicked cancel.

                var a = Banana.Ui.getInt("Title text", "Label text");
                var b = Banana.Ui.getInt("Title text", "Label text", "5", "1", "10","1");

                getItem(title, label, items [, current, editable])

                Show the user a dialog asking to select an intem from a list. Return the selected item or undefined if the user clicked cancel.

                var value = Banana.Ui.getItem("Input", "Choose a value", ["a","b","c","d","e"], 2, false);

                getPeriod(title, startDate, endDate [, selectionStartDate, selectionEndDate, selectionChecked])

                Show the user a dialog asking to select a period like the tab Period. Return an object with the atributes 'startDate', 'endDate' and 'hasSelection' or undefined if the user clicked cancel. Date values are in the format "YYYY-MM-DD".

                var period = Banana.Ui.getPeriod("Title text", "2016-01-01", "2016-12-31");
                if (period) {
                    var selectedStartDate = period.startDate; // return the start date of the selected period
                    var selectedEndDate = period.endDate; // return the end date of the selected period
                }
                

                getText(title, label [, text])

                Show the user a dialog asking to insert a text. Return the inserted text or undefined if the user clicked cancel.

                var text = Banana.Ui.getText("Title text","Label text");

                showHelp(uiFileName)

                Show the help of a dialog. The help is loaded from the Banana.ch web site.

                 

                showInformation(title, msg)

                Show the user an information dialog.

                Banana.Ui.showInformation("Information", 'Insert here the text of the information.');

                showQuestion(title, question)

                Show the user a question dialog with Yes and No buttons. Return true if the user clicked Yes, otherwise false.

                var answer = Banana.Ui.showQuestion("Question title", "Insert here the text of the question");

                showText(text)

                Show the given text in a dialog. The text can be plain text of html and span over multiple lines. If the text is in html the title is taken form the html. The dialog enable the user to save the content in the formats html, pdf, odf and txt.
                The use of pixels to set  the font sizes is not supported, the text is not rendered properly.

                // Normal text
                Banana.Ui.showText("Insert here the text.");
                
                // Html text
                Banana.Ui.showText('<html><header><title>This is title</title></header><body>Hello world</body></html>');

                showText(title, text)

                This is an overloaded function.

                Show the given text in a dialog with the given title. The text can be plain text of html and span over multiple lines. The dialog enable the user to save the content in the formats html, pdf, odf and txt.

                showText(title, text, options)

                This is an overloaded function.

                Show the given text in a dialog with the given title. The text can be plain text of html and span over multiple lines. The dialog enable the user to save the content in the formats html, pdf, odf and txt.

                Through the object options it is possible to set the following additional parameters:

                • codecName: the name of the codec to be used in case the content will be saved as txt file. Default is 'UTF-8'
                • outputFileName: the file name without path to be used in case the content will be saved. The path is current open document path or the user's document path.
                var options = {
                   'codecName' : "latin1", // Default is UTF-8
                   'outputFileName' : "prova.txt"
                }
                Banana.Ui.showText("Title", "some text...", options);

                Since Banana 8.0.7

                Banana.Xml

                The Banana.Xml class is used to parse and access xml data.​

                Since: Banana Accounting 8.0.5

                Introduction

                The API Banana.Xml and Banana.Xml.XmlElement implement a subset of the DOM Document Object Model interface.  The most used properties and methos are implemented.

                For example the list of books in the following xml file:

                <Library updated="2016-10-31">
                   <Book>
                      <Title>Paths of colours</Title>
                      <Author>Rosa Indaco</Author>
                   </Book>
                   <Book>
                      <Title>Accounting exercises</Title>
                      <Author>Su Zhang</Author>
                   </Book>
                </Library>
                

                Can be retrieved with the following code:

                var xmlFile = Banana.Xml.parse(xml); 
                var xmlRoot = xmlFile.firstChildElement('Bookshelf'); 
                var updateDate = xmlRoot.attribute('updated');
                var bookNode = xmlRoot.firstChildElement('Book');  // First book
                while (bookNode) { 
                   // For each book in the library
                   var title = xmlFile.firstChildElement('Title').text();
                   var authorNode = xmlFile.firstChildElement('Author'); 
                   var author = authorNode ? authorNode.text() : 'unknow';
                   bookNode = bookNode.nextSiblingElement('Book');  // Next book
                } 

                 

                Methods

                parse(xml)

                The method parse(xml) parses xml data and returns an object of type Banana.Xml.XmlElment that represents the parsed xml. If the xml data is not valid, this method returns null.

                var xmlFile = Banana.Xml.parse(xml); 
                var xmlRoot = xmlFile.firstChildElement('Bookshelf'); // The root element is named 'Bookshelf' in this example

                Banana.Xml.XmlElement

                The XmlElement class represent an Xml element. See Banana.Xml for an example.

                Since: Banana Accounting 8.0.5

                Properties

                nodeName

                The read only property nodeName returns the node name of the xml element.

                parent

                The read only property parent returns the parent of this Xml element as a Banana.Xml.XmlElment object. If this is the root element, it return null.

                text

                The read only property text returns the text of this Xml element and their childs.

                value

                This is a synomin of the property text.

                Methods

                attibute(name [, defaultValue])

                Returns the value of the attribute with the specified name as a string. If no attibute with the specified name is found, the defaultValue or an empty string is returned.

                attibuteNS(ns, name [, defaultValue])

                Returns the value of the attribute with the specified name and namespace as a string. If no attibute with the specified name is found, the defaultValue or an empty string is returned.

                hasAttribute(name)

                Returns true is the attribute with the specified name exists.

                hasAttributeNS(ns, name)

                Returns true is the attribute with the specified name and namespace exists.

                firstChildElement([name])

                Returns the first child element with the specified name if name is non-empty, otherwise it returns the first child element. Returns null if no such child exists.

                var bookNode = xmlRoot.firstChildElement('Book');  // First book
                while (bookNode) { 
                   // For each book in the library
                   var title = xmlFile.firstChildElement('Title').text();
                   bookNode = bookNode.nextSiblingElement('Book');  // Next book
                } 

                hasChildElements([name])

                Returns true if this element contains one or mode elemets with the specified name.

                lastChildElement([name])

                Returns the last child element with the specified name if name is non-empty, otherwise it returns the last child element. Returns null if no such child exists.

                elementsByTagName(name)

                Returns an array containing all descendants of this element with the specified name.

                nextSiblingElement([name])

                Returns the next sibling element with the specified name if name is non-empty, otherwise returns any next sibling element. Returns null if no such sibling exists.

                previousSiblingElement([name])

                Returns the previous sibling element with the specified name if name is non-empty, otherwise returns any previous sibling element. Returns null if no such sibling exists.

                Import Apps

                Import filters are import apps that read a custom format and convert in an import format suitable for using with the with the command "Import to accounting".

                Import Apps

                Imports apps are java-script program that read the data to import and trasform and return them as text, in a format comptatible with Banana.

                Import Apps have the

                • attribute @task defined as one of the import for example //@task = import.transactions
                • The parameter in the function exec contains the import data (the content of the file specified in the input box)
                • You can specify that the data is read from the file specified on the input box or that the user can select the file with "// @inputdatasource = openfiledialog"  
                • The import text is returned as a String in the function exec() with the retrun statement
                // @api = 1.0
                // @id = ch.banana.scripts.import.creditsuisse
                // @description = Credit Suisse bank (*.csv)
                // @task = import.transactions
                // @doctype = nodocument
                // @publisher = Banana.ch SA
                // @pubdate = 2015-06-21
                // @outputformat = transactions.simple
                // @inputdatasource = openfiledialog
                // @inputfilefilter = Text files (*.txt *.csv);;All files (*.*)
                // @inputfilefilter.de = Text (*.txt *.csv);;Alle Dateien (*.*)
                // @inputfilefilter.fr = Texte (*.txt *.csv);;Tous (*.*)
                // @inputfilefilter.it = Testo (*.txt *.csv);;Tutti i files (*.*)
                
                /**
                * Parse the data and return the data to be imported as a tab separated file.
                */
                function exec(inText) {
                  // parse the inText and set to outText
                  // int the return text the data is tab separated
                  var outText = "Date\tDescription\tAmount\n";
                  outText += "2015-01-31\tExpense text\t100.25\n";  
                  return outText;
                }
                

                Export Apps

                Export apps are used to export data in a custom format.

                • Define attribute @task as export.file
                  // @task = export.file

                • Define the extension of the file to be exported.
                  // @exportfiletype = xml

                • The text to be written to the export file is the return value of the exec function and must be a return.
                  return "exported text".

                • When the script terminate and if the return text is not null and does not start with "@Cancel ", the user will be promped with a dialog to choose a file name where to export. 

                Example

                Export all the accounting with description and balance in a xml file.

                // @id = ch.banana.apps.export
                // @api = 1.0
                // @pubdate = 2016-04-08
                // @doctype = *.*
                // @description = Export into a text file (.txt)
                // @task = export.file
                // @exportfiletype = txt
                // @timeout = -1
                
                function exec() {
                var exportResult = '<accounts>';
                    var tableAccounts = Banana.document.table('Accounts');
                    if ( !tableAccounts) {
                      return;
                   }
                   for (i=0;i<tableAccounts.rowCount;i++) {
                        if (tableAccounts.row(i).value('Account')) {
                            exportResult += '<account>';
                            exportResult += '<accountnr>' + tableAccounts.row(i).value('Account') + '</accountnr>';
                            exportResult += '<description>' + tableAccounts.row(i).value('Description') + '</description>';
                            exportResult += '<balance>' + tableAccounts.row(i).value('Balance') + '</balance>';
                            exportResult += '</account>';
                        }
                    }
                    exportResult += '</accounts>';
                    //return the string
                    return exportResult;
                }

                 

                Report Apps

                Report apps are java-script programs that are used to customize printouts like invoice documents. The main function printDocument() receives the json object from Banana, writes the document and lunches the result in a print preview window.

                Copies of some report apps that you can use as starting point are available at the following address: github.com/BananaAccounting

                At the moment this feature is available only within Banana Accounting Experimental.

                 

                Important notes

                • Banana Accounting uses Qt script engine to execute report apps.
                • Mandatory functions: printDocument(jsonInvoice, repDocObj, repStyleObj) which is the main function and settingsDialog() which is called from user to set up parameters like colour or additional text.
                • Available json objects: invoice json object, statement json object, reminder json object
                • The extension of custom report apps should be .js and the script must contains the main attributes, see Apps Attributes.
                • The attribute @id of the script should correspond to the file name.
                • System report apps are downloaded to the folder /User/.../AppData/Local/Banana.ch/.../Apps
                  (Mac Users: /Users/.../Library/Application Support/Banana.ch/.../Apps)
                • Do not overwrite system report apps because updates will overwrite your changes.
                • You can save your report app anywhere, Banana Accounting saves the path to your app in the configuration file /AppData/Local/Banana.ch/.../Apps/apps.cfg

                 

                 

                Invoice

                Create personalized invoice report apps

                We have published our templates on github.com/BananaAccounting. In this section you will find different basic examples.

                You can save a copy of one template in your computer and make the changes you wish. In order to use your custom template in Banana you have to:

                • select the command Account2 - Customers - Print invoices...
                • In the Print invoices dialog select Manage apps...
                • In the Manage apps dialog select Add from file... and choose your invoice report file you just created

                At the moment this function is available only within Banana Accounting Experimental.

                Apps attributes

                // @id = scriptfilename.js
                // @api = 1.0
                // @pubdate = yyyy-mm-dd
                // @publisher = yourName
                // @description = script description
                // @task = report.customer.invoice
                

                Report code

                The main function is printDocument(jsonInvoice, repDocObj, repStyleObj). The  parameter jsonInvoice object contains the data, repDocObj is the document object and repStyleObj is the stylesheet object where you can add styles.

                function printDocument(jsonInvoice, repDocObj, repStyleObj) {
                  var param = initParam();
                  var savedParam = Banana.document.getScriptSettings();
                  if (savedParam.length > 0) {
                    param = JSON.parse(savedParam);
                    param = verifyParam(param);
                  }
                  printInvoice(jsonInvoice, repDocObj, repStyleObj, param);
                }
                

                The function settingsDialog() is called from Banana when you select the button Params... from dialog Manage apps. You can write any code you need for your script.

                /*Update script's parameters*/
                function settingsDialog() {
                   var param = initParam();
                   var savedParam = Banana.document.getScriptSettings();
                   if (savedParam.length > 0) {
                      param = JSON.parse(savedParam);
                   }   
                   param = verifyParam(param);
                   ...
                   var paramToString = JSON.stringify(param);
                   var value = Banana.document.setScriptSettings(paramToString);
                }
                
                

                Printing custom data

                You can add your own parameters in order to print specific data. For instance printing a reference order number or removing payments information if the invoice has already been paid.

                if (invoiceObj.parameters.orderNo) {
                    cell1.addParagraph("Reference order: " + invoiceObj.parameters.orderNo);
                  }

                Printing images

                With the command addImage it is possible to add images into the document. For instance

                var reportObj = Banana.Report;
                var repDocObj = reportObj.newReport();
                repDocObj.addImage("documents:logo", "logoStyle");
                
                var logoStyle = repStyleObj.addStyle(".logoStyle");
                logoStyle.setAttribute("position", "absolute");
                logoStyle.setAttribute("margin-top", "5mm");
                logoStyle.setAttribute("margin-left", "20mm");
                logoStyle.setAttribute("width", "120px");
                
                

                If you set the width, the image will be resized to the given width. If the width is not specified the image will be printed with a 72dpi resolution.

                Json Object

                Invoice Json Object

                Data structure you can access through the report:

                {
                    "billing_info": {
                        "payment_term": "",
                        "total_amount_vat_exclusive": "500.00",
                        "total_amount_vat_exclusive_before_discount": "500.00",
                        "total_amount_vat_inclusive": "540.00",
                        "total_amount_vat_inclusive_before_discount": "540.00",
                        "total_categories": [
                        ],
                        "total_discount_percent": "",
                        "total_discount_vat_exclusive": "",
                        "total_discount_vat_inclusive": "",
                        "total_rounding_difference": "",
                        "total_to_pay": "540.00",
                        "total_vat_amount": "40.00",
                        "total_vat_amount_before_discount": "40.00",
                        "total_vat_codes": [
                        ],
                        "total_vat_rates": [
                            {
                                "total_amount_vat_exclusive": "500.00",
                                "total_amount_vat_inclusive": "540.00",
                                "total_vat_amount": "40.00",
                                "vat_rate": "8.00"
                            }
                        ]
                    },
                    "customer_info": {
                        "address1": "Viale Stazione 11",
                        "address2": "", 
                        "address3": "", 
                        "balance": "102.60", 
                        "balance_base_currency": "102.60", 
                        "business_name": "Rossi SA",
                        "city": "Bellinzona",
                        "country": "Switzerland", 
                        "country_code": "CH", 
                        "courtesy": "Signor", 
                        "currency": "CHF", 
                        "date_birth": "1999-10-06", 
                        "email": "info@test.com", 
                        "first_name": "Andrea", 
                        "lang": "it",
                        "last_name": "Rossi",
                        "mobile": "0033608405", 
                        "number": "1100",
                        "origin_row": "26",
                        "origin_table": "Accounts",
                        "postal_code": "6500",
                        "vat_number": "1234"
                    },
                    "document_info": {
                        "currency": "CHF",
                        "date": "20160101",
                        "decimals_amounts": 2,
                        "description": "",
                        "doc_type": "10", 
                        "locale": "it",
                        "number": "201710",
                        "origin_row": "1",
                        "origin_table": "Transactions",
                        "printed": "1", 
                        "rounding_total": "0.05",
                        "type": "invoice"
                    },
                    "items": [
                        {
                            "account_assignment": "3000",
                            "description": "Prodotto A",
                            "details": "",
                            "index": "0",
                            "item_type": "item",
                            "mesure_unit": "",
                            "number": "",
                            "origin_row": "1",
                            "origin_table": "Transactions",
                            "quantity": "1",
                            "total_amount_vat_exclusive": "500.00",
                            "total_amount_vat_inclusive": "540.00",
                            "total_vat_amount": "40.00",
                            "unit_price": {
                                "amount_vat_inclusive": "540.00",
                                "calculated_amount_vat_exclusive": "500.00",
                                "calculated_amount_vat_inclusive": "540.00",
                                "calculated_vat_amount": "40.00",
                                "currency": "CHF",
                                "vat_code": "V80",
                                "vat_rate": "8.00"
                            }
                        }
                    ],
                    "note": [
                            {
                                "date": "2017-04-24",
                                "description": "commande=AWO-003530",
                                "origin_row": "968",
                                "origin_table": "Transactions"
                            }
                    ],
                    "parameters": {
                        "ccpaid":"1",
                        "orderNo":"5440004/44",
                        "myKey":"MyValue"
                    },
                    "payment_info": {
                        "date_expected": "2017-05-24", 
                        "due_date": "20160131",
                        "due_days": "240",
                        "due_period": "0_>90",
                        "last_reminder": "",
                        "last_reminder_date": "",
                        "payment_date": ""
                    },
                    "shipping_info": {
                         "address1": "26, lotissement Bellevue",
                         "address2": "street2",
                         "address3": "street3",
                         "business_name": "Company",
                         "city": "Clairac",
                         "country": "FR",
                         "different_shipping_address": true,
                         "first_name": "Carla",
                         "last_name": "Francine",
                         "postal_code": "47320"
                    },
                    "supplier_info": {
                        "address1": "Indirizzo 1",
                        "address2": "Indirizzo 2",
                        "business_name": "Società",
                        "city": "Loc",
                        "courtesy": "Signor",
                        "email": "info@myweb",
                        "fax": "+419100000", 
                        "first_name": "Nome",
                        "fiscal_number": "222",
                        "last_name": "Cognome",
                        "phone": "+419100000", 
                        "postal_code": "CAP",
                        "state": "Suisse", 
                        "vat_number": "1111", 
                        "web": "http://www.myweb"
                    }
                    "transactions": [
                        {
                            "balance": "-219.30",
                            "balance_base_currency": "",
                            "currency": "CHF",
                            "date": "20170430",
                            "description": "Paiement CERAT DES ALPES* 50 ml - Réf. AL07010",
                            "origin_row": "1006",
                            "origin_table": "Transactions"
                        }
                    ],
                    "type": "invoice",
                    "version": "1.0"
                }

                 

                 

                Source Data

                Invoice Json Object Source Data

                This list explains where the actual information on your invoice json object is coming from

                Invoice Object Property Source
                customer_info.address1 Table: Accounts, View: Address, Column: Street
                customer_info.address2 Table: Accounts, View: Address, Column: AddressExtra
                customer_info.address3 Table: Accounts, View: Address, Column: POBox
                customer_info.balance Table: Accounts, View: Address, Column: Balance
                customer_info.balance_base_currency Table: Accounts, View: Address, Column: BalanceCurrency
                customer_info.bank_account Table: Accounts, View: Address, Column: BankAccount
                customer_info.bank_clearing Table: Accounts, View: Address, Column: BankClearing
                customer_info.bank_name Table: Accounts, View: Address, Column: BankName
                customer_info.business_name Table: Accounts, View: Address, Column: OrganisationName
                customer_info.city Table: Accounts, View: Address, Column: Locality
                customer_info.country Table: Accounts, View: Address, Column: Country
                customer_info.country_code Table: Accounts, View: Address, Column: CountryCode
                customer_info.courtesy Table: Accounts, View: Address, Column: NamePrefix
                customer_info.credit_limit Table: Accounts, View: Address, Column: CreditLimit
                customer_info.currency Table: Accounts, View: Address, Column: Currency
                customer_info.date_birth Table: Accounts, View: Address, Column: DateOfBirth
                customer_info.email Table: Accounts, View: Address, Column: EmailWork
                customer_info.fax Table: Accounts, View: Address, Column: Fax
                customer_info.first_name Table: Accounts, View: Address, Column: FirstName
                customer_info.fiscal_number Table: Accounts, View: Address, Column: FiscalNumber
                customer_info.iban_number Table: Accounts, View: Address, Column: BankIban
                customer_info.lang Table: Accounts, View: Address, Column: Language
                customer_info.last_name Table: Accounts, View: Address, Column: FamilyName
                customer_info.member_fee Table: Accounts, View: Address, Column: MemberFee
                customer_info.mobile Table: Accounts, View: Address, Column: PhoneMobile
                customer_info.number Table: Accounts, View: Address, Column: Account
                customer_info.payment_term_days Table: Accounts, View: Address, Column: PaymentTermInDays
                customer_info.phone Table: Accounts, View: Address, Column: PhoneMain
                customer_info.postal_code Table: Accounts, View: Address, Column: PostalCode
                customer_info.state Table: Accounts, View: Address, Column: Region
                customer_info.vat_number Table: Accounts, View: Address, Column: VatNumber
                customer_info.web Table: Accounts, View: Address, Column: Website
                document_info.currency Invoice currency which usually corresponds to the customer account currency
                document_info.date Table: Transactions, Column: DateDocument or Date
                document_info.decimals_amounts Decimals are the same as the decimals used in the accounting file
                document_info.description Not used
                document_info.doc_type Table: Transactions, Column: DocType
                document_info.greetings

                Table: Transactions, Column: DocType
                Transactions with DocType=10:gre
                If there are many rows with 10:gre the texts are joined with ','.
                More info...

                document_info.locale Menu: File-File and accounting properties, Other, current Language
                document_info.number Table: Transactions, Column: DocInvoice
                document_info.origin_row Row index of source transaction
                document_info.origin_table Table name of source transaction
                document_info.rounding_total

                Default value for CHF: 0.05
                You can overwrite this value with the menu command: Account2 - Customers - Settings - Advanced - Invoice rounding
                For multicurrency accounting: you can setup the rounding value for each currency in the table ExchangeRates, column DecimalPoints

                document_info.type invoice
                items Table: Transactions
                All rows with the same invoice number and transaction date are invoice's items (lines)
                note Table: Transactions, Column: DocType
                Transactions with DocType=10:not.
                More info...
                parameters

                Table: Transactions, Column: DocType
                Transactions with DocType=10:par:key
                Key: any key text you wish
                Value: is taken from column Description
                More info...

                payment_info Calculated from journal
                shipping_info

                Delivery address if different from the invoice address (customer_info)
                Table: Transactions, Column: DocType
                Transactions with DocType=10:sadr
                More info...

                supplier_info.address1 Menu: File-File and accounting properties, Address, Address 1
                supplier_info.address2 Menu: File-File and accounting properties, Address, Address 2
                supplier_info.business_name Menu: File-File and accounting properties, Address, Company
                supplier_info.city Menu: File-File and accounting properties, Address, City
                supplier_info.country Menu: File-File and accounting properties, Address, Country
                supplier_info.courtesy Menu: File-File and accounting properties, Address, Courtesy
                supplier_info.email Menu: File-File and accounting properties, Address, Email
                supplier_info.fax Menu: File-File and accounting properties, Address, Fax
                supplier_info.first_name Menu: File-File and accounting properties, Address, Name
                supplier_info.fiscal_number Menu: File-File and accounting properties, Address, Fiscal Number
                supplier_info.last_name Menu: FilevFile and accounting properties, Address, Family Name
                supplier_info.mobile Menu: File-File and accounting properties, Address, Mobile
                supplier_info.phone Menu: File-File and accounting properties, Address, Phone
                supplier_info.postal_code Menu: File-File and accounting properties, Address, Zip
                supplier_info.state Menu: File-File and accounting properties, Address, Region
                supplier_info.vat_number Menu: File-File and accounting properties, Address, Vat Number
                supplier_info.web Menu: File-File and accounting properties, Address, Web
                transactions Table: Transactions
                All rows with the same invoice number and different transaction date, which are not considered invoice items, like payments transactions

                 

                 

                Statement

                Create personalized statement report apps

                We have published our templates on github.com/BananaAccounting. In this section you will find different basic examples.

                You can save a copy of one template in your computer and make the changes you wish. In order to use your custom template in Banana you have to:

                • select the command Account2 - Customers - Print statements...
                • In the Print statements dialog select Manage apps...
                • In the Manage apps dialog select Add from file... and choose your statement report file you just created

                At the moment this function is available only within Banana Accounting Experimental.

                Apps attributes

                // @id = scriptfilename.js
                // @api = 1.0
                // @pubdate = yyyy-mm-dd
                // @publisher = yourName
                // @description = script description
                // @task = report.customer.statement
                

                Report code

                The main function is printDocument(jsonStatement, repDocObj, repStyleObj). The  parameter jsonStatement object contains the data, repDocObj is the document object and repStyleObj is the stylesheet object where you can add styles.

                function printDocument(jsonStatement, repDocObj, repStyleObj) {
                  var param = initParam();
                  var savedParam = Banana.document.getScriptSettings();
                  if (savedParam.length > 0) {
                    param = JSON.parse(savedParam);
                    param = verifyParam(param);
                  }
                  printInvoice(jsonInvoice, repDocObj, repStyleObj, param);
                }
                

                The function settingsDialog() is called from Banana when you select the button Params... from dialog Manage apps. You can write any code you need for your script.

                /*Update script's parameters*/
                function settingsDialog() {
                   var param = initParam();
                   var savedParam = Banana.document.getScriptSettings();
                   if (savedParam.length > 0) {
                      param = JSON.parse(savedParam);
                   }   
                   param = verifyParam(param);
                   ...
                   var paramToString = JSON.stringify(param);
                   var value = Banana.document.scriptSaveSettings(paramToString);
                }
                
                

                 

                 

                Json Object

                Statement Json Object

                Data structure you can access through the report:

                {
                    "customer_info": {
                        "address1": "Viale Stazione 11",
                        "business_name": "Rossi SA",
                        "city": "Bellinzona",
                        "first_name": "Andrea",
                        "last_name": "Rossi",
                        "number": "1100",
                        "origin_row": "26",
                        "origin_table": "Accounts",
                        "postal_code": "6500"
                    },
                    "document_info": {
                        "date": "20160927",
                        "decimals_amounts": 2,
                        "description": "",
                        "locale": "it",
                        "number": "",
                        "type": "statement"
                    },
                    "items": [
                        {
                            "balance": "540.00",
                            "credit": "",
                            "currency": "CHF",
                            "date": "20160101",
                            "debit": "540.00",
                            "due_date": "20160131",
                            "due_days": "240",
                            "item_type": "invoice",
                            "last_reminder": "",
                            "last_reminder_date": "",
                            "number": "10",
                            "payment_date": "",
                            "status": "",
                            "total_amount_vat_exclusive": "",
                            "total_amount_vat_inclusive": "",
                            "total_vat_amount": "",
                            "unit_price": {
                            }
                        },
                        {
                            "balance": "540.00",
                            "credit": "",
                            "currency": "",
                            "date": "",
                            "debit": "540.00",
                            "item_type": "total",
                            "number": "",
                            "status": "",
                            "total_amount_vat_exclusive": "",
                            "total_amount_vat_inclusive": "",
                            "total_vat_amount": "",
                            "unit_price": {
                            }
                        }
                    ],
                    "supplier_info": {
                        "address1": "Indirizzo 1",
                        "address2": "Indirizzo 2",
                        "business_name": "Società",
                        "city": "Loc",
                        "email": "info@myweb",
                        "first_name": "Nome",
                        "fiscal_number": "numerofiscale",
                        "last_name": "Cognome",
                        "postal_code": "CAP",
                        "web": "http://www.myweb"
                    }
                }
                
                

                Reminder

                Create personalized reminder report apps

                We have published our templates on github.com/BananaAccounting. In this section you will find different basic examples.

                You can save a copy of one template in your computer and make the changes you wish. In order to use your custom template in Banana you have to:

                • select the command Account2 - Customers - Print reminders...
                • In the Print payment reminders dialog select Manage apps...
                • In the Manage apps dialog select Add from file... and choose your reminder report file you just created

                At the moment this function is available only within Banana Accounting Experimental.

                Apps attributes

                // @id = scriptfilename.js
                // @api = 1.0
                // @pubdate = yyyy-mm-dd
                // @publisher = yourName
                // @description = script description
                // @task = report.customer.reminder
                

                Report code

                The main function is printDocument(jsonReminder, repDocObj, repStyleObj). The  parameter jsonReminder object contains the data, repDocObj is the document object and repStyleObj is the stylesheet object where you can add styles.

                function printDocument(jsonReminder, repDocObj, repStyleObj) {
                  var param = initParam();
                  var savedParam = Banana.document.getScriptSettings();
                  if (savedParam.length > 0) {
                    param = JSON.parse(savedParam);
                    param = verifyParam(param);
                  }
                  printReminder(jsonReminder, repDocObj, repStyleObj, param);
                }
                

                The function settingsDialog() is called from Banana when you select the button Params... from dialog Manage apps. You can write any code you need for your script.

                /*Update script's parameters*/
                function settingsDialog() {
                   var param = initParam();
                   var savedParam = Banana.document.getScriptSettings();
                   if (savedParam.length > 0) {
                      param = JSON.parse(savedParam);
                   }   
                   param = verifyParam(param);
                   ...
                   var paramString = JSON.stringify(param);
                   var value = Banana.document.setScriptSettings(paramString);
                }
                
                

                 

                Json Object

                Reminder Json Object

                Data structure you can access through the report:

                {
                    "customer_info": {
                        "address1": "Viale Stazione 11",
                        "business_name": "Rossi SA",
                        "city": "Bellinzona",
                        "first_name": "Andrea",
                        "last_name": "Rossi",
                        "number": "1100",
                        "origin_row": "26",
                        "origin_table": "Accounts",
                        "postal_code": "6500"
                    },
                    "document_info": {
                        "date": "20160927",
                        "decimals_amounts": 2,
                        "description": "",
                        "locale": "it",
                        "number": "",
                        "type": "reminder"
                    },
                    "items": [
                        {
                            "balance": "540.00",
                            "balance_base_currency": "540.00",
                            "base_currency": "CHF",
                            "credit": "",
                            "credit_base_currency": "",
                            "currency": "CHF",
                            "date": "20160101",
                            "debit": "540.00",
                            "debit_base_currency": "540.00",
                            "item_type": "invoice",
                            "number": "10",
                            "status": "1. reminder",
                            "total_amount_vat_exclusive": "",
                            "total_amount_vat_inclusive": "",
                            "total_vat_amount": "",
                            "unit_price": {
                            }
                        },
                        {
                            "balance": "540.00",
                            "balance_base_currency": "540.00",
                            "base_currency": "",
                            "credit": "",
                            "credit_base_currency": "",
                            "currency": "",
                            "date": "",
                            "debit": "540.00",
                            "debit_base_currency": "540.00",
                            "item_type": "total",
                            "number": "",
                            "status": "",
                            "total_amount_vat_exclusive": "",
                            "total_amount_vat_inclusive": "",
                            "total_vat_amount": "",
                            "unit_price": {
                            }
                        }
                    ],
                    "supplier_info": {
                        "address1": "Indirizzo 1",
                        "address2": "Indirizzo 2",
                        "business_name": "Società",
                        "city": "Loc",
                        "email": "info@myweb",
                        "first_name": "Nome",
                        "fiscal_number": "numerofiscale",
                        "last_name": "Cognome",
                        "postal_code": "CAP",
                        "web": "http://www.myweb"
                    }
                }
                
                

                Debugging

                Use the Debugger

                You can debug the script using the internal debugger.
                Banana Accounting use the Qt Script Debugger to debug the scripts. Qt is moving the script to a new system, and it is possible that the debugging function wil change or will not be available in the future.

                To debug an app

                • Menu App, Manage App
                • Select the script you want to debug
                • Button "Debug".

                After the debugger is started click one or more times on the key Shift-F11 until you see the call of the function "exec(inData)", then click F11. At this point you are in the main function of the script.

                Use Debugger messages

                To see a value of a variable you can also insert a command

                Banana.application.addMessage("Hello World");

                Debugging import filter

                You can debug import filter by istalling the filter as a normal app, and then using the debugging function.

                 

                 

                 

                Dialogs

                For simple interactions with the user you can use the predefined dialogs of the class Banana.Ui. With those dialogs you can ask the user to insert a value, answer a question, or show to the user an information.

                For a more complex dialog:

                • Install Qt Creator
                • Draw the dialog with Qt Creator
                • Save the dialog in a .ui file,
                • Load the .ui file in the script through the function Banana.Ui.createUi()

                All the properties and public slots of the widgets in the dialogs will be accessible from the script.

                 

                Example: a script to search in the whole accounting a text.

                The dialog:

                 

                The script file ch.banana.scripts.find.js:

                /** 
                * This example search a text in all the tables of the document, 
                * and show the matches in the messages pane.
                */
                // @id = ch.banana.scripts.find
                // @version = 1.2
                // @date = 2014-08-29
                // @publisher = Banana.ch SA
                // @description = Find in whole accounting
                // @description.it = Cerca in tutta la contabilità
                // @description.de = Suchen in der gesamten Buchhaltung
                // @description.fr = Chercher dans toute la comptabilité
                // @task = app.command
                // @inputdatasource = none
                // @timeout = -1
                
                /**
                * param values are loaded from Banana.document, edited through dialog and saved to Banana.document
                * This array object is like a map (associative array) i.e. "key":"value", see initParam()
                * Examples of keys: searchText, wholeText, ...
                */
                var param = {};
                
                /** Dialog's functions declaration */
                var dialog = Banana.Ui.createUi("ch.banana.scripts.find.ui");
                
                dialog.checkdata = function () {
                    var valid = true;
                
                    if (dialog.searchTextLineEdit.text.length <= 0) {
                        Banana.Ui.showInformation("Error", "Search text can't be empty");
                        valid = false;
                    }
                
                    if (valid) {
                        dialog.accept();
                    }
                }
                
                dialog.showHelp = function () {
                    Banana.Ui.showHelp("ch.banana.script.find");
                }
                
                /** Dialog's events declaration */
                dialog.findNextButton.clicked.connect(dialog, "checkdata");
                dialog.buttonBox.accepted.connect(dialog, "checkdata");
                dialog.buttonBox.rejected.connect(dialog, "close");
                dialog.buttonBox.helpRequested.connect(dialog, "showHelp");
                
                /** Main function */
                function exec(inData) {
                
                    //calls dialog
                    var rtnDialog = true;
                    rtnDialog = dialogExec();
                
                    //search text in the whole accounting
                    if (rtnDialog && Banana.document) {
                        Banana.document.clearMessages();
                        searchInTables();
                    }
                }
                
                /** Show the dialog and set the parameters */
                function dialogExec() {
                
                    // Read saved script settings
                    initParam();
                    if (Banana.document) {
                        var data = Banana.document.getScriptSettings();
                        if (data.length > 0) {
                            param = JSON.parse(data);
                        }
                    }
                
                    // Text at cursor position
                    var cursor = Banana.document.cursor;
                    param["searchText"] = Banana.document.value(cursor.table,cursor.row,cursor.column);
                
                    // Set dialog parameters
                    dialog.searchTextLineEdit.text = param["searchText"];
                    if (param["matchCase"] == "true")
                        dialog.groupBox.matchCaseCheckBox.checked = true;
                    else
                        dialog.groupBox.matchCaseCheckBox.checked = false;
                    if (param["wholeText"] == "true")
                        dialog.groupBox.wholeTextCheckBox.checked = true;
                    else
                        dialog.groupBox.wholeTextCheckBox.checked = false;
                
                    Banana.application.progressBar.pause();
                    var dlgResult = dialog.exec();
                    Banana.application.progressBar.resume();
                
                    if (dlgResult !== 1)
                        return false;
                
                    // Read dialog parameters
                    param["searchText"] = dialog.searchTextLineEdit.text;
                    if (dialog.groupBox.matchCaseCheckBox.checked)
                        param["matchCase"] = "true";
                    else
                        param["matchCase"] = "false";
                    if (dialog.groupBox.wholeTextCheckBox.checked)
                        param["wholeText"] = "true";
                    else
                        param["wholeText"] = "false";
                        
                    // Save script settings
                    var paramString = JSON.stringify(param);
                    var value = Banana.document.setScriptSettings(paramString);
                
                    return true;
                }
                
                /** Initialize dialog values with default values */
                function initParam() {
                    param = { 
                        "searchText": "",
                        "matchCase": "false",
                        "wholeText": "false"
                    };
                }
                
                /** Search a text in the accounting's tables */
                function searchInTables() {
                    var searchText = param["searchText"];
                    if (param["matchCase"] === "false")
                        searchText = searchText.toLowerCase();
                    var tables = Banana.document.tableNames;
                    // Tables
                    for (var t=0; t < tables.length; t++) {
                        var table = Banana.document.table(tables[t]);
                        var columns = table.columnNames;
                        // Rows
                        for (var r=0; r < table.rowCount; r++) {
                            // Columns
                            for (var c=0; c < columns.length; c++) {
                                var textFound = false;
                                var text = table.value(r, columns[c]);
                                if (param["matchCase"] === "false")
                                    text = text.toLowerCase();
                                // Find text
                                if (param["wholeText"] === "true") {
                                    if (text === searchText)
                                        textFound = true;
                                } else {
                                    if (text.indexOf(searchText) >= 0)
                                        textFound = true;
                                }
                                // Show message
                                if (textFound) {                    
                                    table.addMessage("Text \"" + param["searchText"] + 
                                        "\" found in \"" + table.value(r, columns[c]) + "\"", r, columns[c]);
                                }
                            }            
                        }
                    }
                }
                

                The .ui file: ch.banana.scripts.find.ui

                <?xml version="1.0" encoding="UTF-8"?>
                <ui version="4.0">
                 <class>DlgFind</class>
                 <widget class="QDialog" name="DlgFind">
                  <property name="geometry">
                   <rect>
                    <x>0</x>
                    <y>0</y>
                    <width>395</width>
                    <height>192</height>
                   </rect>
                  </property>
                  <property name="windowTitle">
                   <string>Find</string>
                  </property>
                  <layout class="QVBoxLayout" name="verticalLayout_2">
                   <item>
                    <layout class="QGridLayout" name="gridLayout">
                     <property name="horizontalSpacing">
                      <number>40</number>
                     </property>
                     <item row="0" column="0">
                      <widget class="QLabel" name="searchTextLabel">
                       <property name="text">
                        <string>Search &amp;text</string>
                       </property>
                      </widget>
                     </item>
                     <item row="0" column="1">
                      <widget class="QLineEdit" name="searchTextLineEdit"/>
                     </item>
                    </layout>
                   </item>
                   <item>
                    <widget class="QGroupBox" name="groupBox">
                     <property name="title">
                      <string>Options</string>
                     </property>
                     <property name="flat">
                      <bool>false</bool>
                     </property>
                     <property name="checkable">
                      <bool>false</bool>
                     </property>
                     <layout class="QVBoxLayout" name="verticalLayout">
                      <item>
                       <widget class="QCheckBox" name="matchCaseCheckBox">
                        <property name="text">
                         <string>&amp;Match case</string>
                        </property>
                       </widget>
                      </item>
                      <item>
                       <widget class="QCheckBox" name="wholeTextCheckBox">
                        <property name="text">
                         <string>&amp;Whole text</string>
                        </property>
                       </widget>
                      </item>
                     </layout>
                    </widget>
                   </item>
                   <item>
                    <spacer name="verticalSpacer">
                     <property name="orientation">
                      <enum>Qt::Vertical</enum>
                     </property>
                     <property name="sizeHint" stdset="0">
                      <size>
                       <width>20</width>
                       <height>15</height>
                      </size>
                     </property>
                    </spacer>
                   </item>
                   <item>
                    <layout class="QHBoxLayout" name="horizontalLayout">
                     <item>
                      <spacer name="horizontalSpacer">
                       <property name="orientation">
                        <enum>Qt::Horizontal</enum>
                       </property>
                       <property name="sizeHint" stdset="0">
                        <size>
                         <width>80</width>
                         <height>20</height>
                        </size>
                       </property>
                      </spacer>
                     </item>
                     <item>
                      <widget class="QPushButton" name="findNextButton">
                       <property name="text">
                        <string>&amp;Find</string>
                       </property>
                      </widget>
                     </item>
                     <item>
                      <widget class="QDialogButtonBox" name="buttonBox">
                       <property name="sizePolicy">
                        <sizepolicy hsizetype="Minimum" vsizetype="Fixed">
                         <horstretch>0</horstretch>
                         <verstretch>0</verstretch>
                        </sizepolicy>
                       </property>
                       <property name="standardButtons">
                        <set>QDialogButtonBox::Close|QDialogButtonBox::Help</set>
                       </property>
                      </widget>
                     </item>
                    </layout>
                   </item>
                  </layout>
                 </widget>
                 <tabstops>
                  <tabstop>matchCaseCheckBox</tabstop>
                  <tabstop>findNextButton</tabstop>
                  <tabstop>buttonBox</tabstop>
                 </tabstops>
                 <resources/>
                 <connections/>
                </ui>
                

                FAQ

                Can I call an external program within a BananaApp?

                For the moment, for security reason we do not allow BananaApps to works directly on file and call external programs.

                Can I create QML (QtQuick) apps?

                With QML application have extensive access to the computer.
                Fot the moment, for security reason we do not allow BananaApps to use QML.

                How can I get the start and end date of the accounting?

                var openingDate = Banana.document.info("AccountingDataBase","OpeningDate");
                var closureDate = Banana.document.info("AccountingDataBase","ClosureDate");

                Note: the keywords "AccountingsDataBase", "OpeningDate" and "ClosureDate" correspond to the values in the columns "Section Xml" and ID Xml" of the table "Info file". See command "Info table" under the menu "Tools".

                Can I save and recall in a script the values entered by the user?

                Yes, use the functions Banana.Document.scriptSaveSettings and Banana.Document.scriptReadSettings.

                Settings are saved and restored in the current accounting file under the script id, if you change the id your settings will not be retrieved.

                // Initialise parameter
                param = {
                   "searchText": "",
                   "matchCase": "false",
                   "wholeText": "false"
                };
                
                // Read script settings
                var data = Banana.document.getScriptSettings();
                if (data.length > 0) {
                   param = JSON.parse(data);
                }
                
                ...
                
                // Save script settings
                var paramString = JSON.stringify(param);
                var value = Banana.document.setScriptSettings(paramString);

                Accented letters are displayed wrong

                Save the script file in UTF-8.

                Can I protect the app?

                If you don't want to someone easily change the js file, you can package it in a rcc file.

                 

                 

                 

                Command line

                Banana can be started by giving a series of command (for a list of command and examples file see below).

                Example: open a file
                banana80.exe c:\temp\example.ac2

                 

                Rule for command line command

                • The arguments need to be preceded by a minus “-” sign. If an argument is missing of the “-” sign, it is interpreted as the name of the file to open.
                • Include the whole argument within the delimiter “…” if the text include whitespace.
                • Running import as command in the command line save the accounting file on exit

                If a command fail, than a return code different than 0 is returned, and the error is inserted in the log file (only if the option –log_file was used).

                Examples

                Example: open a file:

                banana80.exe c:\temp\example.ac2

                 

                Export to xml file

                banana80.exe -cmd=export "-cmd_file=c:\temp\my example.ac2" "-cmd_p1=c:\temp\myexample.xml" -cmd_p2=xml -period_begin=2006-01-01 –period_end=2005-03-30

                Example: import transactions (use the file name with the proper directory name)
                Use also a log so that you know the error

                banana80.exe -cmd=import -cmd_file="company.ac2" -cmd_table=Transactions -cmd_p1=import_mov.txt -cmd_exit=1 -log_file=log.txt

                For detail information regarding the import of transaction see the page "Importing in txt format".

                Available Command

                The argument “–cmd=…” specifies the command to be executed. The other arguments specify the option for this command.

                The command can be used as a command line  or a DDE request.

                Argument

                Description

                cmd=

                The command to execute

                file_open (cmd_p1=noshow)

                file_close (cmd_file)

                file_save (cmd_file)

                file_saveas (cmd_file, cmd_p1)

                file_show (cmd_file)

                get_tableinfo  (cmd_file , cmd_table)

                get_getcell (cmd_file , cmd_table, cmd_column, cmd_row)

                get_getline (cmd_file , cmd_table, cmd_column, cmd_row)

                get_lasterror

                set_language(cmd_p1)

                calc_all (cmd_file)

                calc_simple (cmd_file)

                deleterows (…)    *)

                export (…)

                fileinfo (…)

                import (…)    *)

                acc_accountcard (…)

                acc_externalreport (…)

                acc_vatreport (…)

                 

                1) Running import in the command line save the file on exit;
                *) If you use the commands “deleterows” and “import” directly from a command line the file is automatically saved on exit

                 

                 

                List of arguments

                Command

                Argument

                Description

                From command line

                cmd_exit=1

                The program should exit and terminate
                Note if you use the command import= then the file that has been opened is automatically saved when the program terminate.

                nonetwork

                Turn off all connections to the network (i.e. to check for updates, integrated web-server, ...)

                For all commands

                cmd_file=

                the file to use or open

                cmd_pw=

                password to open the file

                cmd_names=

                A - Field name in XML (default on)

                a - Field name in original language

                log_file=

                set the log file name for writing messages (if no file name no log)

                deletelines

                cmd_p1=

                start of line to delete (number)

                cmd_p2=

                how many lines to delete (if not present = 1)

                cmd_table=

                The name of table

                 

                 

                 

                set_language

                cmd_p1=

                The two letter ISO639 language code (de, fr, en, it)

                 

                 

                 

                file_open

                cmd_p1=

                noshow – do not show the file

                 

                 

                 

                file_saveas

                cmd_p1=

                file name of saved file

                 

                 

                 

                get_tableinfo

                cmd_table=

                The name of the table to get info

                 

                 

                 

                get_getcell

                cmd_table=

                The name of the table

                cmd_row=

                The number of the row, or an expression like “Account=1000:3” (In this ex. the third row where the field Account is equal to 1000 is used)

                cmd_column=

                The name of the column

                cmd_op=

                A – Format value (default on)

                get_getline

                cmd_table=

                The name of the table

                cmd_row=

                The number of the row, or an expression like “Account=1000:3” (In this ex. the third row where the field Account is equal to 1000 is used)

                cmd_op=

                A – Format value (default on)

                export

                export_use_param

                Instead of the default parameters use the last saved parameters (set with the dialog)  and then applies the specified options with the other arguments

                cmd_p1=

                file name of the export file

                cmd_p2=

                Type: html, excel, xml

                cmd_table=

                The name of table to export (only the table is exported)

                export_include=

                Options:

                Upper case(A) = on; Lower Case(a) = off

                A - Recheck accounting (default on)

                B - Include statistics table  (default on)

                C - Include transaction table  (default on)

                D - Include account table  (default on)

                E - Include category table  (default on)

                F - Include total table  (default on)

                G - Include Exchange rate table  (default on)

                H - Inclue Vat code table and vat report  (default on)

                I - Include Period Accounts  (default on)

                L - Include Period VAT  (default on)

                M - Create periods for the whole year  (default off)

                N – Create accounts card

                export_include_ma=

                number of months for accounts period, for  option I, (default 1)
                -1 for daily

                export_include_mv=

                number of months VAT period, for option L (default 3)

                export_include_mm=

                max numbers of periods (default 36)

                export_op_html=

                Options for html

                A - Use style sheet

                B - Use predefined style sheet (default on)

                C - Include style shett within html file (default on)

                D - Export visible fields only (default on)

                E - Table with borders (default on)

                F - Columns with headers (default on)

                G - Preserve page breaks within the table (default on)

                 

                export_op_excel=

                Options for Excel export

                A - Define cell name  (default on)

                B - Define table name (default on)

                C - Use Xml names (default on)

                D - Protect tables  (default on)

                export_op_xml=

                Upper case(A) = on; Lower Case(a) = off

                A – Visible field only (default off)

                B – Include view list (default off)

                period_all

                period All

                period_begin=

                Begin date (yyyy-mm-dd)

                period_end=

                period End date (yyyy-mm-dd)

                vat_use_param=

                Instead of the default parameters use the last saved parameters (set with the dialog)  and then applies the options specified with vat_op

                vat_op=

                A - Include transactions

                B - Include total account

                C - Include total codes

                D - Include total percentage

                E - Use own group schema

                F - Only code specified

                G - Only group specified

                vat_sort=

                sort field

                vat_text=

                single code or groups (to use with –vat_op F and G)

                 

                 

                fileinfo

                cmd_op=

                A – Recalculate all (default off)

                import

                cmd_p1=

                File name of the file to import. Data have to be separated by tabulator, and the first row has to contain the name of the fields.

                cmd_p2=

                Insert al line number (0=Append to end)

                cmd_op=

                A - Complete imported raws

                cmd_table=

                The name of table where to insert the data
                (Accounts, Transactions, …)

                 

                 

                acc_accountcard

                cmd_p1=

                account number

                cmd_p2=

                field name for sorting

                period_all

                period All (default)

                period_begin=

                Begin date (yyyy-mm-dd)

                period_end=

                period End date (yyyy-mm-dd)

                acc_externalreport

                cmd_p1=

                file name of the report

                cmd_p2=

                column name for grouping

                cmd_op=

                Upper case(A) = on; Lower Case(a) = off
                A - Include account with balance = 0

                B - Include account with no transactions

                C - Include totals only

                D - Notify if an account is without a group

                 

                 

                acc_vatreport

                period_all

                period All (default)

                period_begin=

                Begin date (yyyy-mm-dd)

                period_end=

                period End date (yyyy-mm-dd)

                vat_use_param=

                use parameters from existing dialog  + specified options like vat_op

                vat_op=

                Vat options

                Upper case(A) = on; Lower Case(a) = off

                A - Include transactions

                B - Include total account

                C - Include total codes

                D - Include total percentage

                E - Use own group schema

                F - Only code specified

                G - Only group specified

                H – Not used groups

                vat_sort=

                sort field

                vat_text=

                single code or groups (to use with –vat_op F and G)

                 

                 

                 

                Excel Reports Add-in (Beta)

                With this Add-in you will no longer need to make "copy and paste" of the values each time you update your accounting file.

                You create worksheets with formulas, charts, formatting and more in Excel, and the Add-in will retrieve for you the data from your accounting file.

                Just click on the Update button and your Excel worksheet will be automatically updated with the new values from Banana Accounting, and the results of formulas and charts will be updated accordingly.

                See Documentation Banana Accounting Excel Add-in.


                Example of a Balance sheet report created with the Excel Reports add-in

                 


                Example of a report with charts created with the Excel Reports Add-in

                Characteristics

                • This Add-in is hosted on our server.
                  Once you have installed the manifest on your computer, you will automatically use the last version.
                • The Add-in are secure.
                  Unlike Excel-macros the Add-in are secure and cannot compromise your computer.
                • The Add-in is currently in Beta Test.
                  • Please check everything and report any problem.
                  • You can use it for free now, but It is also possible that it will be made available for a cost.

                 

                Download and Installation

                The steps below walk you through all the setup of the environment required to run the Banana Office Add-ins for Microsoft Office 2016.

                Minimum requirements: Microsoft Office 2016 (Word, Excel, PowerPoint, Outlook).

                Get Banana Accounting Experimental version

                1. Download Banana Accounting 9 for Windows or Mac (it is required the version 9.0.0.171128 or more recent).
                2. Install it on your computer.

                Activate Banana Accounting web server

                1. Start Banana Accounting 8 Experimental.
                2. On Menu bar click Tools -> Program options… -> select the Interface tab
                3. Check the Start Web Server and Start Web Server with ssl options
                4. Click OK

                Install the Manifest file

                Each Office Add-in has its own manifest file. The manifest is an XML file that defines various settings, including description and links to all the add-in files.

                Manifest file must be copied to a specific directory.

                Manifest directory for Windows

                On Windows you need to create a directory to save the manifest of the Add-in.

                The directory needs to be a shared directory.

                1. Create a folder for the Add-ins manifests on a network share:
                  1. Create a folder on your local drive (for example, C:\Manifests).
                  2. Right click on the folder, select properties.
                  3. Click on Sharing tab.
                  4. Click on Advanced Sharing...
                  5. Check the Share this folder box.
                  6. Click Apply and then Ok.
                2. Tell Excel or Word to use the directory as trusted app catalog.
                  1. Launch Excel and open a blank spreadsheet.
                  2. Choose the File tab, and then choose Options.
                  3. Choose Trust Center, and then choose the Trust Center Settings button.
                  4. Choose Trusted Add-in Catalogs.
                  5. In the Catalog URL box, enter the path to the network share you created, and then choose Add Catalog.
                    To see the path: right click on the shared folder -> Properties -> Sharing -> Network Path.
                  6. Select the Show in Menu check box, and then choose OK. A message appears to inform you that your settings will be applied the next time you start Office.
                  7. Close Excel and restart it.

                Manifest directory for Mac OS

                On Mac you need to create a folder to save the manifest of the Add-in.

                Go to one of the following folders where you'll save your Add-in's manifest file. If the wef folder doesn't exist on your computer, create it.

                • For Excel: /Users/<username>/Library/Containers/com.microsoft.Excel/Data/Documents/wef
                • For Word: /Users/<username>/Library/Containers/com.microsoft.Word/Data/Documents/wef
                • For PowerPoint: /Users/<username>/Library/Containers/com.microsoft.Powerpoint/Data/Documents/wef

                where <username> is your name on the device.

                Get the Office Add-in manifest

                You can now download the manifest of the Add-in you want to use.

                Load the Add-ins in Excel

                Once all the setup and installations are done, it is possible to run and use the Add-in.

                1. Open Microsoft Excel 2016
                2. Click on Insert tab
                3. Click on the Add-ins button
                4. Click on the Shared folder
                5. Select the Banana Accounting Add-in
                6. Click Add

                 

                Troubleshooting

                 

                1. Download and install the last version of Banana Accounting 9 for Windows
                2. Open Banana Experimental
                3. Click on menu Tools -> Program Options
                4. Select the tab Interface
                5. Check the options Start Web Server and Start Web Server with ssl


                   
                6. Select the tab System Info
                7. Click on Web server settings path


                   
                8. Click on the button Open path… to open the directory
                9. From the directory, select and open the file httpconfig
                  1. Right click on the file httpconfig
                  2. Open with
                  3. Select Notepad

                     
                10. Delete the last two rows that begins with sslKeyFile=… and sslCertFile=…


                   
                11. Save the file and close it


                   
                12. Click OK to save the option changes
                13. Close and restart Banana Experimental

                 

                 

                Documentation Excel Add-in

                Introduction

                With this Add-in you can create Excel sheets that are filled with Banana Accounting data. Once you have added transactions to the accounting file you just need to click on the Update button of the Add-in and your spreadsheet content will be updated with the new data.
                Your existing formatting and formula will be preserved.

                1. Create an Excel sheet with headers information
                  This information allows the Add-in to retrieve data from Banana Accounting.
                  There are information relative to the file, column and account or group to be retrieved.
                  The Add-in helps you add the necessary information to retrieve the data.
                2. Click on the Update button
                  The Add-in will retrieve the values from Banana Accounting software.
                  It mantains the format or formula you enter.


                  Example of a Balance sheet report created with the Banana Accounting Excel Add-in

                  In the example above we can see:

                  • The data part
                    Here is where the data is synchronized, based on the QueryAccount and QueryColumns.
                    • Accounting data (Green)
                      Filled with the information coming from Banana Accounting
                    • Header data (Yellow)
                  • QueryColumns (Red)
                    The file name, columns names and type to retrieve.
                    If the column is empty no data in this column will be retrieved. You can use the columns to enter formula.
                  • QueryAccounts (Orange)
                    The accounts or groups to retrieve.
                    If the row is empty no data in this row will be retrieved. You can use the row for entering formula o text that is not overwritten.

                  By clicking on the update button the Data part is updated with the new data of the accounting file, and all the previously settings like fonts, colors, formulas will remain.

                  Download and installation

                  See documentation on how to Download and install the Add-in

                  Example files:

                  Add-in Command

                  As soon as the add-in is added in Excel, on the Home tab of the main ribbon is loaded the Banana Accounting Show Taskpane add-in command.


                  Banana Accounting Add-in command

                  When the Show Taskpane button is clicked, it loads the start screen of the add-in. The start screen provides additional information describing the functionalities of the add-in.

                  Click on the Let's Begin! button to start using the Add-in.


                  Banana Accounting Add-in start screen

                  Security alert messages for Windows users

                  In order to properly establish a connection between the add-in and Banana Accounting web server, it is required to accept the Banana security certificate.

                  After the Let's Begin! button has been clicked, securities alert dialogs like the following appear:

                  • The first security alert message is the following one, click on Yes to proceed:

                     
                  • The second security alert message is the following one, click on Yes to proceed:

                     

                  If the user clicks Yes, a connection between the add-in and the Banana Accounting web server is estabilished, and then it is possible to use the add-in. Otherwise, if the user clicks No, the add-in is loaded but none connection is established, and the add-in will not work.

                  If for some reason the security alert messages above do not appear, try to see the troubleshooting documentation.

                   

                  Add-in general overview

                  The add-in is a task pane add-in type. This means that the add-in is loaded in a pane on the right side of the Excel worksheet.

                  It is composed by three tabs, each of them has one specific task:

                  • The Setup tab contains all the tools needed to add information to your sheet so that the add-in can fill the data part with the accounting data. Typically it is used every time you want to create something new, like for example the very first time you use this add-in.
                  • The Update tab is used to update the content of the Excel worksheet with the accounting data. It is used after the header section and some accounts has been added.
                  • The Logs tab it’s just a place where are displayed some messages about the add-in and the operations it does. For example when you update the sheet a message is displayed telling you that the update is completed.


                  Banana Accounting task pane add-in

                  Update of the worksheet

                  The Update tab is composed only of one button: Update current worksheet.

                  When clicked, this will start the updating process of the current Excel worksheet. Combining the Header, QueryAccount and QueryOptions, the add-in retrieves all the data directly from the Banana Accounting and writes them in the Excel worksheet.


                  Retrieve data from Banana Accounting and update the worksheet

                  Setup of the worksheet

                  These features will add the information to the current worksheet necessary to retrieve data from Banana Accounting.

                  In the setup tab there are four sections:

                  • Accounting file selection
                  • Set Header
                  • Set QueryColumns
                  • Set QueryAccounts


                  Setup of the worksheet tab

                  Select an opened Banana file

                  The first section of the setup page lists all the currently opened Banana Accounting file. Just select the needed one and go to the next setup section.

                  If for some reason an accounting file is opened in Banana Accounting after the add-in is loaded, then this file doesn’t appear in the list. In this case just click on Refresh list button in order to recheck all the opened documents and recreate the list.


                  Example of file selection

                  Set Header

                  The second section of the setup page inserts, on the top of the current worksheet, the header that allows the user to insert information that will be used by the add-in to retrieve data from the accounting file.

                  Add an header

                  The first step is to select from the list a type of header. There are two options:

                  • Predefined header with columns to insert an header with default values for columns and options
                  • Empty header to insert a blank header

                  When the button Add Header is clicked, the selected type of header is inserted in the worksheet. It is then possible to modify by setting the QueryColumns and changing QueryOptions.

                  Add header options

                  The second step is to define some options for the Currency, Header Left and Header Right values using the QueryOptions column. The options are:

                  • Repeat to repeat the values in each column
                  • Do not repeat to avoid repeated values. Only when the file name changes the values are inserted again.

                  When the button Add options is clicked, the selected options will be inserted in the respective cells.


                  Example of predefined header

                    Set QueryColumns

                    This section guides step by step the user to modify the header by adding QueryColumns to the worksheet.

                    The QueryColumns information allows the user to define exactly which data the add-in has to retrieve from the accounting file and in which column of the worksheet insert them.

                    Each QueryColumn consists of six information:

                    • The Column of the worksheet is used to define in which column of the worksheet all the QueryColumns values will be inserted.
                    • The Accounting filename is used to define the Accounting file to use when retrieving data.
                    • The Type value is used to define the type of data.
                    • The Column value is used to define the data for the given type.
                    • The Segments (OPTIONAL) is used to have a more detailed classification of the costs (this is optional, if not specified none segments will be added).
                    • The Periods (OPTIONAL) is used to define a period of the accounting (this is optional, if not specified all accounting period will be automatically used).

                    When the button Add values to column is clicked, all the information will be added automatically to the selected column of the worksheet.


                    Set QueryColumns section

                    Select a column of the worksheet

                    Use this to define in which column of the worksheet all the values of the QueryColumns are inserted. Possible values are:

                    • Current selected to use the colum of the cell selected on the worksheet (ex. if the cell D8 is selected, D column will be used).
                    • C ... Z

                    Remember that it is possible to use the columns from C to ZZ, even if not all appear in the list.

                    Select a filename

                    Use this to define the file name for a QueryColumn. When a file name is specified it is used until a new file name is inserted.

                    The possible values are:

                    • Current selected to use the selected file on the top of the add-in.
                    • Current (void) to use the previously inserted file but let the cell empty. It works only if in previous columns there is a specified file name.
                    • 1 previous year (p1) to use the previous year file of the last file inserted (example: if current year is "2019.ac2", p1 refers to "2018.ac2")
                    • 2 previous years (p2) to use two previous years file of the last file inserted(example: if current is "2019.ac2", p2 refers to "2017.ac2")
                    • 3 previous years (p3) to use three previous years file of the last file inserted(example: if current is "2019.ac2", p3 refers to "2016.ac2")


                    Filename selection

                    Notes:

                    • remember to always open in Banana Accounting all the files specified in the header
                    • the p1, p2 and p3 abbreviations always refer to the last file specified in the header


                    Example of more file insertion

                    On the image above we can see there are three different files defined, each of them using different columns.

                    • Columns from C to G refer to the 2019.ac2 file
                    • Columns from H to I refer to the 2018.ac2 file
                    • Coumns from J to K refer to the 2017.ac2 file (p1 is the previous file of the last file inserted, in this case the 2018.ac2)

                    Select a Type and a Column value

                    Use them to define the data you want to retrieve from the accounting file.

                    • Type specify the type of data.
                    • Column specify the data for the given type.

                    The table below indicates for each Type of data which Column can be specified and so retrieved from the accounting (Not Case-Sensitive).

                    Possible Type-Column combinations
                    Type Column
                    column

                    Group, Account, Description, Disable, FiscalNumber, BClass, Gr, Gr1, Gr2, Opening, Debit, Credit, Balance, Budget, BudgetDifference, Prior, PriorDifference, BudgetPrior, PeriodBegin, PeriodDebit, PeriodCredit, PeriodTotal, PeriodEnd, NamePrefix, FirstName, FamilyName, OrganisationName, Street, AddressExtra, POBox, PostalCode, Locality, Region, Country, CountryCode, Language, PhoneMain, PhoneMobile, Fax, EmailWork, Website, DateOfBirth, PaymentTermInDays, CreditLimit, MemberFee, BankName, BankIban, BankAccount, BankClearing, Code1

                    current

                    amount, amountcurrency, balance, balancecurrency, bclass, credit, creditcurrency, debit, debitcurrency, enddate, opening, openingcurrency, periodstring, rowcount, startdate, total, totalcurrency
                    budget amount, amountcurrency, balance, balancecurrency, bclass, credit, creditcurrency, debit, debitcurrency, enddate, opening, openingcurrency, periodstring, rowcount, startdate, total, totalcurrency
                    columnvat Group, VatCode, Description, Gr, Gr1, IsDue, AmountType, VatRate, VatRateOnGross, VatPercentNonDeductible, VatAccount
                    currentvat taxable, amount, notdeductible, posted, rowcount

                     

                    In the table below there are some examples of queries that can be used in the header to retrieve data from Banana Accounting:

                    Examples of queries
                    Type Column Segment Start date End date

                    RESULT

                    column description       Return from the Accounts table the value of the column description for the account specified in the QueryAccount column
                    current debit       Return the amount of debit transactions for all the accounting period for the account specified in the QueryAccount column
                    current balance :S1 01.01.2019 10.01.2019 Return the opening + debit-credit from the 01.01.2019 to 10.01.2019 for the account and segment specified in the QueryAccount column
                    current total   M6   Return the difference between debit-credit for the 6th month for the account specified in the QueryAccount column
                    current total   Q2   Return the difference between debit-credit for the second quarter for the account specified in the QueryAccount column
                    budget opening   M12   Return the amount at the begining for the 12th month for the account specified in the QueryAccount column
                    columnvat description       Return from the Vat Codes table the value of the column description for the vat code specified in the QueryAccount column
                    currentvat taxable       Return the amount of the taxable column for the vat code specified in the QueryAccount column

                    Select a Segment (optional)

                    If the selected file has segments they will appear in the list.

                    Use this to define a segment to have a more detailed classification of the costs.

                    Select a period (optional)

                    Use this to define the accounting period that will be used to retrieve data from the accounting file.

                    Possible values are:

                    • All (void) to use all the accounting period
                    • Custom date to specify a Start date and End date (example: Start date "04.02.2019",  End date "12.03.2019").
                    • Month 1 (M1) ... Month 12 (M12) to specify a single month (example: M1 for 1st month, M2 for 2nd month, etc.)
                    • Quarter 1 (Q1) ... Quarter 4 (Q4) to specify a single quarter (example: Q1 for the 1st quarter, period from 01.01 to 31.03)
                    • Semester 1 (S1) ... Semester 2 (S2) to specify a single semester (example: S2 for the 2nd semester, period from 01.07 to 31.12)
                    • Year 1 (Y1) ... Year 10 (Y10) to specify a single year (example: Y1 for the 1st year)

                    Set QueryAccounts

                    This section provides to insert:

                    • QueryAccounts to specify all the desired accounts, groups, cost centers, segments or vat codes that will be used with the data specified in the header to retrieve the accounting data.
                    • QueryOptions (OPTIONAL) to specify an option for a specific QueryAccount. Just select a cell next to the account and insert the option (this is optional, if not specified none options will be added).

                    Add accounts

                    When an option is selected, the add-in loads the appropriate check box list with all the elements taken from the selected accounting file. It is possible to choose between six options:

                    • Accounts to load a list of all the accounts/categories codes taken from the table Accounts/Category of the accounting
                    • Groups to load a list of all the groups codes taken from the table Accounts/Category of the accounting
                    • Cost centers to load a list of all the cost centers codes taken from the table Accounts/Category of the accounting
                    • Segments to load a list of all the segments codes taken from the table Accounts/Category of the accounting
                    • All to load a list of all the accounts/categories, groups, cost centers and segments codes taken from the table Accounts/Category of the accounting
                    • Vat codes to load a list of all the VAT codes taken from the table VAT codes of the accounting


                    Type of account selection

                    For example, choosing the All option, the add-in loads a list containing all the accounts, groups, cost centers and segments respecting the order in which they appear in the accounting file.


                    Example of accounts and groups selection

                    After all desired elements has been checked, by clicking the Add accounts button will add them to the Excel worksheet under the QueryAccount starting from the selected cell. By default the add-in starts the insertion immediately after the QueryAccount title (row 16).


                    Add the selected accounts and groups to the Excel worksheet

                    Add option

                    The QueryOptions column is designed to add some options to the query that will retrieve the data from Banana Accounting. It is optional. If not used no options will be used.

                    The possible values are:

                    • invert to invert the sign of the current or budget balances.
                    • budget to get the budget balances (even if in the header are specified to use current balances).
                    • budgetinvert to get the budget balances (even if in the header are specified to use current balances) and also to invert the sign.


                    QueryAccounts options selection

                    Header settings

                    The purpose of the header is to let you to choose which data to import from Banana Accounting and on which columns in the Excel file to display them.
                    You must manually set column by column indicating, for each of them, the data that you want to import and display. It is possible to use the columns from C to AZ.
                     
                    Notes:
                    • Do not add or delete rows in the header.
                    • Do not add or delete columns before the column B.
                    • From column C forward, it is possible to add or remove columns. Columns A (QueryColumn) and B (QueryOptions) must always exist.
                    • Added columns can also be empty.
                    • If columns from AA to AZ are used, plese re-enter the file name at least on the AA column, even if it is the same used in the previous column.

                    To better understand how exactly the header works and how to properly modify it, below there are some explanation about the most important things.


                    Editable header parts

                    On the image above we highlighted in yellow all the header's parts that can be modified by adding information when creating a report.

                    Everything else will be automatically filled by the add-in when the Update current worksheet button is clicked.

                    Period Begin

                    A conversion of the start date to be easily read.
                    This is automatically filled for each column by the add-in when the worksheet is updated.

                    Period End

                    A conversion of the end date to be easily read.
                    This is automatically filled for each column by the add-in when the worksheet is updated.

                    Currency

                    The accounting basic currency.
                    This is automatically filled for each column by the add-in when the worksheet is updated.

                    Header Left

                    One of the information property of the accounting.
                    This is automatically filled for each column by the add-in when the worksheet is updated.

                    Header Right

                    One of the information property of the accounting.
                    This is automatically filled for each column by the add-in when the worksheet is updated.

                    QueryAccount

                    As already said, in this column are listed all the chosen accounts, each on a different row.

                    Instead of insert an account, is also possible to add a custom regroup using a particular accounting column.
                    The custom regroup QueryAccount syntax is $column=value, where:

                    • $ indicates that a custom regroup is used.
                    • column is the Xml name of the column. It can be a user created column (for example "Abc") or a column that already exists in the accounting (for example the "Gr").
                    • value indicates the regroup.

                    If we insert something like "$Abc=1" in the QueryAccount cell, this means that the add-in takes and sums together all the accounts/groups balances that have the 1 value in the "Abc" column of the accounting.

                    Logs

                    The Logs tab it’s just a text area where are displayed some messages about the add-in and the operations that it does.


                    Example of logs messages

                    Settings

                    The Settings tab allows to change some settings of the add-in:

                    • the server URL to define the url where Banana Accounting is hosted, to avoid to have Banana Accounting installed locally. By default it is defined the local Banana Accounting web server https://127.0.0.1:8089.
                    • the language to define the language of the Banana Excel Add-in. Available languages are english, french, german and italian.
                    • the development is used only by developers for testing purposes, and users cannot access it.


                    Settings tab

                     

                    Release History

                    • 2017-06-12 First release
                    • 2017-07-07
                      • Added Add-in Commands functionality.
                      • Added a start screen that provides additional information describing the functionalities of the add-in.
                      • Added the settings tab to allow the user to change the Port of the URL.
                    • 2017-09-29
                      • Changed the name of the add-in to "Banana Accounting Excel Reports".
                      • Changed some texts.
                      • New add-in design.
                      • Added new functionalities that allow the user to set and insert all the required information more easily.
                      • Added localization language for english, french, german and italian.
                    • 2017-11-24
                      • Added new functionality that allows to set the parameters for the connection.

                     

                     

                    ExcelSync functions

                    With ExcelSync your accounting data is available in Excel.  No more need to copy and paste or to export and import.

                    You add new transactions and your Excel Sheets are instantly updated and calculated. For Apple/Mac this feature is not available.

                    ExcelSync use VBA Macros. This technology has been replaced by the more recent Excel Add-in.
                    We invite you to use the Excel Report Add-in.

                    Example costs divided among co-owners or customers

                    The ExcelSync functions are used to retrieve from Banana in Excel the current accounts balances. 
                    The costs are then divided among customers using normal Excel Formulas.
                    You could use the example to create a division of the apartment costs.

                    Example with the current and last year difference

                    In this example we take the data from the two years and create a graphic.

                    Example with segments subdivision

                    The amount of the segments are diveded also by segments.


                    Introduction to Banana ExcelSync User defined functions

                    Introduction

                    ExcelSync are Excel User defined functions that allow to synchronize in real time your Excel spreadsheet with the data from Banana Accounting.
                    You update you accounting file, adding new transactions, and instantly you get your Excel Sheets updated.

                    Excel has the ability to integrate documents and data that are made available throught the internet protocol. Banana includes a web server, and a RESTful API, that can be accessed through http protocol. ExcelSync uses the Banana integrated web server to retrive data on real time.

                    Using Excel formula

                    Banana ExcelSync are functions, with the name that start witht the "B", that you can use within the cell to retrive accounting data.
                    Here some example:

                    // return the opening balance of the account 1000 for all the period
                    =BOpening("1000")  
                    // return the description of the account 1000
                    =BAccountDescription("1000")
                    // return the end balance of the group 10
                    =BBalance("Gr=10")
                    // return the opening of the account 5000 for the period 3. month 
                    =BOpening("2000", "2017-03-01/2017-03-31")
                    // return the total debit minus credit of the account 5000 for 3. month of the year
                    =BTotal("5000", "M3")
                    // return the total debit minus credit of the group 50 for 3. quarter of the year
                    =BTotal("Gr=50", "Q3")  

                    The advantage of the Excel Sync functions :

                    • You can dynamically retrieve the take data from Banana Accounting.
                    • No more need to retype data in Excel (or import, copy and paste)
                    • When the accounting file is changed, the spreadsheet is populated with the new values
                    • Easy to use formulas that let you calculate values for periods and create powerful spreadsheets for evaluating, presenting accounting data or creating graphics.

                    Tecnical details

                    Banana ExcelSync are Excel User defined functions (UDF), small Visual Basic Programs that extend Excel allowing to insert formula within the cell.

                    • Banana ExcelSync requires a recent version of Excel, and due to the Excel Mac limitations works only on Windows versions.
                    • In order to use the ExcelSync UDF you need an Excel file with the extension *.xlsm.
                    • The Banana ExcelSync UDF are provided according the Apache License (open source software. See: /www.apache.org/licenses/LICENSE-2.0
                    • Development and latest version of the function are available on github.com/BananaAccounting/General/
                    • Banana ExcelSync UDF make use of the Banana web server.
                    • You can extend the ExcelSync by adding other functionalities.

                    For more information on the formula used see the Banana API regarding the Accounting functions


                    Using the examples

                    1. Download the Excel spreadsheet with examples files.
                    2. Unzip the content
                    3. Start Banana Accounting
                    4. Activate the Webserver (Tools -> Program options -> Interface -> Start web server)
                    5. Open the Banana accounting files "company_2019.ac2" and "company_2020.ac2"
                    6. Open the "BananaSync.xlsm" file and activate the Macro
                      If the macro are automatically disabled by Excel you should change your macro security setting
                      Eventually follow this instructions to show the developer tab in the ribbon
                    7. Recalculate the Spreadsheet with the Macro “RecalculateAll”  (Ctrl+R)

                    Excel does not react

                    If you open a file and Banana or the Banana Web Server are not running, Excel will wait until it can contact the Banana Web server.

                    Start the Banana and the Banana Web Server.

                     

                    How to create your spreadsheet

                    • Save as the "BananaSync.xlsm" file with another name
                    • Open your accounting files in Banana Accounting
                    • In your Excel spreadsheet, replace the file name (yellow highlighted cells) with your accounting file name
                    • Change the spreadsheet according to your needs
                    • Recalculate with the "Recalculate" button or the "Ctrl+R" shortcut


                    Functions use

                    Argument file name

                    Most ExcelSync functions require, as first parameters, a name of a Banana Accounting file.

                    • The file must be openened in Banana.
                    • You use only the file name without the directory. 

                    DO NOT use the file name directly in the fuctions. Instead use a reference to a cell, that contains the file name.

                    • You can use the same spreadsheed also for differrent years. You only need to change the file name in on cell.
                    • If Banana Accounting is not open of the Banana webserver is not active you don't have to wait.

                    The best way is the one used in the example file.

                    • The file name of the current year is taken from the cell named "File0" .
                    • The cell File0 contains a function =BFileName(DisableConnection).
                      This function checks if the file is open in Banana.
                      • If the file is not open the content of the cell is set to an empty string.
                        The other Banana Sync functions will not make any call to Banana, to retrive data.
                      • If the file is open it will insert the name of the file.
                    • The cell B6 contain the name of the file to be used. Insert the file name in cell B6.
                      =BFileNameF(File0, DisableConnection).
                    • The file name of the current year is taken from the cell named "File0" .
                    • The file name of the last year is taken from the cell named "File1" .

                    Argument period

                    Many functions use the optional argument period. This can be:

                    • An empty string. The start and end date of the accounting are used.
                    • A start date and end date in the form of yyyy-mm-dd/yyyy-mm-dd
                      example “2015-01-01/2015-01-31”
                      In order to create a period from two Excel dates use the function BCreatePeriod.
                    • An abbreviation
                      With the abbreviation you can easily use the same spreadsheet for accounting file of different periods.
                      The start and the end date will be determined based on the date of the accounting file
                      • M + the month number M1, M2, ..
                      • Q + the quarter number Q1, Q2,
                      • Y + the year number Y1, Y2, ....

                    BananaSync Functions description

                    Most function are available

                    • Without the parameter FileName.
                      In this case the File0 (Current Year) is used
                    • With the paramenter FileName.
                      • The function is the same but end with "F"

                    BAccountDescription(account[, column]) and BAccountDescriptionF(fileName, account[, column])

                    Retrieve the account description of the specified account or group.
                    With argument column you can indicate to retrieve another column instead of the Description column.
                    Examples:

                    =BAccountDescription("1000")           // Description of account 1000 current year
                    =BAccountDescription("Gr=10")          // Description of Group 10 current year
                    =BAccountDescription("1000", "Gr1")    // Contet of column "Gr1" relative to the account 1000 current year
                    // Last year
                    =BAccountDescriptionF(File1, "1000") // Desctiption of account 1000 
                    =BAccountDescriptionF(File1, "Gr=10")       // Description of Group 10 
                    
                    

                    BAmount(account, [,period ]) and BAmountF(fileName, account, [,period ])

                    Retrieve the normalized amount based on the BClass.
                    Only work for double entry accounting only. For Income and expenses accounting use BBalance or BTotal.

                    • for accounts of BClass 1 or 2 it return the balance (value at a specific instant).
                    • for accounts of BClass 3 or 4 it return the total (value for the duration).
                    • For accounts of BClass 2 and 4 the amount is inverted.

                    You can use this functions also with groups provided you assign a BClass also to a group.

                    BBalance( account [, period]) and BBalanceF(fileName account [, period])

                    Retrieve the Balance at the end of the period of the indicate account, cost center, groups, segments
                    The BBalance result is the sum of the BOpening + BTotal
                    It is used for retrieving accounting data for the Balance Sheet accounts (Assets, Liabilities)

                    • Single account number  ("1000")
                    • Several accounts summed toghether.
                      Enter the accounts numbers separated by the character “|” ("1000|1001).
                    • You can specify normal accounts, cost centers or segments.
                    • You can also use wild cards and also use “Gr=” followed by the accounting group.
                    • For more information see the Javascript function description for currentBalance
                    • Example
                    BBalance( "1000")              // Balance of account 1000  
                    BBalance( "1000|1010")         // Balance of account 1000 and 1010 are summed together
                    BBalance( "10*|20*")           // All account that start with 10 or with 20 are summed toghether
                    BBalance( "Gr=10")             // Group 10
                    BBalance( "Gr=10| Gr=20")      // Group 10 or  29
                    BBalance( ".P1")               // Cost center .P1
                    BBalance( ";C01|;C02")         // Cost center ;C01 and C2
                    BBalance( ":S1|S2")            // Segment :S1  and :S2
                    BBalance( "1000:S1:T1")        // Account 1000 with segment :S1 or ::T1
                    BBalance( "1000:{}")           // Account 1000 with segment not assigned 
                    BBalance( "1000:S1|S2:T1|T2")  // Account 1000 with segment :S1 or ::S2 and ::T1 and ::T
                    BBalance( "1000&&JCC1=P1")     // Account 1000 and cost center .P1
                    // Last year 
                    BBalanceF(File1, "1000")        // Balance of account 1000 (last year)
                    BBalanceF(File1, "1000|1010")   // Balance of account 1000 and 1010 are summed together (last year)
                    

                     

                    BBalanceGet( account, cmd, valueName [,period ]) and BBalanceGetF(fileName, account, cmd, valueName [,period ])

                    This function allows to easily access all other data made available by the REST API as “balance”, “budget”
                    Examples:

                    =BAmount( “1000”, “balance”, “currencyamount”)
                    =BAmount( “1000”, “balance”, “count”)
                    =BAmount( “1000”, “balance”, “debit”)
                    // Last year
                    =BAmount( File0, “1000”, “budget”, “debit”)

                    BBudgetAmount(account [, period]) and BBudgetAmountF(fileName account [, period])

                    Same as BAmount but use the budget data instead of the accounting data.

                    BBudgetBalance(account [, period]) and BBudgetBalanceF(fileName account [, period])

                    Same as BBalance but use the budget data instead of the accounting data.

                    BBudgetInterest( account, interestRate [, period]) and BBudgetInterestF(filename, account, interestRate [, period])

                    Same as BInterest but use the budget data instead of the accounting data.

                    BBudgetOpening(account [, period]) and BBudgetOpeningF(fileName account [, period])

                    Same as the BOpening but use the budget data instead of the accounting data.

                    BBudgetTotal(account [, period]) and BBudgetTotalF(fileName account [, period])

                    Same as the BTotal but use the budget data instead of the accounting data.

                    BCellAmount( table, rowColumn, column) and BCellAmountF(fileName, table, rowColumn, column)

                    Retrieve the content of a table cell as an amount.
                    Examples:

                    =BCellAmount(“Accounts”, 2, “Opening”)
                    =BCellAmount(“Accounts”, “Account=1000”, “Balance”)
                    =BCellAmount(“Accounts”, “Group=10”, “Balance”)
                    // Last year
                    =BCellAmountF(File1, “Accounts”, 2, “Opening”)
                    

                    BCellValue( table, rowColumn, column) and BCellValueF(fileName, table, rowColumn, column)

                    Retrieve the content of a table cell as a text.
                    Examples:

                    =BCellValue(“Accounts”, 2, “Description”)
                    =BCellValue(“Accounts”, “Account=1000”, “Description”)
                    =BCellValue(“Accounts”, “Group=10”, “Description”)
                    // Last year
                    =BCellValueF(File1, “Accounts”, 2, “Description”)
                    

                    BCreatePeriod( startDate, endDate)

                    Take two cell dates and create a string period
                    =BCreatePeriod(D4, D5)

                    BDate(isoDate)

                    Convert an Iso Date to an Excel date.

                    BFileName(fileName [, disable connection])

                    Return the FileName or an empty string if there is no connection with the web server or if the file is not correct.
                    If the value of disableConnection is not void the function returns an empty string.
                    Use the cells that contain the result of this function as the file name parameter when using the other functions. If Banana is not open only one query is made and Excel will not wait for a long time.

                    BFunctionsVersion()

                    Return the version of the function in the date format.

                    BInfo( sectionXml, idXml) and BInfoF(fileName, sectionXml, idXml)

                    Retrieve information regarding the file properties.
                    Examples:

                    =BInfo(“Base”, “HeaderLeft”)
                    =BInfo(“Base”, “DateLastSaved”)
                    =BInfo(“AccountingDataBase”, “OpeningDate”)
                    =BInfo(“AccountingDataBase”, “BasicCurrency”)
                    // Last year
                    =BInfoF( File1, “Base”, “HeaderLeft”)
                    

                     

                    BInterest( account, interestRate [, period]) and BInterestF(filename, account, interestRate [, period])

                    Calculate the interest for this account for the specified period

                    account can be any account as specified in BBalance

                    interestRate in percentage

                    • > 0 calculate the interest on the debit amounts
                    • < 0 calculate the interest on the credit amount

                    BOpening( account [period]) and BOpeningF(filename, account [period])

                    Retrieve the Balance for balance of period start for the indicated account.

                    BQuery(fileName, query)

                    Return the result of a free defined query.
                    Examples:

                    =BQuery(File0;"startperiod?M1”)
                    =BQuery(File0;"startperiod?M1”)

                    BTotal( account [,period]) and BTotalF(filename, account [,period])

                    Retrieve the movement for the period.
                    Should be used to retrieve the data for the Profit and Loss accounts (Cost and Revenues).

                    BVatBalance( vatCode, vatValue [, period]) and BVatBalanceF(filename, vatCode, vatValue [, period])

                    Return a value regarding the specified VatCode (or multiple VatCodes).
                    “vatValue” can be “taxable”, “amount”, “notdeductible”, “posted”
                    Examples:

                    =BVatBalance(“V10”, “taxable”)
                    =BVatBalance(“V10|V20”, “posted”)
                    //Last year
                    =BVatBalanceF( File0, “V10”, “taxable”)
                    

                    Additional function explanation 

                    The retrieve the exact content of the cells

                    If you wanto to retrive the content of a cell you can use:

                    • BCellValue
                      The content of a cell, useful for text.
                    • BCellAmount
                      The content of a cell is converted to a number so that you can use it for calculation.
                      With this you will retrive the exact content of a column "Balance" for the row where Account is 1000.
                      If the Balance is credit the amount is negative.
                    =BCellAmount(File0, “Accounts”, “Account=1000”, “Balance”)

                    Accounting Period calculation

                    You have different formula that allow to retrieve the amount.

                    • BBalance.
                      This is equivalent to the above. It retrieve the Balance of the whole accounting period.
                      But BBalance allow you to use also a period.
                      As a period you can use the date being, date end of an abbreviation. M3 means the first month of the accounting period.
                      If you use abbreviation instead of date your sheet will automatically adapt to file of different year.
                    BBalance( "1000")  //Balance end of year
                    BBalance( "1000", "2017-03-01", "2017-03-31")  //Balance end of March
                    BBalance( "1000", M3);   // Balance and of March if accounting period start on 1. of January 
                    • BTotal
                      It retrieve the total movement (Debit - Credit) for the period.
                      Use BTotal to the amount for income and expenss account.
                      Cedit amounts are retrieved as negative numbers.
                    BTotal( "1000")  //Total movement end of year
                    BBalance( "1000", "2017-03-01", "2017-03-31")  //Total end of March
                    BBalance( "1000", M3);   // Total and of March if accounting period start on 1. of January 
                    • BAmount
                      BAmount put the sign in positive based on the BClass of the account. 
                      The amount retrieved depend on the BClass of the account or the group.
                      For Balance accounts (bclass 1 and 1) retrieve the Balance.
                      For Income and expenses accounts (bclass 3 and 4) retrieve the Total.
                      It also invert the sign in case of BClass 2 and 4.
                      So if you use BAmount for the Account revenues (BClass 4) you will have the total sales for the period in positive.

                    Your are free to use the most appropriate function.

                    • BAccountDescription.
                      It is the same as GetCellValue but it deal automatically with accounts or groups.
                      Is usefull to retrieve the description of an account or group, in combination with BBalance, BTotal or BAmount.

                    =BAccountDescription( "1000")           //Retrieve the column Description of the account 1000
                    =BAccountDescription( "1000", "Notes")  //Retrieve the column Notes of the account 1000
                    =BAccountDescription( "Gr=10")          //Retrieve the column Descrition of the group 10 

                    Recalculate

                    The automatic recalculation does not update the data from the accounting file.
                    In order to have the data updated it is necessary to call the macro RecalculateAll() that call the method Application.CalculateFullRebuild

                    The example files contain a button “Recalculate” that call the macro RecalculateAll.

                    Banana host name and port

                    Web server data is retrieved from “localhost:8081”

                    You can specify a different host by entering a value in a cell named “BananaHostName”

                    Modify the functions or add your owns

                    Functions are defined in the Visual Basic module “Banana”.
                    If you add your function it would be better to add to your module.

                    To access the Visual Basic Macro Functionalities you should activate the macro.

                    In order to see and edit the functions your nedd to show the Developer tab in the Excel ribbon.

                    Use a new version of the Banana functions

                    In order to see and edit the functions your nedd to show the Developer tab in the Excel ribbon.

                    • Download on your computer the latest version
                    • Open your file in Excel
                    • Open the file "BananaSync.xlsm" in Excel
                    • Go to the Developer Tab
                    • Click on "Visual Basic"
                    • Copy the content of the "BananaSync.xmls - Banana (Code)"
                    • Paste the content in the Modules->Banana of your file.

                    Compatibility

                    Banana ExcelSync functions have been tested with Excel 2013 and 2016 for Windows.

                    Excel for Mac is not ready yet.

                    In Excel for Mac is not possible to call the http.
                    Any contribute to solve this problem is welcome.

                    Release History

                    • 2014-07-24 First release
                    • 2015-02-28 Updated for new version with new functionalities
                    • 2015-05-12 Call to webserver now require v1
                    • 2015-05-12 Development moved to github
                    • 2015-05-25 Changed BAmoount function to use BClass
                    • 2015-10-04 Added BDate function
                    • 2015-11-12 Renamend ExcelSync
                    • 2015-11-28
                      • Added example for cost division
                      • Started working on Mac support
                    • 2016-04-26 Added BCellAmount
                    • 2016-04-28 Fixes in some case rounding amount to zero
                    • 2017-02-01 New Version 2 (Functions without the file parameters)

                     

                     

                     

                     

                    Office Add-ins

                    Introduction to Excel 2016 Add-ins

                    Office 2016 Add-ins are extentions of Word, Excel, PowerPoint, and Outlook.
                    Add-ins are composed of:

                    • Manifest file
                      An XML file that defines various settings, including description and links to all the add-in files.
                      It is used by Word, Excel, PowerPoint, and Outlook to locate the Add-in resources.
                      The manifest file can reside on a local directory or is published on the Office Store.
                    • Webpage files
                      Files that compose the web app (HTML pages, JavaScript code and images).
                      All the files need to reside on a web server.

                    Add-in Examples

                    These examples have been made available for programmers that want to create specialized add-ins to retrieve information from Banana Accounting.
                    You need to insall the add-ins on a web server.

                    Resources

                    For more and detailed information about the developing of the Office Add-ins, please visit https://github.com/BananaAccounting/General/tree/master/OfficeAddIns.

                    Open source

                    Banana Accounting use this open source library:

                    The exact version of the library is visible within the software under

                    • Info regarding Banana Accounting
                    • Patent and legal informations

                    Building the libraries

                    The above indicated libraries are dinamically linked.
                    If you want to use modified libraries:

                    • Qt Framework. Banana use the dll libraries build made available by the The Qt Company for each platform.
                      For building your own libraries simply follow the Qt instrunctions.
                    • Libharu libraries are also build with the default builds scripts.
                    • QtWebApp are also build with the default builds scripts.

                    Replacing the libraries

                    Once you have re-build the library and created the dll:

                    • Replace the libraries/dll
                      • In Windows the libraries are in the program directory
                      • In Mac are under the directory frameworks
                      • In Android are in the lib directory
                      • In Linux are in the lib directory

                    Info

                    If you have question let us know.

                     

                     

                    Web Server

                    Excel, Word, Access and other software have the ability to integrate documents and data that is made available throught the internet protocol.
                    To have the possibility to retrieve the Banana Accounting data from other software, Banana include a web server, and a RESTful API, that can be accessed through http protocol.

                    Starting the web server

                    The web server enable you to access the accounting data through http.
                    The web server is started from the dialog Program Options unter the menu Tools.
                    Once the web server is started you can access to the server by typing the address "http://localhost:8081/" in your browser or in your application.

                    Settings

                    The settings of the file server, like the listening port number and others, are stored in the following file:

                    Windows: "C:/Users/{user_name}/AppData/Local/Banana.ch/Banana/8.0/httpconfig.ini"
                    Mac: "/Users/{user_name}/Library/Application Support/Banana.ch/Banana/8.0/httpconfig.ini"
                    Linux: "/home/{user_name}/.local/share/data/Banana.ch/Banana/8.0/httpconfig.ini"

                     

                    Resources API v1.0

                     

                    /v1

                    Show the home page of the web server and enable you to navigate the content of the accounting files.

                     

                    /v1/application[/{value_name}]

                    Return a JSON object with some information about the running application like 'version', 'serial', ... (since Banana 8.0.7).

                    Examples:

                    /v1/applicaiton
                    Returns:
                       { 
                          "isbeta": false, 
                          "isexperimental": true, 
                          "name": "BananaExpm80", 
                          "osdetails": "Macintosh; Intel Mac OS X 10_12_4; it_CH", 
                          "osname": "macOS Sierra (10.12)", 
                          "qtversion": "5.8.0", 
                          "serial": "80006-170510", 
                          "version": "8.0.6.170510" 
                       } 
                    
                    /v1/application/serial
                    Returns: "80006-170510"

                     

                    /v1/docs

                    Return the list of opened documents as json array.

                    Examples:

                    /v1/docs
                    Returns: ["accounting.ac2","accounting previous year.ac2", ...]

                     

                    /v1/doc/{doc_name}

                    Return the list of available http requests for the file doc_name as html page.

                    To access the previous years files just postfix doc_name with '_p1', '_p2', ... (since Banana 8.0.6).
                    Deprecated: To access the previous year file just postfix doc_name with '_previous'.

                    Examples:

                    /v1/doc/accounting.ac2
                    /v1/doc/accounting.ac2_p1
                    /v1/doc/accounting.ac2_p2
                    

                     

                    /v1/doc/{doc_name}/tablenames

                    Return the list of tables in document doc_name as json array.

                    Examples:

                    /v1/doc/accounting.ac2/tablenames
                    Returns: ["Accounting","Transactions", ...]

                     

                    /v1/doc/{doc_name}/table/{table_name}

                    Return the content of table table_name in document doc_name as html.

                    Parameters:

                    view Contains the the xml name of the view to be returned.

                    columns Contains the xml names of the columns to be returned.

                    navigation If set to true the html page navigation is showed, else only the data are showed.

                    format Contains the format to be returned. Supported formats are 'html' or 'json'. Default is 'html'. Since Banana 8.0.5.

                    Examples:

                    /v1/doc/accounting.ac2/table/Accounts
                    /v1/doc/accounting.ac2/table/Accounts?view=Base
                    /v1/doc/accounting.ac2/table/Accounts?columns=Account,Group,Description,Balance
                    /v1/doc/accounting.ac2/table/Accounts?format=json

                     

                    /v1/doc/{doc_name}/table/{table_name}/rowcount

                    Return the number of rows in the table table_name as text.

                     

                    /v1/doc/{doc_name}/table/{table_name}/columnnames

                    Return the list of columns as json array.

                     

                    /v1/doc/{doc_name}/table/{table_name}/row/{row_nr}/column/{col_name}

                    Return the value of cell at row row_nr and column col_name as text.

                    The part row_nr can be a row number starting from 1 or an expression like 'Account=1000' (In this ex. the first row where the field Account is equal to 1000 is used)

                    The part col_name is the xml name of the requested column.

                    Examples:

                    /v1/doc/accounting.ac2/table/Accounts/row/2/column/Description
                    /v1/doc/accounting.ac2/table/Accounts/row/Account=1000/column/Balance
                    

                     

                    /v1/doc/{doc_name}/table/{table_name}/rowlistnames

                    Return the names of row lists present in the table table_name as json array.

                    Examples:

                    /v1/doc/accounting.ac2/table/Transactions/rowlistnames
                    Returns: ["Data","Examples", "Archives", ...]

                     

                    /v1/doc/{doc_name}/table/{table_name}/rowlist/{rowlist_name}

                    Return the content of the row list rowlist_name in table_name of document doc_name as html.

                    Parameters:

                    view Contains the the xml name of the view to be returned.

                    columns Contains the xml names of the columns to be returned.

                    navigation If set to true the html page navigation is showed, else only the data are showed.

                    format Contains the format to be returned. Supported formats are 'html' or 'json'. Default is 'html'. Since Banana 8.0.5.

                    Examples:

                    /v1/doc/accounting.ac2/table/Transactions/rowlist/Examples
                    /v1/doc/accounting.ac2/table/Transactions/rowlist/Examples?view=Base
                    /v1/doc/accounting.ac2/table/Accounts?columns=Account,Group,Description,Balance
                    /v1/doc/accounting.ac2/table/Accounts?format=json

                     

                    /v1/doc/{doc_name}/table/{table_name}/rowlist/{rowlist_name}/rowcount

                    Return the number of rows in the row list rowlist_name of table table_name as text.

                     

                    /v1/doc/{doc_name}/table/{table_name}/rowlist/{rowlist_name}/row/{row_nr}/column/{col_name}

                    Return the value of cell in row list rowlist_name at row row_nr and column col_name as text.

                    The part row_nr can be a row number starting from 1 or an expression like 'Account=1000' (In this ex. the first row where the field Account is equal to 1000 is used)

                    The part col_name is the xml name of the requested column.

                    Examples:

                    /v1/doc/accounting.ac2/table/Accounts/row/2/column/Description
                    /v1/doc/accounting.ac2/table/Accounts/row/Account=1000/column/Balance
                    

                     

                    /v1/doc/{doc_name}/accounts

                    Return the list of accounts as json array.

                    Examples:

                    /v1/doc/accounting.ac2/accounts
                    Returns: [{"id":"1000","descr":"1000 Cash"}, {"id":"1010","descr":"1000 Post"}, ...]

                     

                    /v1/doc/{doc_name}/accountdescription/{account_id|Gr=group_id}[/{col_name}]

                    Return the description of the requested account or group as text.
                    The part col_name is optional, it is the xml name of the requested column. Default is the column 'Description'.

                    Examples:

                    /v1/doc/accounting.ac2/accountdescription/1000
                    /v1/doc/accounting.ac2/accountdescription/Gr=1
                    /v1/doc/accounting.ac2/accountdescription/1000/Curreny
                    
                    

                     

                    /v1/doc/{doc_name}/groups

                    Return the list of groups as json array.

                    Examples:

                    /v1/doc/accounting.ac2/groups
                    Returns: [{"id":"100","descr":"100 Current Assets"}, ...]

                     

                    /v1/doc/{doc_name}/segments

                    Return the list of segments as json array.

                    Examples:

                    /v1/doc/accounting.ac2/segments
                    Returns: [{"id":":lugano","descr":"Lugano"}, ...]

                     

                    /v1/doc/{doc_name}/vatcodes

                    Return the list of vatcodes as json array.

                    Examples:

                    /v1/doc/accounting.ac2/vatcodes
                    Returns: [{"id":"V80","descr":"V80 Sales and services 8.0%"}, ...]

                     

                    /v1/doc/{doc_name}/vatdescription/{vat_code}[/{col_name}]

                    Return the description of the requested vat code as text.
                    The part col_name is optional, it is the xml name of the requested column. Default is the column 'Description'.

                    Examples:

                    /v1/doc/accounting.ac2/vatdescription/V80
                    /v1/doc/accounting.ac2/vatdescription/V80/Gr1
                    

                     

                    /v1/doc/{doc_name}/balance/{account_id|Gr=group_id|BClass=class_id}/{opening|credit|debit|total|balance|openingcurrency|...}

                    Return the current balance of the requested account, group or bclass as text.

                    To access the balances of the previous year file just postfix doc_name with '_p1', '_p2', ... .

                    The last part or the url can be one of the followings strings: 

                    • opening
                    • credit
                    • debit
                    • total
                    • balance
                    • openingcurrency
                    • ceditcurrency
                    • debitcurrency
                    • totalcurrency
                    • balancecurrency
                    • rowcount

                    Parameters:

                    period Define the start and end date for the request.
                    It can contain a period abbreviation like 'Q1' or a start and end date like '2014-01-01/2014-03-31'.
                    A period abbreviation is defined by a number followed by one of the following charachters:

                    • M for months
                    • Q for quarters
                    • S for semesters
                    • Y for years

                    filter Contains a javascript expression used to filter the transactions. The object available to the expression are "row", "rowNr", and "table". 
                    For example: filter=row.value("Date")==="2014-01-15"

                    Examples:

                    /v1/doc/accounting.ac2/balance/1000/opening
                    /v1/doc/accounting.ac2_p1/balance/1000/opening
                    /v1/doc/accounting.ac2/balance/1000|1010|1020|1030/opening
                    /v1/doc/accounting.ac2/balance/Gr=6/totalcurrency?period=Q1
                    /v1/doc/accounting.ac2/balance/BClass=1/balance

                     

                    /v1/doc/{doc_name}/budget/{account_id|Gr=group_id|BClass=class_id}/{opening|credit|debit|total|balance|openingcurrency|...}

                    Return the budget of the requested account, group or bclass as text.

                    To access the budget balances of the previous year file just postfix doc_name with '_p1', '_p2', ... .

                    The last part or the url can be one of the followings strings: 

                    • opening
                    • credit
                    • debit
                    • total
                    • balance
                    • openingcurrency
                    • ceditcurrency
                    • debitcurrency
                    • totalcurrency
                    • balancecurrency
                    • rowcount

                    Parameters:

                    period Define the start and end date for the request.
                    It can contain a period abbreviation like 'Q1' or a start and end date like '2014-01-01/2014-03-31'.
                    A period abbreviation is defined by a number followed by one of the following charachters:

                    • M for months
                    • Q for quarters
                    • S for semesters
                    • Y for years

                    filter Contains a javascript expression used to filter the transactions. The object available to the expression are "row", "rowNr", and "table". 
                    For example: filter=row.value("Date")==="2014-01-15"

                    Examples:

                    /v1/doc/accounting.ac2/budget/1000/opening
                    /v1/doc/accounting.ac2_p1/budget/1000/opening
                    /v1/doc/accounting.ac2/budget/1000|1010|1020|1030/opening
                    /v1/doc/accounting.ac2/budget/BClass=1/balance

                     

                    /v1/doc/{doc_name}/interest/{account_id|Gr=group_id|BClass=class_id}

                    Return the calculated interest on the specified account.

                    Parameters:

                    rate The interest rate in percentage (ie.: '5', '3.25'). The decimal separator must be a dot '.'. If positive it calculate the interest fo the debit amounts. If negative it calcaulate the interest on the credits amounts.

                    period Define the start and end date for the request.
                    It can contain a period abbreviation like 'Q1' or a start and end date like '2014-01-01/2014-03-31'.
                    A period abbreviation is defined by a number followed by one of the following charachters:

                    • M for months
                    • Q for quarters
                    • S for semesters
                    • Y for years

                    filter Contains a javascript expression used to filter the transactions. The object available to the expression are "row", "rowNr", and "table". 
                    For example: filter=row.value("Date")==="2014-01-15"

                    Examples:

                    /v1/doc/accounting.ac2/interest/1000?rate=2.5
                    /v1/doc/accounting.ac2/interest/1000?rate=-8.0
                    /v1/doc/accounting.ac2/interest/1000?rate=-8.0&period=Q1
                    

                     

                    /v1/doc/{doc_name}/budgetinterest/{account_id|Gr=group_id|BClass=class_id}

                    Return the calculated interest on the specified account for the budget transactions.

                    Parameters:

                    rate The interest rate in percentage (ie.: '5', '3.25'). The decimal separator must be a dot '.'. If positive it calculate the interest fo the debit amounts. If negative it calcaulate the interest on the credits amounts.

                    period Define the start and end date for the request.
                    It can contain a period abbreviation like 'Q1' or a start and end date like '2014-01-01/2014-03-31'.
                    A period abbreviation is defined by a number followed by one of the following charachters:

                    • M for months
                    • Q for quarters
                    • S for semesters
                    • Y for years

                    filter Contains a javascript expression used to filter the transactions. The object available to the expression are "row", "rowNr", and "table". 
                    For example: filter=row.value("Date")==="2014-01-15"

                    Examples:

                    /v1/doc/accounting.ac2/budgetinterest/1000?rate=2.5
                    /v1/doc/accounting.ac2/budgetinterest/1000?rate=-8.0
                    /v1/doc/accounting.ac2/budgetinterest/1000?rate=-8.0&period=Q1
                    

                     

                    /v1/doc/{doc_name}/projection/{account_id|Gr=group_id|BClass=class_id}/{opening|credit|debit|total|balance|openingcurrency|...}

                    Return the projection of the requested account, group or bclass as text.

                    To access the budget balances of the previous year file just postfix doc_name with '_p1', '_p2', ... .

                    The last part or the url can be one of the followings strings: 

                    • opening
                    • credit
                    • debit
                    • total
                    • balance
                    • openingcurrency
                    • ceditcurrency
                    • debitcurrency
                    • totalcurrency
                    • balancecurrency
                    • rowcount

                    Parameters:

                    projectionstart This parameter is mandatory and define the start date of the projection.
                    It can contain a period abbreviation like 'Q1' (start at beginnig of) or a date like '2014-07-01'.

                    period Define the start and end date for the request.
                    It can contain a period abbreviation like 'Q1', a start and end date like '2014-01-01/2014-03-31' or a list of periods separated by a coma like 'S1,S2,ALL'.
                    A period abbreviation is defined by a number followed by one of the following charachters:

                    • M for months
                    • Q for quarters
                    • S for semesters
                    • Y for years

                    filter Contains a javascript expression used to filter the transactions. The object available to the expression are "row", "rowNr", and "table". 
                    For example: filter=row.value("Date")==="2014-01-15"

                    Examples:

                    /v1/doc/accounting.ac2/projection/1000/opening?projectionstart=S1
                    /v1/doc/accounting.ac2/projection/1000/opening?projectionstart=2014-07-01
                    /v1/doc/accounting.ac2_p1/projection/1000/opening?projectionstart=S1
                    

                     

                    /v1/doc/{doc_name}/accountcard/{account_id}

                    Return the account card of account account_id as html.

                    Parameters:

                    view Contains the the xml name of the view to be returned.

                    columns Contains the xml names of the columns to be returned.

                    navigation If set to true the html page navigation is showed, else only the data are showed.

                    period Define the start and end date for the request.
                    It can contain a period abbreviation like 'Q1' or a start and end date like '2014-01-01/2014-03-31'.
                    A period abbreviation is defined by a number followed by one of the following charachters:

                    • M for months
                    • Q for quarters
                    • S for semesters
                    • Y for years

                    filter Contains a javascript expression used to filter the transactions. The object available to the expression are "row", "rowNr", and "table". 
                    For example: filter=row.value("Date")==="2014-01-15"

                    format Contains the format to be returned. Supported formats are 'html' or 'json'. Default is 'html'. Since Banana 8.0.5.

                    Examples:

                    /v1/doc/accounting.ac2/accountcard/1000
                    /v1/doc/accounting.ac2/accountcard/1000?period=Q1
                    /v1/doc/accounting.ac2/accountcard/1000?period=2014-01-01/2014-03-31
                    /v1/doc/accounting.ac2/accountcard/1000?filter=row.value("Description").contain("xyz")
                    /v1/doc/accounting.ac2/accountcard/1000?format=json

                     

                    /v1/doc/{doc_name}/budgetcard/{account_id}

                    Return the budget card of account account_id as html.

                    Parameters:

                    view Contains the the xml name of the view to be returned.

                    columns Contains the xml names of the columns to be returned.

                    navigation If set to true the html page navigation is showed, else only the data are showed.

                    period Define the start and end date for the request.
                    It can contain a period abbreviation like '1Q' or a start and end date like '2014-01-01/2014-03-31'.
                    A period abbreviation is defined by a number followed by one of the following charachters:

                    • M for months
                    • Q for quarters
                    • S for semesters
                    • Y for years

                    filter Contains a javascript expression used to filter the transactions. The object available to the expression are "row", "rowNr", and "table". 
                    For example: filter=row.value("Date")==="2014-01-15"

                    format Contains the format to be returned. Supported formats are 'html' or 'json'. Default is 'html'. Since Banana 8.0.5.

                    Introduced in 7.0.7.0

                    Examples:

                    /v1/doc/accounting.ac2/budgetcard/1000
                    /v1/doc/accounting.ac2/budgetcard/1000?period=Q1
                    /v1/doc/accounting.ac2/budgetcard/1000?period=2014-01-01/2014-03-31
                    /v1/doc/accounting.ac2/budgetcard/1000?format=json

                     

                    /v1/doc/{doc_name}/projectioncard/{account_id}

                    Return the projection card of account account_id as html.

                    Parameters:

                    view Contains the the xml name of the view to be returned.

                    columns Contains the xml names of the columns to be returned.

                    navigation If set to true the html page navigation is showed, else only the data are showed.

                    projectionstart This parameter is mandatory and define the start date of the projection.
                    It can contain a period abbreviation like 'Q1' (start at beginnig of) or a date like '2014-07-01'.

                    period Define the start and end date for the request.
                    It can contain a period abbreviation like '1Q' or a start and end date like '2014-01-01/2014-03-31'.
                    A period abbreviation is defined by a number followed by one of the following charachters:

                    • M for months
                    • Q for quarters
                    • S for semesters
                    • Y for years

                    filter Contains a javascript expression used to filter the transactions. The object available to the expression are "row", "rowNr", and "table". 
                    For example: filter=row.value("Date")==="2014-01-15"

                    format Contains the format to be returned. Supported formats are 'html' or 'json'. Default is 'html'. Since Banana 8.0.5.

                    Introduced in 7.0.7.0

                    Examples:

                    /v1/doc/accounting.ac2/projectioncard/1000
                    /v1/doc/accounting.ac2/projectioncard/1000?period=Q1
                    /v1/doc/accounting.ac2/projectioncard/1000?period=2014-01-01/2014-03-31
                    /v1/doc/accounting.ac2/projectioncard/1000?format=json

                     

                    /v1/doc/{doc_name}/vatbalance/{vat_code|Gr=vat_group}/{taxable|amount|notdeductible|posted}

                    Return the current balance of the requested vat code as text.

                    The last part of the url can be one of the followings strings: 

                    • taxable
                    • amount
                    • notdeductible
                    • posted
                    • rowcount

                    Parameters:

                    period Define the start and end date for the request.
                    It can contain a period abbreviation like 'Q1' or a start and end date like '2014-01-01/2014-03-31'.
                    A period abbreviation is defined by a number followed by one of the following charachters:

                    • M for months
                    • Q for quarters
                    • S for semesters
                    • Y for years

                    filter Contains a javascript expression used to filter the transactions. The object available to the expression are "row", "rowNr", and "table". 
                    For example: filter=row.value("Date")==="2014-01-15"

                    Examples:

                    /v1/doc/accounting.ac2/vatbalance/V80/balance

                     

                    /v1/doc/{doc_name}/vatbudget/{vat_code|Gr=vat_group}/{taxable|amount|notdeductible|posted}

                    Return the budget of the requested vat code as text.

                    The last part or the url can be one of the followings strings: 

                    • taxable
                    • amount
                    • notdeductible
                    • posted
                    • rowcount

                    Parameters:

                    period Define the start and end date for the request.
                    It can contain a period abbreviation like 'Q1' or a start and end date like '2014-01-01/2014-03-31'.
                    A period abbreviation is defined by a number followed by one of the following charachters:

                    • M for months
                    • Q for quarters
                    • S for semesters
                    • Y for years

                    filter Contains a javascript expression used to filter the transactions. The object available to the expression are "row", "rowNr", and "table". 
                    For example: filter=row.value("Date")==="2014-01-15"

                    Examples:

                    /v1/doc/accounting.ac2/vatbudget/V80/balance

                     

                    /v1/doc/{doc_name}/vatcard/{vat_code}

                    Return the account card of the vat code vat_code as html.

                    Parameters:

                    view Contains the the xml name of the view to be returned.

                    columns Contains the xml names of the columns to be returned.

                    navigation If set to true the html page navigation is showed, else only the data are showed.

                    period Define the start and end date for the request.
                    It can contain a period abbreviation like 'Q1' or a start and end date like '2014-01-01/2014-03-31'.
                    A period abbreviation is defined by a number followed by one of the following charachters:

                    • M for months
                    • Q for quarters
                    • S for semesters
                    • Y for years

                    filter Contains a javascript expression used to filter the transactions. The object available to the expression are "row", "rowNr", and "table". 
                    For example: filter=row.value("Date")==="2014-01-15"

                    format Contains the format to be returned. Supported formats are 'html' or 'json'. Default is 'html'. Since Banana 8.0.5.

                    Examples:

                    /v1/doc/accounting.ac2/vatcard/V80
                    /v1/doc/accounting.ac2/vatcard/V0|V25|V80
                    /v1/doc/accounting.ac2/vatcard/V80?period=Q1
                    /v1/doc/accounting.ac2/vatcard/V80?period=2014-01-01/2014-03-31
                    /v1/doc/accounting.ac2/vatcard/V80?filter=row.value("Description").contain("xyz")
                    /v1/doc/accounting.ac2/vatcard/V80?format=json

                     

                    /v1/doc/{doc_name}/vatprojection/{vat_code|Gr=vat_group}/{taxable|amount|notdeductible|posted}

                    Return the projection of the requested vat code as text.

                    The last part or the url can be one of the followings strings: 

                    • taxable
                    • amount
                    • notdeductible
                    • posted
                    • rowcount

                    Parameters:

                    projectionstart This parameter is mandatory and define the start date of the projection.
                    It can contain a period abbreviation like 'Q1' (start at beginnig of) or a date like '2014-07-01'.

                    period Define the start and end date for the request.
                    It can contain a period abbreviation like 'Q1' or a start and end date like '2014-01-01/2014-03-31'.
                    A period abbreviation is defined by a number followed by one of the following charachters:

                    • M for months
                    • Q for quarters
                    • S for semesters
                    • Y for years

                    filter Contains a javascript expression used to filter the transactions. The object available to the expression are "row", "rowNr", and "table". 
                    For example: filter=row.value("Date")==="2014-01-15"

                    Examples:

                    /v1/doc/accounting.ac2/vatprojection/V80?startdate=2016-18-31
                    /v1/doc/accounting.ac2/vatprojection/V80/balance?startdate=Q3
                    

                     

                    /v1/doc/{doc_name}/accreport

                    Return the accounting report for the document doc_name as html.

                    Parameters:

                    view Contains the the xml name of the view to be returned.

                    columns Contains the xml names of the columns to be returned.

                    navigation If set to true the html page navigation is showed, else only the data are showed.

                    period Define the start and end date for the request.
                    It can contain a period abbreviation like '1Q' or a start and end date like '2014-01-01/2014-03-31'.
                    A period abbreviation is defined by a number followed by one of the following charachters:

                    • M for months
                    • Q for quarters
                    • S for semesters
                    • Y for years

                    subdivision Define the period subdivision for the request .A period subdivision is defined by one of the following charachters:

                    • M for monthly subdivision
                    • Q for quarter sudbivision
                    • S for semester subdivision
                    • Y for year subdivision

                    format Contains the format to be returned. Supported formats are 'html' or 'json'. Default is 'html'. Since Banana 8.0.5.

                    Examples:

                    /v1/doc/accounting.ac2/accreport
                    /v1/doc/accounting.ac2/accreport?period=Q1
                    /v1/doc/accounting.ac2/accreport?subdivision=Q
                    /v1/doc/accounting.ac2/accreport?format=json

                     

                    /v1/doc/{doc_name}/vatreport

                    Return the vat report for the document doc_name as html.

                    Parameters:

                    view Contains the the xml name of the view to be returned.

                    columns Contains the xml names of the columns to be returned.

                    navigation If set to true the html page navigation is showed, else only the data are showed.

                    period Define the start and end date for the request.
                    It can contain a period abbreviation like '1Q' or a start and end date like '2014-01-01/2014-03-31'.
                    A period abbreviation is defined by a number followed by one of the following charachters:

                    • M for months
                    • Q for quarters
                    • S for semesters
                    • Y for years

                    format Contains the format to be returned. Supported formats are 'html' or 'json'. Default is 'html'. Since Banana 8.0.5.

                    Examples:

                    /v1/doc/accounting.ac2/vatreport
                    /v1/doc/accounting.ac2/vatreport?period=Q3
                    /v1/doc/accounting.ac2/vatreport?format=json

                     

                    /v1/doc/{doc_name}/journal

                    Return the journal for the document doc_name as html.

                    Parameters:

                    columns Contains the xml names of the columns to be returned.

                    navigation If set to true the html page navigation is showed, else only the data are showed.

                    format Contains the format to be returned. Supported formats are 'html' or 'json'. Default is 'html'. Since Banana 8.0.5.

                    Examples:

                    /v1/doc/accounting.ac2/journal
                    /v1/doc/accounting.ac2/journal?format=json

                     

                    doc/{doc_name}/startperiod

                    Return the start date in the form of 'YYYY-MM-DD'.

                    Parameters:

                    period Define the period for the request.
                    It can contain a period abbreviation like '1Q' or be empry. If period is not present or empty the accounting start date is returned.
                    A period abbreviation is defined by a number followed by one of the following charachters:

                    • M for months
                    • Q for quarters
                    • S for semesters
                    • Y for years

                    See also endPeriod.

                    Introduced in 7.0.7.0

                    Examples:

                    /v1/doc/accounting.ac2/startperiod
                    /v1/doc/accounting.ac2/startPeriod?period=Q3

                     

                    doc/{doc_name}/endPeriod

                    Return the end date in the form of 'YYYY-MM-DD'.

                    Parameters:

                    period Define the period for the request.
                    It can contain a period abbreviation like '1Q' or be empry. If period is not present or empty the accounting end date is returned.
                    A period abbreviation is defined by a number followed by one of the following charachters:

                    • M for months
                    • Q for quarters
                    • S for semesters
                    • Y for years

                    See also startPeriod.

                    Introduced in 7.0.7.0

                    Examples:

                    /v1/doc/accounting.ac2/endPeriod
                    /v1/doc/accounting.ac2/endperiod?period=Q3

                     

                    /v1/doc/{doc_name}/info

                    Return the info table as html.

                    Parameters:

                    columns Contains the xml names of the columns to be returned.

                    navigation If set to true the html page navigation is showed, else only the data are showed.

                    format Contains the format to be returned. Supported formats are 'html' or 'json'. Default is 'html'. Since Banana 8.0.5.

                    Examples:

                    /v1/doc/accounting.ac2/info
                    /v1/doc/accounting.ac2/info?format=json

                     

                    /v1/doc/{doc_name}/info/{info_section_name}/{info_id_name}

                    Return the info value section:id as text.

                    Examples:

                    /v1/doc/accounting.ac2/info/AccountingDataBase/BasicCurrency

                     

                    /v1/doc/{doc_name}/infos

                    Return the infos of document doc_name as json object.

                    Examples:

                    /v1/doc/accounting.ac2/infos
                    Returns: [{"section":"Base", "id":"FileInfo", "value":""},{"section":"Base", "id":"Date", "value":"2014-05-13"}, ...]

                     

                    /v1/doc/{doc_name}/messages

                    Return the list of message as a json array

                    Parameters:

                    recheck If set to 'yes' a 'Recheck accounting' is executed.

                     

                    /v1/doc/{doc_name}/messages/count

                    Return the number of error messages in the accounting file.

                    Parameters:

                    recheck If set to 'yes' a 'Recheck accounting' is executed.

                     

                    /v1/doc/{doc_name}/apps/{app_name}

                    Return the www app app_name as a html page. Www apps are a showcase of the powerfull capability of the http api.

                    A www app is just a html page stored under '{program_folder}/WWW' that is returned by this request. Currently banana accounting has the app "Charts" that permit to display charts of accounts, and the app "Dashboard" that show an overview of the accounting.

                    /v1/doc/accounting.ac2/apps/charts
                    /v1/doc/accounting.ac2/apps/dashboard
                    

                     

                    /v1/doc/{doc_name}/[*/]bananaapiv1.js

                    Return a javascript file tha define an object oriented interface to access the webserver. With this interface the http requests are hidden behind the object's methods and properties. Methods and properties follow the schema of the BananaApps API. All the request are synchronous.

                    /v1/doc/accounting.ac2/bananaapiv1.js
                    /v1/doc/accounting.ac2/charts/bananaapiv1.js // note: only the name is checked and not the path

                     

                    /v1/appdata/{data_id}

                    The request appdata permit to save and restore parameters. 

                    GET /v1/appdata/chart_xyz      // return the data chart_xyz
                    PUT /v1/appdata/chart_xyz      // save some data, the data are sent as body of the request
                    DELETE /v1/appdata/chart_xyz   // delete the data chart_xyz

                     

                    /v1/appdataform

                    The request return a form that permit to create, modify or delete app data.

                     

                    /v1/files/{file_name}

                    The request return the file file_name stored in the folder user data.

                    Windows: "C:/Users/{user_name}/AppData/Local/Banana.ch/Banana/8.0/httpconfig.ini"
                    Mac: "/Users/{user_name}/Library/Application Support/Banana.ch/Banana/8.0/httpconfig.ini"
                    Linux: "/home/{user_name}/.local/share/data/Banana.ch/Banana/8.0/httpconfig.ini"

                     

                    /v1/help

                    Show the help page (this page) of the web server.

                     

                    /v1/script?scriptfile=path_to_script

                    Execute the script scriptfile.

                    Parameters:

                    scriptfile Define the path of the script to be executed.The path can be an absolute path or a path relative to the user's document directory.

                    ac2file Define the name of an opened document to be passed to the script. It is optional.

                    indata Contains text data to be passed to the script. It is optional.

                    Examples:

                    /v1/script?scriptfile=getresults.js
                    /v1/script?scriptfile=getresults.js&ac2file=accounting.ac2

                     

                    /v1/settings

                    Show the settings of the web server.

                     

                     

                    Data formats API

                    Date

                    Date values are in ISO 8601 format 'YYYY-MM-DD'.

                    Decimal

                    Decimal values have a '.' (dot) as decimal separator and doesn't have a group separator. For example: '12345.67'.
                    Decimal values are rounded according to the accounting settings.

                    Text

                    Text values can contain any character supported by UTF-8.

                    Time

                    Time values are in ISO 8601 format 'HH:MM:SS'. The formats 'HH:MM' and 'HH:MM:SS.ZZZ are also accepted.

                    Import data

                    See also:

                    • End user genaral import documentation.
                    • End user documentation for importing accounting data
                    • If you are a developper and do want to test if the import file is correct. Download and install the Banana Software. In Starter Edition mode you can cCreate a new accounting file, use the import in to account function and make all tests you need. 

                    ImportApp

                    An importApp is javascript program that is executed internally by Banana (when user want to import data) and usually convert data from a proprietary format to a Banana "Text file with columns header".

                    You can create an ImportApp that does more sofisticated things like:

                    • Appling an account number based on the content .
                      For example set the ContraAccount to "3000" if the amount is positive and the "Description" start with "Revenue from "
                    • Use data contained in another banana table to complete the transactions.
                      • Create a table with (Tools->Add new functionalities->Add simple table) where you list text to look for in the transactions text and the corresponding account to use.
                      • Assume you invoice data  use a customers number that is different from the account number in the Account table.
                        Add a new column in the Account table and then use the content to retrive the appropriate account number.
                      • Adding a prefix to the supplier invoice number, so that you can easily distinguish incoming and outgoing invoices.

                    For more information  see creating an ImportApp

                    Import and complete the data imported in Banana

                    Once the data is imported user can undo the operation or complete or modify the data.
                    By this way you can delegate to the user to check if the import is correct, if there are changes that need to be done.

                    Import "Text file with columns header"

                    The Banana import format is of type "Text file with column headers".

                    • Fields and column name separator is to be tab separated "\t"
                    • Each line (after a "\n") is a new record
                    • Charachter code preferably UTF8 or else the local one.
                    • The first line contains the columns header name
                      • You can use any column name existing on the table
                      • Names a case sensitive and must correspond to the Banana NameXml (English) of the column.
                    • Starting from line 2 it contains the data to be imported
                      • The format for the Date fields is yyyy-mm-dd
                      • The decimal separator is the decimal point "."
                      • Amount should not have any thousand separator

                    Two command for import

                    1. Throught the Command in Menu Account1->Import in Accounting.
                      This is a specialized import for accounting data, with postprocessing of that suitable for the accounting data.
                      • Import Accounts, VatCode, Exchange rate, Invoice number
                        It use the column name as in the transactions table
                      • Transactions
                        You have two option:
                        • Double entry account format  (same as in the double entry transactions table)
                        • Income/Expense account (for bank statements)
                    2. Throught the command Data import. Import from txt.
                      You can import data in any table. For accounting data prefer option 1.

                    Import double entry transactions in CSV format

                    For what is concerning the specific of the import of double entry see the explanations the Import Double-entry accounting transactions. The only difference is that the Complete transactions with section is active and allows the user to enter the initial document number and the destination account number. Once the import is done, the counterparty account will have to be entered manually.

                    Menu Account1->Import into account

                    The type of file to be used is a "Text file with column headers".

                    Main columns for import

                    For importing invoices the tab separated import file  or translated file usually contains this columns:

                    • Date  of the transaction (2014-12-31).
                    • DateDocument with the date of the invoice.
                    • DocInvoice the invoice number.
                    • Description a brief text.
                    • AccountDebit the account number of the customer or the general account for customers.
                    • AccountCredit the account number of the revenue account.
                    • Amount the amount of the accounting currency.
                    • VatCode the vat code that should be used.
                    • AmountCurrency if multi-currency the amount of the invoice in original currency and currency of the AccountDebit.

                    Example file double entry format

                    Fields are separated by the tab char (ASCII decimal 11, C language "\t").
                    In the example the tab charachter is not visible.

                    Date Doc Description AccountDebit AccountCredit Amount VatCode VatPercentNonDeductible
                    
                    2018-01-03 Bank to Cash 1000 1020 350.00
                    2018-01-05 Office Supplies 6500 1000 32.50 E76

                    Options

                    • Import using clipboard data will use the content of the clipboard instead of the file
                    • Autocomplete values Some fields of the transactions are automatically completed (see "Importing transactions for multicurrency double entry accounting").
                    • Unicode (utf-8) The content of the file is in Unicode utf-8 (it support any character set). 

                    Importing other transaction's columns

                    You can import any other field that is defined in the transactions table.
                    There are other alues that we suggest to import if available:

                    • DateDocument the date of the original document (for example the date of the invoice).
                    • DocOriginal the document number for example the invoice number.
                    • DocPayed the document number that has been payed.
                    • DocLink the address of the file that link to a scanned document (pdf, jpg, ..).
                    • DateExpiration due date of the invoice.
                    • ExternalReference a information that help to identify the transactions as unique.
                      It will be used in future implementation of Banana (in conjunction with the date) to warn a user that the transaction has already been imported.
                      This should be a externaReference generated by the software that create the transactions to be imported.
                      We suggest to use a name of the program and a number tha that is unique for the accounting period.
                      For example "invoice-2013-00001.001" with year, invoice number and a progressive number that is relative to the invoice in case it will be necessary to have more transactions lines for the same invoice.

                    Importing transactions for multicurrency double entry accounting

                    By importing multicurrency data there can be rounding or calculation differences due to different development tools used. To avoid such differences you should provide only certain fields and while importing the program will calculate the field values that are missing (with the option "Autocomplete values") .

                    • If you provide only "AmountCurrency" the program will use the default exchange rate and will calculate the "Amount".
                    • In order to avoid error provide always the "ExchangeCurrency"
                    • If you provide the "AmountCurrency"  and the "ExchangeRate" and the "Amount" are 0 o not present the program will calculate the exchange rate based on the column "Amount" and "AmountCurrency".

                    Importing Invoice data

                    The data of your invoice software can be imported in Banana.
                    There are two way to do so:

                    1. Let your invoice software generate a file for Banana a indicated in the "Import double entry transaction in txt format".
                    2. Use the data of the export format of your existing invoicing software .
                      In order to import this data from a proprietary format in Banana you need to create a Javascript BananaApp  that translate the data in the format accetable for Banana.
                      The script program take as input the content of a file and create an output that is a tab separeted text file with columns headers.
                      See also repository on github.

                    Invoices on more lines

                    Most invoices have different items that need to be registered in different revenues accounts or that have different VAT percentage.
                    In this case for each invoice you neet to have many import lines.
                    Date, DateDocument, DocInvoice have always the same values.

                    • The first line you have the
                      • AccountDebit the customer account number
                      • AccountCredit is void.
                      • Amount the total amount of the invoice. The amount due from Customer.
                      • VatCode is void
                    • For each item with different revenue accounts or Vat percentage you should have an additional lines
                      • AccountDebit is void
                      • AccountCredit the revenue account for this item
                      • Amount the total amount to be registered on this account.
                        If you have a VatCode it could be convenient to use the amount without VAT.
                      • VatCode the VatCode that apply to this item.
                        If the Amount is Net of VAT you should define a VAT Code that is calculated on the net Value.

                    Group transactions by invoice number

                    Il the imported data contains the "DocInvoice" columns, when Banana display you a sedond DialogBox, you can choose to have Banana group the transactions by DocInvoice.
                    In this case Banana automatically create if necessary a transaction for rounding differences.

                    Use Cost center instead for customer account

                    If you do not want to keep track of the invoices registered but do not wan't them to be recorded on ordently account you can use the Cost center (CC3).  See also Client/Suppliers register.

                    Import receipts/payment transactions in CSV format (Bank statements)

                    This format is suitable to import Bank statements in elctorinic format.

                    Menu Account1->Import into account

                    The type of file to be used is a "Receipt/Payment transactions".

                    • You can use any column name existing on the table
                    • Column with special meaning are
                      • Date  of the transaction (2014-12-31)
                      • Description a brief text
                      • Income: The amount in credit (can also be negative a mount)
                      • Expenses: The amount in debit
                      • ContraAccount: the account nember (debit/credit) or category
                      • Account: If the file contains the movements of multiple accounts, the account of the transaction
                      • VatCode the vat code that should be used
                      • IsDetail for composed transactions a "S" identify a counterpart transaction and a "D" a detail transactions
                    • Fields header in the first line o the file Fields names a case sensitive and must correspond to the NameXml (English)
                    • Fields and column name separator is to be tab separated "\t"
                    • Each line (after a "\n") is a new record
                    • The format for the Date fields is yyyy-mm-dd

                    Example file Income/Expenses format

                    Fields are separated by the tab char (ASCII decimal 11, C language "\t").
                    In the example the tab charachter is not visible.

                    Date Description Income Expenses ContraAccount Account
                    2007-01-02 Paper  30.00
                    2007-01-06 material for photographic competition  259.2  3000

                    Options

                    • Import using clipboard data will use the content of the clipboard instead of the file
                    • Autocomplete values Some fields of the transactions are automatically completed (see "Importing transactions for multicurrency double entry accounting").
                      Once the import is done, the contra account will have to be entered manually.
                    • Unicode (utf-8) The content of the file is in Unicode utf-8 (it support any character set).

                    Automated data importing

                    The import of transaction can be automated using the command.

                    For further information see "Command line"

                    GitHub BananaAccounting

                    Contribute to BananaAccounting GitHub repository

                    In order to contribute to BananaAccounting GitHub repository and submit some changes it is necessary to follow some basic steps.

                    1. Install GitHub Desktop
                    2. Fork the repository
                    3. Clone the repository
                    4. Modify or add files to the repository
                    5. Submit the changes

                    Install Github Desktop

                    Install GitHub Desktop on your computer, and if you don't have it create your own account.

                      Fork the repository

                      The first step is to fork your own copy of the repository you want to work on to your account:

                      1. Go to the Banana Accounting's main page in github
                      2. Click on the repository link
                      3. Click the button Fork on top right of the page
                      4. Select your Account

                      Clone the repository

                      The second step is to clone the forked repository:

                      1. Click the green button Clone or download -> Open in Desktop -> Open link
                      2. Click the button Clone and wait a moment while the forked repository is cloned on your local machine.

                      At this point, you have created on your computer your own copy of the repository, where you can work on the files, create directories etc, as you work as usual.

                      Modify or add files to the repository

                      To work with the repository:

                      1. Start GitHub Desktop
                      2. Choose the repository you like to work on
                      3. Menu Repository -> Show in Explorer
                      4. Work on the files, create directories etc, as you work as usual..
                      5. Commit the changes to your own repository by clicking on Commit and then Pull buttons

                      Submit the changes

                      To submit changes with GitHub desktop:

                      1. Start GitHub Desktop
                      2. Choose the repository
                      3. Click on Menu Branch -> Create Pull Request
                      4. On the opened page of the browser set:
                        1. base fork: select the BananaAccounting repository (example: BananaAccounting/Netherlands)
                        2. base: select the master branch of the BananaAccounting repository
                        3. head fork: select your own repository (example: YourAccountName/Netherlands)
                        4. compare: select the master branch of the repository
                      5. Click the button Create Pull Request
                      6. Add a comment title and a comment text for the pull request
                      7. Click the button Create Pull Request

                      Important: Do not click on the "Close Pull Request" button, or the pull request will be blocked!

                      The repository moderator will receive the pull request, evaluate and approve or refuse the contribution.

                      You will be automatically notified.