Funciones de locale y picture de FormCalc

Activa TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript para usar estas funciones en eventos generales de FormCalc y en scripts calculate y validate mediante el motor QuickJS incluido

Selección de locale

El campo en ejecución hereda el atributo locale no vacío más cercano de sus ancestros; una cadena vacía selecciona el locale nativo de Windows o Linux 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 datos del sistema, con fallback en_US para nombres de locale personalizados

Los identificadores de locale aceptan ortografías con guion bajo y guion de forma insensible a 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 lookups nombrados, 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 sesión confirmado consume los metadatos grabados sin otra llamada al proveedor

Funciones picture

FunciónComportamiento
Format(picture, value, ...)Formatea valores usando 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 argumentos de value correspondientes
Parse(picture, text)Parsea cláusulas tipadas, cláusulas compuestas o alternativas hacia 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 default, short, medium, long o full resueltos; el patrón numérico estándar de 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 30 de febrero devuelven texto vacío

Las pictures numéricas soportan 9 obligatorio, z opcional, Z rellenado con espacios, separadores decimal/de grupo, símbolos de moneda y códigos ISO de moneda, porcentajes, signos, paréntesis, sufijos crédito/débito 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

Las cláusulas picture avanzadas agregan notación científica numérica y precisión fraccionaria retenida, fechas ordinales y de semana, relojes adicionales, símbolos globales de carácter/whitespace y parseo de entradas compuestas

Los parámetros nulos 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 default del locale y también acepta fechas ISO
Num2Date(serial, picture, locale)Formatea días en serie usando la picture de fecha del locale aportado o el default
IsoDate2Num(text)Parsea fechas ISO compactas o con guiones, incluidos 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 offsets ausentes usan la zona horaria actual
Num2GMTime(serial, picture, locale), Num2Time(serial, picture, locale)Formatean series de tiempo de 1 a 86400000 en GMT o en la zona horaria actual
Date(), Time()Devuelven series de fecha/hora actuales con entradas de reloj grabadas durante el replay de sesión

Las pictures omitidas de Num2Date ahora producen salida localizada; migra los callers que requieran 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 usan pulgadas por defecto
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 escaping de 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 variante; el replay usa entradas aleatorias grabadas
WordNum(value, style=0, locale)Produce palabras numéricas en inglés, montos en dólares del estilo 1 o dólares y centavos del estilo 2; los dominios numéricos inválidos devuelven un asterisco

Límites actuales de pictures

Las eras alternativas, las representaciones ideográficas o de ancho completo, los alfabetos de dígitos localizados, los símbolos de patrones 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 de finanzas existentes; las funciones de locale/picture requieren ejecución general

APIs de nivel inferior

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

HPDFXFAExecuteJavaScriptEvent acepta TXFALocaleDataProvider para lookup personalizado de metadatos de solo lectura