Picture clauses XFA avançadas
Ative TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript para usar estas pictures em eventos FormCalc e em scripts calculate e validate através do motor QuickJS distribuído
Format(picture, value) produz texto de apresentação e Parse(picture, text) produz valores canónicos; a seleção de locales, literais entre aspas e alternativas seguem as funções FormCalc de locales e pictures
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 de 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 a base decimal, e uma sequência de 8 símbolos pode preservar mais dígitos fracionários fornecidos do que o comprimento dela |
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 de posições fracionárias; o dimensionamento percentual desloca o texto decimal original sem perder zeros finais através da conversão de vírgula flutuante binária
Passe strings decimais quando a precisão expressa delas importa; valores numéricos JavaScript já sofreram conversão de vírgula flutuante binária 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 a usar 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 de semanas ISO |
w | Semana do mês de 0 a 5, começando no domingo; a primeira semana tem de conter pelo menos quatro dias do mês |
O parsing de datas ordinais ou de semanas devolve a data de calendário ISO correspondente; valores contraditórios de dias, meses, dias da semana ou semanas devolvem texto vazio
Anos iniciais de quatro dígitos são construídos sem o ajuste de séculos JavaScript, incluindo anos 0000 a 0099; eras alternativas históricas continuam 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ógios
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 a representar 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 um 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 carateres de whitespace quebráveis | Produz um espaço |
+ | Consome um ou mais carateres de whitespace quebráveis | Produz um espaço |
Estes símbolos funcionam dentro de pictures de datas, horas, datetimes, números e texto; símbolos entre aspas permanecem carateres literais, carateres Unicode suplementares contam como um caráter, e espaços não quebráveis estão excluídos da correspondência de whitespace
Parsing composto de entradas
Cláusulas compostas de datas e horas combinam-se em texto canónico ISO de data-hora; representações repetidas do mesmo valor têm de concordar, e delimitadores literais são verificados antes de aceitar a entrada
Cláusulas escalares repetidas têm de 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 de entrada UTF-16 e 8192 tentativas de parsing, partilhando os orçamentos do runtime de operações e de tempo decorrido; exceder estes limites faz falhar a transação de eventos
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 em runtime e fronteiras atuais
Campos calculados e eventos usam a mesma implementação e metadados de locales; scripts falhados restauram valores de documentos e o estado confirmado de JavaScript, e dados XDP guardados retêm resultados bem-sucedidos
Calendários de eras alternativas, representações ideográficas e de largura completa, símbolos localizados apenas de apresentação e políticas completas de agrupamentos continuam a ser alvos separados
Veja o Runtime interativo de widgets XFA para o comportamento de transações, replay e orçamentos de operações