Picture clauses XFA avanzadas
Activa TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript para usar estas pictures en eventos FormCalc y en scripts de cálculo y validación mediante el engine QuickJS incluido
Format(picture, value) produce texto de visualización y Parse(picture, text) produce valores canónicos; la selección de locale, los literales entre comillas y las alternativas siguen FormCalc Locale and Picture Functions
Precisión numérica y notación científica
| Símbolo | Comportamiento |
|---|---|
E | Formatea un exponente base-10 con signo tras la mantisa; las posiciones de dígitos entera y fraccionaria determinan la precisión de la mantisa, con el acarreo de redondeo aplicado antes de emitir el exponente |
8 | Conserva la precisión fraccionaria expresada del texto decimal suministrado, incluidos los ceros finales; sin dígitos fraccionarios se omite el radix decimal, y una secuencia de 8 símbolos puede preservar más dígitos fraccionarios suministrados que su longitud |
Las mantisas científicas usan como máximo 15 posiciones de dígito; las magnitudes de exponente y la expansión decimal están acotadas a 10000, y los valores no finitos producen texto vacío
Las pictures de precisión preservan los literales entre comillas antes y después de las posiciones fraccionarias; el escalado porcentual desplaza el texto decimal original sin perder ceros finales en la conversión de coma flotante binaria
Pasa cadenas decimales cuando su precisión expresada importa; los valores numéricos de JavaScript ya han pasado por la conversión de coma flotante binaria antes del formateo
Format("num{99.999E}", 12345) // 12.345E+3
Parse("num{99.999E}", "12.345E-2") // 0.12345
Format("num{zzz,zz9.8}", "12345.0000") // 12,345.0000
Parse("num{zz9.8}", "12.3400") // 12.3400
Format("num{zz9.8%}", "0.1250") // 12.50%
Fechas ordinales y de semana
| Símbolo | Comportamiento |
|---|---|
J, JJJ | Día del año, de 1 a 366; JJJ rellena a tres dígitos y el parsing valida años bisiestos |
E | Día de la semana numérico de 1 para domingo a 7 para sábado; EEE y EEEE siguen usando nombres de día abreviados y completos del locale |
e | Día de la semana ISO de 1 para lunes a 7 para domingo |
WW | Semana ISO de 01 a 53; la semana 01 contiene el 4 de enero, y un año en esta picture es el año de semana ISO |
w | Semana del mes de 0 a 5, empezando en domingo; la primera semana debe contener al menos cuatro días del mes |
El parsing de fechas ordinales o de semana devuelve la fecha de calendario ISO correspondiente; valores contradictorios de día, mes, día de la semana o semana devuelven texto vacío
Los años tempranos de cuatro dígitos se construyen sin el ajuste de siglo de JavaScript, incluidos los años 0000 a 0099; las eras históricas alternativas quedan fuera de estas pictures
Format("date{YYYY-JJJ}", "2024-02-29") // 2024-060
Parse("date{YYYY-WW-e}", "2020-53-5") // 2021-01-01
Format("date{w}", "2004-07-03") // 0
Variantes de reloj adicionales
k y kk expresan una hora 0–11 dentro del meridiem; K y KK expresan una hora 1–24 dentro del día, con 24 representando la medianoche
Usa A con relojes k para distinguir AM y PM; la z minúscula formatea un offset ISO sin dos puntos, zz usa dos puntos, y la Z mayúscula emite GMT o GMT con un offset explícito
Símbolos globales de picture
| Símbolo | Parsing de entrada | Formateo de salida |
|---|---|---|
? | Consume un punto de código Unicode | Produce un espacio |
* | Consume cero o más caracteres de espacio desglosable | Produce un espacio |
+ | Consume uno o más caracteres de espacio desglosable | Produce un espacio |
Estos símbolos funcionan dentro de pictures de fecha, hora, datetime, número y texto; los símbolos entre comillas quedan como caracteres literales, los caracteres Unicode suplementarios cuentan como un carácter, y los espacios de no ruptura quedan excluidos del matching de espacios
Parsing compuesto de entrada
Las clauses compuestas de fecha y hora se combinan en texto ISO date-time canónico; las representaciones repetidas del mismo valor deben coincidir, y los delimitadores literales se comprueban antes de aceptar la entrada
Las clauses escalares repetidas deben producir el mismo número o texto canónico; combinaciones de categorías incompatibles, valores contradictorios, consumo incompleto o múltiples resultados canónicos distintos producen texto vacío
El parsing compuesto admite 64 partes, 8192 unidades de entrada UTF-16 y 8192 intentos de parse, compartiendo además los presupuestos de operación y de tiempo transcurrido del runtime; superar estos límites hace fallar la transacción del evento
Parse("date{YYYY-MM-DD} time{HH:MM:SS}", "2024-02-29 12:34:56")
// 2024-02-29T12:34:56
Parse("date{YYYYMMDD}time{HHMMSS}", "20240229123456")
// 2024-02-29T12:34:56
Comportamiento en runtime y límites actuales
Los campos calculados y los eventos usan la misma implementación y metadatos de locale; los scripts fallidos restauran los valores del documento y el estado JavaScript confirmado, y los datos XDP guardados conservan los resultados correctos
Los calendarios de eras alternativas, las representaciones ideográficas y de ancho completo, los símbolos de solo visualización localizados y las políticas de agrupación completas siguen siendo objetivos separados
Consulta Interactive XFA Widget Runtime para el comportamiento de transacciones, repetición y presupuestos de operación