Picture clauses avançadas do XFA
Habilite TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript para usar estas pictures em eventos FormCalc e em scripts calculate e validate pelo engine QuickJS embarcado
Format(picture, value) produz texto de exibição e Parse(picture, text) produz valores canônicos; a seleção de locales, literais entre aspas e alternativas seguem as Funções de locales e pictures do FormCalc
Precisão numérica e notação científica
| Símbolo | Comportamento |
|---|---|
E | Formata um expoente base-10 com sinal depois da mantissa; as posições de dígitos leading e fracionários determinam a precisão da mantissa, com carry de arredondamento aplicado antes de o expoente ser emitido |
8 | Retém a precisão fracionária expressa do texto decimal fornecido, incluindo zeros finais; dígitos fracionários ausentes omitem o radix decimal, e uma sequência de 8 símbolos pode preservar mais dígitos fracionários fornecidos do que o seu comprimento |
Mantissas científicas usam no máximo 15 posições de dígitos; magnitudes de expoentes e expansão decimal são delimitadas a 10000, e valores não finitos produzem texto vazio
Pictures de precisão preservam literais entre aspas antes e depois das posições fracionárias; o scaling percentual desloca o texto decimal original sem perder zeros finais através da conversão de ponto flutuante binário
Passe strings decimais quando a precisão expressa delas importa; valores numéricos JavaScript já passaram pela conversão de ponto flutuante binário antes da formatação
Format("num{99.999E}", 12345) // 12.345E+3
Parse("num{99.999E}", "12.345E-2") // 0.12345
Format("num{zzz,zz9.8}", "12345.0000") // 12,345.0000
Parse("num{zz9.8}", "12.3400") // 12.3400
Format("num{zz9.8%}", "0.1250") // 12.50%
Datas ordinais e de semanas
| Símbolo | Comportamento |
|---|---|
J, JJJ | Dia do ano, de 1 a 366; JJJ faz padding para três dígitos e o parsing valida anos bissextos |
E | Dia da semana numérico de 1 para domingo a 7 para sábado; EEE e EEEE continuam usando nomes de dias da semana de locales abreviados e completos |
e | Dia da semana ISO de 1 para segunda-feira a 7 para domingo |
WW | Semana ISO de 01 a 53; a semana 01 contém 4 de janeiro, e um ano nesta picture é o ano da semana ISO |
w | Semana do mês de 0 a 5, começando no domingo; a primeira semana precisa conter pelo menos quatro dias do mês |
Fazer parsing de datas ordinais ou de semanas retorna a data correspondente do calendário ISO; valores contraditórios de dia, mês, dia da semana ou semana retornam texto vazio
Anos antigos de quatro dígitos são construídos sem o ajuste de século do JavaScript, incluindo anos 0000 a 0099; eras alternativas históricas ficam fora destas pictures
Format("date{YYYY-JJJ}", "2024-02-29") // 2024-060
Parse("date{YYYY-WW-e}", "2020-53-5") // 2021-01-01
Format("date{w}", "2004-07-03") // 0
Variantes adicionais de relógio
k e kk expressam uma hora de 0–11 dentro do meridiem; K e KK expressam uma hora de 1–24 dentro do dia, com 24 representando meia-noite
Use A com relógios k para distinguir AM e PM; z minúsculo formata um offset ISO sem dois-pontos, zz usa dois-pontos, e Z maiúsculo emite GMT ou GMT com offset explícito
Símbolos globais de pictures
| Símbolo | Parsing de entrada | Formatação de saída |
|---|---|---|
? | Consome um code point Unicode | Produz um espaço |
* | Consome zero ou mais caracteres de whitespace quebráveis | Produz um espaço |
+ | Consome um ou mais caracteres de whitespace quebráveis | Produz um espaço |
Esses símbolos funcionam dentro de pictures de data, hora, datetime, número e texto; símbolos entre aspas permanecem caracteres literais, caracteres Unicode suplementares contam como um caractere, e non-breaking spaces são excluídos do matching de whitespace
Parsing composto de entrada
Cláusulas compostas de data e hora se combinam em texto canônico ISO de data-hora; representações repetidas do mesmo valor precisam concordar, e delimitadores literais são checados antes de aceitar a entrada
Cláusulas escalares repetidas precisam produzir o mesmo número ou texto canônico; combinações incompatíveis de categorias, valores contraditórios, consumo incompleto ou múltiplos resultados canônicos distintos produzem texto vazio
O parsing composto permite 64 partes, 8192 unidades UTF-16 de entrada e 8192 tentativas de parse, enquanto compartilha os orçamentos de operações e tempo decorrido do runtime; exceder esses limites faz a transação do evento falhar
Parse("date{YYYY-MM-DD} time{HH:MM:SS}", "2024-02-29 12:34:56")
// 2024-02-29T12:34:56
Parse("date{YYYYMMDD}time{HHMMSS}", "20240229123456")
// 2024-02-29T12:34:56
Comportamento do runtime e fronteiras atuais
Campos calculados e eventos usam a mesma implementação e metadados de locales; scripts com falha restauram os valores do documento e o estado commitado do JavaScript, e os dados XDP salvos retêm os resultados bem-sucedidos
Calendários de eras alternativas, representações ideográficas e full-width, símbolos localizados somente de exibição e políticas completas de agrupamento permanecem alvos separados
Veja o Runtime interativo de widgets XFA para o comportamento de transações, replay e orçamentos de operações