Funciones FormCalc de cadenas, fechas y finanzas

Los scripts XFA calculate soportan las familias de funciones implementadas más allá de la aritmética: funciones de cadena, conversión de fechas y la librería de finanzas, con string literals y expresiones de tipos mezclados

Funciones de cadena

Values and References documenta Ref, la semántica de copia de valores, la asignación de referencias, el desacoplamiento de null, los argumentos de funciones, las comparaciones de identidad de objetos y los handles retenidos tras movimientos de instancias repetidas

Dynamic Eval ejecuta texto fuente a través del compilador nativo y el runtime general, incluyendo variables declaradas localmente, funciones, loops, mutaciones de campos, solicitudes de locale y respuestas grabadas del transporte de host

Concat, Len, Left, Right, Substr, Replace, Lower, Upper, Trim y Space operan sobre literales entre comillas y referencias a campos; las sub-expresiones numéricas se convierten a texto automáticamente

Funciones de fecha

El evaluador escalar nativo convierte texto ISO YYYY-MM-DD con Date2Num y Num2Date; los días seriales de FormCalc usan 1900-01-01 como día 1, y Date() devuelve el serial de hoy

La ejecución general con EnableJavaScript también soporta locale pictures mediante Date2Num(value, picture, locale), Num2Date(serial, picture, locale), DateFmt, TimeFmt, IsoTime2Num, Time2Num, Num2Time, Num2GMTime y Time

En la ejecución general, las pictures omitidas de Num2Date ahora usan el patrón por defecto del locale ambiente; pase "YYYY-MM-DD" explícitamente para preservar la salida ISO anterior, y use IsoDate2Num para entrada ISO estricta

FormCalc Locale and Picture Functions documenta parámetros, selección de locale heredada, overrides de localeSet embebidos, pictures numéricas/de texto, unidades, encoding y palabras numéricas

Advanced Picture Clauses documenta notación científica, precisión fraccionaria expresada, fechas ordinales y de semana ISO, variantes de reloj, símbolos globales y parseo compuesto en eventos generales, cálculos y validación

Funciones de finanzas

Las funciones financieras ahora siguen la semántica de parámetros XFA FormCalc en el evaluador de cálculo nativo y en el compilador de eventos general

FunciónParámetros y resultado
Pmt(principal, rate, periods)Pago periódico positivo de un préstamo; todos los argumentos deben ser positivos
FV(payment, rate, periods)Valor futuro de pagos iguales; una tasa cero devuelve payment por periods
PV(payment, rate, periods)Valor presente de pagos iguales; una tasa cero devuelve payment por periods
Rate(future, present, periods)Tasa compuesta requerida para hacer crecer el valor presente hasta el valor futuro
CTerm(rate, future, initial)Períodos requeridos para una inversión inicial compuesta
Term(payment, rate, future)Períodos requeridos para que pagos iguales alcancen el valor futuro
Apr(principal, monthlyPayment, periods)Tasa anual porcentual encontrada por un solver acotado de tasa mensual
NPV(rate, cashFlow1, ...)Flujos de cash descontados de fin de período en el orden de argumentos
IPmt y PPmtInterés o principal pagado para (principal, annualRate, monthlyPayment, firstMonth, months); los índices de mes empiezan en 1 y 0 también selecciona el primer mes

Esto corrige el orden de argumentos y el manejo de signos estilo hoja de cálculo anteriores: migre Pmt(rate, periods, principal) a Pmt(principal, rate, periods) y espere un resultado positivo; FV y PV ahora operan sobre pagos periódicos en lugar de un único monto inicial o final

Rate ahora computa crecimiento compuesto; NPer(rate, payment, future) sigue siendo una extensión no estándar equivalente a Term(payment, rate, future)

Los dominios financieros inválidos rechazan los eventos generales de forma atómica; el evaluador de cálculo nativo reporta una expresión fallida, y la iteración consume los presupuestos configurados de operaciones y tiempo

Librería de eventos generales

El compilador de eventos generales de FormCalc soporta nombres built-in insensibles a mayúsculas, literales decimales con punto inicial, Null, funciones trigonométricas científicas, Pi, conversión de grados/radianes, Stuff y Str; Count incluye el texto vacío y omite los valores null, y los agregados todo-null devuelven null

Mod preserva el signo del dividendo en ambas vías de evaluación; Mod(-13, 3) devuelve -1

Tipado

La evaluación numérica permanece tipada como Double: una fórmula cuya cabeza es una función de cadena se resuelve textualmente, y los resultados de finanzas se convierten de vuelta en expresiones numéricas para que Round(Pmt(...), 2) funcione; cualquier mismatch de tipos sigue degradando a un valor en blanco

Lógica condicional y arrays repetidos

Las comparaciones, And, Or, Not, los booleans y las expresiones lazy If(condition, whenTrue, whenFalse) aportan control de flujo condicional acotado

Sum, Avg, Min, Max y Count aceptan selectores numéricos repetidos como rows[*].amount, mientras que sus formas ordinarias de lista de argumentos siguen agregando expresiones escalares

Solicitudes de instancias dinámicas

InstanceAdd(name, count) y InstanceRemove(name, index) invocan el callback de instancias validado configurado por el llamador y devuelven el conteo de instancias resultante

Consulte Bounded XFA FormCalc and JavaScript para conocer la vía opcional de QuickJS, los arrays tipados, el aislamiento de runtime, los presupuestos y la telemetría

Transporte HTTP explícito

Los scripts de eventos generales soportan Get, Post y Put insensibles a mayúsculas a través del transporte explícito de host de la aplicación; los argumentos se reenvían en orden y la aplicación suministra la respuesta

Estas funciones exigen EnableJavaScript y un callback HostTransport configurado en el runtime de widgets; el evaluador escalar nativo no realiza solicitudes de red