FormCalc Locale and Picture Functions

Zapněte TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript, chcete-li tyhle funkce používat v obecných FormCalc událostech, calculate i validate skriptech přes dodávaný engine QuickJS

Výběr locale

Prováděcí pole zdědí nejbližší neprázdný atribut locale od svých předků; prázdný řetězec vybere nakonfigurovanou nativní Windows či Linux ICU locale

Položka localeSet v dokumentu přebije nativní symboly čísel/měny, názvy měsíců/dnů/meridiemů i patterny data/času/čísel; chybějící hodnoty dědí systémová data, s fallbackem en_US pro vlastní locale názvy

Locale identifikátory přijímají pravopisy s podtržítkem i pomlčkou bez rozlišení velikosti písmen; spočtené názvy jako Concat("de", "_DE") se rozřeší až za běhu

Interní locale žádosti sdílejí deadline události a dovolí 64 pojmenovaných vyhledání, 256 UTF-16 code unit na identifikátor a 2 MiB agregátních metadat; retry obnoví JavaScript checkpoint a potvrzený replay sezení konzumuje zaznamenaná metadata, aniž by volal provider znovu

Picture funkce

FunkceChování
Format(picture, value, ...)Formátuje hodnoty pomocí klauzulí date, time, datetime, num či text; standardní složené klauzule formátují tutéž hodnotu, s volitelnou příponou přijímající odpovídající argumenty hodnot
Parse(picture, text)Parsuje typované klauzule, složené klauzule či alternativy na ISO date/time text, desetinný číselný text či text s odstraněnými literály

Použijte date(de_DE){D. MMMM YYYY} pro explicitní locale, num.currency pro locale styl a svislítko pro alternativy; citované literály i zdvojené apostrofy zachovávají literální znaky

Styly date, time i datetime použijí rozřešené patterny default, short, medium, long či full; standardní číselný pattern localeSet dodá num.decimal i jeho celočíselnou část pro num.integer

Picture klauzule data/času podporují rok, měsíc, den, názvy dnů, hodiny 12/24, minuty, sekundy, zlomkové milisekundy, meridiemy i explicitní offsety GMT/UTC; neplatná datum jako 30. únor vrátí prázdný text

Číselné picture klauzule podporují povinné 9, volitelné z, mezerou doplněné Z, oddělovače desetinných míst a skupin, měnové symboly i ISO měnové kódy, procenta, znaménka, závorky, přípony credit/debit i implicitní desetinný radix

Textové picture klauzule podporují A pro Unicode písmena, O či 0 pro alfanumerické Unicode znaky, 9 pro číslice a X pro Unicode code pointy, tedy i supplementární znaky

Pokročilé picture klauzule přidávají číselnou vědeckou notaci i zachovanou zlomkovou přesnost, ordinální a týdenní datumy, dodatečné hodiny, globální znakové/bílé symboly i složené parsování vstupu

Null parametry vrátí null; neplatné picture klauzule, neplatné hodnoty či nedostupné locale vrátí prázdný text

target = Format("num(de_DE){z,zz9.99}", 1234.5)
target = Parse("date{MMM D, YYYY}", "Sep 1, 2002")
target = Format("date{YYYY-MM-DD} 'at' time{HH:MM}", "2024-03-15T13:45:09")

Funkce data a času

FunkceParametry a výsledek
DateFmt(style=0, locale), TimeFmt(style=0, locale)Vrací XFA patterny pro default 0, short 1, medium 2, long 3 či full 4; neplatné styly vyberou default
Date2Num(text, picture, locale)Vrací sériové dny s 1900-01-01 jako dnem 1; vynechaná picture použije locale default a přijme i ISO datumy
Num2Date(serial, picture, locale)Formátuje sériové dny podle dodané či defaultní locale date picture
IsoDate2Num(text)Parsuje kompaktní či pomlčkované ISO datumy, tedy i volitelné časové přípony
IsoTime2Num(text), Time2Num(text, picture, locale)Vrací milisekundy od GMT půlnoci plus 1; explicitní offsety se aplikují a chybějící offsety použijí aktuální časovou zónu
Num2GMTime(serial, picture, locale), Num2Time(serial, picture, locale)Formátují časové série 1 až 86400000 v GMT či aktuální časové zóně
Date(), Time()Vrací aktuální série data/času se zaznamenanými hodinovými vstupy během replay sezení

Vynechané picture klauzule Num2Date teď vytvoří lokalizovaný výstup; volající vyžadující ISO výstup migrujte na Num2Date(serial, "YYYY-MM-DD")

Jednotky, kódování a textové utility

FunkceParametry a výsledek
UnitType(measurement)Rozpozná aliasy in, cm, mm, pt, pc a mp; nerozpoznané jednotky defaultují na palce
UnitValue(measurement, targetUnit="in")Konvertuje měření s 72 body na palec, 12 body na picu a 1000 millipointů na bod
Encode(text, encoding="url"), Decode(text, encoding="url")Podporují URL escapování, XML entity i HTML pojmenované/číselné entity s validací Unicode skalárů
Uuid(style=0)Vrací 32 hexadecimálních číslic či styl 1 s pomlčkami, s verzí 4 a variantními bity; replay použije zaznamenané náhodné vstupy
WordNum(value, style=0, locale)Vytvoří anglická slovní čísla, částky v dolarech stylu 1 či dolary a centy stylu 2; neplatné číselné domény vrátí hvězdičku

Aktuální hranice picture klauzulí

Alternativní éry, ideografické či full-width reprezentace, lokalizované číslicové abecedy, lokalizované jen-zobrazovací pattern symboly i kompletní seskupovací politiky zůstávají samostatnými cíli; WordNum emituje anglická slova

Nativní skalární evaluator si uchovává své stávající ISO i finanční funkce; locale/picture funkce vyžadují obecné provedení

Nížeúrovňová API

TXFALocaleData, HPDFXFALoadLocale, HPDFXFALoadDocumentLocale a HPDFXFALocaleJavaScript vystavují Unicode locale metadata i bezpečnou serializaci engine

HPDFXFAExecuteJavaScriptEvent přijme TXFALocaleDataProvider pro vlastní read-only vyhledávání metadat