Suorituksenaikaiset X++-liiketoimintafunktiot

Tässä artikkelissa kuvataan liiketoiminnan suorituspalvelufunktiot.

Nämä funktiot syöttävät taloustietoja ja laskevat kaavoja.

cTerm

Laskee niiden kausien määrän, jotka nykyiseltä sijoitusarvolta vaaditaan tavoitearvon tuottoa varten.

Syntax

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

Parameters

Parameter Description
interest Korkoprosentti.
future_value Tavoitearvo.
current_value Nykyinen sijoitusarvo.

Return value

future_value saavuttamiseen tarvittavien jaksojen määrä.

Remarks

current_value- ja future_value-parametrien on käytettävä samaa merkkiä (plus tai miinus).

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

Laskee omaisuuden nopeutetun poiston.

Syntax

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

Parameters

Parameter Description
price Omaisuuden ostohinta.
scrap Poistettavan omaisuuden jäljellä oleva arvo.
life Omaisuuden odotettu elinkaari.
period Kausi, jolloin poisto lasketaan.

Return value

Omaisuuden poisto.

Remarks

Tietyn kauden kirjan arvo on sama kuin ostohinta vähennettynä edellisten kausien kertyneillä poistoilla:

  • Kirjan arvo kaudelle 1 = Hinta
  • Kirjan arvo kaudelle 2 = kirjanarvo kaudelle 1 – Poisto kaudelle 1
  • Kirjan arvo kaudelle n = kauden kirja-arvo (n–1) – Poisto kaudelle (n–1)

Poiston laskennassa on kolme muunnelmaa: If Period > Life:

  • Poisto = 0

If (Jakson n kirjanarvo) – ((jakson n kirjanarvo) × 2 ÷ elinkaari) < Jäännösarvo:

  • Poisto = (jakson n kirjanarvo) – Jäännösarvo

Kaikissa muissa tapauksissa: Poisto = (jakson n kirjan arvo) × 2 ÷ poisto . syd - ja sln-funktiot laskevat myös omaisuuden poiston. Syd- ja ddb-funktiot mahdollistavat korkeamman poiston aiempina vuosina, kun taas sln laskee lineaarisen poiston.

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

dg

Laskee osuuden osuuden, joka perustuu myyntihintaan ja ostohintaan. Jos myyntiparametrin arvo on 0,0, laskutoimitusta ei voi tehdä.

Syntax

real dg(real sale, real purchase)

Parameters

Parameter Description
sale Myyntihinta.
purchase Ostohinta.

Return value

Osuussuhde.

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

Laskee sijoituksen tulevan arvon.

Syntax

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

Parameters

Parameter Description
amount Summa, jonka maksoit kullakin kaudella.
interest Korkoprosentti.
life Sijoituskausien määrä.

Return value

Investoinnin tuleva arvo.

Remarks

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

idg

Laskee myyntihinnan ostohinnan ja osallistumissuhteen perusteella.

real idg(real purchase, real contribution_ratio)

Parameters

Parameter Description
purchase Ostohinta.
contribution_ratio Osuussuhde.

Return value

Myyntihinta.

Remarks

Jos osuussuhde on yhtä suuri kuin 1,0, laskelmaa ei voi tehdä. Idg-funktio on käänteinen dg-funktiosta.

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

intvMax

Noutaa määritetyn jakson aikavälien määrän, kun kausi jaetaan osiin func-parametrin määrittämällä tavalla.

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

Parameters

Parameter Description
input_date Jakson loppu, jonka on oltava uudempi kuin ref_date-parametri .
ref_date Kauden alku.
func IntvScale-järjestelmän luettelointiarvo, joka ilmaisee jakoyksikön.

Remarks

Tässä ovat func-parametrin mahdolliset arvot:

  • 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

Palauttaa sen välin nimen, joka on määritetty määrä välejä ennen määritettyä päivämäärää.

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

Parameters

Parameter Description
input_date Päivämäärä ensimmäisellä päivitysvälillä.
col input_date-parametrin määrittämää päivämäärää ennen olevien aikavälien määrä.
func IntvScale-luettelointiarvo.

Return value

Aikavälin nimi.

Remarks

Jos esimerkiksi func-parametri on IntvScale::WeekDay-luettelointiarvo , tämä menetelmä palauttaa viikonpäivän nimen. Jos func-parametri on IntvScale::Week-luettelointiarvo , tämä menetelmä palauttaa merkkijonon, joka sisältää viikon numeron.

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

Laskee kahden päivämäärän välisten aikavälien määrän, kun jaat ajan määritettyihin aikaväleihin.

Syntax

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

Parameters

Parameter Description
input_date Päivämäärä, joka ilmaisee kauden lopun
ref_date Päivämäärä, joka ilmaisee kauden alun.
func IntvScale-luettelointiarvo.

Return value

ref_date- ja input_date-parametrien määrittämien päivämäärien välisten aikavälien määrä.

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

Palauttaa kauden normalisoidun päivämäärän.

Syntax

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

Parameters

Parameter Description
input_date Jakson loppu, jonka on oltava myöhempi kuin ref_date -parametrissa määrittämäsi päivämäärä.
ref_date Kauden alku.
func IntvScale-luettelointiarvo, joka ilmaisee välin jakoyksikön.

Return value

Kauden normalisoitu päivämäärä.

Remarks

Palautettu päivämäärä on yhtä suuri kuin ensimmäisen päivän päivämäärä sillä aikavälillä, jossa ref_date-parametrilla määrittämäsi päivämäärä on olemassa.

Example

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

pmt

Laskee summan, joka sinun on maksettava joka jakso lainan maksamiseksi takaisin.

Syntax

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

Parameters

Parameter Description
objekti Alun perin lainaamasi määrä.
interest Korkoprosentti, jota sovellettiin kullakin kaudella lainaamasi summaan.
life Niiden kausien määrä, joiden aikana laina maksetaan takaisin.

Return value

Joka kausi maksettava summa.

Remarks

Ilmaise elinkaaren ja kiinnostuksen parametrit samoissa aikayksiköissä. Life-parametrin arvon on oltava suurempi kuin 0,0.

Example

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

pt

Hakee luvun summan lisättynä määritetyllä prosenttiosuudella kyseisestä luvusta.

Syntax

real pt(real amount, real percentage)

Parameters

Parameter Description
amount Alkuperäinen numero.
percentage Tämä on prosenttilisä.

Return value

Luku, joka on sama (määrä ×keskus) + summa).

Remarks

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

pv

Laskee annuiteetin nykyisen arvon, jossa saat määrän useille kausille ja korko vähennetään kultakin kaudelta.

Syntax

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

Parameters

Parameter Description
amount Summa, jonka maksat kullakin kaudella.
interest Korkoprosentti.
life Kuinka monta kertaa parametrin määrittämä arvo maksetaan.

Return value

Annuiteetin nykyinen arvo.

Remarks

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

rate

Laskee koron, joka nykyiseltä sijoitusarvolta vaaditaan tulevan arvon saavuttamiseksi määritetyn kausimäärän ajalta.

Syntax

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

Parameters

Parameter Description
_future_value Investoinnin tuleva arvo.
_current_value Investoinnin nykyinen arvo.
_terms Investoinnin kausien määrä.

Return value

Laskettu korkoprosentti.

Remarks

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

sln

Noutaa määritetyn omaisuuden vakiopoistosumman jokaiselle poistokaudelle.

Syntax

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

Parameters

Parameter Description
price Omaisuuden ostohinta.
scrap Resurssin romuarvo.
life Kausien määrä omaisuuden odotetussa käyttöiässä.

Return value

Poistosumma.

Example

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

syd

Laskee omaisuuden poiston määritetyllä kaudella.

Syntax

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

Parameters

Parameter Description
_price Omaisuuden ostohinta.
_scrap Resurssin romuarvo.
_life Omaisuuden odotettu elinikä (kausien määrä).
_period Kausi, jolta poisto lasketaan.

Return value

Poiston määrä määritetyllä kaudella.

Remarks

Sln-funktioon verrattuna syd-funktio voi käyttää omaisuuden nopeutettua poistoa. Samoin kuin ddb-funktion kohdalla, tämä menetelmä aiheuttaa suuremman poiston omaisuuden käyttöiän varhaisina kausina.

Example

Seuraavissa esimerkeissä kausittainen poisto lasketaan resurssille, jonka ostohinta on 10 000, romuarvolle 2 000 ja jonka käyttöikä on 5. Vertailussa sln(10000,2000,5) laskee kullekin kaudelle 1 600,00.

// 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

Laskee niiden kausien määrän, jotka investoinnin on suoritettava.

Syntax

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

Parameters

Parameter Description
amount Kausittaisen sijoituksen määrä.
interest Kunkin kauden korkoprosentti.
future_value Investoinnille ennakoitu tuleva arvo

Return value

Niiden kausien määrä, jolta sijoituksen on käynnistyttävä.

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