Funciones de cadena, fecha y finanzas de FormCalc

Los scripts de cálculo XFA ahora pueden usar las familias completas de funciones de FormCalc más allá de la aritmética: funciones de cadena, conversión de fecha y la biblioteca de finanzas, con literales de cadena y expresiones de tipo mixto

Funciones de cadena

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

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

Concat, Len, Left, Right, Substr, Replace, Lower, Upper, Trim y Space operan sobre literales entre comillas y referencias de campo; las subexpresiones 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 pictures de locale 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 usan ahora 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 incrustados, pictures numéricas/de texto, unidades, encoding y palabras numéricas

Advanced Picture Clauses documenta notación científica, precisión fraccional 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 siguen ahora la semántica de parámetros de XFA FormCalc en el evaluador de cálculo nativo y el compilador general de eventos

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; con tasa cero devuelve pago por períodos
PV(payment, rate, periods)Valor presente de pagos iguales; con tasa cero devuelve pago por períodos
Rate(future, present, periods)Tasa compuesta necesaria para hacer crecer el valor presente hasta el valor futuro
CTerm(rate, future, initial)Períodos necesarios para una inversión inicial capitalizada
Term(payment, rate, future)Períodos necesarios para que pagos iguales alcancen el valor futuro
Apr(principal, monthlyPayment, periods)Tasa anual porcentual hallada por un solver acotado de tasa mensual
NPV(rate, cashFlow1, ...)Flujos de caja descontados de fin de período en el orden de los argumentos
IPmt y PPmtInterés o capital 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 al estilo hoja de cálculo anterior: migre Pmt(rate, periods, principal) a Pmt(principal, rate, periods) y espere un resultado positivo; FV y PV operan ahora sobre pagos periódicos en lugar de un único importe inicial o final

Rate calcula ahora 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 informa una expresión fallida, y la iteración consume los presupuestos de operación y tiempo configurados

Biblioteca de eventos generales

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

Mod preserva el signo del dividendo en ambas rutas 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 discrepancia de tipo sigue degradándose a un valor en blanco

Lógica condicional y matrices repetidas

Las comparaciones, And, Or, Not, los booleanos y las expresiones perezosas If(condition, whenTrue, whenFalse) proporcionan flujo de control 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 continúan agregando expresiones escalares

Solicitudes dinámicas de instancia

InstanceAdd(name, count) e InstanceRemove(name, index) invocan la devolución de llamada de instancia validada configurada por el llamador y devuelven el recuento de instancias resultante

Consulte FormCalc XFA y JavaScript acotados para conocer la ruta opcional de QuickJS, las matrices tipadas, el aislamiento del tiempo de ejecución, 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 del 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