Zaawansowane klauzule picture XFA
Włącz TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript, by używać tych obrazów w zdarzeniach FormCalc, skryptach calculate i validate przez dostarczany silnik QuickJS
Format(picture, value) produkuje tekst wyświetlany, a Parse(picture, text) wartości kanoniczne; wybór locale, cytowane literały i alternatywy podążają za FormCalc Locale and Picture Functions
Precyzja numeryczna i notacja naukowa
| Symbol | Behavior |
|---|---|
E | Formatuje podpisany wykładnik o podstawie 10 po mantysie; wiodące i ułamkowe pozycje cyfr określają precyzję mantysy, z przeniesieniem zaokrąglenia zastosowanym przed emisją wykładnika |
8 | Zachowuje wyrażoną precyzję ułamkową dostarczonego tekstu dziesiętnego, łącznie z końcowymi zerami; brakujące cyfry ułamkowe pomijają przecinek dziesiętny, a run 8 symboli może zachować więcej dostarczonych cyfr ułamkowych niż jego długość |
Naukowe mantysy używają co najwyżej 15 pozycji cyfr; magnitudy wykładników i rozwinięcie dziesiętne są ograniczone do 10000, a wartości nieskończone produkują pusty tekst
Obrazy precyzji zachowują cytowane literały przed i po pozycjach ułamkowych; skalowanie procentowe przesuwa oryginalny tekst dziesiętny bez utraty końcowych zer przez konwersję binarną zmiennoprzecinkową
Przekazuj łańcuchy dziesiętne, gdy ich wyrażona precyzja ma znaczenie; wartości numeryczne JavaScript przeszły już konwersję binarną zmiennoprzecinkową przed formatowaniem
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%
Daty porządkowe i tygodniowe
| Symbol | Behavior |
|---|---|
J, JJJ | Dzień roku, od 1 do 366; JJJ dopełnia do trzech cyfr, a parsowanie waliduje lata przestępne |
E | Dzień tygodnia numerycznie od 1 dla niedzieli do 7 dla soboty; EEE i EEEE nadal używają skróconych i pełnych nazw dni tygodnia locale |
e | Dzień tygodnia ISO od 1 dla poniedziałku do 7 dla niedzieli |
WW | Tydzień ISO od 01 do 53; tydzień 01 zawiera 4 stycznia, a rok w tym obrazie to rok tygodnia ISO |
w | Tydzień miesiąca od 0 do 5, zaczynając od niedzieli; pierwszy tydzień musi zawierać co najmniej cztery dni miesiąca |
Parsowanie dat porządkowych albo tygodniowych zwraca odpowiadającą datę kalendarzową ISO; sprzeczne wartości dnia, miesiąca, dnia tygodnia albo tygodnia zwracają pusty tekst
Czterocyfrowe wczesne lata są konstruowane bez korekty stulecia JavaScript, włącznie z latami 0000 do 0099; historyczne alternatywne ery pozostają poza tymi obrazami
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
Dodatkowe warianty zegara
k i kk wyrażają godzinę 0–11 w obrębie meridiemu; K i KK wyrażają godzinę 1–24 w obrębie dnia, z 24 reprezentującą północ
Użyj A z zegarami k, by rozróżnić AM i PM; małe z formatuje offset ISO bez dwukropka, zz używa dwukropka, a wielkie Z emituje GMT albo GMT z jawnym offsetem
Globalne symbole obrazów
| Symbol | Input parsing | Output formatting |
|---|---|---|
? | Konsumuje jeden punkt kodu Unicode | Produkuje jedną spację |
* | Konsumuje zero lub więcej łamalnych znaków białych | Produkuje jedną spację |
+ | Konsumuje jeden lub więcej łamalnych znaków białych | Produkuje jedną spację |
Te symbole działają w obrazach date, time, datetime, number i text; cytowane symbole pozostają znakami literałowymi, znaki Unicode z płaszczyzny uzupełniającej liczą się jako jeden znak, a nierozdzielające spacje są wyłączone z dopasowania białych znaków
Złożone parsowanie wejścia
Złożone klauzule daty i czasu łączą się w kanoniczny tekst ISO date-time; powtórzone reprezentacje tej samej wartości muszą się zgadzać, a literałowe separatory są sprawdzane przed akceptacją wejścia
Powtórzone klauzule skalarne muszą produkować tę samą kanoniczną liczbę albo tekst; niezgodne kombinacje kategorii, sprzeczne wartości, niekompletna konsumpcja albo wiele odrębnych wyników kanonicznych produkują pusty tekst
Parsowanie złożone dopuszcza 64 części, 8192 jednostek wejścia UTF-16 i 8192 prób parsowania, współdzieląc budżety operacji i czasu runtime; przekroczenie tych limitów zawodzi transakcję zdarzenia
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
Zachowanie runtime i bieżące granice
Pola obliczane i zdarzenia używają tej samej implementacji i metadanych locale; nieudane skrypty przywracają wartości dokumentu i zatwierdzony stan JavaScript, a zapisane dane XDP zachowują udane wyniki
Kalendarze alternatywnych er, reprezentacje ideograficzne i pełnowymiarowe, zlokalizowane symbole tylko wyświetlane i kompletne polityki grupowania pozostają osobnymi celami
Zobacz Interaktywny runtime widgetów XFA dla zachowania transakcji, replayu i budżetów operacji