Picture clauses XFA avanzadas

Activa TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript para usar estos pictures en eventos FormCalc y en scripts de calculate y validate a través del 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 entrecomillados 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 después de la mantisa; las posiciones de dígitos enteros y fraccionarios determinan la precisión de la mantisa, con acarreo de redondeo aplicado antes de emitir el exponente
8Conserva la precisión fraccionaria expresada del texto decimal suministrado, incluidos los ceros finales; los dígitos fraccionarios ausentes omiten la raíz 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ígitos; las magnitudes de exponente y la expansión decimal se acotan a 10000, y los valores no finitos producen texto vacío

Los pictures de precisión preservan los literales entrecomillados 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 punto flotante binario

Pasa strings decimales cuando su precisión expresada importa; los valores numéricos JavaScript ya pasaron por la conversión de punto flotante binario 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 abreviados y completos de día según el 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 este picture es el año de semana ISO
wSemana del mes de 0 a 5, comenzando 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 alternativas históricas quedan fuera de estos 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 entrecomillados siguen siendo caracteres literales, los caracteres Unicode suplementarios cuentan como un carácter, y los espacios de no separación quedan excluidos del matching de espacios

Parsing de entrada compuesto

Las cláusulas 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 verifican antes de aceptar la entrada

Las cláusulas 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 permite 64 partes, 8192 unidades UTF-16 de entrada y 8192 intentos de parse, a la vez que comparte los presupuestos de operaciones y tiempo transcurrido del runtime; exceder 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 exitosos

Los calendarios de eras alternativas, las representaciones ideográficas y de ancho completo, los símbolos localizados de solo visualización y las políticas completas de agrupación siguen siendo objetivos separados

Consulta Interactive XFA Widget Runtime para el comportamiento de transacciones, replay y presupuestos de operaciones