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ón | Comportamiento |
|---|---|
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ón | Pará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ón | Pará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