[WD10] Récupérer le chemin complet d'un élément treeview
6 réponses
Rémy
Bonjour,
J'ai un petit problème sur lequel je patauge un peu... J'ai un treeview avec
niveau1, niveau2, niveau3, sous-niveau1, etc...
Tous ces éléments sont identifiés par un ID unique lors de la construction
du treeview. Le hic, quand j'essaye de raccrocher par exemple mon
sous-sous-niveau1 au sous-niveau1 par :
arbreajoute(montv,arbreid(mon-id-sous-niveau1)+tab+"sous-sous-niveau1")
ca passe pas...
Je rate un truc ?
Je remplis le treeview d'apres une bdd mysql qui contient les notions de
parents, pour raccrocher oucavabien...
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Gilles TOURREAU
Rémy avait écrit le 08/08/2006 :
Bonjour,
J'ai un petit problème sur lequel je patauge un peu... J'ai un treeview avec niveau1, niveau2, niveau3, sous-niveau1, etc... Tous ces éléments sont identifiés par un ID unique lors de la construction du treeview. Le hic, quand j'essaye de raccrocher par exemple mon sous-sous-niveau1 au sous-niveau1 par : arbreajoute(montv,arbreid(mon-id-sous-niveau1)+tab+"sous-sous-niveau1")
ca passe pas...
Je rate un truc ?
Je remplis le treeview d'apres une bdd mysql qui contient les notions de parents, pour raccrocher oucavabien...
Merci ! rémy
arbreid() est une fonction qui permet uniquement de gérer les doublons au niveau des feuilles. Cette fonction s'utilise comme pour indicer les tableaux. Je pense que tu n'as pas à gerer des noeuds doubles dans ton tree-view et que tu fais fausse route...
En considérant que :
SousNiveau1 est une chaine = "Niveau1" + TAB + "SousNiveau1" SousSousNiveau1 est une chaine = "SousSousNiveau2" IdentifiantDeSousSousNiveau1 = 1664 //Identifiant dans la base de données par exemple...
Il faut faire pour raccrocher SousSousNiveau1 à SousNiveau1 :
Si je n'ai pas répondu à ta question, pourrais-tu être un peu plus explicite auy niveau de ta base de données...
Cordialement
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Rémy avait écrit le 08/08/2006 :
Bonjour,
J'ai un petit problème sur lequel je patauge un peu... J'ai un treeview avec
niveau1, niveau2, niveau3, sous-niveau1, etc...
Tous ces éléments sont identifiés par un ID unique lors de la construction du
treeview. Le hic, quand j'essaye de raccrocher par exemple mon
sous-sous-niveau1 au sous-niveau1 par :
arbreajoute(montv,arbreid(mon-id-sous-niveau1)+tab+"sous-sous-niveau1")
ca passe pas...
Je rate un truc ?
Je remplis le treeview d'apres une bdd mysql qui contient les notions de
parents, pour raccrocher oucavabien...
Merci !
rémy
arbreid() est une fonction qui permet uniquement de gérer les doublons
au niveau des feuilles.
Cette fonction s'utilise comme pour indicer les tableaux.
Je pense que tu n'as pas à gerer des noeuds doubles dans ton tree-view
et que tu fais fausse route...
En considérant que :
SousNiveau1 est une chaine = "Niveau1" + TAB + "SousNiveau1"
SousSousNiveau1 est une chaine = "SousSousNiveau2"
IdentifiantDeSousSousNiveau1 = 1664 //Identifiant dans la base de
données par exemple...
Il faut faire pour raccrocher SousSousNiveau1 à SousNiveau1 :
J'ai un petit problème sur lequel je patauge un peu... J'ai un treeview avec niveau1, niveau2, niveau3, sous-niveau1, etc... Tous ces éléments sont identifiés par un ID unique lors de la construction du treeview. Le hic, quand j'essaye de raccrocher par exemple mon sous-sous-niveau1 au sous-niveau1 par : arbreajoute(montv,arbreid(mon-id-sous-niveau1)+tab+"sous-sous-niveau1")
ca passe pas...
Je rate un truc ?
Je remplis le treeview d'apres une bdd mysql qui contient les notions de parents, pour raccrocher oucavabien...
Merci ! rémy
arbreid() est une fonction qui permet uniquement de gérer les doublons au niveau des feuilles. Cette fonction s'utilise comme pour indicer les tableaux. Je pense que tu n'as pas à gerer des noeuds doubles dans ton tree-view et que tu fais fausse route...
En considérant que :
SousNiveau1 est une chaine = "Niveau1" + TAB + "SousNiveau1" SousSousNiveau1 est une chaine = "SousSousNiveau2" IdentifiantDeSousSousNiveau1 = 1664 //Identifiant dans la base de données par exemple...
Il faut faire pour raccrocher SousSousNiveau1 à SousNiveau1 :
Si je n'ai pas répondu à ta question, pourrais-tu être un peu plus explicite auy niveau de ta base de données...
Cordialement
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Rémy
"Gilles TOURREAU" a écrit dans le message de news:
Bonjour,
arbreid() est une fonction qui permet uniquement de gérer les doublons au niveau des feuilles. Cette fonction s'utilise comme pour indicer les tableaux. Je pense que tu n'as pas à gerer des noeuds doubles dans ton tree-view et que tu fais fausse route...
Ok,
En considérant que :
SousNiveau1 est une chaine = "Niveau1" + TAB + "SousNiveau1" SousSousNiveau1 est une chaine = "SousSousNiveau2" IdentifiantDeSousSousNiveau1 = 1664 //Identifiant dans la base de données par exemple...
Oui, mais dans certains cas, je ne connais pas le : niveau+tab+niveau+tab... pour arriver la ou je veux...
Bon, pas evident et pas clair. Dans ma base de données, j'ai l'identifiant du niveau "pere" ou raccrocher le "fils", mais je ne sais pas a quel niveau peut se trouver le pere... ni si c'est a la racine, ni a un niveau 1 ou un sous niveau n...
Est-ce plus clair ? ;o)
Merchi rémy
"Gilles TOURREAU" <gilles.tourreau@pos.fr> a écrit dans le message de news:
mn.445c7d6894672059.52180@pos.fr...
Bonjour,
arbreid() est une fonction qui permet uniquement de gérer les doublons au
niveau des feuilles.
Cette fonction s'utilise comme pour indicer les tableaux.
Je pense que tu n'as pas à gerer des noeuds doubles dans ton tree-view et
que tu fais fausse route...
Ok,
En considérant que :
SousNiveau1 est une chaine = "Niveau1" + TAB + "SousNiveau1"
SousSousNiveau1 est une chaine = "SousSousNiveau2"
IdentifiantDeSousSousNiveau1 = 1664 //Identifiant dans la base de données
par exemple...
Oui, mais dans certains cas, je ne connais pas le : niveau+tab+niveau+tab...
pour arriver la ou je veux...
Bon, pas evident et pas clair. Dans ma base de données, j'ai l'identifiant
du niveau "pere" ou raccrocher le "fils", mais je ne sais pas a quel niveau
peut se trouver le pere... ni si c'est a la racine, ni a un niveau 1 ou un
sous niveau n...
"Gilles TOURREAU" a écrit dans le message de news:
Bonjour,
arbreid() est une fonction qui permet uniquement de gérer les doublons au niveau des feuilles. Cette fonction s'utilise comme pour indicer les tableaux. Je pense que tu n'as pas à gerer des noeuds doubles dans ton tree-view et que tu fais fausse route...
Ok,
En considérant que :
SousNiveau1 est une chaine = "Niveau1" + TAB + "SousNiveau1" SousSousNiveau1 est une chaine = "SousSousNiveau2" IdentifiantDeSousSousNiveau1 = 1664 //Identifiant dans la base de données par exemple...
Oui, mais dans certains cas, je ne connais pas le : niveau+tab+niveau+tab... pour arriver la ou je veux...
Bon, pas evident et pas clair. Dans ma base de données, j'ai l'identifiant du niveau "pere" ou raccrocher le "fils", mais je ne sais pas a quel niveau peut se trouver le pere... ni si c'est a la racine, ni a un niveau 1 ou un sous niveau n...
Est-ce plus clair ? ;o)
Merchi rémy
Gilles TOURREAU
Rémy a présenté l'énoncé suivant :
"Gilles TOURREAU" a écrit dans le message de news:
Bonjour,
arbreid() est une fonction qui permet uniquement de gérer les doublons au niveau des feuilles. Cette fonction s'utilise comme pour indicer les tableaux. Je pense que tu n'as pas à gerer des noeuds doubles dans ton tree-view et que tu fais fausse route...
Ok,
En considérant que :
SousNiveau1 est une chaine = "Niveau1" + TAB + "SousNiveau1" SousSousNiveau1 est une chaine = "SousSousNiveau2" IdentifiantDeSousSousNiveau1 = 1664 //Identifiant dans la base de données par exemple...
Oui, mais dans certains cas, je ne connais pas le : niveau+tab+niveau+tab... pour arriver la ou je veux...
Bon, pas evident et pas clair. Dans ma base de données, j'ai l'identifiant du niveau "pere" ou raccrocher le "fils", mais je ne sais pas a quel niveau peut se trouver le pere... ni si c'est a la racine, ni a un niveau 1 ou un sous niveau n...
Est-ce plus clair ? ;o)
Merchi rémy
Pour remplir une telle table dans un treeview il faut partir du sommet de l'arbre (celui qui n'a pas de père)
admettons la structure de la table suivante :
IdNoeud //L'identifiant du Noeud IdParent //L'identifiant du Parent Blabla //Le blabla attaché à ce noeud
Pour obtenir l'identifiant du noeud qui est sélectionné !!
Cordialement
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Rémy a présenté l'énoncé suivant :
"Gilles TOURREAU" <gilles.tourreau@pos.fr> a écrit dans le message de news:
mn.445c7d6894672059.52180@pos.fr...
Bonjour,
arbreid() est une fonction qui permet uniquement de gérer les doublons au
niveau des feuilles.
Cette fonction s'utilise comme pour indicer les tableaux.
Je pense que tu n'as pas à gerer des noeuds doubles dans ton tree-view et
que tu fais fausse route...
Ok,
En considérant que :
SousNiveau1 est une chaine = "Niveau1" + TAB + "SousNiveau1"
SousSousNiveau1 est une chaine = "SousSousNiveau2"
IdentifiantDeSousSousNiveau1 = 1664 //Identifiant dans la base de données
par exemple...
Oui, mais dans certains cas, je ne connais pas le : niveau+tab+niveau+tab...
pour arriver la ou je veux...
Bon, pas evident et pas clair. Dans ma base de données, j'ai l'identifiant du
niveau "pere" ou raccrocher le "fils", mais je ne sais pas a quel niveau peut
se trouver le pere... ni si c'est a la racine, ni a un niveau 1 ou un sous
niveau n...
Est-ce plus clair ? ;o)
Merchi
rémy
Pour remplir une telle table dans un treeview il faut partir du sommet
de l'arbre (celui qui n'a pas de père)
admettons la structure de la table suivante :
IdNoeud //L'identifiant du Noeud
IdParent //L'identifiant du Parent
Blabla //Le blabla attaché à ce noeud
"Gilles TOURREAU" a écrit dans le message de news:
Bonjour,
arbreid() est une fonction qui permet uniquement de gérer les doublons au niveau des feuilles. Cette fonction s'utilise comme pour indicer les tableaux. Je pense que tu n'as pas à gerer des noeuds doubles dans ton tree-view et que tu fais fausse route...
Ok,
En considérant que :
SousNiveau1 est une chaine = "Niveau1" + TAB + "SousNiveau1" SousSousNiveau1 est une chaine = "SousSousNiveau2" IdentifiantDeSousSousNiveau1 = 1664 //Identifiant dans la base de données par exemple...
Oui, mais dans certains cas, je ne connais pas le : niveau+tab+niveau+tab... pour arriver la ou je veux...
Bon, pas evident et pas clair. Dans ma base de données, j'ai l'identifiant du niveau "pere" ou raccrocher le "fils", mais je ne sais pas a quel niveau peut se trouver le pere... ni si c'est a la racine, ni a un niveau 1 ou un sous niveau n...
Est-ce plus clair ? ;o)
Merchi rémy
Pour remplir une telle table dans un treeview il faut partir du sommet de l'arbre (celui qui n'a pas de père)
admettons la structure de la table suivante :
IdNoeud //L'identifiant du Noeud IdParent //L'identifiant du Parent Blabla //Le blabla attaché à ce noeud
Pour obtenir l'identifiant du noeud qui est sélectionné !!
Cordialement
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Rémy
"Gilles TOURREAU" a écrit dans le message de news:
Bonjour Gilles,
Merci pour ton code et surtout pour te pencher sur mon problème ;o)
Mais juste une question : donc, il est impossible, à partir de l'ID unique d'un element dans un treeview de récupérer son chemin complet ? pas très pratique quand même...
Merci ! rémy
"Gilles TOURREAU" <gilles.tourreau@pos.fr> a écrit dans le message de news:
mn.44b97d681bd1da52.52180@pos.fr...
Bonjour Gilles,
Merci pour ton code et surtout pour te pencher sur mon problème ;o)
Mais juste une question : donc, il est impossible, à partir de l'ID unique
d'un element dans un treeview de récupérer son chemin complet ? pas très
pratique quand même...
"Gilles TOURREAU" a écrit dans le message de news:
Bonjour Gilles,
Merci pour ton code et surtout pour te pencher sur mon problème ;o)
Mais juste une question : donc, il est impossible, à partir de l'ID unique d'un element dans un treeview de récupérer son chemin complet ? pas très pratique quand même...
Merci ! rémy
Gilles TOURREAU
Rémy a exprimé avec précision :
"Gilles TOURREAU" a écrit dans le message de news:
Bonjour Gilles,
Merci pour ton code et surtout pour te pencher sur mon problème ;o)
Mais juste une question : donc, il est impossible, à partir de l'ID unique d'un element dans un treeview de récupérer son chemin complet ? pas très pratique quand même...
Merci ! rémy
J'ai fais une demande au près de PC-Soft pour avoir une telle fonction depuis la version 7.5... Elle sera sans doute intégré dans la version 15 de Windev !
En attendant l'idéal pour obtenir un chemin à partir d'un identifiant et de le rechercher :
2 méthodes : - Soit utiliser ArbreListeFils(), c'est simple à réaliser mais pas très propre comme technique car cela nécessite une variable globale ou alors une technique de chaine avec les pointeurs... - Soit parcourir ton arbre en profondeur jusqu'à que tu trouves l'identifiant correspondant (complexe pour un débutant car fonction récursif !)
Je te donne vite fait un code à la volé pour la 2ème méthode :
MonFils = ArbreRécupèreFils(Arbre, CheminDépart, aPremier) TANTQUE MonFils <> "" ALORS SI ArbreRécupèreIdentifiant(Arbre, CheminDépart + TAB + MonFils) = Identifiant ALORS RENVOYER CheminDépart + TAB + MonFils) SINON Temp = ArbreRechercheIdentifiant(Arbre, CheminDépart + TAB + MonFils, Identifiant) SI Temp <> "" ALORS RENVOYER Temp SINON MonFils = ArbreRécupèreFils(Arbre, CheminDépart, aSuivant) FIN FIN FIN
RENVOYER ""
Suffit d'appeler la fonctionne comme ceci :
SI ArbreChercheIdentifiant(MonTRV, "Sommet", 1664) <> "" ALORS Info("J'ai trouvéééééééééééééé !") FIN
Cordialement
-- Gilles TOURREAU Responsable informatique
Société P.O.S Spécialiste en motoculture depuis + de 30 ans ! http://www.pos.fr
Rémy a exprimé avec précision :
"Gilles TOURREAU" <gilles.tourreau@pos.fr> a écrit dans le message de news:
mn.44b97d681bd1da52.52180@pos.fr...
Bonjour Gilles,
Merci pour ton code et surtout pour te pencher sur mon problème ;o)
Mais juste une question : donc, il est impossible, à partir de l'ID unique
d'un element dans un treeview de récupérer son chemin complet ? pas très
pratique quand même...
Merci !
rémy
J'ai fais une demande au près de PC-Soft pour avoir une telle fonction
depuis la version 7.5... Elle sera sans doute intégré dans la version
15 de Windev !
En attendant l'idéal pour obtenir un chemin à partir d'un identifiant
et de le rechercher :
2 méthodes :
- Soit utiliser ArbreListeFils(), c'est simple à réaliser mais pas très
propre comme technique car cela nécessite une variable globale ou alors
une technique de chaine avec les pointeurs...
- Soit parcourir ton arbre en profondeur jusqu'à que tu trouves
l'identifiant correspondant (complexe pour un débutant car fonction
récursif !)
Je te donne vite fait un code à la volé pour la 2ème méthode :
"Gilles TOURREAU" a écrit dans le message de news:
Bonjour Gilles,
Merci pour ton code et surtout pour te pencher sur mon problème ;o)
Mais juste une question : donc, il est impossible, à partir de l'ID unique d'un element dans un treeview de récupérer son chemin complet ? pas très pratique quand même...
Merci ! rémy
J'ai fais une demande au près de PC-Soft pour avoir une telle fonction depuis la version 7.5... Elle sera sans doute intégré dans la version 15 de Windev !
En attendant l'idéal pour obtenir un chemin à partir d'un identifiant et de le rechercher :
2 méthodes : - Soit utiliser ArbreListeFils(), c'est simple à réaliser mais pas très propre comme technique car cela nécessite une variable globale ou alors une technique de chaine avec les pointeurs... - Soit parcourir ton arbre en profondeur jusqu'à que tu trouves l'identifiant correspondant (complexe pour un débutant car fonction récursif !)
Je te donne vite fait un code à la volé pour la 2ème méthode :