Funções FormCalc de cadeias, datas e finanças

Os scripts calculate de XFA suportam as famílias de funções implementadas para além da aritmética: funções de cadeia, conversão de datas e a biblioteca financeira, com literais de cadeia e expressões de tipos mistos

String functions

Values and References documenta Ref, semântica de cópia de valores, atribuição de referências, desanexação null, argumentos de funções, comparações de identidade de objetos e handles retidos entre movimentos de instâncias repetidas

Dynamic Eval executa texto de origem através do compilador nativo e do runtime geral, incluindo variáveis declaradas localmente, funções, ciclos, mutações de campos, pedidos de locale e respostas registadas de transport do host

Concat, Len, Left, Right, Substr, Replace, Lower, Upper, Trim e Space operam sobre literais entre aspas e referências a campos; as subexpressões numéricas são convertidas em texto automaticamente

Date functions

O avaliador escalar nativo converte texto ISO YYYY-MM-DD com Date2Num e Num2Date; os dias seriais do FormCalc usam 1900-01-01 como dia 1, e Date() devolve o serial de hoje

A execução geral com EnableJavaScript também suporta pictures de locale através de Date2Num(value, picture, locale), Num2Date(serial, picture, locale), DateFmt, TimeFmt, IsoTime2Num, Time2Num, Num2Time, Num2GMTime e Time

Na execução geral, as pictures de Num2Date omitidas usam agora o padrão por defeito do locale ambiente; passe "YYYY-MM-DD" explicitamente para preservar a saída ISO anterior, e use IsoDate2Num para entrada ISO estrita

FormCalc Locale and Picture Functions documenta parâmetros, seleção de locale herdada, overrides de localeSet embedded, pictures numéricas/texto, unidades, encoding e números por extenso

Advanced Picture Clauses documenta notação científica, precisão fracionária expressa, datas ordinais e de semanas ISO, variantes de relógio, símbolos globais e parsing composto em eventos gerais, cálculos e validação

Finance functions

As funções financeiras seguem agora as semânticas de parâmetros do XFA FormCalc no avaliador nativo de cálculo e no compilador geral de eventos

FunçãoParâmetros e resultado
Pmt(principal, rate, periods)Prestação periódica positiva de um empréstimo; todos os argumentos têm de ser positivos
FV(payment, rate, periods)Valor futuro de prestações iguais; taxa zero devolve prestação vezes períodos
PV(payment, rate, periods)Valor presente de prestações iguais; taxa zero devolve prestação vezes períodos
Rate(future, present, periods)Taxa composta necessária para crescer o valor presente até ao valor futuro
CTerm(rate, future, initial)Períodos necessários para um investimento inicial composto
Term(payment, rate, future)Períodos necessários para prestações iguais atingirem o valor futuro
Apr(principal, monthlyPayment, periods)Taxa anual efetiva encontrada por um solver limitado de taxa mensal
NPV(rate, cashFlow1, ...)Fluxos de caixa descontados no fim do período, pela ordem dos argumentos
IPmt e PPmtJuro ou capital pago para (principal, annualRate, monthlyPayment, firstMonth, months); os índices de meses começam em 1, e 0 também seleciona o primeiro mês

Isto corrige a ordenação de argumentos ao estilo de folhas de cálculo e o tratamento de sinais anteriores: migre Pmt(rate, periods, principal) para Pmt(principal, rate, periods) e espere um resultado positivo; FV e PV operam agora sobre prestações periódicas em vez de um único montante inicial ou final

Rate calcula agora crescimento composto; NPer(rate, payment, future) continua a ser uma extensão não standard equivalente a Term(payment, rate, future)

Domínios financeiros inválidos rejeitam eventos gerais atomicamente; o avaliador nativo de cálculo reporta uma expressão falhada, e a iteração consome os orçamentos configurados de operações e de tempo

General event library

O compilador geral de eventos FormCalc suporta nomes built-in insensíveis a maiúsculas e minúsculas, literais decimais com ponto à esquerda, Null, funções trigonométricas científicas, Pi, conversão graus/radianos, Stuff e Str; Count inclui texto vazio e omite valores null, e agregados todos null devolvem null

Mod preserva o sinal do dividendo em ambos os caminhos de avaliação; Mod(-13, 3) devolve -1

Typing

A avaliação numérica mantém-se do tipo Double: uma fórmula cujo início é uma função de cadeia é resolvida como texto, e os resultados financeiros voltam a converter-se em expressões numéricas, para que Round(Pmt(...), 2) funcione; qualquer incompatibilidade de tipos continua a degradar-se para um valor em branco

Conditional logic and repeated arrays

Comparações, And, Or, Not, booleans e expressões preguiçosas If(condition, whenTrue, whenFalse) fornecem fluxo de controlo condicional limitado

Sum, Avg, Min, Max e Count aceitam seletores numéricos repetidos como rows[*].amount, enquanto as respetivas formas comuns de lista de argumentos continuam a agregar expressões escalares

Dynamic instance requests

InstanceAdd(name, count) e InstanceRemove(name, index) invocam o callback de instâncias validado configurado por quem chama e devolvem a contagem de instâncias resultante

Ver Bounded XFA FormCalc and JavaScript para o caminho opcional com QuickJS, arrays tipados, isolamento de runtime, orçamentos e telemetria

Explicit HTTP transport

Os scripts de eventos gerais suportam Get, Post e Put insensíveis a maiúsculas e minúsculas através de transport explícito do host da aplicação; os argumentos reenviam-se pela ordem dada e a aplicação fornece a resposta

Estas funções exigem EnableJavaScript e um callback HostTransport configurado no runtime de widgets; o avaliador escalar nativo não faz pedidos de rede