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

FunktionParametre 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 PPmtRente 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