Поделиться через


Бизнес-функции времени выполнения X++

Замечание

Группы интересов сообщества теперь переехали из Yammer в Microsoft Viva Engage. Чтобы присоединиться к сообществу Viva Engage и принять участие в последних обсуждениях, заполните форму " Запрос доступа к финансам и операциям 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 должны иметь одинаковый префиксный знак (плюс или минус).

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

Вычисляет ускоренную амортизацию актива.

Синтаксис

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

Параметры

Параметр Description
цена Цена покупки актива.
клочок Остаточное значение актива, который был списан.
Жизнь Ожидаемое время существования ресурса.
период Период вычисления амортизации.

Возвращаемое значение

Амортизация актива.

Замечания

Стоимость книги за определенный период равна цене покупки минус накапливаемая амортизация за предыдущие периоды:

  • Значение книги для периода 1 = цена
  • Значение книги за период 2 = стоимость книги за период 1 – амортизация за период 1
  • Значение книги для периода n = значение книги для периода (n–1) — амортизация за период (n–1)

Существует три варианта вычисления амортизации: Если период > жизни:

  • Амортизация = 0

If (Book value for Period n) — ((Book value for Period n) × 2 ÷ Life) < Остаточное значение:

  • Амортизация = (значение книги для периода 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
количество Сумма, которая была выплачена в течение каждого периода.
интерес Процентная ставка.
Жизнь Количество инвестиционных периодов.

Возвращаемое значение

Будущая стоимость инвестиций.

Замечания

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
  • Месяц
  • Day
  • YearQuarter
  • Квартал
  • YearWeek
  • Неделя
  • Будний день

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)

Параметры

Параметр Description
input_date Дата в первом интервале.
col Число интервалов перед датой, указанной параметром input_date .
func Значение перечисления intvScale .

Возвращаемое значение

Имя интервала.

Замечания

Например, если параметр 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

Вычисляет количество интервалов между двумя датами при делении времени на указанные интервалы.

Синтаксис

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

Параметры

Параметр Description
input_date Дата, указывающая конец периода
ref_date Дата, указывающая начало периода.
func Значение перечисления intvScale .

Возвращаемое значение

Количество интервалов между датами, указанными параметрами 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

Возвращает нормализованную дату за период.

Синтаксис

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

Параметры

Параметр Description
input_date Конец периода, который должен быть позже даты, указанной параметром ref_date .
ref_date Начало периода.
func Значение перечисления intvScale , указывающее единицу деления интервала.

Возвращаемое значение

Нормализованная дата периода.

Замечания

Возвращаемая дата будет совпадать с датой первого дня в интервале, в котором указана дата, указанная параметром ref_date .

Example

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

pmt

Вычисляет сумму, которая должна быть выплачена каждый период для выплаты кредита.

Синтаксис

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

Параметры

Параметр Description
основной Сумма, которая была первоначально заимствована.
интерес Проценты, применяемые каждый период к сумме, которая была заимствована.
Жизнь Количество периодов, по которым кредит переплачен.

Возвращаемое значение

Сумма, которая должна быть выплачена каждый период.

Замечания

Параметры жизни и интереса должны быть выражены в одних и том же единицах времени. Значение параметра жизни должно быть больше 0,0.

Example

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

пт

Извлекает сумму числа плюс указанный процент этого числа.

Синтаксис

real pt(real amount, real percentage)

Параметры

Параметр Description
количество Исходное число.
процент Процентная добавка.

Возвращаемое значение

Число, равное ((сумма *× *процент) + сумма).

Замечания

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
количество Сумма, выплачиваемая за каждый период.
интерес Процентная ставка.
Жизнь Количество раз, когда значение, указанное параметром суммы , оплачивается.

Возвращаемое значение

Текущее значение аннуитета.

Замечания

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 Текущая стоимость инвестиций.
_Условия Количество периодов, охватывающих инвестиции.

Возвращаемое значение

Вычисляемая процентная ставка.

Замечания

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

sln

Извлекает постоянную амортизацию для указанного ресурса за каждый период амортизации.

Синтаксис

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

Параметры

Параметр Description
цена Цена покупки актива.
клочок Значение лома ресурса.
Жизнь Количество периодов в ожидаемой жизни актива.

Возвращаемое значение

Сумма амортизации.

Example

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

Сид

Вычисляет амортизацию актива за указанный период.

Синтаксис

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

Параметры

Параметр Description
_цена Цена покупки актива.
_клочок Значение лома ресурса.
_Жизнь Ожидаемая жизнь ресурса (количество периодов).
_период Период вычисления амортизации.

Возвращаемое значение

Сумма амортизации за указанный период.

Замечания

В отличие от функции sln , функция syd может обеспечить ускоренную амортизацию актива. Как и в случае с функцией ddb , это позволяет повысить амортизацию в течение ранних периодов жизни актива.

Example

В следующих примерах периодическое амортизация вычисляется для актива, имеющего цену покупки 10 000, стоимость лома 2000 и жизнь 5. В сравнении sln(10000 2000 5) вычисляет 1600,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);

термин

Вычисляет количество периодов, для которых должны выполняться инвестиции.

Синтаксис

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

Параметры

Параметр Description
количество Сумма периодических инвестиций.
интерес Процентная ставка за каждый период.
future_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;
}