Compartilhar via


Funções runtime de negócios de X++

Observação

Grupos de interesse da comunidade mudaram do Yammer para o Microsoft Viva Engage. Para ingressar em uma comunidade do Viva Engage e participar das discussões mais recentes, preencha o formulário Solicitar acesso às Finanças e Operações viva engage community e escolha a comunidade que você deseja ingressar.

Este artigo descreve as funções de tempo de execução de negócios.

Essas funções inserem dados financeiros e calculam fórmulas.

cTerm

Calcula o número de períodos necessários para que o valor do investimento atual gere um valor de destino.

Sintaxe

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

Parâmetros

Parâmetro Description
interesse A taxa de juros.
future_value O valor de destino.
current_value O valor do investimento atual.

Valor de retorno

O número de períodos necessários para alcançar future_value.

Observações

Os parâmetros current_value e future_value devem ter o mesmo sinal prefixado (mais ou menos).

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

Calcula a depreciação acelerada de um ativo.

Sintaxe

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

Parâmetros

Parâmetro Description
price O preço de compra do ativo.
sucata O valor residual do ativo que foi desativado.
vida O tempo de vida esperado do ativo.
period O período para calcular a depreciação.

Valor de retorno

A depreciação do ativo.

Observações

O valor do livro para um período específico é igual ao preço de compra menos a depreciação acumulada para períodos anteriores:

  • Valor do livro para o Período 1 = Preço
  • Valor do livro para o Período 2 = Valor do livro para o Período 1 – Depreciação para o Período 1
  • Valor do livro para Período n = Valor do livro para Período (n–1) – Depreciação para o Período (n–1)

Há três variações para o cálculo da depreciação: Se Vida Útil:>

  • Depreciação = 0

Se (valor do livro para o Período n) – ((Valor do livro para o Período n) × 2 ÷ Vida) < Valor residual:

  • Depreciação = (Valor do livro para o Período n) – Valor residual

Em todos os outros casos: Depreciação = (Valor do livro para Período n) × 2 ÷ A vida útil as funções syd e sln também calculam a depreciação de um ativo. As funções syd e ddb permitem uma depreciação mais alta para os anos anteriores, enquanto o sln calcula uma depreciação linear.

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

Dg

Calcula a taxa de contribuição, que se baseia no preço de venda e no preço de compra. Se o valor do parâmetro de venda for 0,0, o cálculo não poderá ser feito.

Sintaxe

real dg(real sale, real purchase)

Parâmetros

Parâmetro Description
venda O preço de venda.
aquisição O preço de compra.

Valor de retorno

A taxa de contribuição.

Observações

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

Calcula o valor futuro de um investimento.

Sintaxe

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

Parâmetros

Parâmetro Description
quantidade O valor que foi pago durante cada período.
interesse A taxa de juros.
vida O número de períodos de investimento.

Valor de retorno

O valor futuro do investimento.

Observações

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

idg

Calcula o preço de venda, com base no preço de compra e na taxa de contribuição.

real idg(real purchase, real contribution_ratio)

Parâmetros

Parâmetro Description
aquisição O preço de compra.
contribution_ratio A taxa de contribuição.

Valor de retorno

O preço de venda.

Observações

Se a taxa de contribuição for igual a 1,0, o cálculo não poderá ser feito. A função idg é o inverso da função dg .

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

intvMax

Recupera o número de intervalos para o período especificado quando o período é dividido em partes, conforme especificado pelo parâmetro func .

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

Parâmetros

Parâmetro Description
input_date O final do período, que deve ser posterior ao parâmetro ref_date .
ref_date O início do período.
func Um valor de enumeração do sistema IntvScale que indica a unidade de divisão.

Observações

Aqui estão os valores possíveis para o parâmetro func :

  • None
  • YearMonthDay
  • YearMonth
  • Ano
  • MonthDay
  • Mês
  • Day
  • YearQuarter
  • Trimestre
  • YearWeek
  • Semana
  • Semana

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

Retorna o nome do intervalo que é o número especificado de intervalos antes da data especificada.

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

Parâmetros

Parâmetro Description
input_date Uma data no primeiro intervalo.
col O número de intervalos antes da data especificada pelo parâmetro input_date .
func Um valor de enumeração intvScale .

Valor de retorno

O nome do intervalo.

Observações

Por exemplo, se o parâmetro func for o valor de enumeração IntvScale::WeekDay , esse método retornará o nome do dia da semana. Se o parâmetro func for o valor de enumeração IntvScale::Week , esse método retornará uma cadeia de caracteres que contém o número da semana.

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

Calcula o número de intervalos entre duas datas quando você divide o tempo nos intervalos especificados.

Sintaxe

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

Parâmetros

Parâmetro Description
input_date Uma data que indica o fim do período
ref_date Uma data que indica o início do período.
func Um valor de enumeração intvScale .

Valor de retorno

O número de intervalos entre as datas especificadas pelos parâmetros ref_date e 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

Retorna a data normalizada para o período.

Sintaxe

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

Parâmetros

Parâmetro Description
input_date O final do período, que deve ser posterior à data especificada pelo parâmetro ref_date .
ref_date O início do período.
func Um valor de enumeração intvScale que indica a unidade de divisão de intervalo.

Valor de retorno

A data normalizada para o período.

Observações

A data retornada será igual à data do primeiro dia no intervalo em que a data especificada pelo parâmetro ref_date existe.

Example

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

Pgto

Calcula o valor que deve ser pago a cada período para pagar um empréstimo.

Sintaxe

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

Parâmetros

Parâmetro Description
entidade de segurança O valor que foi originalmente emprestado.
interesse Os juros aplicados a cada período ao valor que foi emprestado.
vida O número de períodos em que o empréstimo é pago.

Valor de retorno

O valor que deve ser pago a cada período.

Observações

Os parâmetros de vida e interesse devem ser expressos nas mesmas unidades de tempo. O valor do parâmetro de vida deve ser superior a 0,0.

Example

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

pt

Recupera a soma de um número mais uma porcentagem especificada desse número.

Sintaxe

real pt(real amount, real percentage)

Parâmetros

Parâmetro Description
quantidade O número original.
porcentagem O suplemento percentual.

Valor de retorno

O número igual a ((amount *× *percentage) + amount).

Observações

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

Pv

Calcula o valor atual de uma anuidade, em que um valor é recebido em vários períodos e a taxa de juros é deduzida para cada período.

Sintaxe

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

Parâmetros

Parâmetro Description
quantidade O valor pago durante cada período.
interesse A taxa de juros.
vida O número de vezes que o valor especificado pelo parâmetro de valor é pago.

Valor de retorno

O valor atual de uma anuidade.

Observações

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

taxa

Calcula os juros necessários para que o valor do investimento atual atinja o valor futuro em relação ao número especificado de períodos.

Sintaxe

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

Parâmetros

Parâmetro Description
_future_value O valor futuro do investimento.
_current_value O valor atual do investimento.
_termos O número de períodos que o investimento abrange.

Valor de retorno

A taxa de juros calculada.

Observações

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

sln

Recupera o valor de depreciação constante do ativo especificado para cada período de depreciação.

Sintaxe

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

Parâmetros

Parâmetro Description
price O preço de compra do ativo.
sucata O valor de sucata do ativo.
vida O número de períodos na vida esperada do ativo.

Valor de retorno

O valor da depreciação.

Example

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

Syd

Calcula a depreciação de um ativo durante um período especificado.

Sintaxe

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

Parâmetros

Parâmetro Description
_preço O preço de compra do ativo.
_sucata O valor de sucata do ativo.
_vida A vida útil esperada do ativo (o número de períodos).
_período O período para o qual calcular a depreciação.

Valor de retorno

A quantidade de depreciação durante o período especificado.

Observações

Ao contrário da função sln , a função syd pode permitir uma depreciação acelerada do ativo. Assim como acontece com a função ddb , isso permite maior depreciação durante os primeiros períodos da vida útil de um ativo.

Example

Nos exemplos a seguir, a depreciação periódica é calculada para um ativo que tem um preço de compra de 10.000, um valor de sucata de 2.000 e uma vida útil de 5. Em comparação, sln(10000.2000,5) calcularia 1600,00 para cada período.

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

prazo

Calcula o número de períodos para os quais um investimento deve ser executado.

Sintaxe

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

Parâmetros

Parâmetro Description
quantidade O valor do investimento periódico.
interesse A taxa de juros para cada período.
future_value O valor futuro previsto para o investimento

Valor de retorno

O número de períodos para os quais o investimento deve ser executado.

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