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ção | Comportamento |
|---|---|
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ção | Parameters 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ção | Parameters 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