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