Zakelijke X++-runtimefuncties

In dit artikel worden de business runtime-functies beschreven.

Met deze functies worden financiële gegevens ingevoerd en formules berekend.

cTerm

Berekent het aantal perioden dat nodig is voor de huidige investeringswaarde om een doelwaarde te opleveren.

Syntax

real cTerm(real interest, real future_value, real current_value)

Parameters

Parameter Description
interest Het rentepercentage.
future_value De doelwaarde.
current_value De huidige investeringswaarde.

Return value

Het aantal perioden dat nodig is om future_value te bereiken.

Remarks

De parameters current_value en future_value moeten hetzelfde teken (plus- of minteken) gebruiken.

Example

static void cTermExample(Args _arg)
{
    real r;
    ;
    r = cTerm(10.0, 500.00, 100.00);
    print "The cTerm is " + num2Str(r, 2, 2, 1, 1);
    pause;
}

ddb

Berekent de versnelde afschrijving van een activum.

Syntax

real ddb(real price, real scrap, real life, int period)

Parameters

Parameter Description
price De aankoopprijs van het activum.
scrap De resterende waarde van het activum dat u afschrijft.
life De verwachte levensduur van de asset.
period De termijn voor het berekenen van de afschrijving.

Return value

De afschrijving van het activum.

Remarks

De boekwaarde voor een specifieke periode is gelijk aan de aankoopprijs min de cumulatieve afschrijving voor eerdere perioden:

  • Boekwaarde voor Periode 1 = Prijs
  • Boekwaarde voor Periode 2 = Boekwaarde voor Periode 1 – Afschrijving voor Periode 1
  • Boekwaarde voor Periode n = Boekwaarde voor Periode (n–1) – Afschrijving voor periode (n-1)

Er zijn drie variaties voor de berekening van de afschrijving: If Period > Life:

  • Afschrijving = 0

If (Boekwaarde voor Punt n) – ((Boekwaarde voor Punt n) × 2 ÷ Levensduur) < Restwaarde:

  • Afschrijving = (boekwaarde voor periode n) – restwaarde

In alle andere gevallen: Afschrijving = (Boekwaarde voor periode n) × 2 ÷ Levensduur De syd - en sln-functies berekenen ook de afschrijving van een activum. De functies syd en ddb maken een hogere afschrijving mogelijk voor de eerdere jaren, terwijl sln een lineaire afschrijving berekent.

ddb(12000,2000,10,1); //Returns the value 2400.
ddb(12000,2000,10,3); //Returns the value 1536.

dg

Berekent de bijdrageverhouding, die is gebaseerd op de verkoopprijs en de inkoopprijs. Als de waarde van de verkoopparameter0,0 is, kan de berekening niet worden uitgevoerd.

Syntax

real dg(real sale, real purchase)

Parameters

Parameter Description
sale De verkoopprijs.
purchase De aankoopprijs.

Return value

De bijdrageverhouding.

Remarks

dg(1000,300); //Returns the value 0.7.
dg(100,30); //Returns the value 0.7.
dg(20000, 11000); //Returns the value 0.45.

fV

Berekent de toekomstige waarde van een investering.

Syntax

real fV(real amount, real interest, real life)

Parameters

Parameter Description
amount Het bedrag dat u in elke periode hebt betaald.
interest Het rentepercentage.
life Het aantal investeringsperioden.

Return value

De toekomstige waarde van de investering.

Remarks

fV(100,0.14,10); //Returns the value 1933.73.
fV(400,0.10,5); //Returns the value 2442.04.

idg

Berekent de verkoopprijs op basis van de inkoopprijs en de bijdrageverhouding.

real idg(real purchase, real contribution_ratio)

Parameters

Parameter Description
purchase De aankoopprijs.
contribution_ratio De bijdrageverhouding.

Return value

De verkoopprijs.

Remarks

Als de bijdrageverhouding gelijk is aan 1,0, kan de berekening niet worden uitgevoerd. De idg-functie is de inverse van de dg-functie .

idg(300,0.7); //Returns the value 1000.
idg(11000,0.45); //Returns the value 20000.

intvMax

Haalt het aantal intervallen op voor de opgegeven periode wanneer de periode is onderverdeeld in delen zoals opgegeven door de func-parameter .

int intvMax(date input_date, date ref_date, int func)

Parameters

Parameter Description
input_date Het einde van de periode, die later moet zijn dan de parameter ref_date .
ref_date Het begin van de periode.
func Een IntvScale-systeemumeratiewaarde die de afdelingseenheid aangeeft.

Remarks

Hier volgen de mogelijke waarden voor de func-parameter :

  • None
  • YearMonthDay
  • YearMonth
  • Year
  • MonthDay
  • Month
  • Day
  • YearQuarter
  • Quarter
  • YearWeek
  • Week
  • WeekDay

Example

static void intvMaxExample()
{
    date refDate = str2Date("4/9/2007", 213);
    date inputDate = str2Date("10/5/2007", 213);
    int numberOfIntervals;
    ;
    numberOfIntervals = intvMax(inputDate, refDate, intvScale::YearMonth);
    print numberOfIntervals;
    pause;
}

intvName

Retourneert de naam van het interval dat het opgegeven aantal intervallen vóór de opgegeven datum is.

str intvName(date input_date, int col, enum func)

Parameters

Parameter Description
input_date Een datum in het eerste interval.
col Het aantal intervallen vóór de datum die is opgegeven door de parameter input_date .
func Een intvScale-opsommingswaarde .

Return value

De naam van het interval.

Remarks

Als de func-parameter bijvoorbeeld de opsommingswaarde IntvScale::WeekDay is, retourneert deze methode de naam van de weekdag. Als de func-parameter de opsommingswaarde IntvScale::Week is, retourneert deze methode een tekenreeks die het nummer van de week bevat.

Example

static void intvNameExample(Args _args)
{
    date refDate = 2672010;
    str name;
    ;
    name = intvName(refDate, 3,  intvScale::WeekDay);
    Global::info(strfmt("%1 is the output, which indicates the day of the week 3 days after 26\7\2010.", name));
}
/**** Infolog display.
Message (09:56:55 am)
Thu is the output, which indicates the day of the week 3 days after 2672010.
****/

intvNo

Berekent het aantal intervallen tussen twee datums wanneer u de tijd opsplitst in de opgegeven intervallen.

Syntax

int intvNo(date input_date, date ref_date, int func)

Parameters

Parameter Description
input_date Een datum die het einde van de periode aangeeft
ref_date Een datum die het begin van de periode aangeeft.
func Een intvScale-opsommingswaarde .

Return value

Het aantal intervallen tussen de datums die de ref_date en input_date parameters opgeven.

Example

static void intvNoExample(Args _args)
{
    date inputDate = str2Date("1/1/2007", 213);
    date refDate = str2Date("3/1/2007", 213);
    int noOfIntervals;
    ;
    noOfIntervals = intvNo(refDate, inputDate, intvScale::Month);
    print noOfIntervals;
    pause;
    //noOfIntervals now holds the difference in months between March and January (2).
}

intvNorm

Retourneert de genormaliseerde datum voor de periode.

Syntax

date intvNorm(date input_date, date ref_date, int func)

Parameters

Parameter Description
input_date Het einde van de periode, die later moet zijn dan de datum die u opgeeft in de parameter ref_date .
ref_date Het begin van de periode.
func Een intvScale-opsommingswaarde die de intervalverdelingseenheid aangeeft.

Return value

De genormaliseerde datum voor de periode.

Remarks

De geretourneerde datum is gelijk aan de datum van de eerste dag in het interval waarin de datum die u opgeeft in de parameter ref_date bestaat.

Example

static void example()
{
    print intvNorm(today(), today()-1, IntVScale::WeekDay);
    pause;
}

pmt

Berekent het bedrag dat u elke periode moet betalen om een lening terug te betalen.

Syntax

real pmt(real principal, real interest, real life)

Parameters

Parameter Description
principal Het bedrag dat u oorspronkelijk hebt geleend.
interest Het rentepercentage is elke periode toegepast op het bedrag dat u hebt geleend.
life Het aantal termijnen waarvoor u de lening terugbetaalt.

Return value

Het bedrag dat u elke periode moet betalen.

Remarks

De levens- en renteparameters in dezelfde tijdseenheden uitdrukken. De waarde van de levensduurparameter moet groter zijn dan 0,0.

Example

pmt(4000,0.14,4); //Returns the value 1372.82.
pmt(10000,0.10,20); //Returns the value 1174.60.

pt

Haalt de som van een getal plus een opgegeven percentage van dat getal op.

Syntax

real pt(real amount, real percentage)

Parameters

Parameter Description
amount Het oorspronkelijke nummer.
percentage Het percentage supplement.

Return value

Het getal dat gelijk is aan ((bedrag ×percentage) + bedrag).

Remarks

pt(2000.0,0.10); //Returns the value 2200.0.
pt(20.0,0.10); //Returns the value 22.0.

pv

Berekent de huidige waarde van een annuïteit, waarbij u een bedrag ontvangt over meerdere perioden en het rentepercentage voor elke periode wordt afgetrokken.

Syntax

real pv(real amount, real interest, real life)

Parameters

Parameter Description
amount Het bedrag dat u gedurende elke periode betaalt.
interest Het rentepercentage.
life Het aantal keren dat de waarde die door de parameter voor het bedrag is opgegeven, wordt betaald.

Return value

De huidige waarde van een annuïteit.

Remarks

pv(300,0.14,4); //Returns the value 874.11.

rate

Berekent de rente die vereist is voor de huidige investeringswaarde om de toekomstige waarde te bereiken gedurende het opgegeven aantal perioden.

Syntax

real rate(real _future_value, real _current_value, real _terms)

Parameters

Parameter Description
_future_value De toekomstige waarde van de investering.
_current_value De huidige waarde van de investering.
_terms Het aantal perioden dat de investering omvat.

Return value

Het berekende rentepercentage.

Remarks

rate(10000,1000,20); //Returns the value 0.12.

sln

Haalt het constante afschrijvingsbedrag op voor de opgegeven activa voor elke afschrijvingsperiode.

Syntax

real sln(real price, real scrap, real life)

Parameters

Parameter Description
price De aankoopprijs van het activum.
scrap De knipselwaarde van de asset.
life Het aantal perioden in de verwachte levensduur van het activum.

Return value

Het afschrijvingsbedrag.

Example

static void slnExample(Args _arg)
{
    real r;
    ;
    r = sln(100.00, 50.00, 50.00);
    print r;
    pause;
}

syd

Berekent de afschrijving van een actief gedurende een opgegeven periode.

Syntax

real syd(real _price, real _scrap, real _life, int _period)

Parameters

Parameter Description
_price De aankoopprijs van het activum.
_scrap De knipselwaarde van de asset.
_life De verwachte levensduur van het activum (het aantal perioden).
_period De termijn voor het berekenen van de afschrijving voor.

Return value

Het afschrijvingsbedrag gedurende de opgegeven periode.

Remarks

In tegenstelling tot de sln-functie kan de syd-functie versnelde afschrijving voor het activum gebruiken. Net als bij de ddb-functie resulteert deze benadering in een hogere afschrijving tijdens de vroege perioden van de levensduur van een activum.

Example

In de volgende voorbeelden wordt de periodieke afschrijving berekend voor een activum met een aankoopprijs van 10.000, een schrootwaarde van 2000 en een levensduur van 5. Ter vergelijking: sln(10000.2000,5) berekent 1.600,00 voor elke periode.

// Returns the value 2666.67 (for the 1st period).
syd(10000,2000,5,1);
// Returns the value 2133.33 (for the 2nd period).
syd(10000,2000,5,2);
// Returns the value 1600.00 (for the 3rd period).
syd(10000,2000,5,3);
// Returns the value 1066.67 (for the 4th period).
syd(10000,2000,5,4);
// Returns the value 533.33 (for 5th - and final- period).
syd(10000,2000,5,5);

term

Berekent het aantal perioden waarvoor een investering moet worden uitgevoerd.

Syntax

real term(real amount, real interest, real future_value)

Parameters

Parameter Description
amount Het bedrag van de periodieke investering.
interest Het rentepercentage voor elke periode.
future_value De toekomstige waarde die wordt verwacht voor de investering

Return value

Het aantal perioden waarvoor de investering moet worden uitgevoerd.

Example

static void termExample(Args _args)
{
    print term(400,0.08,5000);  //returns the value '9.01'.
    print term(100,0.14,3000);  //returns the value '12.58'.
    pause;
}