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

FunctionParameters 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 PPmtJuros 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