Udostępnij przez


Funkcje środowiska uruchomieniowego języka X++ — funkcje biznesowe

Uwaga / Notatka

Grupy zainteresowań społeczności zostały teraz przeniesione z usługi Yammer do aplikacji Microsoft Viva Engage. Aby dołączyć do społeczności Viva Engage i wziąć udział w najnowszych dyskusjach, wypełnij formularz Żądanie dostępu do aplikacji Finance and Operations Viva Engage Community i wybierz społeczność, którą chcesz dołączyć.

W tym artykule opisano funkcje czasu wykonywania biznesowego.

Te funkcje wprowadzają dane finansowe i obliczają formuły.

cTerm

Oblicza liczbę okresów, które są wymagane dla bieżącej wartości inwestycyjnej w celu uzyskania wartości docelowej.

Składnia

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

Parametry

Parameter Description
odsetki Stopa procentowa.
future_value Wartość docelowa.
current_value Bieżąca wartość inwestycji.

Wartość zwracana

Liczba okresów wymaganych do osiągnięcia future_value.

Uwagi

Parametry current_value i future_value muszą mieć ten sam znak prefiksu (plus lub 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

Oblicza przyspieszoną amortyzację środka trwałego.

Składnia

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

Parametry

Parameter Description
cena Cena zakupu środka trwałego.
złom Wartość resztowa środka trwałego, który został odsuty.
życie Oczekiwany okres istnienia zasobu.
okres Okres obliczania amortyzacji.

Wartość zwracana

Amortyzacja środka trwałego.

Uwagi

Wartość księgowa dla określonego okresu jest równa cenie zakupu pomniejszonej o skumulowaną amortyzację dla poprzednich okresów:

  • Wartość księgowa okresu 1 = Cena
  • Wartość księgowa okresu 2 = wartość księgowa okresu 1 — amortyzacja dla okresu 1
  • Wartość księgowa okresu n = wartość księgowa okresu (n–1) — amortyzacja okresu (n–1)

Istnieją trzy odmiany obliczania amortyzacji: Jeśli okres życia > :

  • Amortyzacja = 0

If (wartość księgowa okresu n) — (wartość księgowa okresu n) × 2 ÷ życia) < Wartość resztowa:

  • Amortyzacja = (wartość księgowa okresu n) — wartość resztowa

We wszystkich innych przypadkach: Amortyzacja = (wartość księgowa okresu n) × 2 ÷ Life funkcje syd i sln obliczają również amortyzację środka trwałego. Funkcje syd i ddb umożliwiają wyższą amortyzację na wcześniejsze lata, podczas gdy sln oblicza amortyzację liniową.

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

Dg

Oblicza stosunek składek, który jest oparty na cenie sprzedaży i cenie zakupu. Jeśli wartość parametru sprzedaży wynosi 0,0, nie można wykonać obliczeń.

Składnia

real dg(real sale, real purchase)

Parametry

Parameter Description
sprzedaż Cena sprzedaży.
zakup Cena zakupu.

Wartość zwracana

Współczynnik udziału.

Uwagi

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

Oblicza przyszłą wartość inwestycji.

Składnia

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

Parametry

Parameter Description
kwota Kwota, która została zapłacona w każdym okresie.
odsetki Stopa procentowa.
życie Liczba okresów inwestycyjnych.

Wartość zwracana

Przyszła wartość inwestycji.

Uwagi

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

idg

Oblicza cenę sprzedaży na podstawie ceny zakupu i współczynnika wkładu.

real idg(real purchase, real contribution_ratio)

Parametry

Parameter Description
zakup Cena zakupu.
contribution_ratio Współczynnik udziału.

Wartość zwracana

Cena sprzedaży.

Uwagi

Jeśli stosunek udziału jest równy 1,0, nie można wykonać obliczenia. Funkcja idg jest odwrotnością funkcji dg .

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

intvMax

Pobiera liczbę interwałów dla określonego okresu, gdy okres jest podzielony na części określone przez parametr func .

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

Parametry

Parameter Description
input_date Koniec okresu, który musi być późniejszy niż parametr ref_date .
ref_date Początek okresu.
func Wartość wyliczenia systemu IntvScale wskazująca jednostkę dzielenia.

Uwagi

Poniżej przedstawiono możliwe wartości parametru func :

  • Żaden
  • YearMonthDay
  • Miesiąc roku
  • Rok
  • Dzień miesiąca
  • Miesiąc
  • Day
  • YearQuarter
  • Kwartał
  • YearWeek
  • Tydzień
  • Rozkład

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

Zwraca nazwę interwału, który jest określoną liczbą interwałów przed określoną datą.

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

Parametry

Parameter Description
input_date Data w pierwszym interwale.
col Liczba interwałów przed datą określoną przez parametr input_date .
func Wartość wyliczenia intvScale .

Wartość zwracana

Nazwa interwału.

Uwagi

Jeśli na przykład parametr func jest wartością wyliczenia IntvScale::WeekDay , ta metoda zwraca nazwę dnia tygodnia. Jeśli parametr func jest wartością wyliczenia IntvScale::Week , ta metoda zwraca ciąg zawierający liczbę tygodni.

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

Oblicza liczbę interwałów między dwiema datami podczas dzielenia czasu na określone interwały.

Składnia

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

Parametry

Parameter Description
input_date Data wskazująca koniec okresu
ref_date Data wskazująca początek okresu.
func Wartość wyliczenia intvScale .

Wartość zwracana

Liczba interwałów między datami określonymi przez parametry ref_date i 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

Zwraca znormalizowaną datę dla okresu.

Składnia

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

Parametry

Parameter Description
input_date Koniec okresu, który musi być późniejszy niż data określona przez parametr ref_date .
ref_date Początek okresu.
func Wartość wyliczenia intvScale wskazująca jednostkę dzielenia interwału.

Wartość zwracana

Znormalizowana data okresu.

Uwagi

Zwrócona data będzie równa dacie pierwszego dnia w interwale, w którym istnieje data określona przez parametr ref_date .

Example

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

Pmt

Oblicza kwotę, która musi zostać zapłacona w każdym okresie, aby spłacić pożyczkę.

Składnia

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

Parametry

Parameter Description
podmiot zabezpieczeń Kwota, która została pierwotnie pożyczona.
odsetki Odsetki, które są stosowane w każdym okresie do kwoty, która została pożyczona.
życie Liczba okresów, w których pożyczka jest spłacona.

Wartość zwracana

Kwota, która musi być wypłacana co okres.

Uwagi

Parametry życia i zainteresowania muszą być wyrażone w tych samych jednostkach czasu. Wartość parametru życia musi być większa niż 0,0.

Example

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

Pt

Pobiera sumę liczby plus określoną wartość procentową tej liczby.

Składnia

real pt(real amount, real percentage)

Parametry

Parameter Description
kwota Oryginalna liczba.
procent Dodatek procentowy.

Wartość zwracana

Liczba, która jest równa ((kwota *× *wartość procentowa) + kwota).

Uwagi

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

Pv

Oblicza bieżącą wartość renty, w której kwota jest odbierana w wielu okresach, a stopa procentowa jest odliczana dla każdego okresu.

Składnia

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

Parametry

Parameter Description
kwota Kwota, która jest wypłacana w każdym okresie.
odsetki Stopa procentowa.
życie Liczba razy, gdy wartość określona przez parametr amount jest wypłacana.

Wartość zwracana

Bieżąca wartość renty.

Uwagi

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

tempo

Oblicza odsetki, które są wymagane dla bieżącej wartości inwestycji, aby uzyskać wartość przyszłą w określonym przedziale czasu.

Składnia

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

Parametry

Parameter Description
_future_value Przyszła wartość inwestycji.
_current_value Bieżąca wartość inwestycji.
_Warunki Liczba okresów, które obejmują inwestycje.

Wartość zwracana

Obliczona stopa procentowa.

Uwagi

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

sln

Pobiera stałą kwotę amortyzacji dla określonego środka trwałego dla każdego okresu amortyzacji.

Składnia

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

Parametry

Parameter Description
cena Cena zakupu środka trwałego.
złom Wartość złomu środka trwałego.
życie Liczba okresów w oczekiwanym okresie eksploatacji środka trwałego.

Wartość zwracana

Kwota amortyzacji.

Example

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

Syd

Oblicza amortyzację środka trwałego w określonym przedziale czasu.

Składnia

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

Parametry

Parameter Description
_cena Cena zakupu środka trwałego.
_złom Wartość złomu środka trwałego.
_życie Oczekiwany okres eksploatacji środka trwałego (liczba okresów).
_okres Okres obliczania amortyzacji dla.

Wartość zwracana

Kwota amortyzacji w określonym przedziale czasu.

Uwagi

W przeciwieństwie do funkcji sln funkcja syd może zezwalać na przyspieszoną amortyzację środka trwałego. Podobnie jak w przypadku funkcji ddb , umożliwia to wyższą amortyzację we wczesnych okresach okresu eksploatacji środka trwałego.

Example

W poniższych przykładach okresowa amortyzacja jest obliczana dla środka trwałego, który ma cenę zakupu 10 000, wartość złomu 2000 i okres eksploatacji 5. Dla porównania sln(10000,2000,5) oblicza 1600,00 dla każdego okresu.

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

termin

Oblicza liczbę okresów, dla których musi zostać uruchomiona inwestycja.

Składnia

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

Parametry

Parameter Description
kwota Kwota okresowych inwestycji.
odsetki Stopa procentowa dla każdego okresu.
future_value Przewidywana przyszła wartość inwestycji

Wartość zwracana

Liczba okresów, dla których należy uruchomić inwestycję.

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