Avancerade XFA Picture-klausuler
Aktivera TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript för att använda dessa pictures i FormCalc-händelser samt calculate- och validate-skript via den medföljande QuickJS-motorn
Format(picture, value) producerar visningstext och Parse(picture, text) producerar kanoniska värden; locale-val, citerade litteraler och alternativ följer FormCalc Locale- och Picture-funktioner
Numerisk precision och vetenskaplig notation
| Symbol | Beteende |
|---|---|
E | Formaterar en signerad tiobasexponent efter mantissan; de inledande och fraktionella sifferpositionerna bestämmer mantissans precision, och rundningscarry tillämpas innan exponenten skrivs ut |
8 | Behåller den uttryckta fraktionella precisionen i levererad decimaltext, inklusive efterföljande nollor; saknade fraktionella siffror utelämnar decimalradixen, och en sekvens av 8-symboler kan bevara fler levererade fraktionella siffror än sin längd |
Vetenskapliga mantissor använder högst 15 sifferpositioner; exponentstorlekar och decimalexpansion är begränsade till 10000, och icke-ändliga värden ger tom text
Precisionspictures bevarar citerade litteraler före och efter fraktionella positioner; procent skalning skiftar den ursprungliga decimaltexten utan att efterföljande nollor går förlorade vid konvertering till binärt flyttal
Skicka decimalsträngar när deras uttryckta precision spelar roll; numeriska JavaScript-värden har redan genomgått konvertering till binärt flyttal innan formateringen
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%
Ordinal- och veckodatum
| Symbol | Beteende |
|---|---|
J, JJJ | Dag på året, från 1 till och med 366; JJJ fyller ut till tre siffror och parsning validerar skottår |
E | Numerisk veckodag från 1 för söndag till och med 7 för lördag; EEE och EEEE fortsätter att använda förkortade och fullständiga locale-namn för veckodagar |
e | ISO-veckodag från 1 för måndag till och med 7 för söndag |
WW | ISO-vecka från 01 till och med 53; vecka 01 innehåller 4 januari, och ett år i denna picture är ISO-veckoåret |
w | Månadsvecka från 0 till och med 5, med början söndag; den första veckan måste innehålla minst fyra dagar från månaden |
Parsning av ordinal- eller veckodatum returnerar motsvarande ISO-kalenderdatum; motstridiga dag-, månads-, veckodags- eller veckovärden returnerar tom text
Fyrsiffriga tidiga år konstrueras utan JavaScripts århundradejustering, inklusive åren 0000 till och med 0099; historiska alternativa eraer ligger utanför dessa 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
Ytterligare klockvarianter
k och kk uttrycker timme 0–11 inom meridiem; K och KK uttrycker timme 1–24 inom dygnet, där 24 betecknar midnatt
Använd A med k-klockor för att skilja AM och PM; gemena z formaterar en ISO-offset utan kolon, zz använder kolon, och versalt Z skriver GMT eller GMT med explicit offset
Globala picture-symboler
| Symbol | Indataparsning | Utmatningsformatering |
|---|---|---|
? | Konsumerar en Unicode-kodpunkt | Producerar ett mellanslag |
* | Konsumerar noll eller flera brytbara blanktecken | Producerar ett mellanslag |
+ | Konsumerar ett eller flera brytbara blanktecken | Producerar ett mellanslag |
Dessa symboler fungerar i date-, time-, datetime-, number- och text-pictures; citerade symboler förblir litterala tecken, kompletterande Unicode-tecken räknas som ett tecken, och hård mellanslag ingår inte i blankteckenmatchning
Sammansatt indataparsning
Sammansatta datum- och tidsklausuler kombineras till kanonisk ISO-datumtidstext; upprepade representationer av samma värde måste stämma överens, och litterala avgränsare kontrolleras innan inmatningen godtas
Upprepade skalära klausuler måste ge samma kanoniska tal eller text; inkompatibla kategorikombinationer, motstridiga värden, ofullständig konsumtion eller flera distinkta kanoniska resultat ger tom text
Sammansatt parsning tillåter 64 delar, 8192 UTF-16-indataenheter och 8192 parse-försök och delar samtidigt runtime-operationens budgetar och förfluten tid; överskridande av dessa gränser misslyckar händelsetransaktionen
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
Runtime-beteende och aktuella gränser
Beräknade fält och händelser använder samma implementation och locale-metadata; misslyckade skript återställer dokumentvärden och committat JavaScript-tillstånd, och sparat XDP-data behåller lyckade resultat
Kalendrar med alternativa eraer, ideografiska och fullbredd-representationer, lokaliserade symboler enbart för visning samt fullständiga grupperingspolicys är separata framtida mål
Se Interaktiv XFA Widget Runtime för beteende kring transaktioner, replay och operationsbudgetar