Erweiterte XFA-Picture-Clauses
Aktiviere TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript, um diese Pictures in FormCalc-Ereignissen sowie in Calculate- und Validate-Skripten über die mitgelieferte QuickJS-Engine zu nutzen
Format(picture, value) erzeugt Anzeigetext und Parse(picture, text) erzeugt kanonische Werte; Locale-Auswahl, quotierte Literale und Alternativen folgen FormCalc-Locale- und Picture-Funktionen
Numerische Präzision und wissenschaftliche Notation
| Symbol | Verhalten |
|---|---|
E | Formatiert einen vorzeichenbehafteten Exponenten zur Basis 10 hinter der Mantisse; die führenden und Nachkommastellen-Positionen bestimmen die Mantissengenauigkeit, wobei Rundungsüberträge angewendet werden, bevor der Exponent ausgegeben wird |
8 | Behält die ausgedrückte Nachkommastellen-Präzision des gelieferten Dezimaltexts bei, einschließlich abschließender Nullen; fehlende Nachkommastellen lassen den Dezimalradix weg, und eine Folge von 8 Symbolen kann mehr gelieferte Nachkommastellen bewahren als ihre Länge |
Wissenschaftliche Mantissen nutzen höchstens 15 Ziffernpositionen; Exponentengrößen und Dezimalausdehnung sind auf 10000 begrenzt, und nicht endliche Werte ergeben leeren Text
Präzisions-Pictures bewahren quotierte Literale vor und nach Nachkommastellen-Positionen; Prozent-Skalierung verschiebt den ursprünglichen Dezimaltext, ohne abschließende Nullen durch die binäre Floating-Point-Konvertierung zu verlieren
Übergib Dezimalstrings, wenn ihre ausgedrückte Präzision zählt; numerische JavaScript-Werte haben die binäre Floating-Point-Konvertierung bereits vor der Formatierung durchlaufen
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- und Wochendaten
| Symbol | Verhalten |
|---|---|
J, JJJ | Tag des Jahres, von 1 bis 366; JJJ padet auf drei Stellen, und das Parsing validiert Schaltjahre |
E | Numerischer Wochentag von 1 für Sonntag bis 7 für Samstag; EEE und EEEE verwenden weiterhin abgekürzte und volle Locale-Wochentagsnamen |
e | ISO-Wochentag von 1 für Montag bis 7 für Sonntag |
WW | ISO-Woche von 01 bis 53; Woche 01 enthält den 4. Januar, und ein Jahr in diesem Picture ist das ISO-Wochenjahr |
w | Monatswoche von 0 bis 5, beginnend am Sonntag; die erste Woche muss mindestens vier Tage des Monats enthalten |
Das Parsen von Ordinal- oder Wochendaten liefert das entsprechende ISO-Kalenderdatum; widersprüchliche Tages-, Monats-, Wochentags- oder Wochenwerte liefern leeren Text
Vierstellige frühe Jahre werden ohne die JavaScript-Jahrhundertanpassung konstruiert, einschließlich der Jahre 0000 bis 0099; historische Alternativ-Ären bleiben außerhalb dieser 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
Weitere Uhr-Varianten
k und kk drücken eine 0–11-Stunde innerhalb des Meridiems aus; K und KK drücken eine 1–24-Stunde innerhalb des Tages aus, wobei 24 für Mitternacht steht
Verwende A mit k-Uhren zur Unterscheidung von AM und PM; kleines z formatiert einen ISO-Offset ohne Doppelpunkt, zz verwendet einen Doppelpunkt, und großes Z gibt GMT oder GMT mit explizitem Offset aus
Globale Picture-Symbole
| Symbol | Eingabeparsen | Ausgabeformatierung |
|---|---|---|
? | Verbraucht einen Unicode-Codepoint | Erzeugt ein Leerzeichen |
* | Verbraucht null oder mehr umbrechbare Whitespace-Zeichen | Erzeugt ein Leerzeichen |
+ | Verbraucht ein oder mehr umbrechbare Whitespace-Zeichen | Erzeugt ein Leerzeichen |
Diese Symbole funktionieren in Date-, Time-, Datetime-, Number- und Text-Pictures; quotierte Symbole bleiben literale Zeichen, supplementäre Unicode-Zeichen zählen als ein Zeichen, und geschützte Leerzeichen sind vom Whitespace-Matching ausgeschlossen
Zusammengesetztes Eingabeparsen
Zusammengesetzte Date- und Time-Clauses kombinieren sich zu kanonischem ISO-Datums-Zeit-Text; wiederholte Darstellungen desselben Werts müssen übereinstimmen, und literale Trenner werden vor der Annahme der Eingabe geprüft
Wiederholte Scalar-Clauses müssen dieselbe kanonische Zahl oder denselben kanonischen Text erzeugen; inkompatible Kategoriekombinationen, widersprüchliche Werte, unvollständiger Verbrauch oder mehrfach unterschiedliche kanonische Ergebnisse liefern leeren Text
Zusammengesetztes Parsen erlaubt 64 Teile, 8192 UTF-16-Eingabeeinheiten und 8192 Parse-Versuche und teilt sich die Runtime-Operations- und Ablaufzeit-Budgets; das Überschreiten dieser Grenzen lässt die Ereignistransaktion fehlschlagen
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
Laufzeitverhalten und aktuelle Grenzen
Berechnete Felder und Ereignisse nutzen dieselbe Implementierung und Locale-Metadaten; fehlgeschlagene Skripte stellen Dokumentwerte und committeten JavaScript-Zustand wieder her, und gespeicherte XDP-Daten behalten erfolgreiche Ergebnisse
Kalender mit alternativen Ären, ideographische und Fullwidth-Darstellungen, lokalisierte reine Anzeigesymbole und vollständige Grouping-Policys bleiben separate Ziele
Siehe Interactive XFA Widget Runtime für Transaktions-, Replay- und Operations-Budget-Verhalten