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

SymbolBeteende
EFormaterar en signerad tiobasexponent efter mantissan; de inledande och fraktionella sifferpositionerna bestämmer mantissans precision, och rundningscarry tillämpas innan exponenten skrivs ut
8Behå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

SymbolBeteende
J, JJJDag på året, från 1 till och med 366; JJJ fyller ut till tre siffror och parsning validerar skottår
ENumerisk 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
eISO-veckodag från 1 för måndag till och med 7 för söndag
WWISO-vecka från 01 till och med 53; vecka 01 innehåller 4 januari, och ett år i denna picture är ISO-veckoåret
wMå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

SymbolIndataparsningUtmatningsformatering
?Konsumerar en Unicode-kodpunktProducerar ett mellanslag
*Konsumerar noll eller flera brytbara blankteckenProducerar ett mellanslag
+Konsumerar ett eller flera brytbara blankteckenProducerar 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