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
| Funkce | Chová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
| Funkce | Parametry 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
| Funkce | Parametry 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