Advanced XFA Picture Clauses

Zet TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript aan om deze pictures te gebruiken in FormCalc-events, calculate- en validate-scripts via de meegeleverde QuickJS-engine

Format(picture, value) produceert display-tekst en Parse(picture, text) produceert canonieke waarden; locale-selectie, geqoutete literals en alternatieven volgen FormCalc Locale and Picture Functions

Numerieke precisie en wetenschappelijke notatie

SymboolGedrag
EFormatteert een getekende base-10-exponent na de mantisse; de leading en fractionele cijferposities bepalen mantisse-precisie, met afrondings-overdracht toegepast voordat de exponent wordt uitgeschreven
8Behoudt de uitgedrukte fractionele precisie van aangeleverde decimale tekst, trailing zeros inbegrepen; afwezige fractionele cijfers laten het decimale radix weg, en een reeks van 8 symbolen kan meer aangeleverde fractionele cijfers behouden dan diens lengte

Wetenschappelijke mantisses gebruiken hoogstens 15 cijferposities; exponent-magnitudes en decimale uitklapping zijn begrensd op 10000, en niet-eindige waarden leveren lege tekst op

Precisie-pictures behouden geqoutete literals vóór en na fractionele posities; procent-schuiving verschuift de originele decimale tekst zonder trailing zeros te verliezen door binaire floating-point-conversie

Geef decimale strings door wanneer diens uitgedrukte precisie telt; JavaScript-numerieke waarden hebben al binaire floating-point-conversie ondergaan vóór formatting

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%

Ordinale en weekdatums

SymboolGedrag
J, JJJDag van het jaar, van 1 tot en met 366; JJJ vult aan op drie cijfers en parsen valideert schrikkeljaren
ENumerieke weekdag van 1 voor zondag tot en met 7 voor zaterdag; EEE en EEEE blijven afgekorte en volledige locale-weekdagnamen gebruiken
eISO-weekdag van 1 voor maandag tot en met 7 voor zondag
WWISO-week van 01 tot en met 53; week 01 bevat 4 januari, en een jaar in deze picture is het ISO-weekjaar
wMaandweek van 0 tot en met 5, beginnend op zondag; de eerste week moet ten minste vier dagen uit de maand bevatten

Ordinale of weekdatums parsen geeft de bijbehorende ISO-kalenderdatum terug; tegenstrijdige dag-, maand-, weekdag- of weekwaarden geven lege tekst terug

Viercijferige vroege jaren worden geconstrueerd zonder de JavaScript-eeuw-aanpassing, inclusief jaren 0000 tot en met 0099; historische alternatieve era's vallen buiten deze 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

Aanvullende klokvarianten

k en kk drukken een 0–11-uur binnen het meridiem uit; K en KK drukken een 1–24-uur binnen de dag uit, met 24 voor middernacht

Gebruik A bij k-klokken om AM en PM te onderscheiden; lowercase z formatteert een ISO-offset zonder dubbele punt, zz gebruikt een dubbele punt, en uppercase Z schrijft GMT of GMT met expliciete offset

Globale picture-symbolen

SymboolInvoer-parsingUitvoer-formatting
?Consumeert één Unicode-codepuntProduceert één spatie
*Consumeert nul of meer breekbare whitespace-tekensProduceert één spatie
+Consumeert één of meer breekbare whitespace-tekensProduceert één spatie

Deze symbolen werken binnen datum-, tijd-, datetime-, getal- en tekst-pictures; geqoutete symbolen blijven letterlijke tekens, supplementary Unicode-tekens tellen als één teken, en nonbreaking spaces vallen buiten whitespace-matching

Samengestelde invoer-parsing

Samengestelde datum- en tijd-clausules combineren naar canonieke ISO datum-tijd-tekst; herhaalde representaties van dezelfde waarde moeten overeenkomen, en letterlijke delimiters worden gecheckt vóór het accepteren van de invoer

Herhaalde scalar-clausules moeten hetzelfde canonieke getal of dezelfde tekst opleveren; incompatibele categoriecombinaties, tegenstrijdige waarden, incomplete consumptie of meerdere distincte canonieke resultaten leveren lege tekst op

Samengesteld parsen staat 64 delen, 8192 UTF-16-invoer-units en 8192 parse-pogingen toe, terwijl de runtime operation- en elapsed-time-budgetten worden gedeeld; overschrijding laat de event-transactie falen

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-gedrag en huidige grenzen

Berekende velden en events gebruiken dezelfde implementatie en locale-metadata; gefaalde scripts herstellen documentwaarden en gecommitte JavaScript-status, en opgeslagen XDP-data behoudt geslaagde resultaten

Alternatieve-era-kalenders, ideografische en full-width-representaties, gelokaliseerde display-only-symbolen en complete grouping-policies blijven aparte doelen

Zie Interactive XFA Widget Runtime voor transactie-, replay- en operation-budget-gedrag