Clauses Picture XFA avancées

Activez TXFAWidgetRuntimeOptions.ScriptOptions.EnableJavaScript pour utiliser ces pictures dans les événements FormCalc et les scripts calculate et validate via le moteur QuickJS embarqué

Format(picture, value) produit le texte d'affichage et Parse(picture, text) produit les valeurs canoniques ; la sélection de locale, les littéraux entre guillemets et les alternatives suivent Fonctions de locale et de picture FormCalc

Précision numérique et notation scientifique

SymboleComportement
EFormate un exposant signé en base 10 après la mantisse ; les positions de chiffres entiers et fractionnaires déterminent la précision de la mantisse, avec retenue d'arrondi appliquée avant l'émission de l'exposant
8Conserve la précision fractionnaire exprimée du texte décimal fourni, zéros finaux inclus ; en l'absence de chiffres fractionnaires, la virgule décimale est omise, et une série de 8 symboles peut préserver plus de chiffres fractionnaires fournis que sa longueur

Les mantisses scientifiques utilisent au plus 15 positions de chiffres ; les magnitudes d'exposant et l'expansion décimale sont bornées à 10000, et les valeurs non finies produisent un texte vide

Les pictures de précision préservent les littéraux entre guillemets avant et après les positions fractionnaires ; la mise à l'échelle en pourcentage décale le texte décimal d'origine sans perdre les zéros finaux lors de la conversion en virgule flottante binaire

Passez des chaînes décimales quand leur précision exprimée compte ; les valeurs numériques JavaScript ont déjà subi la conversion en virgule flottante binaire avant le formatage

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%

Dates ordinales et hebdomadaires

SymboleComportement
J, JJJJour de l'année, de 1 à 366 ; JJJ complète sur trois chiffres et le parsing valide les années bissextiles
EJour de la semaine numérique, de 1 pour dimanche à 7 pour samedi ; EEE et EEEE continuent d'utiliser les noms de jours abrégés et complets de la locale
eJour de la semaine ISO, de 1 pour lundi à 7 pour dimanche
WWSemaine ISO de 01 à 53 ; la semaine 01 contient le 4 janvier, et une année dans cette picture est l'année de semaine ISO
wSemaine du mois de 0 à 5, commençant le dimanche ; la première semaine doit contenir au moins quatre jours du mois

Le parsing de dates ordinales ou hebdomadaires renvoie la date de calendrier ISO correspondante ; des valeurs de jour, mois, jour de semaine ou semaine contradictoires renvoient un texte vide

Les années précoces à quatre chiffres sont construites sans l'ajustement de siècle JavaScript, y compris les années 0000 à 0099 ; les ères alternatives historiques restent hors de ces 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 d'horloge supplémentaires

k et kk expriment une heure de 0 à 11 dans le méridiem ; K et KK expriment une heure de 1 à 24 dans la journée, 24 représentant minuit

Utilisez A avec les horloges k pour distinguer AM et PM ; le z minuscule formate un offset ISO sans deux-points, zz utilise un deux-points, et le Z majuscule émet GMT ou GMT avec un offset explicite

Symboles de picture globaux

SymboleParsing en entréeFormatage en sortie
?Consomme un point de code UnicodeProduit une espace
*Consomme zéro ou plusieurs caractères d'espacement sécablesProduit une espace
+Consomme un ou plusieurs caractères d'espacement sécablesProduit une espace

Ces symboles fonctionnent dans les pictures date, time, datetime, number et text ; les symboles entre guillemets restent des caractères littéraux, les caractères Unicode supplémentaires comptent pour un caractère, et les espaces insécables sont exclues du matching d'espacement

Parsing d'entrée composé

Les clauses date et time composées se combinent en texte date-time ISO canonique ; les représentations répétées d'une même valeur doivent concorder, et les délimiteurs littéraux sont vérifiés avant d'accepter l'entrée

Les clauses scalaires répétées doivent produire le même nombre ou texte canonique ; des combinaisons de catégories incompatibles, des valeurs contradictoires, une consommation incomplète ou plusieurs résultats canoniques distincts produisent un texte vide

Le parsing composé admet 64 parties, 8192 unités d'entrée UTF-16 et 8192 tentatives de parsing, tout en partageant les budgets d'opérations runtime et de temps écoulé ; dépasser ces limites fait échouer la transaction de l'événement

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

Comportement runtime et limites actuelles

Les champs calculés et les événements utilisent la même implémentation et les mêmes métadonnées de locale ; les scripts en échec restaurent les valeurs du document et l'état JavaScript validé, et les données XDP enregistrées conservent les résultats réussis

Les calendriers d'ères alternatives, les représentations idéographiques et pleine largeur, les symboles localisés d'affichage seul et les politiques de groupement complètes restent des cibles séparées

Voir Runtime XFA interactif pour le comportement des transactions, du replay et des budgets d'opérations