Javascript formules in de budgettabel

Documentatie •
In dit artikel

De mogelijkheid om formules te gebruiken is alleen beschikbaar in Banana Boekhouding Plus met het Advanced plan. Update nu!

Kolom Formule

In de kolom Formule kunt u berekeningsformules invoeren. Daarmee kunnen de budgetbedragen berekend worden  op basis van andere bedragen in hetzelfde budget (zie Voorbeelden van formules).

  • Geef de kosten aan van goederen als een percentage van de verkopen.
  • Verhoog uw verkopen budget als een percentage van de groei.
  • Bereken aan het eind van het jaar de afschrijving gebaseerd op de waarde van de investeringen.
  • Bereken elk kwartaal de rente op de bankrekening gebaseerd op het werkelijk gebruik (dagen / 365).
  • Bereken elke maand de rente op de bankrekening gebaseerd op het werkelijk gebruik (dagen / 365).

Wanneer u een waarde/formule in de kolom Formule invoert wordt de kolom Bedrag berekend door het programma gebaseerd op die waarde/formule.

Zoals uitgelegd in de documentatie van de tabel Budget, kunt u ook Javascript formules gebruiken:

  • In de kolom Formule Begin
  • In de kolom Omschrijving, voor herhalende rijen.

 

Voorbeeld bestanden

Voor voorbeelden van de formules zie de uitleg op de volgende pagina's:

Voorbeeld van gebruik van formules

Formules om mee te rekenen in Javascript

  • De formule moet uitgedrukt worden in de programmeertaal Javascript (niet te verwarren met de programmeertaal Java).
  • Als er een formule is (of enige tekst) wordt het resultaat in de kolom Bedrag gezet.
  • U kunt alle Javascript functies gebruiken en ook de functies die geleverd worden door de API van Banana.

Decimalen scheidingsteken

Javascript gebruikt alleen de punt "." als scheidingsteken voor de cijfers achter de komma.
Als u een ander scheidingsteken gebruikt, bijvoorbeeld het teken voor getallen in lokaal formaat, wordt het getal afgebroken.

 

Bedrag = resultaat van de laatste instructie

In Javascript wordt de puntkomma ";" gebruikt om expressies te scheiden. Als de Javascript formule meerdere expressies bevat, gescheiden door ";", is de waarde van de kolom Bedrag het resultaat van de laatst uitgevoerde expressie. Expressies worden van links naar rechts uitgevoerd.

  • 10*3 //30 wordt teruggegeven
  • Als er een reeks van meerdere operaties is gescheiden door een puntkomma ";" wordt het resultaat van de laatste operatie teruggegeven.
    10*3;7; //7 wordt teruggegeven
  • Als er een return wordt uitgevoerd wordt waarde van de return teruggegeven.
    return 10; // 10 wordt teruggegeven.

Variabelen

Javascript variabelen zijn de krachtigste programmeerelementen omdat ze u toegang tot het computergeheugen geven met een naam, u ze kunt opslaan en ophalen met deze naam.
Variabelen bestaan niet in Excel formules maar zijn gelijkwaardig aan de naam van de cellen met het verschil dat de naam zelf toegekend kan worden.

Voorbeeld van Javascript variabelen, budget formules

De variabele wordt aangemaakt door een naam te geven en een isgelijkteken (=) te gebruiken.

U kunt variabelen direct binnen rijen definiëren. Door de variabelenaam in een formule te gebruiken wordt de opgeslagen waarde overgenomen.

De variabel prijs wordt hier gecreëerd en is en de waarde 10 wordt eraan toegekend.

var prijs = 10;

of eenvoudig

prijs = 10;

hierna maken we variabel totaal aan waaraan de waarde van prijs vermenigvuldigd met 5 wordt toegekend.

totaal = prijs * 5;

De waarde van de variabele kan worden veranderd.

prijs = 20;

Objecten

Javascipt objecten zijn variabelen waarin u meerdere waardes kunt opslaan die ieder worden aangegeven als een eigenschap.
Het object prijzen wordt hierna aangemaakt met lege kromme haken. Om de waardes op te halen en op te slaan gebruikt u vierkante haken of geeft u de naam van de eigenschap aan achter het object gescheiden door een punt.

prijzen = {}
prijzen['auto'] = 10;
prijzen.auto = 10;
prijzen['computer'] = 20;
prijzen.computer = 20;

Array

Javascript Arrays worden gedefinieerd door vierkante haken te gebruiken; daarmee worden ze ook benaderd.
Het eerste element van het array heeft index 0.

kosten = [1,2,3];
kosten[0]=3;
resultaat = prijzen['car'] - kosten[0];

Herhaling en variabelen

Voor meer informatie over de volgorde van de berekening zie Planning gebaseerd op de Dubbel boekhouden methode.

  • Alle rijen (ook die voor herhalingen) worden gesorteerd op datum. Indien er rijen zijn met dezelfde datum, is de volgorde die van hun invoeging in de tabel.
  • Na het sorteren worden de rijen (inclusief de formules) herberekend.
  • In de formules hebt u daardoor alleen toegang tot de begrotingsgegevens tot die datum.
  • Een variabele moet worden gedefinieerd in een rij waarvan de datum voorafgaat aan de rij waarin zij wordt gebruikt.
  • Indien de begrotingspost een herhaling heeft, zal de variabele telkens opnieuw worden toegewezen.
    som = 10;
  • Als u in plaats daarvan het totaal wilt berekenen.
    • Maak in een eerste regel de variabele met waarde nul.
      som = 0;
    • In de regel die zich herhaalt in de som ook de vorige waarde opnemen.
      som = som + 10;
      of gebruik de "+="
      som += 10

Automatische variabelen

  • budgetCurrent
    Is een tabel die de budgetrijen bevat na de aanmaak van de herhalingen. Deze worden gebruikt om waardes vast te leggen in samenhang met JRepeatNumber.
  • DEBUG 
    is een variabele die "true" of "false".
    Als deze "true" is worden in het berichtenvenster alle resultaten van de formules weergegeven.
  • row
    Is een javascript object dat verwijst naar de huidige rij.
    • De waarden van de cellen kan worden opgehaald met de functie value("columnNameXml").
      row.value("date") geeft de de datum van de transactie terug.
    • row.value ("JRepeatNumber") geeft het nummer van de herhaling terug.
      De eerste repetitie is 0.
  • _totalPrice
    Dit is de waarde van de kolom Hoeveelheid vermenigvuldigd met de kolom Eenheid.
    Equivalent aan de de formule "row.value('Quantity')*row.value('UnitPrice')"

Budget Functies

Naast de budget API die is gedefinieerd in de boekhouding klasse API (Engelstalig) zijn er specifieke functies.

BudgetGetPeriod(tDate, periode)

Deze functie wordt gebruikt in combinatie met herhaling.
Wanneer herhalingen worden aangegeven is het aan te raden naar een berekeningsperiode te verwijzen en niet naar een precieze datum.

  • Parameter tDate.
    De datum waarnaar de berekening van de periode verwijst.
    Gewoonlijk de datum van de boekingsregel.
  • Periode parameter.
    Afkortingen:
    • Voor de huidige periode
      • "MC" de huidige maand.
      • "QC" het huidige kwartaal.
      • "YC" het huidige jaar.
      • "MP" de vorige maand.
      • "QP" het vorige kwartaal.
      • "YP" het vorige jaar.
    • In the Experimental version (starting from version 9.1) can also be used
      • "DC" huidige dag
      • "DP" vorige dag
      • "WC" huidige week
      • "WP" vorige week
      • "BC" huidige twee maandelijks (2 maanden)
      • "BP" vorige twee maandelijks
      • "SC" huidige half jaar (semester)
      • "SP" vorige half jaar (semester)
  •  Return waarde.
    Een object bestaande uit twee datums
    • startDate
    • endDate
// example
t = BudgetGetPeriod ('2015-01-01', 'MP') returns
t.startDate // 2014-12-01
t.endDate // 2014-12-31

Specifieke budget functies

De volgende functies zijn gelijk aan degenen die beschikbaar zijn met het object Banana.document, maar kunnen gebruikt worden zonder het object Banana.document aan te geven.

Houd er rekening mee dat:

  • In plaats van de startDate parameter kunt u een van de afkortingen "MC", "QC", "YC", "MP", "QP", "YP" gebruiken die uitgelegd zijn in de functie budgetGetPeriod.
  • Als de periode wordt gespecificeerd als de datum wordt de datum van de huidige boeking gebruikt.
  • Het is zinvol om de einddatum alleen te gebruiken als deze eerder is dan de datum van de rij.
    Als deze gelijk of later is heeft dit geen effect omdat de waardes na de huidige rij nog niet beschikbaar zijn omdat deze rijen nog niet verwerkt zijn.
  • Als de datum van de transactierij 15 april is:
    • budgetBalance("1000","MP") geeft het saldo van rekening 1000 aan het eind van maart.
    • budgetBalance("1000","MC") geeft het saldo op het huidige moment, is hetzelfde als budgetBalance("1000").
    • budgetTotal("1000","QP") geeft het totaal van de mutaties van het vorige kwartaal.
    • budgetTotal("1000","QC") geeft het totaal van de mutaties van het vorige kwartaal tot de huidige datum.

budgetBalance(rekening, startDate, endDate, extraParam)

Het saldo tot aan de huidige rij.

budgetBalance('1000', 'MP'); //geeft het saldo van 1000 aan het eind van de vorige maand

budgetOpening(rekening, startDate, endDate, extraParam)

Het saldo aan het begin van de periode.

budgetTotal(rekening, startDate, endDate, extraParam)

Het verschil tussen de debet en credit mutaties van de periode.

budgetTotal('1000', 'MC'); //geeft het totaal van de mutaties van rekening 1000 voor the huidige maand

budgetInterest( rekening, interest, startDate, endDate, extraParam)

Berekent de rente op een rekening voor de aangegeven periode (tot maximaal de huidige datum).
Als u deze functie gebruikt om de rente op een rekening te berekenen aan het einde van de periode moet de rij waarin de formule staat altijd de laatste van deze datum zijn.

  • rekening parameter
    Dit is het rekeningnummer waarop de rente van de mutaties wordt berekend.
  • interest parameter,
    Geeft de rente aan in procenten.
    • Positief (2.5, 4, 10) berekent de rente op de debet mutaties van de rekening.
    • Negatief (-2.5, -4, -10) berekent de rente op de credit mutaties van de rekening.

credit(bedrag)

  • Als de bedrag parameter negatief is geeft dit het bedrag positief terug.
    credit(-100) // geeft 100 terug
  • Als de bedrag parameter positief is geeft dit 0 (nul) terug.
  • credit(100) // geeft 0 (nul) terug

Deze functie is nuttig samen met de andere budgetBalance functies om alleen op de saldi te werken die u nodig heeft.
Als u het percentage op verkopen wilt berekenen is het makkelijker deze functie te gebruiken.
credit(budgetTotal('1000')) // voer de waarde alleen in als deze negatief is.

debit(bedrag)

  • Als de bedrag parameter positief is geeft deze functie het bedrag terug.
    debit(100) // geeft 100 terug
  • Als de bedrag parameter negatief is geeft deze functie 0 (nul) terug.
  • debit(-100) // geeft 0 terug

Nuttig als u berekeningen moet maken met alleen het debet bedrag en het gebruik van het credit bedrag wilt vermijden.

include

Sluit een javascript bestand in en voert dit uit met de mogelijkheid om eigen functies en variabelen te creëren die gebruikt kunnen worden in het script.

  • include "file:test.js" 
    Voert de inhoud van het aangegeven bestand uit. De naam verwijst naar het bestand waarin men aan het werk is.
  • include "documents:test.js" 
    Voert de inhoud uit van het tekst document dat in de documententabel staat.
    Dit moet een bestand zijn van het type "text/javascript".

Functies voor vreemde valuta boekhouding

Deze kunnen ook gebruikt worden voor een boekhouding zonder vreemde valuta; in dit geval is de rekening altijd in basis valuta.

budgetBalanceCurrency(rekening, startDate, endDate, extraParam)

Het saldo in de valuta van de rekening tot aan de huidige regel.

budgetExchangeDifference (rekening, [datum, exchangeRate])

Deze formule roept de Banana.document.budgetExchangeDifference (Engelstalig) functie aan.

budgetOpeningCurrency(rekening, startDate, endDate, extraParam)

Het saldo in de valuta van de rekening aan het begin van de periode.

budgetTotalCurrency(rekening, startDate, endDate, extraParam)

Het verschil tussen de debet en credit mutaties van de periode.

Door de gebruiker gedefinieerde functies

De gebruiker kan eigen functies definiëren met de taal Javascript en deze aanroepen in formules.
Het is mogelijk functies te definiëren:

  • Direct in een formule
  • In een bijlage die de Javascript code bevat; deze bijlage moet als rij-id de naam "_budget.js" hebben.
  • In een tekst van de tabel Documenten die ingesloten moet worden met het include commando.

Let op:
In gebruikersfuncties is het nu niet mogelijk functies te gebruiken die huidig boekhoudgegevens ophalen.
(currentBalance, ...).

function Taxcalculation(winst)
{
   var percentage = 10;
   if (winst > 50000)
      percentage = 10;
   else if (winst > 100000)
      percentage =20;
   return winst * percentage / 100;
}
Tell us how we can help you better
If the information on this page is not what you're looking for, is not clear enough, or is not up-to-date, let us know.

Share this article: Twitter | Facebook | LinkedIn | Email