PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV Mobile (précédentes versions) → Total sur rupture zone répétée
Total sur rupture zone répétée
Débuté par Antonio BEJA, 27 avr. 2013 13:58 - 1 réponse
Membre enregistré
1 message
Posté le 27 avril 2013 - 13:58
Bonjour a tous

le code ci dessous me donne le total d'une zone répétée trié par clients, le soucis c'est que ce code aditionne bien les champs de la zone répétée client.

Mais sur la deuxième rupture et les suivantes, le total est les champs de la zone repetée plus le total de la première rupture.

Comment faire pour avoir le résultat exact sur chaque rupture de chaque clients


// Le bas de rupture contient le champ TotalFacture
// lié à l'attribut ATT_Total
// Ce champ affiche le total de toutes les factures de chaque client
MaRépétition est un entier = 1// Début de la zone répétée
DébutRupture est un entier// Indice du haut de rupture
FinRupture est un entier// Indice du bas de rupture
Indice est un entier// Indice des répétitions
Total est un entier// Total de chaque rupture

// Calcul des totaux pour toute la zone répétée
TANTQUE MaRépétition <= ZR_Travaux..Occurrence
// Indice de la rupture courante
DébutRupture = ZoneRépétéeIndiceRupture(RUPT_Clients, MaRépétition)
FinRupture = ZoneRépétéeIndiceRupture(RUPT_Total, MaRépétition)

// Parcours des répétitions de la rupture courante
// pour calculer le total
POUR Indice = DébutRupture A FinRupture
Total += HeureVersEntier(ATT_Valeur[Indice])
FIN

// Affectation du total
ATT_Total[FinRupture] = EntierVersHeure(Total)

// Passage à la rupture suivante
MaRépétition = FinRupture +1
FIN

Merci d'avance
Posté le 19 décembre 2023 - 09:04
Vieux sujet mais qui pourrait en intéresser d'autres.

Il y en effet un erreur dans le code. (exemple tiré de la documentation Windev)

Il faut réinitialiser la variable total à 0 à la fin de chaque parcours de rupture.

// Calcul des totaux pour toute la zone répétée
TANTQUE MaRépétition <= ZR_Travaux..Occurrence
// Indice de la rupture courante
DébutRupture = ZoneRépétéeIndiceRupture(RUPT_Clients, MaRépétition)
FinRupture = ZoneRépétéeIndiceRupture(RUPT_Total, MaRépétition)

// Parcours des répétitions de la rupture courante
// pour calculer le total
POUR Indice = DébutRupture A FinRupture
Total += HeureVersEntier(ATT_Valeur[Indice])
FIN

// Affectation du total
ATT_Total[FinRupture] = EntierVersHeure(Total)


//=============================
// Réinitialisation de la variable total

Total = 0

//=============================


// Passage à la rupture suivante
MaRépétition = FinRupture +1
FIN


Bon dev à tous