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
| Symbool | Gedrag |
|---|---|
E | Formatteert 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 |
8 | Behoudt 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
| Symbool | Gedrag |
|---|---|
J, JJJ | Dag van het jaar, van 1 tot en met 366; JJJ vult aan op drie cijfers en parsen valideert schrikkeljaren |
E | Numerieke weekdag van 1 voor zondag tot en met 7 voor zaterdag; EEE en EEEE blijven afgekorte en volledige locale-weekdagnamen gebruiken |
e | ISO-weekdag van 1 voor maandag tot en met 7 voor zondag |
WW | ISO-week van 01 tot en met 53; week 01 bevat 4 januari, en een jaar in deze picture is het ISO-weekjaar |
w | Maandweek 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
| Symbool | Invoer-parsing | Uitvoer-formatting |
|---|---|---|
? | Consumeert één Unicode-codepunt | Produceert één spatie |
* | Consumeert nul of meer breekbare whitespace-tekens | Produceert één spatie |
+ | Consumeert één of meer breekbare whitespace-tekens | Produceert éé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