FormCalc String, Date ve Finance Functions

XFA calculate script'leri, aritmetiğin ötesindeki uygulanan function ailelerini destekler: string function'ları, date conversion ve finance kütüphanesi — string literal'ler ve karışık-türlü ifadelerle birlikte

String fonksiyonları

Value'lar ve Referanslar, Ref'i, value-copy semantiğini, referans atamasını, null detachment'ını, function argümanlarını, object identity karşılaştırmalarını ve tekrar-instance hareketi boyunca tutulan handle'ları belgeler

Dinamik Eval, kaynak metni native compiler ve genel runtime üzerinden yürütür — lokal bildirilmiş variable'lar, function'lar, döngüler, field mutation'ları, locale istekleri ve kayıtlı host transport response'ları dâhil

Concat, Len, Left, Right, Substr, Replace, Lower, Upper, Trim ve Space, tırnaklı literal'ler ve field referansları üzerinde çalışır; sayısal alt ifadeler otomatik olarak metne çevrilir

Tarih fonksiyonları

Native scalar evaluator, ISO YYYY-MM-DD metnini Date2Num ve Num2Date ile dönüştürür; FormCalc seri günleri 1900-01-01'i 1. gün sayar ve Date() bugünün serisini döndürür

EnableJavaScript ile genel yürütme ayrıca Date2Num(value, picture, locale), Num2Date(serial, picture, locale), DateFmt, TimeFmt, IsoTime2Num, Time2Num, Num2Time, Num2GMTime ve Time üzerinden locale picture'larını destekler

Genel yürütmede, atlanan Num2Date picture'ları artık ambient locale'in default pattern'ini kullanır; önceki ISO output'u korumak için "YYYY-MM-DD"'yi açıkça geçirin ve katı ISO girdisi için IsoDate2Num'i kullanın

FormCalc Locale ve Picture Functions, parametreleri, kalıtılan locale seçimini, gömülü localeSet override'larını, sayısal/metin picture'larını, unit'leri, encoding'i ve sayı kelimelerini belgeler

Gelişmiş Picture Clause'ları, bilimsel gösterimi, ifade edilen kesirli hassasiyeti, sıra ve ISO hafta tarihlerini, saat varyantlarını, global sembolleri ve genel event'lerde, calculation ve validation'da bileşik parsing'i belgeler

Finans fonksiyonları

Finans function'ları, artık native calculate evaluator'da ve genel event compiler'ında XFA FormCalc parametre semantiğini izler

FunctionParametreler ve result
Pmt(principal, rate, periods)Pozitif periyodik kredi ödemesi; tüm argümanlar pozitif olmalıdır
FV(payment, rate, periods)Eşit ödemelerin gelecek değeri; sıfır rate, ödeme çarpı period sayısını döndürür
PV(payment, rate, periods)Eşit ödemelerin bugünkü değeri; sıfır rate, ödeme çarpı period sayısını döndürür
Rate(future, present, periods)Bugünkü değeri gelecek değere büyütmek için gereken bileşik rate
CTerm(rate, future, initial)Bileşikli bir başlangıç yatırımı için gereken period sayısı
Term(payment, rate, future)Eşit ödemelerin gelecek değere ulaşması için gereken period sayısı
Apr(principal, monthlyPayment, periods)Sınırlı bir aylık-rate çözücüyüyle bulunan yıllık yüzde rate
NPV(rate, cashFlow1, ...)Argüman sırasında iskonto edilmiş period-sonu nakit akışları
IPmt ve PPmt(principal, annualRate, monthlyPayment, firstMonth, months) için ödenen faiz veya anapara; ay indeksleri 1'den başlar ve 0 da ilk ayı seçer

Bu, önceki spreadsheet-tarzı argüman sıralamasını ve işaret handling'ini düzeltir: Pmt(rate, periods, principal)'i Pmt(principal, rate, periods)'e taşıyın ve pozitif bir sonuç bekleyin; FV ve PV artık tek bir başlangıç veya nihai tutar yerine periyodik ödemeler üzerinde çalışır

Rate artık bileşik büyümeyi hesaplar; NPer(rate, payment, future), Term(payment, rate, future)'a eşdeäer nonstandard bir uzantı olarak kalır

Geçersiz finans domain'leri genel event'leri atomik reddeder; native calculate evaluator, başarısız bir ifade raporlar ve iterasyon, yapılandırılmış operation ve süre bütçelerini tüketir

Genel event kütüphanesi

Genel FormCalc event compiler'ı, büyük-küçük-harf-duyumsuz built-in adları, baştaki ondalık literal'leri, Null'u, bilimsel trigonometrik function'ları, Pi'yi, derece/radyan dönüşümünü, Stuff'u ve Str'i destekler; Count, boş metni dâhil eder ve null value'ları atlar, tüm-null agregatlar null döndürür

Mod, her iki değerlendirme path'inde bölümün işaretini korur; Mod(-13, 3) -1 döndürür

Tipleme

Sayısal değerlendirme Double türlü kalır: başı bir string fonksiyonu olan formül metinsel çözülür, finans sonuçları sayısal ifadelere geri çevrilir, böylece Round(Pmt(...), 2) çalışır; herhangi bir tür uyuşmazlığı yine boş bir değere düşer

Koşullu mantık ve tekrarlanan diziler

Karşılaştırmalar, And, Or, Not, boolean'lar ve tembel değerlendirmeli If(condition, whenTrue, whenFalse) ifadeleri sınırlı koşullu kontrol akışı sağlar

Sum, Avg, Min, Max ve Count, rows[*].amount gibi tekrarlanan sayısal selector'ları kabul eder; sıradan argüman-listesi biçimleri ise skaler ifadeleri toplamayı sürdürür

Dinamik instance istekleri

InstanceAdd(name, count) ve InstanceRemove(name, index), çağıranın yapılandırdığı doğrulanmış instance callback'ini çağırır ve ortaya çıkan instance sayısını döndürür

İsteğe bağlı QuickJS yolu, tipli diziler, runtime izolasyonu, bütçeler ve telemetry için Sınırlı XFA FormCalc ve JavaScript sayfasına bakın

Açık HTTP transport

Genel event script'leri, açık uygulama host transport'u üzerinden büyük-küçük-harf-duyumsuz Get, Post ve Put destekler; argümanlar sırayla iletilir ve response'u uygulama sağlar

Bu function'lar, EnableJavaScript ve widget runtime'ında yapılandırılmış bir HostTransport callback gerektirir; native scalar evaluator ağ istekleri yapmaz