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
| Symbole | Comportement |
|---|---|
E | Formate 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 |
8 | Conserve 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
| Symbole | Comportement |
|---|---|
J, JJJ | Jour de l'année, de 1 à 366 ; JJJ complète sur trois chiffres et le parsing valide les années bissextiles |
E | Jour 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 |
e | Jour de la semaine ISO, de 1 pour lundi à 7 pour dimanche |
WW | Semaine 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 |
w | Semaine 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
| Symbole | Parsing en entrée | Formatage en sortie |
|---|---|---|
? | Consomme un point de code Unicode | Produit une espace |
* | Consomme zéro ou plusieurs caractères d'espacement sécables | Produit une espace |
+ | Consomme un ou plusieurs caractères d'espacement sécables | Produit 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