Bonjour,

J ai des données stockées au format xml de type :
CLIENT
PRODUIT
QUANTITE
PRIX
QUANTITE_BASE

QUANTITE_BASE est identique pour toutes les données du couple CLIENT PRODUIT.

Je dois dans un tableau créer une nouvelle donnée QUANTITE_DE_BASE et modifier QUANTITE en fonction de QUANTITE_BASE.

En gros j ai ces données :
CLIENT : C1
PRODUIT : P1
QUANTITE : 500
PRIX : 5
QUANTITE_BASE : 600

CLIENT : C1
PRODUIT : P1
QUANTITE : 300
PRIX : 6
QUANTITE_BASE : 600 (idem que celui du dessus car mm couple client produit)

CLIENT : C2
PRODUIT : P1
QUANTITE : 800
PRIX : 3
QUANTITE_BASE : 500
-----
Je dois obtenir un tableau avec
CLIENT : C1
PRODUIT : P1
QUANTITE : 0
PRIX : 5
QUANTITE_DE_BASE : 500 (=QUANTITE car QUANTITE<QUANTITE_BASE, je dois garder en mémoire les 100 de la QUANTITE_BASE restant pour le prochain couple client/produit)

CLIENT : C1
PRODUIT : P1
QUANTITE : 0 (car il y a des QUANTITE_BASErestant)
PRIX : 6
QUANTITE_DE_BASE : 100 (QUANTITE_BASErestant<QUANTITE dc on affiche 100 et on garde en mémoire les 200 que l on a pas encore affiché 300-100=QUANTITE-QUANTITE_BASErestant)

CLIENT : C1
PRODUIT : P1
QUANTITE : 200 (la QUANTITE RESTANTE)
PRIX : 6
QUANTITE_DE_BASE : 0 (car il n y a plus de QUANTITE_BASErestant)
--> pour ce couple on a bien une quantité totale de 500+300 mais répartie en 500 + 100 + 200
Pour le couple suivant C2/P1:
CLIENT : C2
PRODUIT : P1
QUANTITE : 0
PRIX : 3
QUANTITE_DE_BASE : 500

CLIENT : C2
PRODUIT : P1
QUANTITE : 300
PRIX : 3
QUANTITE_DE_BASE : 0
L'algo pour moi ne pose pas vraiment de pb ... Le seul hic c est les variables en xslt !!

Il faudrait que j arrive à initialiser une variable avant mon for-each et que j arrive à la modifier dans ma boucle ... Sauf que j ai la valeur de ma quantite_base dans la boucle ...
En plus, je crois qu il y a des souci avec les variables, des questions de noeuds en xslt.
Je comprends pas trop comment m en sortir malgré les tuto et posts lus jusqu à maintenant !!!

Voici ma boucle sans cette variable pour le moment :
<x:for-each select="//NIVEAU1">
<tr >
<x:attribute name="class">r<x:value-of select="position() mod 2"/></x:attribute>
<td ><x:value-of select="@CLIENT"/></td>
<td ><x:value-of select="@PRODUIT"/></td>
<td ><x:value-of select="@QUANTITE "/></td>
<td ><x:value-of select="@PRIX"/></td>
<td ><x:value-of select="@QUANTITE_DE_BASE"/></td>
</tr>
</x:for-each>

En fait je vois comment déclarer une variable et l initialiser
<x:variable nom="base">0</x:variable>
mais comment lui affecter une valeur par la suite ?


Merci d avance