FormCalc String, Date, and Finance Functions
XFA-beregningsscripts understøtter de implementerede funktionsfamilier ud over aritmetik: strengfunktioner, datokonvertering og finansbiblioteket, med strengliteraler og udtryk med blandede typer
Strengfunktioner
Values and References dokumenterer Ref, value-copy-semantik, reference-tildeling, null-detachment, funktionsargumenter, objekt-identitetssammenligninger og fastholdte handles på tværs af repeated-instance-flytninger
Dynamic Eval udfører kilde tekst gennem den native kompilator og det generelle runtime, inklusive lokalt deklarerede variabler, funktioner, løkker, feltmutationer, locale-forespørgsler og optagede host transport-svar
Concat, Len, Left, Right, Substr, Replace, Lower, Upper, Trim og Space arbejder med citerede literaler og feltreferencer; numeriske deludtryk konverteres automatisk til tekst
Datofunktioner
Den native scalar-evaluator konverterer ISO-teksten YYYY-MM-DD med Date2Num og Num2Date; FormCalc-seriedage bruger 1900-01-01 som dag 1, og Date() returnerer dagens serienummer
Generel udførelse med EnableJavaScript understøtter også locale pictures gennem Date2Num(value, picture, locale), Num2Date(serial, picture, locale), DateFmt, TimeFmt, IsoTime2Num, Time2Num, Num2Time, Num2GMTime og Time
Ved generel udførelse bruger udeladte Num2Date-pictures nu det omgivende locales default-mønster; giv "YYYY-MM-DD" eksplicit for at bevare tidligere ISO-output, og brug IsoDate2Num til streng ISO-input
FormCalc Locale and Picture Functions dokumenterer parametre, nedarvet locale-valg, indlejrede localeSet-overrides, numeriske/tekst-pictures, enheder, encoding og talord
Advanced Picture Clauses dokumenterer videnskabelig notation, udtrykt fraktionel præcision, ordenstals- og ISO-uge-datoer, klokkevarianter, globale symboler og compound-parsing i generelle events, beregninger og validering
Finansfunktioner
De finansielle funktioner følger nu XFA FormCalc parameter-semantik i den native calculate-evaluator og den generelle event-kompilator
| Funktion | Parametre og resultat |
|---|---|
Pmt(principal, rate, periods) | Positiv periodisk ydelse; alle argumenter skal være positive |
FV(payment, rate, periods) | Fremtidig værdi af ens ydelser; nul rente giver ydelse gange perioder |
PV(payment, rate, periods) | Nutidsværdi af ens ydelser; nul rente giver ydelse gange perioder |
Rate(future, present, periods) | Sammen sat rente, der skal til for at vokse nutidsværdien til fremtidig værdi |
CTerm(rate, future, initial) | Perioder, der kræves for en sammen sat startinvestering |
Term(payment, rate, future) | Perioder, der kræves, før ens ydelser når fremtidig værdi |
Apr(principal, monthlyPayment, periods) | Årlig procentrente fundet af en afgrænset månedlig-rente-løser |
NPV(rate, cashFlow1, ...) | Diskonterede pengestrømme ved periodens slutning i argumentrækkefølge |
IPmt og PPmt | Rente eller hovedstol betalt for (principal, annualRate, monthlyPayment, firstMonth, months); månedsindekser starter ved 1, og 0 vælger også den første måned |
Dette retter tidligere regnearksstil-argumentrækkefølge og fortegnshåndtering: migrér Pmt(rate, periods, principal) til Pmt(principal, rate, periods) og forvent et positivt resultat; FV og PV arbejder nu på periodiske ydelser i stedet for ét enkelt start- eller slutbeløb
Rate beregner nu sammensat vækst; NPer(rate, payment, future) forbliver en ikke-standard-udvidelse svarende til Term(payment, rate, future)
Ugyldige finansielle domæner afviser generelle events atomisk; den native calculate-evaluator rapporterer et fejlet udtryk, og iteration bruger de konfigurerede operations- og tidsbudgetter
Generelt event-bibliotek
Den generelle FormCalc event-kompilator understøtter case-insensitive indbyggede navne, førende decimal-literaler, Null, videnskabelige trigonometriske funktioner, Pi, grad/radian-konvertering, Stuff og Str; Count inkluderer tom tekst og udelader null-værdier, og all-null-aggregater returnerer null
Mod bevarer dividendens fortegn i begge evalueringsstier; Mod(-13, 3) returnerer -1
Typing
Numerisk evaluering forbliver Double-typet: en formel, der begynder med en strengfunktion, opløses som tekst, og finansresultater konverteres tilbage til numeriske udtryk, så Round(Pmt(...), 2) fungerer; enhver typeuoverensstemmelse bliver fortsat til en tom værdi
Betinget logik og gentagne arrays
Sammenligninger, And, Or, Not, booleske værdier og dovne If(condition, whenTrue, whenFalse)-udtryk giver begrænset betinget kontrolflow
Sum, Avg, Min, Max og Count accepterer gentagne numeriske vælgere som rows[*].amount, mens deres almindelige argumentlisteformer fortsat aggregerer skalære udtryk
Anmodninger om dynamiske instanser
InstanceAdd(name, count) og InstanceRemove(name, index) kalder det validerede instanstilbagekald, som er konfigureret af kaldende kode, og returnerer det resulterende instansantal
Se Bounded XFA FormCalc and JavaScript for den valgfri QuickJS-sti, typede arrays, runtime-isolering, budgetter og telemetri
Eksplicit HTTP-transport
Generelle event-scripts understøtter case-insensitive Get, Post og Put gennem eksplicit applikationsvært-transport; argumenter videresendes i rækkefølge, og applikationen leverer svaret
Disse funktioner kræver EnableJavaScript og en konfigureret HostTransport-callback i widget-runtime'en; den native scalar-evaluator udfører ikke netværksforespørgsler