Locale y picture functions de FormCalc

Activa TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript para usar estas funciones en eventos generales de FormCalc y en scripts de cálculo y validación a través del motor QuickJS incluido

Selección de locale

El campo en ejecución hereda el atributo locale no vacío más próximo de sus ancestros; una cadena vacía selecciona el locale nativo de Windows o Linux con ICU configurado

Una entrada localeSet del documento sobrescribe los símbolos nativos de número/moneda, los nombres de mes/día/meridiem y los patrones de fecha/hora/número; los valores ausentes heredan los datos del sistema, con fallback en_US para nombres de locale personalizados

Los identificadores de locale aceptan grafías con guion bajo y guion, sin distinción de mayúsculas; los nombres calculados como Concat("de", "_DE") se resuelven en tiempo de ejecución

Las peticiones internas de locale comparten el deadline del evento y permiten 64 búsquedas por nombre, 256 unidades de código UTF-16 por identificador y 2 MiB de metadatos agregados; los reintentos restauran el checkpoint de JavaScript, y el replay de una sesión confirmada consume los metadatos grabados sin otra llamada al proveedor

Picture functions

FunciónComportamiento
Format(picture, value, ...)Da formato a valores con cláusulas date, time, datetime, num o text; las cláusulas compuestas estándar formatean el mismo valor, con una extensión opcional que acepta los argumentos de valor correspondientes
Parse(picture, text)Analiza cláusulas tipadas, compuestas o alternativas y las convierte en texto ISO de fecha/hora, texto numérico decimal o texto sin los literales

Usa date(de_DE){D. MMMM YYYY} para un locale explícito, num.currency para un estilo de locale y una barra vertical para alternativas; los literales entre comillas y los apóstrofos dobles preservan los caracteres literales

Los estilos de fecha, hora y datetime usan los patrones resolved default, short, medium, long o full; el patrón numérico estándar del localeSet aporta tanto num.decimal como su parte entera para num.integer

Las pictures de fecha/hora soportan año, mes, día, nombres de día de la semana, relojes de 12/24 horas, minutos, segundos, milisegundos fraccionarios, meridiems y offsets GMT/UTC explícitos; las fechas inválidas como el 30 de febrero devuelven texto vacío

Las pictures numéricas soportan el 9 obligatorio, el z opcional, la Z rellena con espacios, los separadores decimal/de grupo, los símbolos de moneda y los códigos ISO de moneda, porcentajes, signos, paréntesis, sufijos credit/debit y radix decimal implícito

Las pictures de texto soportan A para letras Unicode, O o 0 para caracteres alfanuméricos Unicode, 9 para dígitos y X para puntos de código Unicode, incluidos los caracteres suplementarios

Cláusulas picture avanzadas añaden notación científica numérica y precisión fraccional retenida, fechas ordinales y de semana, relojes adicionales, símbolos globales de carácter/espacio en blanco y análisis de entrada compuesta

Los parámetros null devuelven null; las pictures inválidas, los valores inválidos o los locales no disponibles devuelven texto vacío

target = Format("num(de_DE){z,zz9.99}", 1234.5)
target = Parse("date{MMM D, YYYY}", "Sep 1, 2002")
target = Format("date{YYYY-MM-DD} 'at' time{HH:MM}", "2024-03-15T13:45:09")

Funciones de fecha y hora

FunciónParámetros y resultado
DateFmt(style=0, locale), TimeFmt(style=0, locale)Devuelven patrones XFA para default 0, short 1, medium 2, long 3 o full 4; los estilos inválidos seleccionan default
Date2Num(text, picture, locale)Devuelve días en serie con 1900-01-01 como día 1; una picture omitida usa el valor por defecto del locale y también acepta fechas ISO
Num2Date(serial, picture, locale)Da formato a los días en serie usando la picture de fecha suministrada o la del locale por defecto
IsoDate2Num(text)Analiza fechas ISO compactas o con guiones, incluidos los sufijos de hora opcionales
IsoTime2Num(text), Time2Num(text, picture, locale)Devuelven milisegundos desde la medianoche GMT más 1; los offsets explícitos se aplican y los ausentes usan la zona horaria actual
Num2GMTime(serial, picture, locale), Num2Time(serial, picture, locale)Dan formato a los seriales de tiempo de 1 a 86400000 en GMT o en la zona horaria actual
Date(), Time()Devuelven los seriales actuales de fecha/hora con las entradas de reloj grabadas durante el replay de sesión

Las pictures omitidas de Num2Date producen ahora salida localizada; migra los llamadores que necesiten salida ISO a Num2Date(serial, "YYYY-MM-DD")

Unidades, codificación y utilidades de texto

FunciónParámetros y resultado
UnitType(measurement)Reconoce los alias in, cm, mm, pt, pc y mp; las unidades no reconocidas pasan a pulgadas
UnitValue(measurement, targetUnit="in")Convierte medidas con 72 puntos por pulgada, 12 puntos por pica y 1000 milipuntos por punto
Encode(text, encoding="url"), Decode(text, encoding="url")Soportan escapado URL, entidades XML y entidades HTML nombradas/numéricas con validación de escalares Unicode
Uuid(style=0)Devuelve 32 dígitos hexadecimales o el estilo 1 con guiones, con bits de versión 4 y de variante; el replay usa las entradas aleatorias grabadas
WordNum(value, style=0, locale)Produce palabras numéricas en inglés, cantidades en dólares con el estilo 1 o dólares y centavos con el estilo 2; los dominios numéricos inválidos devuelven un asterisco

Límites actuales de las pictures

Las eras alternativas, las representaciones ideográficas o de anchura completa, los alfabetos de dígitos localizados, los símbolos de patrón localizados de solo visualización y las políticas completas de agrupación siguen siendo objetivos separados; WordNum emite palabras en inglés

El evaluador escalar nativo conserva sus funciones ISO y financieras existentes; las funciones de locale/picture exigen ejecución general

APIs de nivel inferior

TXFALocaleData, HPDFXFALoadLocale, HPDFXFALoadDocumentLocale y HPDFXFALocaleJavaScript exponen los metadatos de locale Unicode y una serialización segura del motor

HPDFXFAExecuteJavaScriptEvent acepta TXFALocaleDataProvider para búsquedas personalizadas de metadatos de solo lectura