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