Altova XMLSpy 2024 Enterprise Edition

Une formule est une expression XQuery 3.1 qui génère un résultat (soit un nodeset ou des calculs) pour un affichage en Mode JSON Grid. Dans la capture d’écran ci-dessous, par exemple, le prix total des items 1 à 4 est calculé et le résultat (28) est affiché sur une ligne séparée. Chaque formule est exécutée de manière indépendante et n’est pas affectée par d’autres filtres ou formules dans le document.

 

Pour toute information sur la construction d’expressions XQuery pour des documents JSON, voir la section Expressions XQuery pour JSON.

 

Note : lorsque vous saisissez des expressions pour des filtres et des formules en Mode Grid, vous allez éventuellement vouloir afficher une expression sur plusieurs lignes pour une meilleure lisibilité. Pour ajouter une nouvelle ligne dans l’expression, appuyez sur Ctrl+Enter.
JSONGridViewFormulas01

Si le document est un document JSON5 ou JSONC, alors :

 

La formule sera écrite dans le document en tant que commentaire JSON

Facultativement, le résultat de la formule peut être stocké en tant code (non commenté) dans le document JSON. Pour ce faire, cliquez sur l’icône du disque de la formule (voir la capture d’écran ci-dessous). Si la formule n’est pas stockée en tant que contenu JSON, elle sera stockée en tant que document de métadonnées pour l’affichage dans le Mode Grille. Notez que l’icône du disque est uniquement disponible dans les documents en JSON5 et JSONC ; elle n’est pas affichée dans d’autres types de document JSON.

 

 

 

Dans la capture d’écran ci-dessus, la formule résume les membres d’une séquence. Ces membres sont chacun des produits des valeurs de prix et de quantité de chaque projet contenu dans le tableau des items. L’itération de spécifier chaque objet et de l’attribuer, à son tour, à la variable \$item est spécifiée par : pour \$item dans ?items?*. Il est important de noter ici le nœud contextuel, qui est le parent de la formule—et, en conséquence, le parent du nœud des items. Chaque produit est obtenu en vérifiant le prix et la quantité des nœuds enfants de l’objet actuellement dans la variable \$item, et en multipliant ces deux valeurs l’une avec l’autre. Les produits ainsi obtenus sont les membres de la séquence, qui sont ensuite additionnés afin de générer le prix total.

 

Créer une formule

Pour créer un formule, procéder comme suit :

 

1.Sélectionnez le nœud pour lequel vous voulez ajouter la formule, soit en tant que frère ou enfant. Cliquez avec la touche droite, et ajoutez le frère ou l’enfant (selon ce que vous voulez). Lorsque vous décidez où vous voulez que la formule apparaisse (en tant que frère ou enfant), n’oubliez pas que le nœud contextuel de l’expression Xquery de la formule sera le nœud parent de la formule. Par exemple, dans l’expression XQuery affichée dans la capture d’écran ci-dessus, le nœud contextuel est le nœud parent de la formule (Prixtotal) et de son frère, l’array des items. Pour créer la formule dans la capture d’écran ci-dessus, un nœud frère a été apposé dans l’array des items (voir la capture d’écran ci-dessous).

2.Changer le type du nœud de la Formule (voir la capture d’écran ci-dessous).

JSONGridViewFormulas02AddNode

3.Double-cliquez dans la cellule qui contient l’icône f(x) to saisissez le nom de la formule (voir la capture d’écran ci-dessus). Si le document est un document JSON5 ou JSONC, alors une icône de disque est affichée. Vous pouvez cliquer sur l’icône pour enregistrer le résultat de la formule vers le document.

JSONGridViewFormulas03NameNode

4.Par défaut, l’expression XQuery est le string 'XQuery', donc le résultat sera le string XQuery (affiché dans la cellule ci-dessous sous l’expression). Saisissez votre expression Xquery en double-cliquant dans la cellule de l’expression et tapez l’expression, puis cliquez sur Enter. Ainsi, la formule sera-t-elle évaluée et son résultat affiché. Les autres formules ne seront pas modifiées.

5.Si le document contient de multiples formules, cliquez sur la commande de menu JSON | Tout réévaluer afin de mettre à jour les résultats de toutes les formules. La commande est particulièrement utile si les formules dans le document recherchent des données qui changent de manière dynamique (par exemple, des taux de change).

 

Veuillez noter les points suivants pour les formules :

 

Le nœud du contexte de l’expression XQuery de la formule est le nœud parent du nœud de la formule.

Les formules sont stockées dans les métadonnées du document (situé dans un fichier de métadonnées JSON au niveau de l’application). Si le document est en JSON5 ou JSONC, la formule est enregistrée en plus en tant que commentaire dans le contenu JSON.

Le résultat généré par une formule est affiché dans la cellule en dessous de l’expression XQuery. Dans le cas de JSON5 et JSONC, le résultat peut être stocké dans le document en cliquant sur l’icône de disque à côté de l’expression XQuery. Que vous ayez cliquer sur le disque ou non, le résultat de la formule sera calculé et stocké dans les métadonnées du document.

ic_jsongridFormulaOutputNotSaved

Le résultat de la formule n’est pas enregistré dans le contenu JSON ; cliquez pour l’enregistrer. Uniquement dans JSON5 et JSONC.

ic_jsongridFormulaOutputSaved

Le résultat de la formule est enregistré dans le contenu JSON ; cliquez pour ne pas l’enregistrer. Uniquement dans JSON5 et JSONC

Lorsque le résultat est un calcul et qu’il est stocké comme contenu, il est stocké en tant que propriété, qui porte le nom que vous avez assigné à la formule. Par exemple, dans la formule Prixtotal décrite ci-dessus, le résultat est stocké comme suit : "totalPrice": 28.

Notez la différence : Dans les documents en JSON5 et JSONC, les formules sont enregistrées en tant que commentaires JSON, leurs résultats sont enregistrés en tant que propriétés JSON.

 

Note :dans le dialogue des paramètres du Mode JSON Grid, vous pouvez spécifier si les formules sont stockées dans les documents JSON5 et JSONC. L’option de stocker les formules dans le document est sélectionnée par défaut.

 

Note :dans le dialogue des paramètres du Mode JSON Grid, vous pouvez également : (i) définir les options de métadonnées (si les formules doivent être stockées automatiquement dans le fichier de métadonnées, ou stockées uniquement sur demande, ou si elles ne doivent pas du tout être stockées).

 

Formules dans les tables

Si toutes les cellules d’une colonne de table (in Affichage Table) contiennent la même formule, la formule est affichée une seule fois—dans l’en-tête de la colonne (voir la capture d’écran ci-dessous). Les résultats du calcul de la formule sont, toutefois, affichés dans les cellules respectives.

 

La formule dans l’en-tête de la colonne est une représentation du Mode Grid. Dans le contenu du document JSON (en Mode Texte), la formule est répétée pour chaque item ligne-table.

JSONGridViewFormulasInTables01

Réévaluer toutes les formules

Pour mettre à jour les résultats de toutes les formules dans le document, cliquez sur la commande du menu JSON | Tout réévaluer.

 

Procédures pour les actions pertinentes

 

Ajouter une nouvelle colonne vide à la table comme suit : Basculez vers Affichage de la liste depuis l’Affichage de la table, cliquez avec la touche droite sur n’importe quelle paire key:value dans l’affichage de la liste, et apposez ou insérez une nouvelle paire key:valuepar le biais du menu contextuel de l’item. Lorsque vous rebasculez vers l’Affichage de la table, une nouvelle colonne est créée pour la nouvelle key:value paire qui a été apposée/insérée. Vous pouvez désormais éditer la colonne dans le Mode Grid.

Si toutes les formules d’une colonne de table sont les mêmes pour que la formule apparaisse dans l’en-tête, et vous voulez créer maintenant une formule différente pour une cellule individuelle, basculez vers l’Affichage de la liste et éditer la formule de cette cellule.

 

© 2017-2023 Altova GmbH