Funkcie X++ business runtime

Poznámka

Záujmové skupiny komunity sa teraz presunuli z Yammera do Microsoft Viva Engage. Ak sa chcete pripojiť ku komunite Viva Engage a zúčastniť sa najnovších diskusií, vyplňte formulár Vyžadovanie prístupu k Viva Engage Finance and Operations Viva Engage Komunite a vyberte komunitu, ku ktorému sa chcete pripojiť.

Tento článok popisuje funkcie podnikového modulu runtime.

Tieto funkcie zadávavajú finančné údaje a vypočítavajú vzorce.

cTerm

Vypočíta počet období, ktoré sú potrebné pre aktuálnu hodnotu investície, aby priniesla cieľovú hodnotu.

Syntax

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

Parametre

Parameter Popis
úrok Úroková sadzba.
future_value Cieľová hodnota.
current_value Aktuálna hodnota investície.

Vrátená hodnota

Počet období, ktoré sa vyžadujú na dosiahnutie future_value.

Poznámky

Parametre current_value a future_value musia používať rovnaké znamienko (plus alebo mínus).

Príklad

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

Vypočíta zrýchlené odpisovanie majetku.

Syntax

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

Parametre

Parameter Popis
cena Nákupná cena majetku.
šrot Zostatková hodnota majetku, ktorý odpíšete.
život Očakávaná životnosť majetku.
perióda Obdobie na výpočet odpisov.

Vrátená hodnota

Odpis majetku.

Poznámky

Účtovnej hodnoty pre konkrétne obdobie sa rovná nákupnej cene mínus akumulované odpisy za predchádzajúce obdobia:

  • Knižná hodnota pre Obdobie 1 = Cena
  • Knižná hodnota pre Obdobie 2 = Knižná hodnota pre Obdobie 1 – Odpis za obdobie 1
  • Knižná hodnota pre Obdobie n = Knižná hodnota pre Obdobie (n–1) – Odpis za obdobie (n –1)

Pri výpočte odpisov existujú tri varianty: Ak je životnosť obdobia > :

  • Odpisy = 0

Ak (Knižná hodnota pre Obdobie n) – ((Knižná hodnota pre Obdobie n) × 2 ÷ Životnosť) < Zostatková hodnota:

  • Odpis = (účtovná hodnota pre Obdobie n) – Zostatková hodnota

Vo všetkých ostatných prípadoch: Odpis = (Účtovná hodnota pre obdobie n) × 2 ÷ life Funkcie syd a sln tiež vypočítavajú odpis majetku. Funkcie syd a ddb umožňujú vyššie odpisy za predchádzajúce roky, zatiaľ čo sln vypočíta lineárne odpisy.

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

Gr

Vypočíta pomer príspevkov založený na predajnej cene a nákupnej cene. Ak je hodnota parametra predajná hodnota 0,0, výpočet sa nedá vykonať.

Syntax

real dg(real sale, real purchase)

Parametre

Parameter Popis
predaj Predajná cena.
nákup Nákupná cena.

Vrátená hodnota

Pomer príspevkov.

Poznámky

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

Vypočíta budúcu hodnotu investície.

Syntax

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

Parametre

Parameter Popis
množstvo Suma, ktorú ste zaplatili v rámci každého obdobia.
úrok Úroková sadzba.
život Počet investičných období.

Vrátená hodnota

Budúca hodnota investície.

Poznámky

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

idg

Vypočíta predajnú cenu na základe nákupnej ceny a pomeru príspevku.

real idg(real purchase, real contribution_ratio)

Parametre

Parameter Popis
nákup Nákupná cena.
contribution_ratio Pomer príspevkov.

Vrátená hodnota

Predajná cena.

Poznámky

Ak sa pomer príspevku rovná 1,0, výpočet sa nedá vykonať. Funkcia idg je inverznou funkciou gr.

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

intvMax

Vráti počet intervalov pre zadané obdobie, keď je bodka rozdelená do častí, ako je určené parametrom func .

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

Parametre

Parameter Popis
input_date Koniec obdobia, ktorý musí byť neskorší ako parameter ref_date .
ref_date Začiatok obdobia.
func Hodnota enumerácie systému IntvScale , ktorá označuje jednotku delenia.

Poznámky

Tu sú možné hodnoty pre func parameter:

  • None
  • YearMonthDay (RokMesiac)
  • YearMonth (RokMesiac)
  • Rok
  • MonthDay (DeňMesiaca
  • Mesiac
  • Deň
  • RokQuarter
  • Štvrťrok
  • YearWeek (RokWeek)
  • Týždeň
  • Všedný deň

Príklad

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

Vráti názov intervalu, ktorý je zadaným počtom intervalov pred zadaným dátumom.

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

Parametre

Parameter Popis
input_date Dátum v prvom intervale.
stĺpec Počet intervalov pred dátumom, ktorý je zadaný parametrom input_date .
func Hodnota enumerácie intvScale .

Vrátená hodnota

Názov intervalu.

Poznámky

Ak je napríklad parameter func hodnotu enumerácie IntvScale::WeekDay , táto metóda vráti názov dňa v týždni. Ak je func parameter enumerácie IntvScale::Week , táto metóda vráti reťazec obsahujúci číslo týždňa.

Príklad

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

Vypočíta počet intervalov medzi dvomi dátumami, keď rozdelíte čas do zadaných intervalov.

Syntax

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

Parametre

Parameter Popis
input_date Dátum označujúci koniec obdobia
ref_date Dátum označujúci začiatok obdobia.
func Hodnota enumerácie intvScale .

Vrátená hodnota

Počet intervalov medzi dátumami zadanými ref_date a parametrami input_date .

Príklad

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

Vráti normalizovaný dátum pre obdobie.

Syntax

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

Parametre

Parameter Popis
input_date Koniec obdobia, ktorý musí byť neskorší ako dátum, ktorý zadáte v parametri ref_date .
ref_date Začiatok obdobia.
func Hodnota enumerácie intvScale , ktorá označuje jednotku delenia intervalu.

Vrátená hodnota

Normalizovaný dátum pre obdobie.

Poznámky

Vrátený dátum sa rovná dátumu prvého dňa v intervale, v ktorom existuje dátum, ktorý zadáte v parametri ref_date .

Príklad

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

Pmt

Vypočíta sumu, ktorú musíte zaplatiť za každé obdobie, aby ste splácali úver.

Syntax

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

Parametre

Parameter Popis
autorita zabezpečenia Suma, ktorú ste si pôvodne požičali.
úrok Úroková sadzba sa uplatnila na každé obdobie na sumu, ktorú ste si požičali.
život Počet období, počas ktorých splácate úver.

Vrátená hodnota

Suma, ktorú musíte zaplatiť za každé obdobie.

Poznámky

Vyjadrite parametre životnosti a záujmu v rovnakých časových jednotkách. Hodnota parametra life musí byť väčšia ako 0,0.

Príklad

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

Pt

Vráti súčet čísla plus zadanú percentuálnu hodnotu tohto čísla.

Syntax

real pt(real amount, real percentage)

Parametre

Parameter Popis
množstvo Pôvodné číslo.
percento Percentuálny doplnok.

Vrátená hodnota

Číslo, ktoré sa rovná ((suma ×percentage) + suma).

Poznámky

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

Pv

Vypočíta súčasnú hodnotu anuity, kde dostanete sumu v priebehu viacerých období a úroková sadzba sa odpočíta pre každé obdobie.

Syntax

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

Parametre

Parameter Popis
množstvo Suma, ktorú zaplatíte počas každého obdobia.
úrok Úroková sadzba.
život Počet zaplatení hodnoty zadanej parametrom amount .

Vrátená hodnota

Aktuálna hodnota anuity.

Poznámky

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

sadzba

Vypočíta úrok, ktorý sa vyžaduje pre aktuálnu hodnotu investície na dosiahnutie budúcej hodnoty v zadanom počte období.

Syntax

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

Parametre

Parameter Popis
_future_value Budúca hodnota investície.
_current_value Aktuálna hodnota investície.
_podmienky Počet období, na ktoré sa investícia vzťahuje.

Vrátená hodnota

Vypočítaná úroková sadzba.

Poznámky

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

sln

Načíta konštantnú čiastku odpisov pre zadaný majetok pre každé obdobie odpisov.

Syntax

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

Parametre

Parameter Popis
cena Nákupná cena majetku.
šrot Hodnota zápisu majetku.
život Počet období v očakávanej životnosti majetku.

Vrátená hodnota

Čiastka odpisov.

Príklad

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

Syd

Vypočíta odpis majetku za zadané obdobie.

Syntax

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

Parametre

Parameter Popis
_cena Nákupná cena majetku.
_šrot Hodnota zápisu majetku.
_život Očakávaná životnosť majetku (počet období).
_perióda Obdobie na výpočet odpisov.

Vrátená hodnota

Čiastka odpisov za zadané obdobie.

Poznámky

Na rozdiel od funkcie sln môže funkcia syd použiť urýchlené odpisy pre majetok. Podobne ako v prípade funkcie ddb aj tento prístup má za následok vyššie odpisy počas prvých období životnosti majetku.

Príklad

V nasledujúcich príkladoch sa periodické odpisy vypočítavajú pre majetok, ktorý má nákupnú cenu 10 000, hodnotu šrotu 2 000 a životnosť 5. Na porovnanie – sln(1 000 2000,5) vypočíta pre každé obdobie hodnotu 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ín

Vypočíta počet období, v ktoré musí byť investícia spustená.

Syntax

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

Parametre

Parameter Popis
množstvo Výška periodickej investície.
úrok Úroková sadzba pre každé obdobie.
future_value Budúca hodnota, ktorá sa očakáva pre investíciu

Vrátená hodnota

Počet období, počas ktorými sa musí investícia púšťť.

Príklad

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