FormCalc-string-, datum- en financiële functies

XFA-calculate-scripts ondersteunen de geïmplementeerde functiefamilies naast rekenkunde: stringfuncties, datumconversie en de financiële bibliotheek, met stringliteralen en expressies met gemengde typen

Stringfuncties

Waarden en verwijzingen documenteert Ref, value-copy-semantiek, toewijzing van verwijzingen, null-loskoppeling, functieargumenten, objectidentiteitsvergelijkingen en vastgehouden handles bij verplaatsing van herhaalde instanties

Dynamische Eval voert brontekst uit via de native compiler en de algemene runtime, inclusief lokaal gedeclareerde variabelen, functies, lussen, veldmutaties, locale-verzoeken en opgenomen host-transport-responses

Concat, Len, Left, Right, Substr, Replace, Lower, Upper, Trim en Space werken op tussen aanhalingstekens geplaatste literalen en veldverwijzingen; numerieke subexpressies worden automatisch naar tekst geconverteerd

Datumfuncties

De native scalair-evaluator converteert ISO-YYYY-MM-DD-tekst met Date2Num en Num2Date; FormCalc-seriedagen gebruiken 1900-01-01 als dag 1 en Date() geeft het serienummer van vandaag terug

Algemene uitvoering met EnableJavaScript ondersteunt ook locale-pictures via Date2Num(value, picture, locale), Num2Date(serial, picture, locale), DateFmt, TimeFmt, IsoTime2Num, Time2Num, Num2Time, Num2GMTime en Time

Bij algemene uitvoering gebruiken weggelaten Num2Date-pictures tegenwoordig het default-patroon van de omgevings-locale; geef "YYYY-MM-DD" expliciet door om de eerdere ISO-uitvoer te behouden en gebruik IsoDate2Num voor strenge ISO-invoer

FormCalc-locale- en picture-functies documenteert parameters, geërfde localeselectie, ingebedde localeSet-overrides, numerieke/tekst-pictures, eenheden, encoding en getalswoorden

Geavanceerde picture-clausules documenteert wetenschappelijke notatie, uitgedrukte fractionele precisie, ordinale en ISO-weekdata, klokvarianten, globale symbolen en samengestelde parsing in algemene events, berekeningen en validatie

Financiële functies

Financiële functies volgen tegenwoordig de XFA FormCalc-parametersemantiek in de native calculate-evaluator en de algemene event-compiler

FunctieParameters en resultaat
Pmt(principal, rate, periods)Positieve periodieke leningsbetaling; alle argumenten moeten positief zijn
FV(payment, rate, periods)Toekomstige waarde van gelijke betalingen; een rente van nul geeft betaling maal perioden
PV(payment, rate, periods)Huidige waarde van gelijke betalingen; een rente van nul geeft betaling maal perioden
Rate(future, present, periods)Samengestelde rente die nodig is om de huidige waarde naar de toekomstige waarde te laten groeien
CTerm(rate, future, initial)Perioden die een samengestelde begininvestering nodig heeft
Term(payment, rate, future)Perioden die gelijke betalingen nodig hebben om de toekomstige waarde te bereiken
Apr(principal, monthlyPayment, periods)Jaarlijkse rentevoet gevonden door een begrensde oplosser voor de maandrente
NPV(rate, cashFlow1, ...)Gekapitaliseerde kasstromen op het einde van de periode, in argumentvolgorde
IPmt en PPmtBetaalde rente of aflossing voor (principal, annualRate, monthlyPayment, firstMonth, months); maandindices beginnen bij 1 en 0 selecteert ook de eerste maand

Dit corrigeert de eerdere spreadsheetachtige argumentvolgorde en tekensafhandeling: migreer Pmt(rate, periods, principal) naar Pmt(principal, rate, periods) en verwacht een positief resultaat; FV en PV werken tegenwoordig met periodieke betalingen in plaats van een enkel begin- of eindbedrag

Rate berekent tegenwoordig samengestelde groei; NPer(rate, payment, future) blijft een niet-standaard extensie die gelijk is aan Term(payment, rate, future)

Ongeldige financiële domeinen wijzen algemene events atomisch af; de native calculate-evaluator meldt een mislukte expressie en iteratie verbruikt de geconfigureerde operatie- en tijdbudgetten

Algemene eventbibliotheek

De algemene FormCalc-event-compiler ondersteunt case-insensitive ingebouwde namen, voorloop decimale literalen, Null, wetenschappelijke goniometrische functies, Pi, conversie tussen graden en radialen, Stuff en Str; Count telt lege tekst mee en laat null-waarden weg, en aggregaties die volledig uit nulls bestaan geven null terug

Mod behoudt het teken van het dividend in beide evaluatiepaden; Mod(-13, 3) geeft -1 terug

Typering

Numerieke evaluatie blijft Double-getypeerd: een formule waarvan de kop een stringfunctie is, wordt tekstueel opgelost, en financiële resultaten converteren terug naar numerieke expressies zodat Round(Pmt(...), 2) werkt; elke typenismatch degradeert nog steeds tot een lege waarde

Voorwaardelijke logica en herhaalde arrays

Vergelijkingen, And, Or, Not, booleans en luie If(condition, whenTrue, whenFalse)-expressies bieden begrensde voorwaardelijke controlestroom

Sum, Avg, Min, Max en Count accepteren herhaalde numerieke selectors zoals rows[*].amount, terwijl hun gewone argumentlijstvormen scalare expressies blijven aggregeren

Dynamische instance-verzoeken

InstanceAdd(name, count) en InstanceRemove(name, index) roepen de door de aanroeper geconfigureerde gevalideerde instance-callback aan en retourneren het resulterende instance-aantal

Zie Begrensde XFA FormCalc en JavaScript voor het optionele QuickJS-pad, getypeerde arrays, runtime-isolatie, budgetten en telemetrie

Expliciet HTTP-transport

Algemene event-scripts ondersteunen case-insensitive Get, Post en Put via expliciet host-transport van de applicatie; argumenten worden in volgorde doorgestuurd en de applicatie levert de response

Deze functies vereisen EnableJavaScript en een geconfigureerde HostTransport-callback in de widget-runtime; de native scalair-evaluator voert geen netwerkverzoeken uit