FormCalc-Funktionen für Zeichenfolgen, Datum und Finanzen

XFA-Berechnungsskripte unterstützen die implementierten Funktionsfamilien über Arithmetik hinaus: Zeichenfolgenfunktionen, Datumskonvertierung und die Finanzbibliothek, mit Zeichenfolgenliteralen und Ausdrücken gemischter Typen

String-Funktionen

Values and References dokumentiert Ref, Value-Copy-Semantik, Referenzzuweisung, Null-Abtrennung, Funktionsargumente, Objektidentitätsvergleiche und zurückgehaltene Handles bei Bewegungen wiederholter Instanzen

Dynamic Eval führt Quelltext über den nativen Compiler und die allgemeine Runtime aus, einschließlich lokal deklarierter Variablen, Funktionen, Schleifen, Feldmutationen, Locale-Anfragen und aufgezeichneter Host-Transport-Antworten

Concat, Len, Left, Right, Substr, Replace, Lower, Upper, Trim und Space arbeiten mit zitierten Literalen und Feldreferenzen; numerische Teilausdrücke werden automatisch in Text umgewandelt

Datumsfunktionen

Der native Skalar-Evaluator konvertiert ISO-Text YYYY-MM-DD mit Date2Num und Num2Date; FormCalc-Serientage nutzen den 1900-01-01 als Tag 1, und Date() gibt die heutige Seriennummer zurück

Die allgemeine Ausführung mit EnableJavaScript unterstützt zusätzlich Locale-Pictures über Date2Num(value, picture, locale), Num2Date(serial, picture, locale), DateFmt, TimeFmt, IsoTime2Num, Time2Num, Num2Time, Num2GMTime und Time

In der allgemeinen Ausführung nutzen ausgelassene Num2Date-Pictures jetzt das Default-Muster der umgebenden Locale; übergeben Sie "YYYY-MM-DD" explizit, um die frühere ISO-Ausgabe zu bewahren, und verwenden Sie IsoDate2Num für strikte ISO-Eingabe

FormCalc Locale and Picture Functions dokumentiert Parameter, geerbte Locale-Auswahl, eingebettete localeSet-Overrides, numerische/text Pictures, Einheiten, Encoding und Zahlwörter

Advanced Picture Clauses dokumentiert wissenschaftliche Notation, ausgedrückte fraktionale Präzision, Ordinal- und ISO-Wochendaten, Uhrenvarianten, globale Symbole und zusammengesetztes Parsing in allgemeinen Events, Berechnungen und Validierung

Finanzfunktionen

Finanzfunktionen folgen jetzt den XFA-FormCalc-Parametersemantiken im nativen Calculate-Evaluator und dem allgemeinen Event-Compiler

FunktionParameter und Ergebnis
Pmt(principal, rate, periods)Positive periodische Kreditrate; alle Argumente müssen positiv sein
FV(payment, rate, periods)Zukunftswert gleicher Zahlungen; Satz null liefert Zahlung mal Perioden
PV(payment, rate, periods)Barwert gleicher Zahlungen; Satz null liefert Zahlung mal Perioden
Rate(future, present, periods)Zinssatz mit Zinseszins, der den Barwert auf den Zukunftswert wachsen lässt
CTerm(rate, future, initial)Für eine verzinsliche Anfangsinvestition erforderliche Perioden
Term(payment, rate, future)Für gleiche Zahlungen zum Erreichen des Zukunftswerts erforderliche Perioden
Apr(principal, monthlyPayment, periods)Effektiver Jahreszins, gefunden von einem begrenzten Monatsrate-Solver
NPV(rate, cashFlow1, ...)Abgezinste End-of-Period-Cashflows in Argumentreihenfolge
IPmt und PPmtZins- oder Tilgungsanteil für (principal, annualRate, monthlyPayment, firstMonth, months); Monatsindizes beginnen bei 1, und 0 wählt ebenfalls den ersten Monat

Dies korrigiert die frühere Tabellenkalkulations-artige Argumentreihenfolge und Vorzeichenbehandlung: Pmt(rate, periods, principal) zu Pmt(principal, rate, periods) migrieren und ein positives Ergebnis erwarten; FV und PV wirken jetzt auf periodische Zahlungen statt auf einen einzelnen Anfangs- oder Endbetrag

Rate berechnet jetzt Zinseszinswachstum; NPer(rate, payment, future) bleibt eine nichtstandardmäßige Erweiterung, äquivalent zu Term(payment, rate, future)

Ungültige Finanzdomänen weisen allgemeine Events atomar zurück; der native Calculate-Evaluator meldet einen fehlgeschlagenen Ausdruck, und Iteration verbraucht die konfigurierten Operations- und Zeitbudgets

Allgemeine Event-Bibliothek

Der allgemeine FormCalc-Event-Compiler unterstützt Groß-/Kleinschreibung-unabhängige eingebaute Namen, führende Dezimalliterale, Null, wissenschaftliche trigonometrische Funktionen, Pi, Grad-/Bogenmaß-Konvertierung, Stuff und Str; Count schließt leeren Text ein und lässt Nullwerte aus, und All-Null-Aggregate geben null zurück

Mod bewahrt das Vorzeichen des Dividenden in beiden Auswertungspfaden; Mod(-13, 3) liefert -1

Typisierung

Die numerische Auswertung bleibt Double-typisiert: Eine Formel mit String-Funktion als Kopf löst textuell auf, und Finanzergebnisse wandeln zurück in numerische Ausdrücke, sodass Round(Pmt(...), 2) funktioniert; jeder Typkonflikt degradiert weiterhin zu einem Leerwert

Bedingte Logik und wiederholte Arrays

Vergleiche, And, Or, Not, Booleans und träge If(condition, whenTrue, whenFalse)-Ausdrücke bieten begrenzte bedingte Ablaufsteuerung

Sum, Avg, Min, Max und Count akzeptieren wiederholte numerische Selektoren wie rows[*].amount, während ihre gewöhnlichen Argumentlisten-Formen weiterhin Skalarausdrücke aggregieren

Dynamische Instanz-Anforderungen

InstanceAdd(name, count) und InstanceRemove(name, index) rufen den vom Aufrufer konfigurierten validierten Instanz-Callback auf und liefern die daraus resultierende Instanzanzahl

Siehe Bounded XFA FormCalc and JavaScript für den optionalen QuickJS-Pfad, typisierte Arrays, Runtime-Isolation, Budgets und Telemetrie

Expliziter HTTP-Transport

Allgemeine Event-Skripte unterstützen Groß-/Kleinschreibung-unabhängiges Get, Post und Put über expliziten Application-Host-Transport; Argumente werden in Reihenfolge weitergeleitet, und die Anwendung liefert die Antwort

Diese Funktionen erfordern EnableJavaScript und einen konfigurierten HostTransport-Callback in der Widget-Runtime; der native Skalar-Evaluator führt keine Netzwerkanfragen aus