Partilhar via


Funções X++ de tempo de execução de negócio

Observação

Os grupos de interesse da comunidade passaram do Yammer para o Microsoft Viva Engage. Para participar de uma comunidade Viva Engage e participar das últimas discussões, preencha o formulário Solicitar acesso ao Finance and Operations Viva Engage Community e escolha a comunidade à qual deseja participar.

Este artigo descreve as funções de tempo de execução da empresa.

Estas funções introduzem dados financeiros e calculam fórmulas.

cTermo

Calcula o número de períodos necessários para que o valor de investimento atual produza um valor-alvo.

Sintaxe

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

Parâmetros

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

Valor de retorno

O número de períodos necessários para atingir 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
Preço O preço de compra do ativo.
sucata O valor residual do ativo que foi amortizado.
Vida O tempo de vida esperado do ativo.
period O período para calcular a depreciação sobre.

Valor de retorno

A depreciação do ativo.

Observações

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

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

Existem três variações para o cálculo da depreciação: Se Período > de Vida:

  • Depreciação = 0

Se (Valor contabilístico do Período n) – ((Valor contabilístico do Período n) × 2 ÷ Vida) < Valor residual:

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

Em todos os outros casos: Depreciação = (Valor contabilístico do Período n) × 2 ÷ Vida 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 elevada para os anos anteriores, enquanto 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 o rácio de contribuição, que se baseia no preço de venda e no preço de compra. Se o valor do parâmetro sale 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.
compra O preço de compra.

Valor de retorno

O rácio 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
Montante O valor que foi pago durante cada período.
juros A taxa de juro.
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 no rácio de contribuição.

real idg(real purchase, real contribution_ratio)

Parâmetros

Parâmetro Description
compra O preço de compra.
contribution_ratio O rácio de contribuição.

Valor de retorno

O preço de venda.

Observações

Se o rácio de contribuição for igual a 1,0, o cálculo não pode 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 :

  • Nenhum
  • AnoMêsDia
  • AnoMês
  • Ano
  • MêsDia
  • Mês
  • Day
  • AnoTrimestre
  • Trimestre
  • Semana do Ano
  • Semana
  • Dia da 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

Devolve 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 existir.

Example

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

PMT

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
principal O montante que foi originalmente emprestado.
juros Os juros que são aplicados em cada período ao montante que foi emprestado.
Vida O número de períodos durante os quais o empréstimo é reembolsado.

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
Montante O número original.
percentagem O suplemento percentual.

Valor de retorno

O número que é igual a ((quantidade *× *percentagem) + montante).

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 presente de uma anuidade, em que um montante é recebido ao longo de vários períodos e a taxa de juro é deduzida para cada período.

Sintaxe

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

Parâmetros

Parâmetro Description
Montante O valor que é pago durante cada período.
juros A taxa de juro.
Vida O número de vezes que o valor especificado pelo parâmetro amount é 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 ao longo do 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.
_terms O número de períodos que o investimento abrange.

Valor de retorno

A taxa de juro calculada.

Observações

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

SLN

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

Sintaxe

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

Parâmetros

Parâmetro Description
Preço O preço de compra do ativo.
sucata O valor da 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
_price O preço de compra do ativo.
_scrap O valor da sucata do ativo.
_life A vida esperada do ativo (o número de períodos).
_period O período para calcular a depreciação para.

Valor de retorno

O montante da depreciação durante o período especificado.

Observações

Em contraste com a função sln , a função syd pode permitir uma depreciação acelerada do ativo. Tal como acontece com a função ddb , isto permite uma depreciação mais elevada durante os primeiros períodos da vida 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);

vigência

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

Sintaxe

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

Parâmetros

Parâmetro Description
Montante O montante do investimento periódico.
juros A taxa de juro para cada período.
future_value O valor futuro que se prevê para o investimento

Valor de retorno

O número de períodos durante 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;
}