Altova StyleVision 2025 Enterprise Edition

Exemple : Un Invoice (une facture).

Accueil Préc Haut Suivant

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).

TutAutoCal_Invoices_1

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.

TutAutoCal_Invoices_2

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.

TutAutoCal_Invoices_3

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.

TutAutoCal_Invoices_4

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.

 

© 2019-2025 Altova GmbH