Funções FormCalc de string, data e finanças
Scripts de cálculo XFA suportam as famílias de funções implementadas além da aritmética: funções de string, conversão de datas e a biblioteca financeira, com literais de string e expressões de tipo misto
Funções de string
Values and References documenta Ref, semântica de cópia de valores, atribuição de referências, desanexação de null, argumentos de funções, comparações de identidade de objetos e handles retidos através do movimento de instâncias repetidas
Dynamic Eval executa texto de origem pelo compilador nativo e pelo runtime geral, incluindo variáveis declaradas localmente, funções, loops, mutações de campos, requests de locale e host transport responses gravadas
Concat, Len, Left, Right, Substr, Replace, Lower, Upper, Trim e Space operam em literais entre aspas e referências de campo; subexpressões numéricas convertem para texto automaticamente
Funções de data
O avaliador scalar nativo converte texto ISO YYYY-MM-DD com Date2Num e Num2Date; dias seriais FormCalc usam 1900-01-01 como dia 1, e Date() retorna o serial de hoje
Execução geral com EnableJavaScript também suporta pictures de locale por meio de Date2Num(value, picture, locale), Num2Date(serial, picture, locale), DateFmt, TimeFmt, IsoTime2Num, Time2Num, Num2Time, Num2GMTime e Time
Na execução geral, pictures de Num2Date omitidas agora usam o pattern default 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 embutidos, pictures numéricas/de texto, unidades, encoding e palavras de números
Advanced Picture Clauses documenta notação científica, precisão fracionária expressa, datas ordinais e de semana 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 agora seguem as semânticas de parâmetros do XFA FormCalc no avaliador de cálculo nativo e no compilador de eventos gerais
| Function | Parameters and result |
|---|---|
Pmt(principal, rate, periods) | Pagamento periódico positivo de empréstimo; todos os argumentos devem ser positivos |
FV(payment, rate, periods) | Valor futuro de pagamentos iguais; taxa zero retorna pagamento vezes períodos |
PV(payment, rate, periods) | Valor presente de pagamentos iguais; taxa zero retorna pagamento vezes períodos |
Rate(future, present, periods) | Taxa composta exigida para crescer o valor presente até o valor futuro |
CTerm(rate, future, initial) | Períodos exigidos para um investimento inicial composto |
Term(payment, rate, future) | Períodos exigidos para pagamentos iguais alcançarem o valor futuro |
Apr(principal, monthlyPayment, periods) | Taxa anual percentual encontrada por um solver limitado de taxa mensal |
NPV(rate, cashFlow1, ...) | Cash flows descontados de fim de período na ordem dos argumentos |
IPmt e PPmt | Juros ou principal pagos por (principal, annualRate, monthlyPayment, firstMonth, months); índices de mês começam em 1 e 0 também seleciona o primeiro mês |
Isso corrige a ordem de argumentos e o tratamento de sinais anteriores ao estilo de planilhas: migre Pmt(rate, periods, principal) para Pmt(principal, rate, periods) e espere um resultado positivo; FV e PV agora operam sobre pagamentos periódicos em vez de um único valor inicial ou final
Rate agora calcula crescimento composto; NPer(rate, payment, future) continua sendo uma extensão não padrão equivalente a Term(payment, rate, future)
Domínios financeiros inválidos rejeitam eventos gerais atomicamente; o avaliador de cálculo nativo reporta uma expressão que falhou, e a iteração consome os orçamentos configurados de operações e de tempo
Biblioteca de eventos gerais
O compilador de eventos FormCalc gerais suporta nomes built-in sem distinção de maiúsculas, literais decimais com ponto leading, Null, funções trigonométricas científicas, Pi, conversão grau/radiano, Stuff e Str; Count inclui texto vazio e omite valores null, e agregações todo-null retornam null
Mod preserva o sinal do dividendo nos dois caminhos de avaliação; Mod(-13, 3) retorna -1
Tipagem
A avaliação numérica permanece tipada como Double: uma fórmula cuja cabeça é uma função de string resolve textualmente, e resultados de finanças convertem de volta para expressões numéricas para que Round(Pmt(...), 2) funcione; qualquer incompatibilidade de tipo ainda degrada para um valor em branco
Lógica condicional e arrays repetidos
Comparações, And, Or, Not, booleanos e expressões preguiçosas If(condition, whenTrue, whenFalse) fornecem fluxo de controle condicional limitado
Sum, Avg, Min, Max e Count aceitam seletores numéricos repetidos como rows[*].amount, enquanto suas formas comuns de lista de argumentos continuam agregando expressões escalares
Solicitações dinâmicas de instância
InstanceAdd(name, count) e InstanceRemove(name, index) invocam o callback de instância validado configurado pelo chamador e retornam a contagem de instâncias resultante
Veja Bounded XFA FormCalc and JavaScript para o caminho opcional QuickJS, arrays tipados, isolamento de runtime, orçamentos e telemetria
Explicit HTTP transport
Scripts de eventos gerais suportam Get, Post e Put sem distinção de maiúsculas por meio do host transport explícito da aplicação; os argumentos são repassados em ordem e a aplicação fornece a response
Essas funções exigem EnableJavaScript e um callback HostTransport configurado no widget runtime; o avaliador scalar nativo não faz requests de rede