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

FunktionBeteende
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

FunktionParametrar 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

FunktionParametrar 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