次の方法で共有


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

コミュニティの関心グループが Yammer から Microsoft Viva Engage に移行されました。 Viva Engage コミュニティに参加し、最新のディスカッションに参加するには、「 Finance and Operations Viva Engage Community へのアクセスを要求する 」フォームに入力し、参加するコミュニティを選択します。

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

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

cTerm

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

構文

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

パラメーター

パラメーター Description
利息 利率。
future_value ターゲット値。
current_value 現在の投資価値。

戻り値

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

備考

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

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

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

構文

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

パラメーター

パラメーター Description
価格 アセットの購買価格。
仕損 償却する資産の残存価値。
life 資産の予想有効期間。
期間 減価償却を計算する期間。

戻り値

資産の減価償却。

備考

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

  • 期間 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 である場合、計算を実行することはできません。

構文

real dg(real sale, real purchase)

パラメーター

パラメーター Description
販売 販売価格。
購入 購買価格。

戻り値

利益率。

備考

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

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

構文

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

パラメーター

パラメーター Description
金額 各期間中に支払った金額。
利息 利率。
life 投資期間の数。

戻り値

投資の将来の値。

備考

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)

パラメーター

パラメーター Description
購入 購買価格。
contribution_ratio 利益率。

戻り値

販売価格。

備考

利益率が 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)

パラメーター

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

備考

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

  • None
  • YearMonthDay
  • YearMonth
  • MonthDay
  • 曜日
  • YearQuarter
  • 四半期
  • YearWeek
  • WeekDay

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)

パラメーター

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

戻り値

間隔の名前。

備考

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

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 つの日付間の間隔の数を計算します。

構文

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

パラメーター

パラメーター Description
input_date 期間の終了を示す日付
ref_date 期間の開始を示す日付です。
func intvScale 列挙値です。

戻り値

ref_dateパラメーターとinput_date パラメーターが指定する日付の間隔の数。

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

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

構文

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

パラメーター

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

戻り値

期間の正規化日

備考

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

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

pmt

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

構文

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

パラメーター

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

戻り値

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

備考

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

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

pt

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

構文

real pt(real amount, real percentage)

パラメーター

パラメーター Description
金額 元の番号。
パーセント パーセント補足。

戻り値

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

備考

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

pv

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

構文

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

パラメーター

パラメーター Description
金額 各期間中に支払う金額。
利息 利率。
life amount パラメーターで指定された値が支払われる回数。

戻り値

年金の現在の値。

備考

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

レート

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

構文

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

パラメーター

パラメーター Description
_future_value 投資の将来の値。
_current_value 投資の現在の値。
_terms 投資がわたる期間の数。

戻り値

計算済利率。

備考

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

sln

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

構文

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

パラメーター

パラメーター Description
価格 アセットの購買価格。
仕損 資産の仕損価格。
life 資産の予想期限における期間の数。

戻り値

減価償却金額。

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

syd

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

構文

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

パラメーター

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

戻り値

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

備考

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

次の例では、定期的な減価償却が 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

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

構文

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

パラメーター

パラメーター Description
金額 定期的な投資の金額。
利息 各期間の利率。
future_value 投資に予想される将来の価値

戻り値

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

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