Kjøretidsfunksjoner for X++-virksomhet

Denne artikkelen beskriver funksjonene for forretningskjøring.

Disse funksjonene skriver inn økonomiske data og beregner formler.

cTerm

Beregner antall perioder som kreves for at gjeldende investeringsverdi skal gi en målverdi.

Syntax

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

Parameters

Parameter Description
interest Rentesatsen.
future_value Målverdien.
current_value Gjeldende investeringsverdi.

Return value

Antall perioder som kreves for å nå future_value.

Remarks

Parameterne current_value og future_value må bruke samme tegn (pluss 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 akselererte avskrivningen for et aktivum.

Syntax

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

Parameters

Parameter Description
price Kjøpsprisen for aktivaet.
scrap Restverdien for aktivumet du avskriver.
life Forventet levetid for aktivumet.
period Perioden som skal beregnes avskrivning over.

Return value

Avskrivningen for aktivumet.

Remarks

Den bokførte verdien for en bestemt periode er lik kjøpesummen minus den akkumulerte avskrivningen for tidligere perioder:

  • Bokført verdi for periode 1 = Pris
  • Bokført verdi for periode 2 = bokført verdi for periode 1 – avskrivning for periode 1
  • Bokført verdi for periode n = bokført verdi for periode (n–1) – avskrivning for periode (n-1)

Det finnes tre variasjoner for beregning av avskrivning: Hvis periodelevetid > :

  • Avskrivning = 0

Hvis (bokverdi for periode n) – ((bokverdi for periode n) × 2 ÷ levetid) < restverdi:

  • Avskrivning = (bokført verdi for periode n) – restverdi

I alle andre tilfeller: Avskrivning = (bokført verdi for periode n) × 2 ÷ Levetid Funksjonene syd og sln beregner også avskrivningen for et aktivum. Funksjonene syd og ddb aktiverer høyere avskrivning for de tidligere årene, mens sln beregner en lineær avskrivning.

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

dg

Beregner bidragsforholdet, som er basert på salgsprisen og kjøpesummen. Hvis verdien for salgsparameteren er 0,0, kan ikke beregningen gjøres.

Syntax

real dg(real sale, real purchase)

Parameters

Parameter Description
sale Salgsprisen.
purchase Kjøpesummen.

Return value

Bidragsgraden.

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 fremtidig verdi for en investering.

Syntax

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

Parameters

Parameter Description
amount Beløpet du betalte inn i hver periode.
interest Rentesatsen.
life Antall investeringsperioder.

Return value

Den fremtidige verdien av investeringen.

Remarks

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

idg

Beregner salgsprisen basert på kjøpesummen og bidragsforholdet.

real idg(real purchase, real contribution_ratio)

Parameters

Parameter Description
purchase Kjøpesummen.
contribution_ratio Bidragsgraden.

Return value

Salgsprisen.

Remarks

Hvis bidragsgraden er lik 1,0, kan ikke beregningen gjøres. IDG-funksjonen er den inverse av dg-funksjonen.

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

intvMax

Henter antall intervaller for den angitte perioden når perioden er delt inn i deler som angitt av func-parameteren.

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

Parameters

Parameter Description
input_date Slutten av perioden, som må være senere enn den ref_date parameteren.
ref_date Starten på perioden.
func En intvScale-systemopplistingsverdi som angir divisjonsenheten.

Remarks

Her er de mulige verdiene 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å intervallet som er angitt antall intervaller før den angitte datoen.

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

Parameters

Parameter Description
input_date En dato i det første intervallet.
col Antall intervaller før datoen som er angitt av input_date-parameteren.
func En opplistingsverdi for intvScale .

Return value

Navnet på intervallet.

Remarks

Hvis for eksempel func-parameteren er IntvScale::WeekDay-opplistingsverdien, returnerer denne metoden navnet på ukedagen. Hvis func-parameteren er IntvScale::Week-opplistingsverdien, returnerer denne metoden en streng som inneholder ukens nummer.

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 antall intervaller mellom to datoer når du deler tiden inn i de angitte intervallene.

Syntax

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

Parameters

Parameter Description
input_date En dato som angir slutten av perioden
ref_date En dato som angir starten på perioden.
func En opplistingsverdi for intvScale .

Return value

Antall intervaller mellom datoene som ref_date og input_date parametere angir.

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 normaliserte datoen for perioden.

Syntax

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

Parameters

Parameter Description
input_date Slutten av perioden, som må være senere enn datoen du angir i parameteren ref_date .
ref_date Starten på perioden.
func En opplistingsverdi for intvScale som angir intervalldivisjonsenheten.

Return value

Normalisert dato for perioden.

Remarks

Den returnerte datoen er lik datoen for den første dagen i intervallet der datoen du angir i parameteren ref_date finnes.

Example

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

pmt

Beregner beløpet du må betale hver periode for å tilbakebetale et lån.

Syntax

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

Parameters

Parameter Description
sikkerhetskontohaver Beløpet du opprinnelig lånte.
interest Rentesatsen brukes hver periode på beløpet du lånte.
life Antall perioder der du betaler tilbake lånet.

Return value

Beløpet du må betale hver periode.

Remarks

Uttrykk livs- og renteparameterne i de samme tidsenhetene. Verdien for livsparameteren må være større enn 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 av et tall pluss en angitt prosentdel av dette tallet.

Syntax

real pt(real amount, real percentage)

Parameters

Parameter Description
amount Det opprinnelige tallet.
percentage Prosenttillegget.

Return value

Tallet som er lik ((beløp ×prosent) + beløp).

Remarks

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

pv

Beregner nåverdien for en annuitet, der du mottar et beløp over flere perioder og rentesatsen trekkes fra for hver periode.

Syntax

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

Parameters

Parameter Description
amount Beløpet du betaler i hver periode.
interest Rentesatsen.
life Antall ganger verdien som er angitt av beløpsparameteren, betales.

Return value

Gjeldende verdi for en annuitet.

Remarks

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

rate

Beregner renten som kreves for at gjeldende investeringsverdi skal oppnå den fremtidige verdien over det angitte antallet perioder.

Syntax

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

Parameters

Parameter Description
_future_value Den fremtidige verdien av investeringen.
_current_value Gjeldende verdi for investeringen.
_terms Antall perioder som investeringen strekker seg over.

Return value

Beregnet rentesats.

Remarks

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

sln

Henter det konstante avskrivningsbeløpet for det angitte aktivumet for hver avskrivningsperiode.

Syntax

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

Parameters

Parameter Description
price Kjøpsprisen for aktivaet.
scrap Svinnverdien for aktivumet.
life Antall perioder i forventet levetid for aktivumet.

Return value

Avskrivningsbeløpet.

Example

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

syd

Beregner avskrivningen for et aktivum over en angitt periode.

Syntax

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

Parameters

Parameter Description
_price Kjøpsprisen for aktivaet.
_scrap Svinnverdien for aktivumet.
_life Forventet levetid for aktivumet (antall perioder).
_period Perioden som avskrivningen skal beregnes for.

Return value

Avskrivningsmengden i den angitte perioden.

Remarks

I motsetning til sln-funksjonen kan syd-funksjonen bruke akselerert avskrivning for aktivumet. Som med ddb-funksjonen resulterer denne tilnærmingen i høyere avskrivning i de tidlige periodene av levetiden til et aktivum.

Example

I eksemplene nedenfor beregnes den periodiske avskrivningen for et aktivum som har en innkjøpspris på 10 000, en skrapverdi 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 antall perioder som en investering må kjøre for.

Syntax

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

Parameters

Parameter Description
amount Beløpet for den periodiske investeringen.
interest Rentesatsen for hver periode.
future_value Den fremtidige verdien som forventes for investeringen

Return value

Antall perioder som investeringen må kjøres 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;
}