Locale- und Picture-Funktionen in FormCalc
Aktivieren Sie TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript, um diese Funktionen in allgemeinen FormCalc-Events sowie in calculate- und validate-Skripten über die mitgelieferte QuickJS-Engine zu nutzen
Locale-Auswahl
Das ausführende Feld erbt das nächstgelegene nichtleere locale-Attribut von seinen Vorfahren; eine leere Kette wählt die konfigurierte native Windows- oder Linux-ICU-Locale
Ein localeSet-Eintrag im Dokument überschreibt native Zahlen-/Währungssymbole, Monats-/Tages-/Meridiem-Namen und Datums-/Zeit-/Zahlenmuster; fehlende Werte erben Systemdaten, mit en_US-Fallback für eigene Locale-Namen
Locale-Bezeichner akzeptieren Unterstrich- und Bindestrich-Schreibweisen unabhängig von Groß-/Kleinschreibung; berechnete Namen wie Concat("de", "_DE") lösen sich zur Ausführungszeit auf
Interne Locale-Requests teilen sich die Deadline des Events und erlauben 64 benannte Lookups, 256 UTF-16-Codeeinheiten pro Bezeichner und 2 MiB aggregierte Metadaten; Wiederholungen stellen den JavaScript-Checkpoint wieder her, und committetes Session-Replay nutzt aufgezeichnete Metadaten ohne erneuten Provider-Aufruf
Picture-Funktionen
| Funktion | Verhalten |
|---|---|
Format(picture, value, ...) | Formatiert Werte mit date-, time-, datetime-, num- oder text-Klauseln; standardmäßige Compound-Klauseln formatieren denselben Wert, eine optionale Erweiterung akzeptiert entsprechende Wertargumente |
Parse(picture, text) | Analysiert Typed-Klauseln, Compound-Klauseln oder Alternativen in ISO-Datums-/Zeittext, dezimalen Zahlentext oder Text ohne Literale |
Verwenden Sie date(de_DE){D. MMMM YYYY} für eine explizite Locale, num.currency für einen Locale-Stil und einen senkrechten Strich für Alternativen; quotierte Literale und verdoppelte Apostrophe bewahren Literalzeichen
Datums-, Zeit- und Datetime-Stile verwenden die aufgelösten Muster default, short, medium, long oder full; das Standard-Zahlenmuster aus localeSet liefert sowohl num.decimal als auch dessen Ganzzahlteil für num.integer
Datums-/Zeit-Pictures unterstützen Jahr, Monat, Tag, Wochentagsnamen, 12/24-Stunden-Angaben, Minuten, Sekunden, Bruchteil-Millisekunden, Meridieme und explizite GMT/UTC-Offsets; ungültige Daten wie der 30. Februar liefern leeren Text
Zahlen-Pictures unterstützen verpflichtendes 9, optionales z, mit Leerzeichen aufgefülltes Z, Dezimal-/Gruppentrenner, Währungssymbole und ISO-Währungscodes, Prozentzeichen, Vorzeichen, Klammern, Soll/Haben-Suffixe und einen implizierten Dezimalpunkt
Text-Pictures unterstützen A für Unicode-Buchstaben, O oder 0 für alphanumerische Unicode-Zeichen, 9 für Ziffern und X für Unicode-Codepunkte, einschließlich ergänzender Zeichen
Erweiterte Picture-Klauseln ergänzen wissenschaftliche Notation bei Zahlen mit erhaltener Nachkommagenauigkeit, Ordinal- und Wochendaten, weitere Uhren, globale Zeichen-/Leerraum-Symbole und das Analysieren zusammengesetzter Eingaben
Null-Parameter geben null zurück; ungültige Pictures, ungültige Werte oder nicht verfügbare Locales liefern leeren Text
target = Format("num(de_DE){z,zz9.99}", 1234.5)
target = Parse("date{MMM D, YYYY}", "Sep 1, 2002")
target = Format("date{YYYY-MM-DD} 'at' time{HH:MM}", "2024-03-15T13:45:09")
Datums- und Zeitfunktionen
| Funktion | Parameter und Ergebnis |
|---|---|
DateFmt(style=0, locale), TimeFmt(style=0, locale) | Liefern XFA-Muster für default 0, short 1, medium 2, long 3 oder full 4; ungültige Stile wählen default |
Date2Num(text, picture, locale) | Liefert Serientage mit 1900-01-01 als Tag 1; ein weggelassenes Picture nutzt den Locale-Default und akzeptiert auch ISO-Datumsangaben |
Num2Date(serial, picture, locale) | Formatiert Serientage mit dem gelieferten oder dem Locale-Default-Datumspicture |
IsoDate2Num(text) | Analysiert kompakte oder mit Bindestrichen geschriebene ISO-Datumsangaben, einschließlich optionaler Zeitsuffixe |
IsoTime2Num(text), Time2Num(text, picture, locale) | Liefern Millisekunden seit GMT-Mitternacht plus 1; explizite Offsets werden angewendet, fehlende Offsets nutzen die aktuelle Zeitzone |
Num2GMTime(serial, picture, locale), Num2Time(serial, picture, locale) | Formatieren Zeitserien 1 bis 86400000 in GMT oder der aktuellen Zeitzone |
Date(), Time() | Liefern aktuelle Datums-/Zeitserien, während des Session-Replays mit aufgezeichneten Uhreingaben |
Weggelassene Num2Date-Pictures erzeugen jetzt lokalisierte Ausgaben; migrieren Sie Aufrufer, die ISO-Ausgabe brauchen, zu Num2Date(serial, "YYYY-MM-DD")
Einheiten, Encoding und Text-Hilfsfunktionen
| Funktion | Parameter und Ergebnis |
|---|---|
UnitType(measurement) | Erkennt in-, cm-, mm-, pt-, pc- und mp-Aliase; unbekannte Einheiten fallen auf Zoll zurück |
UnitValue(measurement, targetUnit="in") | Konvertiert Maße mit 72 Punkten pro Zoll, 12 Punkten pro Pica und 1000 Millipunkten pro Punkt |
Encode(text, encoding="url"), Decode(text, encoding="url") | Unterstützen URL-Escaping, XML-Entitäten und HTML-benannte/numerische Entitäten mit Unicode-Scalar-Validierung |
Uuid(style=0) | Liefert 32 Hexadezimalziffern oder Stil 1 mit Bindestrichen, mit Version-4- und Variant-Bits; Replay nutzt aufgezeichnete Zufallseingaben |
WordNum(value, style=0, locale) | Erzeugt englische Zahlenwörter, Stil 1 Dollarbeträge oder Stil 2 Dollar und Cents; ungültige Zahlenbereiche liefern einen Stern |
Aktuelle Picture-Grenzen
Alternative Ären, ideografische oder vollbreite Darstellungen, lokalisierte Ziffernalphabete, lokalisierte reine Anzeige-Mustersymbole und vollständige Gruppierungsrichtlinien bleiben separate Ziele; WordNum gibt englische Wörter aus
Der native Scalar-Evaluator behält seine vorhandenen ISO- und Finanzfunktionen; Locale-/Picture-Funktionen brauchen die allgemeine Ausführung
APIs der unteren Ebene
TXFALocaleData, HPDFXFALoadLocale, HPDFXFALoadDocumentLocale und HPDFXFALocaleJavaScript legen Unicode-Locale-Metadaten und sichere Engine-Serialisierung offen
HPDFXFAExecuteJavaScriptEvent akzeptiert TXFALocaleDataProvider für eigene Read-only-Metadaten-Lookups