Picture clause XFA avanzate

Abilita TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript per usare queste picture negli eventi FormCalc e negli script calculate e validate attraverso il motore QuickJS fornito

Format(picture, value) produce testo di visualizzazione e Parse(picture, text) produce valori canonici; selezione locale, letterali quotati e alternative seguono le funzioni locale e picture di FormCalc

Precisione numerica e notazione scientifica

SimboloComportamento
EFormatta un esponente in base 10 con segno dopo la mantissa; le posizioni delle cifre intere e frazionarie determinano la precisione della mantissa, con riporto di arrotondamento applicato prima dell'emissione dell'esponente
8Conserva la precisione frazionaria espressa del testo decimale fornito, inclusi gli zeri finali; cifre frazionarie assenti omettono la radice decimale, e una sequenza di simboli 8 può preservare più cifre frazionarie fornite della sua lunghezza

Le mantisse scientifiche usano al massimo 15 posizioni di cifra; le magnitudini degli esponenti e l'espansione decimale sono limitate a 10000, e i valori non finiti producono testo vuoto

Le picture di precisione preservano i letterali quotati prima e dopo le posizioni frazionarie; il ridimensionamento percentuale sposta il testo decimale originale senza perdere zeri finali attraverso la conversione in floating point binario

Passa stringhe decimali quando la loro precisione espressa conta; i valori numerici JavaScript hanno già subito la conversione in floating point binario prima della formattazione

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%

Date ordinali e settimanali

SimboloComportamento
J, JJJGiorno dell'anno, da 1 a 366; JJJ riempie a tre cifre e il parsing valida gli anni bisestili
EGiorno della settimana numerico da 1 per domenica a 7 per sabato; EEE ed EEEE continuano a usare i nomi abbreviati e completi dei giorni della settimana del locale
eGiorno della settimana ISO da 1 per lunedì a 7 per domenica
WWSettimana ISO da 01 a 53; la settimana 01 contiene il 4 gennaio, e un anno in questa picture è l'anno della settimana ISO
wSettimana del mese da 0 a 5, che inizia di domenica; la prima settimana deve contenere almeno quattro giorni del mese

Il parsing di date ordinali o settimanali restituisce la corrispondente data di calendario ISO; valori contraddittori di giorno, mese, giorno della settimana o settimana restituiscono testo vuoto

Gli anni precoci a quattro cifre vengono costruiti senza la correzione del secolo JavaScript, inclusi gli anni 0000 through 0099; le ere storiche alternative restano fuori da queste picture

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

Varianti di orologio aggiuntive

k e kk esprimono un'ora 0–11 entro il meridiem; K e KK esprimono un'ora 1–24 entro il giorno, con 24 che rappresenta la mezzanotte

Usa A con gli orologi k per distinguere AM e PM; la z minuscola formatta un offset ISO senza due punti, zz usa i due punti, e la Z maiuscola emette GMT o GMT con offset esplicito

Simboli picture globali

SimboloParsing dell'inputFormattazione dell'output
?Consuma un code point UnicodeProduce uno spazio
*Consuma zero o più caratteri di spazio interrompibiliProduce uno spazio
+Consuma uno o più caratteri di spazio interrompibiliProduce uno spazio

Questi simboli funzionano dentro le picture date, time, datetime, number e text; i simboli quotati restano caratteri letterali, i caratteri Unicode supplementari contano come un carattere, e gli spazi unificatori sono esclusi dal matching degli spazi

Parsing composto dell'input

Le clausole composte di data e ora si combinano in testo data-ora ISO canonico; le rappresentazioni ripetute dello stesso valore devono concordare, e i delimitatori letterali vengono verificati prima di accettare l'input

Le clausole scalari ripetute devono produrre lo stesso numero o testo canonico; combinazioni di categorie incompatibili, valori contraddittori, consumo incompleto o molteplici risultati canonici distinti producono testo vuoto

Il parsing composto ammette 64 parti, 8192 unità UTF-16 di input e 8192 tentativi di parse, condividendo i budget di operazione e tempo trascorso del runtime; superare questi limiti fa fallire la transazione dell'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

Comportamento runtime e confini attuali

I campi calcolati e gli eventi usano la stessa implementazione e gli stessi metadati locale; gli script falliti ripristinano i valori del documento e lo stato JavaScript committato, e i dati XDP salvati conservano i risultati riusciti

Calendari di ere alternative, rappresentazioni ideografiche e full-width, simboli localizzati solo di visualizzazione e policy di raggruppamento complete restano obiettivi separati

Vedi Runtime interattivo dei widget XFA per il comportamento di transazione, replay e budget di operazione