X++ ビジネス ランタイム関数

この記事では、ビジネス ランタイム関数について説明します。

これらの関数は財務データを入力し、式を計算します。

cTerm

現在の投資価値がターゲット値に達するために必要な期間の数を計算します。

Syntax

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

Parameters

Parameter Description
interest 貸付期間を通じて一定の利率を指定します。
future_value ターゲット値。
current_value 現在の投資価値。

Return value

future_valueに達するために必要な期間の数。

Remarks

current_valueパラメーターとfuture_value パラメーターでは、同じ符号 (プラスまたはマイナス) を使用する必要があります。

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

資産の増加償却を計算します。

Syntax

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

Parameters

Parameter Description
price アセットの購買価格。
scrap 償却する資産の残存価値。
life 資産の予想有効期間。
period 減価償却を計算する期間。

Return value

資産の減価償却。

Remarks

特定の期間の書籍の値は、購入価格から前の期間の累積減価償却費を差し引いた値と等しくなります。

  • 期間 1 の簿価額 = 価格
  • 期間 2 の簿価額 = 期間 1 の簿価額 – 期間の減価償却 1
  • 期間 n の簿価額 = 期間 (n–1) の簿価額 – 期間の減価償却 (n–1)

減価償却費の計算には 3 つのバリエーションがあります。期間タイプ > 耐用年数:

  • 減価償却 = 0

If (期間 n の簿価額) – ((期間 n の簿価額) × 2 ÷ ライフ) < 残存価額:

  • 減価償却 = (期間 n の簿価額) – 残存価額

その他の場合: 減価償却 = (期間 n の簿価額) × 2 ÷ 耐用年数、syd および sln 関数も、資産の減価償却を計算します。 syd 関数と ddb 関数を使用すると、前の年の減価償却費が高くなりますが、sln は線形減価償却費を計算します。

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

dg

販売価格および購買価格に基づいて利益率を計算します。 売上パラメーターの値が 0.0 である場合、計算を実行することはできません。

Syntax

real dg(real sale, real purchase)

Parameters

Parameter Description
sale 販売価格。
購入 購買価格。

Return value

利益率。

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

投資の未来価値を計算します。

Syntax

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

Parameters

Parameter Description
amount 各期間中に支払った金額。
interest 貸付期間を通じて一定の利率を指定します。
life 投資期間の数。

Return value

投資の将来の値。

Remarks

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

idg

利益率および購買価格に基づいて販売価格を計算します。

real idg(real purchase, real contribution_ratio)

Parameters

Parameter Description
購入 購買価格。
contribution_ratio 利益率。

Return value

販売価格。

Remarks

利益率が 1.0 と等しい場合は、計算を実行することはできません。 idg 関数は、dg 関数の逆です。

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

intvMax

期間が func パラメーターによって指定された部分に分割されているとき、指定された期間の間隔の数を取得します。

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

Parameters

Parameter Description
input_date 期間の終了日は、ref_date パラメーターよりも後でなければなりません。
ref_date 期間の開始日。
func IntvScale は、部門単位を示すシステム列挙値です。

Remarks

func パラメータの使用可能な値を次に示します。

  • 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

指定した日付から指定した間隔数先の間隔の名前を返します。

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

Parameters

Parameter Description
input_date 最初の間隔の日付です。
col input_date パラメーターで指定された日付より前の間隔の数。
func intvScale 列挙値です。

Return value

間隔の名前。

Remarks

たとえば、func パラメーターが、IntvScale::WeekDay 列挙値である場合、このメソッドは平日の名前を返します。 func パラメーターが、IntvScale::Week 列挙値である場合、このメソッドは週の数が含まれている文字列を返します。

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

指定した間隔に時間を分割するとき、2 つの日付間の間隔の数を計算します。

Syntax

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

Parameters

Parameter Description
input_date 期間の終了を示す日付
ref_date 期間の開始を示す日付です。
func intvScale 列挙値です。

Return value

ref_dateパラメーターと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

期間の正規化日を返します。

Syntax

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

Parameters

Parameter Description
input_date 期間の末尾。 これは、ref_date パラメーターで指定した日付より後にする必要があります。
ref_date 期間の開始日。
func intvScale は、間隔区分単位を示す列挙値です。

Return value

期間の正規化日

Remarks

返される日付は、 ref_date パラメーターで指定した日付が存在する間隔の最初の日の日付と等しくなります。

Example

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

pmt

ローンを返済するためにすべての期間に支払う必要がある金額を計算します。

Syntax

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

Parameters

Parameter Description
プリンシパル 最初に借りた金額。
interest 各期間の利率は、借りた金額に適用されます。
life ローンを返済する期間の数。

Return value

すべての期間に支払う必要がある金額。

Remarks

寿命関心のパラメーターを同じ時間単位で表します。 life パラメーターの値は 0.0 より大きくする必要があります。

Example

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

pt

その番号の指定された割合と数値の合計を取得します。

Syntax

real pt(real amount, real percentage)

Parameters

Parameter Description
amount 元の番号。
percentage パーセント補足。

Return value

((amount ×percentage) + amount) と等しい数値。

Remarks

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

pv

年金の現在価値を計算します。ここでは、複数の期間にわたって金額を受け取り、各期間の利率が差し引かれます。

Syntax

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

Parameters

Parameter Description
amount 各期間中に支払う金額。
interest 貸付期間を通じて一定の利率を指定します。
life amount パラメーターで指定された値が支払われる回数。

Return value

年金の現在の値。

Remarks

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

rate

現在の投資価値が指定された期間の数にわたって未来価値を達成するために必要な利子を計算します。

Syntax

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

Parameters

Parameter Description
_future_value 投資の将来の値。
_current_value 投資の現在の値。
_terms 投資がわたる期間の数。

Return value

計算済利率。

Remarks

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

sln

減価償却期間ごとに指定された資産の固定の減価償却金額を取得します。

Syntax

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

Parameters

Parameter Description
price アセットの購買価格。
scrap 資産の仕損価格。
life 資産の予想期限における期間の数。

Return value

減価償却金額。

Example

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

syd

指定した期間にわたる資産の減価償却を計算します。

Syntax

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

Parameters

Parameter Description
_price アセットの購買価格。
_scrap 資産の仕損価格。
_life 資産の予想期限 (期間数)。
_period 減価償却を計算する期間。

Return value

指定した期間での減価償却の金額。

Remarks

sln 関数とは異なり、syd 関数は資産に対して高速減価償却を使用できます。 ddb 関数と同様に、このアプローチにより、資産の有効期間の初期段階で減価償却費が増加します。

Example

次の例では、定期的な減価償却が 10,000 の購買価格、2,000 の仕損価格、および 5 の耐用年数の資産に対して計算されます。 これに対し、 sln(10000,2000,5) は期間ごとに 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

投資が実行されなければならない期間の数を計算します。

Syntax

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

Parameters

Parameter Description
amount 定期的な投資の金額。
interest 各期間の利率。
future_value 投資に予想される将来の価値

Return value

投資が実行されなければならない期間の数。

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