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ímboloComportamento
EFormata 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
8Reté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ímboloComportamento
J, JJJDia do ano, de 1 a 366; JJJ faz padding para três dígitos e o parsing valida anos bissextos
EDia 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
eDia da semana ISO de 1 para segunda-feira a 7 para domingo
WWSemana ISO de 01 a 53; a semana 01 contém 4 de janeiro, e um ano nesta picture é o ano da semana ISO
wSemana 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ímboloParsing de entradaFormatação de saída
?Consome um code point UnicodeProduz um espaço
*Consome zero ou mais caracteres de whitespace quebráveisProduz um espaço
+Consome um ou mais caracteres de whitespace quebráveisProduz 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