FormCalc locale- och picture-funktioner
Aktivera TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript för att använda dessa funktioner i allmänna FormCalc-events, calculate- och validate-skript via den medföljande QuickJS-motorn
Val av locale
Det exekverande fältet ärver det närmaste icke-tomma locale-attributet från sina förfäder; en tom kedja väljer den konfigurerade native Windows- eller Linux ICU-lokalen
En localeSet-post i dokumentet åsidosätter native symboler för tal/valuta, månads-, dags- och meridiemnamn samt mönster för datum/tid/tal; saknade värden ärver systemdata, med en_US som reserv för egna locale-namn
Locale-identifierare accepterar understryknings- och bindestrecksstavning skiftlägesokänsligt; beräknade namn som Concat("de", "_DE") slås fast vid exekveringen
Interna locale-anrop delar eventets deadline och tillåter 64 namngivna uppslag, 256 UTF-16-kodenheter per identifierare och 2 MiB sammanlagda metadata; nyare försök återställer JavaScript-kontrollpunkten, och genomförd session replay konsumerar inspelade metadata utan nytt provider-anrop
Picture-funktioner
| Funktion | Beteende |
|---|---|
Format(picture, value, ...) | Formaterar värden med date-, time-, datetime-, num- eller text-klausuler; standardiserade sammansatta klausuler formaterar samma värde, med en valfri utökning som tar motsvarande värdeargument |
Parse(picture, text) | Tolkar typade klausuler, sammansatta klausuler eller alternativ till ISO-datum/tid-text, decimaltalstext eller text utan literaler |
Använd date(de_DE){D. MMMM YYYY} för en explicit locale, num.currency för en locale-stil och ett lodrätt streck för alternativ; citerade literaler och dubbla apostrofer bevarar literala tecken
Datum-, tids- och datetime-stilar använder de uppslagna mönstren default, short, medium, long eller full; det standardiserade localeSet-talmönstret ger både num.decimal och dess heltalsdel för num.integer
Datum/tid-picture stöder år, månad, dag, veckodagsnamn, 12/24-timmarklockar, minuter, sekunder, fraktionella millisekunder, meridiemer och explicita GMT/UTC-offset; ogiltiga datum som 30 februari returnerar tom text
Numeriska picture stöder obligatorisk 9, valfri z, Z med blankstegsfyllnad, decimal- och gruppsymboler, valutasymboler och ISO-valutakoder, procenttecken, tecken, parenteser, kredit-/debit-suffix och underförstådd decimalradix
Textpicture stöder A för Unicode-bokstäver, O eller 0 för Unicode-alfanumeriska tecken, 9 för siffror och X för Unicode-kodpunkter, inklusive tilläggstecken
Avancerade picture-klausuler lägger till numerisk vetenskaplig notation och bevarad decimalprecision, ordnings- och veckodatum, fler klockor, globala tecken-/blankstegssymboler och sammansatt indatatolkning
Null-parametrar returnerar null; ogiltiga picture, ogiltiga värden eller otillgängliga lokaler returnerar tom 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")
Datum- och tidsfunktioner
| Funktion | Parametrar och resultat |
|---|---|
DateFmt(style=0, locale), TimeFmt(style=0, locale) | Returnerar XFA-mönster för default 0, short 1, medium 2, long 3 eller full 4; ogiltiga stilar väljer default |
Date2Num(text, picture, locale) | Returnerar seriedagar med 1900-01-01 som dag 1; utelämnad picture använder locale-standarden och accepterar även ISO-datum |
Num2Date(serial, picture, locale) | Formaterar seriedagar med den medgivna eller locale-standardens datumpicture |
IsoDate2Num(text) | Tolkar kompakta eller bindestreckade ISO-datum, inklusive valfria tidssuffix |
IsoTime2Num(text), Time2Num(text, picture, locale) | Returnerar millisekunder sedan GMT-midnatt plus 1; explicita offset tillämpas, och saknade offset använder den aktuella tidszonen |
Num2GMTime(serial, picture, locale), Num2Time(serial, picture, locale) | Formaterar tidsserier 1 till 86400000 i GMT eller den aktuella tidszonen |
Date(), Time() | Returnerar aktuella datum-/tidsserier med inspelade klockindata under session replay |
Utelämnade Num2Date-picture ger nu lokaliserad utdata; migrera anropare som kräver ISO-utdata till Num2Date(serial, "YYYY-MM-DD")
Enheter, kodning och textverktyg
| Funktion | Parametrar och resultat |
|---|---|
UnitType(measurement) | Känner igen aliasen in, cm, mm, pt, pc och mp; okända enheter blir tum som standard |
UnitValue(measurement, targetUnit="in") | Konverterar mått med 72 punkter per tum, 12 punkter per pica och 1000 millipunkter per punkt |
Encode(text, encoding="url"), Decode(text, encoding="url") | Stöder URL-escaping, XML-entiteter och HTML namngivna/numeriska entiteter med Unicode-skalärvalidering |
Uuid(style=0) | Returnerar 32 hexadecimala siffror eller stil 1 med bindestreck, med version 4 och variantbitar; replay använder inspelade slumpindata |
WordNum(value, style=0, locale) | Ger engelska talord, stil 1 dollarbelopp eller stil 2 dollar och cent; ogiltiga talområden returnerar en asterisk |
Aktuella picture-gränser
Alternativa era, ideografiska eller fullbreddade representationer, lokaliserade sifferalfabet, lokaliserade symboler enbart för visning och kompletta grupperingspolicyer är fortfarande separata mål; WordNum ger engelska ord
Den native skalärutvärderaren behåller sina befintliga ISO- och finansiella funktioner; locale-/picture-funktioner kräver allmän exekvering
API:er på lägre nivå
TXFALocaleData, HPDFXFALoadLocale, HPDFXFALoadDocumentLocale och HPDFXFALocaleJavaScript exponerar Unicode-localedata och säker motorserialisering
HPDFXFAExecuteJavaScriptEvent accepterar TXFALocaleDataProvider för anpassade skrivskyddade metadatauppslag