Avancerede XFA Picture Clauses

Aktivér TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript for at bruge disse pictures i FormCalc-events samt calculate- og validate-scripts gennem den medfølgende QuickJS-motor

Format(picture, value) producerer display-tekst, og Parse(picture, text) producerer kanoniske værdier; locale-valg, quotede literaler og alternativer følger FormCalc Locale- og Picture-funktioner

Numerisk præcision og videnskabelig notation

SymbolAdfærd
EFormaterer en signed base-10-eksponent efter mantissen; de førende og fraktionelle cifferpositioner bestemmer mantissepræcision, med afrundings-carry anvendt før eksponenten udsendes
8Beholder den udtrykte fraktionelle præcision af leveret decimaltekst, inklusive afsluttende nuller; fraværende fraktionelle cifre udelader decimalradix, og en række på 8-symboler kan bevise flere leverede fraktionelle cifre end sin længde

Videnskabelige mantisser bruger højst 15 cifferpositioner; eksponentstørrelser og decimaludvidelse er afgrænsede til 10000, og ikke-finitære værdier giver tom tekst

Præcision-pictures bevarer quotede literaler før og efter fraktionelle positioner; procentskalering flytter den originale decimaltekst uden at tabe afsluttende nuller gennem binær floating point-konvertering

Send decimalstrenge, når deres udtrykte præcision betyder noget; JavaScript-numeriske værdier har allerede gennemgået binær floating point-konvertering inden formatering

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- og ugedatoer

SymbolAdfærd
J, JJJÅrets dag fra 1 til 366; JJJ polstrer til tre cifre, og parsing validerer skudår
ENumerisk ugedag fra 1 for søndag til 7 for lørdag; EEE og EEEE fortsætter med at bruge forkortede og fulde locale-ugedagsnavne
eISO-ugedag fra 1 for mandag til 7 for søndag
WWISO-uge fra 01 til 53; uge 01 indeholder 4. januar, og et år i dette picture er ISO-ugeåret
wMånedsuge fra 0 til 5 begyndende på søndag; den første uge skal indeholde mindst fire dage fra måneden

Parsing af ordinal- eller ugedatoer returnerer den tilsvarende ISO-kalenderdato; modstridende dag-, måned-, ugedags- eller uge-værdier returnerer tom tekst

Fircifrede tidlige år konstrueres uden JavaScripts århundrede-justering, inklusive år 0000 til 0099; historiske alternative æraer forbliver uden for disse 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

Yderligere klokkevarianter

k og kk udtrykker en 0–11-time inden for meridiem; K og KK udtrykker en 1–24-time inden for døgnet, hvor 24 repræsenterer midnat

Brug A med k-klokker til at skelne AM og PM; lowercase z formaterer en ISO-offset uden kolon, zz bruger kolon, og versal Z udsender GMT eller GMT med eksplicit offset

Globale picture-symboler

SymbolInput-parsingOutput-formatering
?Forbruger ét Unicode code pointProducerer ét mellemrum
*Forbruger nul eller flere brydbare whitespace-tegnProducerer ét mellemrum
+Forbruger et eller flere brydbare whitespace-tegnProducerer ét mellemrum

Disse symboler virker inden for date-, time-, datetime-, number- og text-pictures; quotede symboler forbliver literaltegn, supplementary Unicode-tegn tæller som ét tegn, og hårdte mellemrum er ekskluderet fra whitespace-matching

Sammensat input-parsing

Sammensatte dato- og tidsclauses kombineres til kanonisk ISO dato-tid-tekst; gentagne repræsentationer af samme værdi skal være enige, og literal-skilletegn tjekkes, før inputtet accepteres

Gentagne scalar-clauses skal producere samme kanoniske tal eller tekst; inkompatible kategorikombinationer, modstridende værdier, ufuldstændigt forbrug eller flere distinkte kanoniske resultater giver tom tekst

Sammensat parsing tillader 64 dele, 8192 UTF-16 inputunits og 8192 parseforsøg, mens runtime operations- og forløbet tidsbudgetter deles; overskrides disse grænser, fikser event-transaktionen

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-adfærd og aktuelle grænser

Beregnede felter og events bruger samme implementering og locale-metadata; mislykkede scripts gendanner dokumentværdier og committed JavaScript-tilstand, og gemt XDP-data beholder succesfulde resultater

Alternative æra-kalendere, ideografiske og fuldbredde-repræsentationer, lokaliserede kun-display-symboler og komplette grupperingspolitikker forbliver separate mål

Se Interactive XFA Widget Runtime for transaktions-, replay- og operationsbudget-adfærd