X++-kørselsfunktioner for erhverv

I denne artikel beskrives funktionerne til kørsel i virksomheden.

Disse funktioner angiver økonomiske data og beregner formler.

cTerm

Beregner det antal perioder, der kræves for den aktuelle investeringsværdi for at give en målværdi.

Syntax

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

Parameters

Parameter Description
interest Rentesatsen.
future_value Målværdien.
current_value Den aktuelle investeringsværdi.

Return value

Det antal perioder, der kræves for at nå future_value.

Remarks

Parametrene current_value og future_value skal bruge det samme fortegn (plus eller minus).

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

Beregner den accelererede afskrivning af et aktiv.

Syntax

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

Parameters

Parameter Description
price Aktivets købspris.
scrap Restværdien af det aktiv, du afskriver.
life Aktivets forventede levetid.
period Den periode, der skal beregnes afskrivning for.

Return value

Afskrivningen af aktivet.

Remarks

Den bogførte værdi for en bestemt periode er lig med købsprisen minus den akkumulerede afskrivning for tidligere perioder:

  • Bogført værdi for periode 1 = Pris
  • Bogført værdi for periode 2 = bogført værdi for periode 1 – afskrivning for periode 1
  • Bogført værdi for Periode n = Bogført værdi for Periode (n-1) – Afskrivning for periode (n-1)

Der er tre variationer i beregningen af afskrivningen: Hvis periodelevetid > :

  • Afskrivning = 0

If (Bogført værdi for Periode n) – ((Bogført værdi for Periode n) × 2 ÷ Levetid) < Restværdi:

  • Afskrivning = (bogført værdi for periode n) – restværdi

I alle andre tilfælde: Afskrivning = (bogført værdi for periode n) × 2 ÷ Life Funktionerne syd og sln beregner også afskrivningen af et aktiv. Funktionerne syd og ddb muliggør højere afskrivning for de tidligere år, mens sln beregner en lineær afskrivning.

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

dg

Beregner bidragskvoten, som er baseret på salgsprisen og købsprisen. Hvis værdien af salgsparameteren er 0,0, kan beregningen ikke udføres.

Syntax

real dg(real sale, real purchase)

Parameters

Parameter Description
sale Salgsprisen.
purchase Købsprisen.

Return value

Bidragsforholdet.

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

Beregner den fremtidige værdi af en investering.

Syntax

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

Parameters

Parameter Description
amount Det beløb, du har betalt i løbet af hver periode.
interest Rentesatsen.
life Antallet af investeringsperioder.

Return value

Investeringens fremtidige værdi.

Remarks

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

idg

Beregner salgsprisen baseret på købsprisen og bidragskvoten.

real idg(real purchase, real contribution_ratio)

Parameters

Parameter Description
purchase Købsprisen.
contribution_ratio Bidragsforholdet.

Return value

Salgsprisen.

Remarks

Hvis bidragsforholdet er lig med 1,0, kan beregningen ikke udføres. Funktionen idg er det omvendte af dg-funktionen .

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

intvMax

Henter antallet af intervaller for den angivne periode, når perioden er opdelt i dele som angivet af parameteren func .

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

Parameters

Parameter Description
input_date Slutningen af perioden, som skal være senere end parameteren ref_date .
ref_date Periodens start.
func En IntvScale-systemoptællingsværdi , der angiver divisionsenheden.

Remarks

Her er de mulige værdier for func-parameteren :

  • 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

Returnerer navnet på det interval, der er det angivne antal intervaller forud for den angivne dato.

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

Parameters

Parameter Description
input_date En dato i det første interval.
col Antallet af intervaller forud for den dato, der er angivet i parameteren input_date .
func En intvScale-optællingsværdi .

Return value

Navnet på intervallet.

Remarks

Hvis func-parameteren f.eks. er optællingsværdien IntvScale::WeekDay , returnerer denne metode navnet på ugedagen. Hvis func-parameteren er optællingsværdien IntvScale::Week , returnerer denne metode en streng, der indeholder ugenummeret.

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

Beregner antallet af intervaller mellem to datoer, når du opdeler tiden i de angivne intervaller.

Syntax

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

Parameters

Parameter Description
input_date En dato, der angiver slutningen af perioden
ref_date En dato, der angiver starten af perioden.
func En intvScale-optællingsværdi .

Return value

Antallet af intervaller mellem de datoer, som parametrene ref_date og input_date angiver.

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

Returnerer den normaliserede dato for perioden.

Syntax

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

Parameters

Parameter Description
input_date Slutningen af perioden, som skal være senere end den dato, du angiver i parameteren ref_date .
ref_date Periodens start.
func En intvScale-optællingsværdi , der angiver intervaldivisionsenheden.

Return value

Den normaliserede dato for perioden.

Remarks

Den returnerede dato er lig med datoen for den første dag i intervallet, hvor den dato, du angiver i parameteren ref_date , findes.

Example

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

pmt

Beregner det beløb, du skal betale hver periode for at tilbagebetale et lån.

Syntax

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

Parameters

Parameter Description
sikkerhedskonto Det beløb, du oprindeligt lånte.
interest Rentesatsen anvendes hver periode på det beløb, du lånte.
life Antallet af perioder, hvor du tilbagebetaler lånet.

Return value

Det beløb, du skal betale hver periode.

Remarks

Udtryk parametrene for liv og interesse på samme tidsenheder. Værdien af livsparameteren skal være større end 0,0.

Example

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

pt

Henter summen af et tal plus en angivet procentdel af dette tal.

Syntax

real pt(real amount, real percentage)

Parameters

Parameter Description
amount Det oprindelige tal.
percentage Procenttillægget.

Return value

Det tal, der er lig med ((beløb ×gennemløb) + beløb).

Remarks

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

pv

Beregner nutidsværdien af en annuitet, hvor du modtager et beløb over flere perioder, og rentesatsen fratrækkes for hver periode.

Syntax

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

Parameters

Parameter Description
amount Det beløb, du betaler i hver periode.
interest Rentesatsen.
life Det antal gange, som den værdi, der er angivet af parameteren amount , betales.

Return value

Den aktuelle værdi for en annuitet.

Remarks

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

rate

Beregner den rente, der kræves for den aktuelle investeringsværdi, for at opnå den fremtidige værdi for det angivne antal perioder.

Syntax

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

Parameters

Parameter Description
_future_value Investeringens fremtidige værdi.
_current_value Den aktuelle værdi af investeringen.
_terms Antallet af perioder, som investeringen strækker sig over.

Return value

Den beregnede rentesats.

Remarks

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

sln

Henter det konstante afskrivningsbeløb for det angivne aktiv for hver afskrivningsperiode.

Syntax

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

Parameters

Parameter Description
price Aktivets købspris.
scrap Aktivets scrapværdi.
life Antallet af perioder i aktivets forventede levetid.

Return value

Afskrivningsbeløbet.

Example

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

syd

Beregner afskrivningen af et aktiv i en angivet periode.

Syntax

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

Parameters

Parameter Description
_price Aktivets købspris.
_scrap Aktivets scrapværdi.
_life Aktivets forventede levetid (antallet af perioder).
_period Den periode, der skal beregnes afskrivning for.

Return value

Afskrivningsbeløbet for den angivne periode.

Remarks

I modsætning til funktionen sln kan funktionen syd bruge accelereret afskrivning for aktivet. Som med funktionen ddb resulterer denne fremgangsmåde i højere afskrivning i de tidlige perioder af et aktivs levetid.

Example

I følgende eksempler beregnes den periodiske afskrivning for et aktiv, der har en købspris på 10.000, en scrapværdi på 2.000 og en levetid på 5. Til sammenligning beregner sln(10000,2000,5) 1.600,00 for hver 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

Beregner antallet af perioder, som en investering skal køre for.

Syntax

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

Parameters

Parameter Description
amount Beløbet for den periodiske investering.
interest Rentesatsen for hver periode.
future_value Den fremtidige værdi, der forventes for investeringen

Return value

Det antal perioder, som investeringen skal køre for.

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