Funzioni FormCalc di Stringhe, Date e Finanza
Gli script calculate XFA supportano le famiglie di funzioni implementate oltre l'aritmetica: funzioni di stringhe, conversione delle date e la libreria finanziaria, con valori letterali di stringa ed espressioni a tipo misto
Funzioni di stringhe
Valori e riferimenti documenta Ref, la semantica di copia dei valori, l'assegnazione di riferimenti, il distacco di null, gli argomenti delle funzioni, i confronti di identit\u00e0 degli oggetti e gli handle trattenuti nel movimento di istanze ripetute
Eval dinamico esegue testo sorgente attraverso il compilatore nativo e il runtime generale, comprese variabili dichiarate localmente, funzioni, cicli, mutazioni di campi, richieste di locale e risposte registrate del trasporto host
Concat, Len, Left, Right, Substr, Replace, Lower, Upper, Trim e Space operano su valori letterali tra virgolette e riferimenti a campi; le sottoespressioni numeriche vengono convertite automaticamente in testo
Funzioni di date
Il valutatore scalare nativo converte il testo ISO YYYY-MM-DD con Date2Num e Num2Date; i giorni seriali FormCalc usano il 1900-01-01 come giorno 1, e Date() restituisce il seriale odierno
L'esecuzione generale con EnableJavaScript supporta anche le picture di locale attraverso Date2Num(value, picture, locale), Num2Date(serial, picture, locale), DateFmt, TimeFmt, IsoTime2Num, Time2Num, Num2Time, Num2GMTime e Time
Nell'esecuzione generale le picture Num2Date omesse usano ora il pattern predefinito della locale ambiente; passate "YYYY-MM-DD" esplicitamente per preservare l'output ISO precedente, e usate IsoDate2Num per input ISO rigoroso
Funzioni di Locale e Picture di FormCalc documenta parametri, selezione della locale ereditata, override localeSet incorporati, picture numeriche/testuali, unit\u00e0, codifica e numeri in parole
Clausole Picture avanzate documenta notazione scientifica, precisione frazionaria espressa, date ordinali e settimana ISO, varianti di orologio, simboli globali e parsing composto in eventi generali, calcoli e validazione
Funzioni finanziarie
Le funzioni finanziarie ora seguono la semantica dei parametri XFA FormCalc nel valutatore calculate nativo e nel compilatore di eventi generali
| Funzione | Parametri e risultato |
|---|---|
Pmt(principal, rate, periods) | rata periodica positiva del prestito; tutti gli argomenti devono essere positivi |
FV(payment, rate, periods) | valore futuro di pagamenti uguali; tasso zero restituisce il pagamento per i periodi |
PV(payment, rate, periods) | valore attuale di pagamenti uguali; tasso zero restituisce il pagamento per i periodi |
Rate(future, present, periods) | tasso composto richiesto per far crescere il valore attuale fino al valore futuro |
CTerm(rate, future, initial) | periodi richiesti per un investimento iniziale composto |
Term(payment, rate, future) | periodi richiesti a pagamenti uguali per raggiungere il valore futuro |
Apr(principal, monthlyPayment, periods) | tasso annuo percentuale trovato da un solver limitato del tasso mensile |
NPV(rate, cashFlow1, ...) | flussi di cassa scontati a fine periodo nell'ordine degli argomenti |
IPmt e PPmt | interessi o capitale pagati per (principal, annualRate, monthlyPayment, firstMonth, months); gli indici dei mesi partono da 1 e 0 seleziona comunque il primo mese |
Questo corregge il precedente ordinamento degli argomenti in stile foglio di calcolo e la gestione dei segni: migrate Pmt(rate, periods, principal) in Pmt(principal, rate, periods) e aspettatevi un risultato positivo; FV e PV ora operano su pagamenti periodici invece che su un singolo importo iniziale o finale
Rate ora calcola la crescita composta; NPer(rate, payment, future) resta un'estensione non standard equivalente a Term(payment, rate, future)
Dominii finanziari non validi respingono atomicamente gli eventi generali; il valutatore calculate nativo riporta un'espressione fallita, e l'iterazione consuma i budget di operazioni e tempo configurati
Libreria di eventi generali
Il compilatore di eventi generali FormCalc supporta nomi integrati case-insensitive, valori letterali decimali iniziali, Null, funzioni trigonometriche scientifiche, Pi, conversione gradi/radianti, Stuff e Str; Count include il testo vuoto e omette i valori null, e gli aggregati tutti-null restituiscono null
Mod conserva il segno del dividendo in entrambi i percorsi di valutazione; Mod(-13, 3) restituisce -1
Tipizzazione
La valutazione numerica resta tipizzata come Double: una formula il cui capo \u00e8 una funzione di stringhe si risolve testualmente, e i risultati finanziari si riconvertono in espressioni numeriche cos\u00ec che Round(Pmt(...), 2) funzioni; qualsiasi disallineamento di tipo degrada ancora a un valore vuoto
Logica condizionale e array ripetuti
I confronti, And, Or, Not, i booleani e le espressioni lazy If(condition, whenTrue, whenFalse) forniscono un controllo di flusso condizionale con limiti
Sum, Avg, Min, Max e Count accettano selettori numerici ripetuti come rows[*].amount, mentre le loro forme ordinarie con lista di argomenti continuano ad aggregare espressioni scalari
Richieste dynamic di istanze
InstanceAdd(name, count) e InstanceRemove(name, index) invocano il callback di istanza validato configurato dal chiamante e restituiscono il conteggio di istanze risultante
Vedi Scripting XFA FormCalc e JavaScript limitato per il percorso QuickJS opzionale, gli array tipizzati, l'isolamento del runtime, i budget e la telemetria
Trasporto HTTP esplicito
Gli script di eventi generali supportano Get, Post e Put case-insensitive attraverso il trasporto host esplicito dell'applicazione; gli argomenti vengono inoltrati in ordine e l'applicazione fornisce la risposta
Queste funzioni richiedono EnableJavaScript e un callback HostTransport configurato nel runtime dei widget; il valutatore scalare nativo non esegue richieste di rete