Affärsexekveringsfunktioner för X++

Anmärkning

Intressegrupper för communityn har nu flyttat från Yammer till Microsoft Viva Engage. Om du vill gå med i en Viva Engage-community och delta i de senaste diskussionerna fyller du i formuläret Begär åtkomst till Finance and Operations Viva Engage Community och väljer den community som du vill ansluta till.

I den här artikeln beskrivs funktionerna för affärskörning.

Dessa funktioner anger finansiella data och beräknar formler.

cTerm

Beräknar antalet perioder som krävs för det aktuella investeringsvärdet för att ge ett målvärde.

Syntax

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

Parameterar

Parameter Description
ränta Räntesatsen.
future_value Målvärdet.
current_value Det aktuella investeringsvärdet.

Returvärde

Antalet perioder som krävs för att nå future_value.

Anmärkningar

Parametrarna current_value och future_value måste ha samma prefixtecken (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

Beräknar den accelererade avskrivningen för en tillgång.

Syntax

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

Parameterar

Parameter Description
pris Tillgångens inköpspris.
skrota Restvärdet för den tillgång som har skrivits av.
liv Tillgångens förväntade livslängd.
period Den period som avskrivningen ska beräknas över.

Returvärde

Tillgångens avskrivning.

Anmärkningar

Bokfört värde för en viss period är lika med inköpspriset minus den ackumulerade avskrivningen för tidigare perioder:

  • Bokfört värde för period 1 = pris
  • Bokfört värde för period 2 = bokfört värde för period 1 – avskrivning för period 1
  • Bokfört värde för period n = bokfört värde för period (n–1) – avskrivning för period (n–1)

Det finns tre varianter för beräkningen av avskrivning: If Period > Life:

  • Avskrivning = 0

Om (Bokfört värde för Period n) – ((Bokfört värde för Period n) × 2 ÷ Life) < Residualvärde:

  • Avskrivning = (bokfört värde för period n) – restvärde

I alla andra fall: Avskrivning = (bokfört värde för period n) × 2 ÷ Livslängd Funktionerna syd och sln beräknar också avskrivningen av en tillgång. Funktionerna syd och ddb möjliggör högre avskrivning för de tidigare åren, medan sln beräknar en linjär avskrivning.

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

Gd

Beräknar bidragskvoten, som baseras på försäljningspriset och inköpspriset. Om värdet för försäljningsparametern är 0,0 kan beräkningen inte göras.

Syntax

real dg(real sale, real purchase)

Parameterar

Parameter Description
försäljning Försäljningspriset.
köp Inköpspriset.

Returvärde

Bidragskvoten.

Anmärkningar

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

Beräknar det framtida värdet för en investering.

Syntax

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

Parameterar

Parameter Description
belopp Det belopp som betalades in under varje period.
ränta Räntesatsen.
liv Antalet investeringsperioder.

Returvärde

Investeringens framtida värde.

Anmärkningar

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

idg

Beräknar försäljningspriset baserat på inköpspriset och bidragskvoten.

real idg(real purchase, real contribution_ratio)

Parameterar

Parameter Description
köp Inköpspriset.
contribution_ratio Bidragskvoten.

Returvärde

Försäljningspriset.

Anmärkningar

Om bidragskvoten är lika med 1,0 kan beräkningen inte göras. Idg-funktionen är inversen till dg-funktionen.

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

intvMax

Hämtar antalet intervall för den angivna perioden när perioden delas in i delar enligt func-parametern .

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

Parameterar

Parameter Description
input_date Slutet av perioden, som måste vara senare än parametern ref_date .
ref_date Periodens början.
func Ett systemuppräkningsvärde för IntvScale som anger divisionsenheten.

Anmärkningar

Här är de möjliga värdena för func-parametern :

  • None
  • YearMonthDay
  • YearMonth
  • År
  • MonthDay
  • Månad
  • Day
  • YearQuarter
  • Kvartal
  • YearWeek
  • Vecka
  • Vardag

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

Returnerar namnet på intervallet som är det angivna antalet intervall före det angivna datumet.

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

Parameterar

Parameter Description
input_date Ett datum i det första intervallet.
col Antalet intervall före det datum som anges av parametern input_date .
func Ett uppräkningsvärde för intvScale .

Returvärde

Namnet på intervallet.

Anmärkningar

Om till exempel func-parametern är uppräkningsvärdet IntvScale::WeekDay returnerar den här metoden namnet på veckodagen. Om func-parametern är uppräkningsvärdet IntvScale::Week returnerar den här metoden en sträng som innehåller veckans antal.

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

Beräknar antalet intervall mellan två datum när du delar upp tiden i de angivna intervallen.

Syntax

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

Parameterar

Parameter Description
input_date Ett datum som anger periodens slut
ref_date Ett datum som anger periodens början.
func Ett uppräkningsvärde för intvScale .

Returvärde

Antalet intervall mellan de datum som anges av parametrarna ref_date och 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

Returnerar det normaliserade datumet för perioden.

Syntax

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

Parameterar

Parameter Description
input_date Slutet av perioden, som måste vara senare än det datum som anges av parametern ref_date .
ref_date Periodens början.
func Ett uppräkningsvärde för intvScale som anger intervalldivisionsenheten.

Returvärde

Det normaliserade datumet för perioden.

Anmärkningar

Det returnerade datumet är lika med datumet för den första dagen i intervallet då det datum som anges av parametern ref_date finns.

Example

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

Betalning

Beräknar det belopp som måste betalas varje period för att återbetala ett lån.

Syntax

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

Parameterar

Parameter Description
rektor Det belopp som ursprungligen lånades.
ränta Den ränta som tillämpas varje period på det lånade beloppet.
liv Antalet perioder som lånet återbetalas över.

Returvärde

Det belopp som måste betalas varje period.

Anmärkningar

Parametrarna för livslängd och ränta måste uttryckas i samma tidsenheter. Värdet för livsparametern måste vara mer än 0,0.

Example

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

Pt

Hämtar summan av ett tal plus en angiven procentandel av det talet.

Syntax

real pt(real amount, real percentage)

Parameterar

Parameter Description
belopp Det ursprungliga talet.
procentandel Procenttillägget.

Returvärde

Det tal som är lika med ((belopp *× *procent) + belopp).

Anmärkningar

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

Pv

Beräknar nuvärdet för en livränta, där ett belopp tas emot under flera perioder och räntesatsen dras av för varje period.

Syntax

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

Parameterar

Parameter Description
belopp Det belopp som betalas under varje period.
ränta Räntesatsen.
liv Antalet gånger som värdet som anges av beloppsparametern betalas.

Returvärde

Det aktuella värdet för en annuitet.

Anmärkningar

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

taxera

Beräknar den ränta som krävs för det aktuella investeringsvärdet för att uppnå det framtida värdet under det angivna antalet perioder.

Syntax

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

Parameterar

Parameter Description
_future_value Investeringens framtida värde.
_current_value Investeringens aktuella värde.
_villkor Antalet perioder som investeringen omfattar.

Returvärde

Den beräknade räntesatsen.

Anmärkningar

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

sln

Hämtar det konstanta avskrivningsbeloppet för den angivna tillgången för varje avskrivningsperiod.

Syntax

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

Parameterar

Parameter Description
pris Tillgångens inköpspris.
skrota Tillgångens kassationsvärde.
liv Antalet perioder i tillgångens förväntade livslängd.

Returvärde

Avskrivningsbeloppet.

Example

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

syd

Beräknar avskrivningen för en tillgång under en angiven period.

Syntax

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

Parameterar

Parameter Description
_pris Tillgångens inköpspris.
_skrota Tillgångens kassationsvärde.
_liv Tillgångens förväntade livslängd (antalet perioder).
_period Den period som avskrivningen ska beräknas för.

Returvärde

Avskrivningsbeloppet under den angivna perioden.

Anmärkningar

Till skillnad från sln-funktionen kan funktionen syd tillåta en accelererad avskrivning av tillgången. Precis som med ddb-funktionen möjliggör detta högre avskrivning under de tidiga perioderna av en tillgångs livslängd.

Example

I följande exempel beräknas den periodiska avskrivningen för en tillgång som har ett inköpspris på 10 000, ett skrotvärde på 2 000 och en livslängd på 5. Som jämförelse skulle sln(10000,2000,5) beräkna 1600,00 för varje period.

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

begrepp

Beräknar antalet perioder som en investering måste köras för.

Syntax

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

Parameterar

Parameter Description
belopp Beloppet för den periodiska investeringen.
ränta Räntesatsen för varje period.
future_value Det framtida värde som förväntas för investeringen

Returvärde

Antalet perioder som investeringen måste köras för.

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