Exemple : Un Invoice (une facture).
L’exemple Invoice.sps dans le dossier (Mes) Documents, C:\Documents and Settings\<username>\My Documents\Altova\StyleVision2025\StyleVisionExamples\Tutorial\Auto-Calculations\, démontre comment les calculs automatiques peuvent être utilisés aux fins suivantes :
•Compter les nœuds
•Sélectionner un nœud basé sur l’entrée de l’utilisateur de Authentic View
•Mettre à jour le contenu d’un nœud avec le résultat d’un calcul automatique
•Utiliser le résultat d’un calcul automatique dans un autre calcul automatique
Dans le fichier d’exemple, les calculs automatiques ont été mis en surbrillance ayant une couleur d’arrière-fond jaune (voir la capture d’écran ci-dessous).
Compter les nœuds
Dans l’exemple Invoice, chaque produit dans la liste est numéroté selon sa position dans la liste des produits qu’un client a commandé (Product 1, Product 2, etc). Cette numérotation est obtenue avec un calcul automatique (capture d’écran ci-dessous).

Dans ce cas particulier, il suffirait que l’expression XPath position() obtienne la numérotation correcte. Une autre manière utile d’obtenir la position d’un nœud est de compter le nombre de frères qui précèdent et en ajouter un. L’expression XPath serait : count(preceding-sibling::Product)+1. Cette approche pourrait s’avérer utile dans des contextes où la fonction position() est utilisée est difficile à employer ou ne peut pas être utilisée. Vous pouvez tester le calcul automatique dans le fichier d’exemple en supprimant les produits, et/ou en ajoutant et supprimant les nouveaux produits.
Sélectionner un nœud basé sur l’entrée de l’utilisateur
Dans l’exemple Invoice, l’utilisateur sélectionne la catégorie du produit (Book, CD, DVD, ou Electronics) par le biais de la zone combinée. Cette sélection est saisie dans le nœud //Product/Category dans le document XML. Un calcul automatique utilise ensuite cette valeur pour référencer une « table lookup » dans le document XML et identifier le nœud ayant le pourcentage T.V.A. pour cette catégorie de produit. L'expression XPath du calcul automatique est :
for $i in Category return /Invoice/Categories/Category[. = $i]/@rate.
Le pourcentage T.V.A. est affiché dans l’emplacement du calcul automatique dans la sortie. Dans l’exemple Invoice, la table lookup est stockée dans le même document XML comme données de la facture. Toutefois, une telle table peut aussi être stockée dans un document séparé, dans ce cas, elle serait accédée utilisant la fonction doc() de XPath 2.0. Pour tester ce calcul automatique, changez la sélection du type de produit dans toute zone de liste Catégorie du produit ; la valeur T.V.A. sera changée en fonction (Book=10%; CD=15%; DVD=15%; Electronics=20%).
Mettre à jour le contenu d’un nœud avec le résultat d’un calcul automatique
Le pourcentage T.V.A. obtenu par le calcul automatique depuis le lookup est dynamique et stocké temporairement dans la mémoire (pour utilisation dans Authentic View). Le résultat du calcul automatique peut, toutefois, être stocké dans le nœud VAT du document XML. Ceci a deux avantages : (i) le contenu du nœud VAT ne doit pas être saisi par l’utilisateur ; il est saisi automatiquement par le calcul automatique ; (ii) à chaque fois que la table lookup est modifiée, les modifications seront reflétées dans le nœud T.V.A. quand Invoice.xml est ouvert dans Authentic. Pour qu’un calcul automatique mette à jour un nœud, sélectionnez le calcul automatique dans l’Aperçu de design et dans la fenêtre des Propriétés (capture d’écran ci-dessous), cliquez sur le bouton Authentic | Mettre à jour nœud XML. Dans le dialogue qui s’ouvre, sélectionnez le nœud VAT, et cliquez sur OK.

Dans Authentic View, quand l’utilisateur sélectionne une différente catégorie de produit dans la zone de liste, le calcul automatique obtient le pourcentage VAT en référençant la table lookup, affiche le pourcentage VAT, et met à jour le nœud VAT.
Utiliser un nœud mis à jour de calcul automatique dans un autre calcul automatique
Le pourcentage de T.V.A., obtenu dans le calcul automatique décrit ci-dessous, est requis pour calculer le prix brut (prix net + montant T.V.A.) de chaque produit. La formule à utiliser pourrait être calculée comme suit :
Prix brut = prix net + montant T.V.A.
Puisque montant T.V.A. = Prix net * pourcentage T.V.A. div 100
Prix brut = prix net + (prix net * pourcentage T.V.A. div 100)
Le prix net d’un produit est obtenu du nœud PriceNet. Le pourcentage T.V.A. est calculé par un calcul automatique tel que décrit ci-dessus, et ce calcul automatique met à jour le nœud VAT. Le contenu du nœud VAT peut être utilisé maintenant dans le calcul automatique pour générer le prix brut. L’expression XPath qu’il vous faut est la suivante :
PriceNet + (PriceNet * (VAT div 100))
L’expression XPath peut être consultée et éditée dans la fenêtre des Propriétés. Vous pouvez tester le calcul automatique pour le prix brut en changeant soit le prix ou la catégorie de produit de tout produit. Notez que le prix brut (prix incluant la T.V.A.) du produit change également.

Dans le Invoice SPS, le le calcul automatique du prix brut met à jour le nœud PriceGross dans le document XML.
Les nœuds PriceGross mis à jour peuvent désormais être utilisés dans un calcul automatique qui résume les prix de tous les produits achetés. L’expression XPath serait : sum(Order/Product/PriceGross). Dans le Invoice SPS, ce calcul automatique met à jour le nœud PriceTotal. Vous pouvez tester ce calcul automatique en modifiant les prix des produits individuels et en voyant l’effet du prix total.
Un exercice de calcul automatique
Ajoutez maintenant des composants de calcul automatique au SPS vous-même.
1.Créez un calcul automatique qui calcule un discount de volume pour la facture entière. Si le montant de la commande (prix total ) excède eur 100, eur 300 ou eur 600, les rabais de 5 %, 10 % et 12 % s’appliquent, respectivement. Affichez le montant du discount (voir capture d’écran ci-dessous) et mettez à jour le nœud DiscountAmount dans le document XML.
2.Créez un calcul automatique qui calcule le montant de la remise sur la facture. Ce montant serait le prix total moins le montant du discount (tel que calculé dans le calcul automatique). Afficher le montant de la facture (voir la capture d’écran ci-dessous) et mettez à jour le nœud BillAmount dans le document XML.
Définissez ces composants pour que la sortie Authentic View soit affichée dans la capture d’écran ci-dessous.

Vous pouvez voir ces deux calculs automatiques supplémentaires dans le fichier InvoiceWithDiscounts.sps, qui se trouve dans le dossier (Mes) Documents, dossier C:\Documents and Settings\<username>\My Documents\Altova\StyleVision2025\StyleVisionExamples\Tutorial\Auto-Calculations.