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ímboloComportamiento
EFormatea 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
8Conserva 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ímboloComportamiento
J, JJJDía del año, de 1 a 366; JJJ rellena a tres dígitos y el parsing valida años bisiestos
EDí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
eDía de la semana ISO de 1 para lunes a 7 para domingo
WWSemana 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
wSemana 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ímboloParsing de entradaFormateo de salida
?Consume un punto de código UnicodeProduce un espacio
*Consume cero o más caracteres de espacio desglosableProduce un espacio
+Consume uno o más caracteres de espacio desglosableProduce 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