Delen via


Zakelijke X++-runtimefuncties

Opmerking

Community-belangengroepen zijn nu verplaatst van Yammer naar Microsoft Viva Engage. Als u wilt deelnemen aan een Viva Engage-community en deel wilt nemen aan de meest recente discussies, vult u het formulier Toegang aanvragen tot Finance and Operations Viva Engage Community in en kiest u de community waaraan u wilt deelnemen.

In dit artikel worden de runtimefuncties van het bedrijf 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.

Syntaxis

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

Parameterwaarden

Kenmerk Description
rente Het rentepercentage.
future_value De doelwaarde.
current_value De huidige investeringswaarde.

Retourwaarde

Het aantal perioden dat nodig is om future_value te bereiken.

Opmerkingen

De parameters current_value en future_value moeten hetzelfde voorvoegsel (plus- of minteken) hebben.

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.

Syntaxis

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

Parameterwaarden

Kenmerk Description
prijs De aankoopprijs van het activum.
schroot De resterende waarde van het activum dat is afgeschreven.
leven De verwachte levensduur van de asset.
period De termijn voor het berekenen van de afschrijving.

Retourwaarde

De afschrijving van het activum.

Opmerkingen

De boekwaarde voor een bepaalde periode is gelijk aan de aankoopprijs minus 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.

Syntaxis

real dg(real sale, real purchase)

Parameterwaarden

Kenmerk Description
verkoop De verkoopprijs.
kopen De aankoopprijs.

Retourwaarde

De bijdrageverhouding.

Opmerkingen

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.

Syntaxis

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

Parameterwaarden

Kenmerk Description
aantal Het bedrag dat in elke periode is betaald.
rente Het rentepercentage.
leven Het aantal investeringsperioden.

Retourwaarde

De toekomstige waarde van de investering.

Opmerkingen

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)

Parameterwaarden

Kenmerk Description
kopen De aankoopprijs.
contribution_ratio De bijdrageverhouding.

Retourwaarde

De verkoopprijs.

Opmerkingen

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)

Parameterwaarden

Kenmerk 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.

Opmerkingen

Hier volgen de mogelijke waarden voor de func-parameter :

  • Geen
  • YearMonthDay
  • YearMonth
  • Jaar
  • MonthDay
  • Maand
  • Day
  • YearQuarter
  • Kwartaal
  • YearWeek
  • Week
  • Weekdag

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)

Parameterwaarden

Kenmerk 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 .

Retourwaarde

De naam van het interval.

Opmerkingen

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.

Syntaxis

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

Parameterwaarden

Kenmerk 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 .

Retourwaarde

Het aantal intervallen tussen de datums die zijn opgegeven door de parameters ref_date en input_date .

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.

Syntaxis

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

Parameterwaarden

Kenmerk Description
input_date Het einde van de periode, die later moet zijn dan de datum die is opgegeven door de parameter ref_date .
ref_date Het begin van de periode.
func Een intvScale-opsommingswaarde die de intervalverdelingseenheid aangeeft.

Retourwaarde

De genormaliseerde datum voor de periode.

Opmerkingen

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

Example

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

Bet

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

Syntaxis

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

Parameterwaarden

Kenmerk Description
voornaamste Het bedrag dat oorspronkelijk is geleend.
rente De rente die elke termijn wordt toegepast op het bedrag dat is geleend.
leven Het aantal termijnen waarvoor de lening wordt terugbetaald.

Retourwaarde

Het bedrag dat elke periode moet worden betaald.

Opmerkingen

De duur - en renteparameters moeten in dezelfde tijdseenheden worden uitgedrukt. 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.

Syntaxis

real pt(real amount, real percentage)

Parameterwaarden

Kenmerk Description
aantal Het oorspronkelijke nummer.
procent Het percentage supplement.

Retourwaarde

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

Opmerkingen

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 een bedrag wordt ontvangen over meerdere perioden en het rentepercentage voor elke periode wordt afgetrokken.

Syntaxis

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

Parameterwaarden

Kenmerk Description
aantal Het bedrag dat tijdens elke periode wordt betaald.
rente Het rentepercentage.
leven Het aantal keren dat de waarde die door de parameter voor het bedrag is opgegeven, wordt betaald.

Retourwaarde

De huidige waarde van een annuïteit.

Opmerkingen

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

verhouding

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

Syntaxis

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

Parameterwaarden

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

Retourwaarde

Het berekende rentepercentage.

Opmerkingen

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

sln

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

Syntaxis

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

Parameterwaarden

Kenmerk Description
prijs De aankoopprijs van het activum.
schroot De knipselwaarde van de asset.
leven Het aantal perioden in de verwachte levensduur van het activum.

Retourwaarde

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.

Syntaxis

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

Parameterwaarden

Kenmerk Description
_prijs De aankoopprijs van het activum.
_schroot De knipselwaarde van de asset.
_leven De verwachte levensduur van het activum (het aantal perioden).
_periode De termijn voor het berekenen van de afschrijving voor.

Retourwaarde

Het afschrijvingsbedrag gedurende de opgegeven periode.

Opmerkingen

In tegenstelling tot de sln-functie kan de syd-functie een versnelde afschrijving van het activum mogelijk maken. Net als bij de ddb-functie maakt dit een hogere afschrijving mogelijk 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 1600,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);

termijn

Berekent het aantal perioden waarvoor een investering moet worden uitgevoerd.

Syntaxis

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

Parameterwaarden

Kenmerk Description
aantal Het bedrag van de periodieke investering.
rente Het rentepercentage voor elke periode.
future_value De toekomstige waarde die wordt verwacht voor de investering

Retourwaarde

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;
}