PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Remplissage table hierarchique
Remplissage table hierarchique
Débuté par Jeff, 26 déc. 2006 09:19 - 2 réponses
Posté le 26 décembre 2006 - 09:19
Bonjour,

J'ai un soucis qui va faire sourir les vrais pros...
Je lis une table article qui sont liés à une catégorie et une sous catégorie.
Je souhaite que la première branche de ma table soit la catégorie, la seconde soit la sous catégorie et la troisième le titre de l'article.
J'utilise donc le code suivant :

HLitPremier(Catégorie,IDCatégorie)

// on ajoute la première catégorie dans la table

TANTQUE PAS HEnDehors(Catégorie)
catID est un réel=Catégorie.IDCatégorie
catnom est une chaîne=Catégorie.Titre

TableAjouteLigne(TH_articles,Catégorie.Titre)

// on filtre les enregistrements de sous catégorie correspondant à la catégorie sélectionnée

HLitRecherchePremier(HFSous_catégorie,IDCatégorie,catID)
SI HTrouve(HFSous_catégorie) ALORS // S'il existe une sous catégorie

POUR TOUT HFSous_catégorie AVEC IDCatégorie = catID

SScatId est un réel=HFSous_catégorie.IDSous_catégorie
sscatnom est une chaîne=HFSous_catégorie.Nom

TableAjouteFils(TH_articles,catnom,HFSous_catégorie.Nom)

// idem pour les articles

SI HLitRecherchePremier(Articles,IDSous_catégorie,SScatId)=Faux ALORS
TableAjouteFils(TH_articles,catnom,"Aucune sous catégorie dans cette catégorie")
SINON
POUR TOUT Articles AVEC IDSous_catégorie = SScatId
SI PAS HLitRecherchePremier(Revue,IDRevue,Articles.IDRevue) ALORS
Info("Erreur lors de la recherche de la revue pour l'article : "+Articles.Nom_article)
FIN
TableAjouteFils(TH_articles,sscatnom,Articles.Nom_article,Revue.Nom,Articles.IDArticles)
FIN
FIN
FIN
SINON
TableAjouteFils(TH_articles,catnom,"Aucune sous catégorie dans cette catégorie")
FIN
HLitSuivant(Catégorie,IDCatégorie)
FIN

J'ai un plantage au niveau de la ligne qui ajoutefils et le nom de l'article pour la sous catégorie.
J'ai repris mon code dans tous les sens, j'ai même essayé un autre mode de parcours (en commancant nom pas par une lecture des catégories, puis des sous catégories qu'elle peuvent contenir et enfin des article qui peuvent être liés à cette sous catégorie, mais par une lecture des articles) mais j'ai trop de hlitrecherche premier..
Quelqu'un verrait-il une boulette dans le code ?

D'avance un grand merci !!!!
Posté le 26 décembre 2006 - 10:09
Bonjour,

Il aurait été intéressant de fournir le message d'erreur.
Je vois un problème de le code d'ajout des fils.
Dans la ligne TableAjouteFils(TH_articles,catnom,"Aucune sous catégorie dans
cette catégorie")
catnom ne correspond pas (a mon avis) à une racine valide sauf si catnom =
catégorie.titre+tab+catnom

voici exemple simple
ligne 1 - Catégorie
ligne 2 - Sous-catégorie
ligne 3 - Titre Article.
ligne 4 - Catégorie 2
ligne 5 Sous-Cat 2
ligne 6 Titre Article
code :
TableAjouteligne(NomTable,Catégorie...)
TableAjouteFils(NomTable,1,Sous-catégorie)
TableAjouteFils(NomTable,2,Titre Article)

TableAjouteFils(NomTable,0,Catégorie 2)
TableAjouteFils(NomTable,4,Sous-cat2)
TableAjouteFils(NomTable,5,Titre Article)

ou

TableAjouteligne(NomTable,Catégorie...)
TableAjouteFils(NomTable,"Catégorie",Sous-catégorie)
TableAjouteFils(NomTable,"Catégorie"+tab+Sous-catégorie",Titre Article)

etc...

En espérant t'avoir aidé.
Posté le 26 décembre 2006 - 10:50
Merci beaucoup
Je pensais aprés avoir lu l'aide en ligne qu'on pouvais se dispenser du TAB pour indiquer la racine au contraire des treeview. C'était donc une mauvaise interprétation de ma part.