PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Table Hiérarchique ac requête
Table Hiérarchique ac requête
Iniciado por Martin Bouleuc, 01,nov. 2019 16:05 - 1 respuesta
Miembro registrado
1 mensaje
Publicado el 01,noviembre 2019 - 16:05
Bonjour,

Je cherche à remplir une table hiérarchique par programmation.
J'ai une requête qui affiche depuis 2 tables distinctes: Client et Produit, le nom du client et la ref du produit.
Élément parent est la ref produit.
Pour chacune des références un second niveau (fil) ac la liste des clients (qui ont acheté le produit).

J'ai procédé comme suit:
Une requête SELECT qui affiche le nom des ref produits et des clients
Dans une première boucle je parcours la requête et ajoute les ref produits.
Dans une seconde boucle je parcours la requête et ajoute les noms cli fils ac en indice i du noeud parent la ref.
Sur 10 ref i=1 a 10 et i++ dans la boucle.

J'obtient une table hiérarchique ou les ajouts fils se font que sur le premier parent et ts à la chaine (fil de fil de fil) au lieu d'être au même niveau hiérarchique...

nIndiceiEXPRESS est un entier = 1
IndiceJ est un entier =1


SI PAS HExécuteRequête(REQ_Client_Produit) ALORS
Erreur(HErreurInfo())
FIN

POUR TOUT REQ_Client_Produit
TableAjouteLigne(MoiMême,REQ_Client_Produit.Référence)
FIN

POUR nIndiceiEXPRESS=1 À 10
POUR TOUT REQ_Client_Produit
TableAjouteFils(MoiMême,nIndiceiEXPRESS,REQ_Client_Produit.NomComplet)
FIN

FIN


D'avance merci les amis! :)
Miembro registrado
116 mensajes
Publicado el 04,noviembre 2019 - 11:23
Bonjour,

Je ne comprends pas pourquoi tu parcours ta requête plusieurs fois.

Il faut que tu fasses un truc du genre (à condition que dans ta requête tu ais bien trié sur la référence) :

Référence_précédente est une chaine

POUR TOUT REQ_Client_Produit
si REQ_Client_Produit.Référence <> Référence_précédente //De façon à ajouter ta référence une seule fois dans ton arbre
TableAjouteLigne(MoiMême,REQ_Client_Produit.Référence)
référence_précédente = REQ_Client_Produit.Référence
fin

TableAjouteFils(MoiMême, REQ_Client_Produit.Référence, REQ_Client_Produit.NomComplet) //Ajoute le nom du client sur le noeud référence
FIN

Bon courage