Funções de locales e pictures do FormCalc

Habilite TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript para usar estas funções em eventos gerais FormCalc e scripts calculate e validate pelo engine QuickJS embarcado

Seleção de locales

O campo em execução herda o atributo locale não vazio mais próximo dos ancestrais dele; uma cadeia vazia seleciona o locale nativo configurado do Windows ou do ICU do Linux

Uma entrada localeSet de documento sobrepõe símbolos nativos de números/moedas, nomes de meses/dias/meridiens e patterns de datas/horas/números; valores ausentes herdam os dados do sistema, com fallback en_US para nomes customizados de locales

Identificadores de locales aceitam grafias com underscore e hífen, sem sensibilidade a maiúsculas; nomes computados como Concat("de", "_DE") resolvem no momento da execução

Requisições internas de locales compartilham o deadline do evento e permitem 64 lookups nomeados, 256 code units UTF-16 por identificador e 2 MiB de metadados agregados; retries restauram o checkpoint do JavaScript, e o replay commitado da sessão consome os metadados registrados sem outra chamada ao provider

Funções de pictures

FunçãoComportamento
Format(picture, value, ...)Formata valores usando cláusulas de date, time, datetime, num ou text; cláusulas compostas padrão formatam o mesmo valor, com uma extensão opcional aceitando arguments de valores correspondentes
Parse(picture, text)Parseia cláusulas tipadas, cláusulas compostas ou alternativas em texto ISO de data/hora, texto numérico decimal ou texto com literais removidos

Use date(de_DE){D. MMMM YYYY} para um locale explícito, num.currency para um estilo de locale, e uma barra vertical para alternativas; literais entre aspas e apóstrofos duplicados preservam caracteres literais

Estilos de date, time e datetime usam os patterns default, short, medium, long ou full resolvidos; o pattern numérico padrão de localeSet fornece tanto num.decimal quanto sua parte inteira para num.integer

Pictures de data/hora suportam ano, mês, dia, nomes de dias da semana, relógios de 12/24 horas, minutos, segundos, milissegundos fracionários, meridiens e offsets explícitos GMT/UTC; datas inválidas como 30 de fevereiro retornam texto vazio

Pictures numéricas suportam 9 obrigatório, z opcional, Z com padding de espaços, separadores decimal/grupo, símbolos de moedas e códigos ISO de moedas, percentuais, sinais, parênteses, sufixos credit/debit e radix decimal implícito

Pictures de texto suportam A para letras Unicode, O ou 0 para caracteres alfanuméricos Unicode, 9 para dígitos e X para code points Unicode, incluindo caracteres suplementares

Picture clauses avançadas adicionam notação científica numérica e precisão fracionária retida, datas ordinais e de semanas, relógios adicionais, símbolos globais de caracteres/whitespace e parsing composto de entrada

Parameters null retornam null; pictures inválidas, valores inválidos ou locales indisponíveis retornam texto vazio

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")

Funções de datas e horas

FunçãoParameters e resultado
DateFmt(style=0, locale), TimeFmt(style=0, locale)Retornam patterns XFA para default 0, short 1, medium 2, long 3 ou full 4; estilos inválidos selecionam default
Date2Num(text, picture, locale)Retorna dias seriais com 1900-01-01 como dia 1; a picture omitida usa o default do locale e também aceita datas ISO
Num2Date(serial, picture, locale)Formata dias seriais usando a picture de datas do locale fornecido ou default
IsoDate2Num(text)Parseia datas ISO compactas ou com hífens, incluindo sufixos opcionais de hora
IsoTime2Num(text), Time2Num(text, picture, locale)Retornam milissegundos desde a meia-noite GMT mais 1; offsets explícitos são aplicados, e offsets ausentes usam o timezone atual
Num2GMTime(serial, picture, locale), Num2Time(serial, picture, locale)Formatam seriais de tempo de 1 a 86400000 em GMT ou no timezone atual
Date(), Time()Retornam seriais atuais de data/hora com entradas registradas de relógio durante o replay de sessões

Pictures omitidas de Num2Date agora produzem saída localizada; migre chamadores que exigem saída ISO para Num2Date(serial, "YYYY-MM-DD")

Unidades, encoding e utilitários de texto

FunçãoParameters e resultado
UnitType(measurement)Reconhece aliases in, cm, mm, pt, pc e mp; unidades não reconhecidas têm default de polegadas
UnitValue(measurement, targetUnit="in")Converte medidas com 72 pontos por polegada, 12 pontos por pica e 1000 milipontos por ponto
Encode(text, encoding="url"), Decode(text, encoding="url")Suporta escapes de URL, entidades XML e entidades HTML nomeadas/numéricas com validação de Unicode scalars
Uuid(style=0)Retorna 32 dígitos hexadecimais ou estilo 1 com hífens, com version 4 e bits de variant; o replay usa entradas aleatórias registradas
WordNum(value, style=0, locale)Produz palavras de números em inglês, valores em dólares do estilo 1 ou dólares e centavos do estilo 2; domínios numéricos inválidos retornam um asterisco

Fronteiras atuais de pictures

Eras alternativas, representações ideográficas ou full-width, alfabetos localizados de dígitos, símbolos localizados de patterns somente de exibição e políticas completas de agrupamento permanecem alvos separados; WordNum emite palavras em inglês

O evaluator escalar nativo retém suas funções existentes ISO e de finanças; as funções de locales/pictures exigem execução geral

APIs de nível mais baixo

TXFALocaleData, HPDFXFALoadLocale, HPDFXFALoadDocumentLocale e HPDFXFALocaleJavaScript expõem metadados Unicode de locales e serialização segura de engines

HPDFXFAExecuteJavaScriptEvent aceita TXFALocaleDataProvider para lookup customizado read-only de metadados