OVH Cloud OVH Cloud

[WD75] Problème de Treeview

3 réponses
Avatar
Roumegou Eric
Bonjour,

Je rencontre un petit pb avec l'utilisation des treeviews.

Sur le ArbreAjoute on donne le nom du tvw, puis l'élément composé des
noms des branches entrecoupés par des TAB

Res = ArbreAjoute(RecetteTV, "Recettes" + TAB + "Desserts" + TAB +
"Glaces",...
aDéfaut, aDéfaut, IdFeuille)

Le pb est que quand on a deux fois une feuille portant le meme nom,
cela ne peut pas fonctionner et seul le dernier est pris en compte sous
WD alors que sous Webdev 7 une feuille vide est créée.

Et pourtant quoi de plus normal qu'avoir 2 feuilles portant le meme nom
?? d'autant qu'il y a l'identifiant pour les distinguer.

Bref, j'ai découvert que j'avais des applis qui merdaient à cause de
cela. Et comme je ne peux pas afficher un identifiant en plus car cela
ne voudrait rien dire, je suis un peu coincé. L'idéal serait une info
différenciante invisible.

Avez vous déjà tourné le pb ?

--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)

3 réponses

Avatar
Pascal R.
Bonjour

Dans ArbreAjoute le dernier paramètre (Mode d'Ajout) qui suit, dans ton
exemple, idFeuille, peut-être aAccepteDoublon, aDernier, aPremier,
aTriAlpha.

Dans ton cas tu peux avoir
> Res = ArbreAjoute(RecetteTV, "Recettes" + TAB + "Desserts" + TAB +
> "Glaces",...
> aDéfaut, aDéfaut, IdFeuille, aAccepteDoublon)

Bon courage

Pascal

Roumegou Eric a écrit :
Bonjour,

Je rencontre un petit pb avec l'utilisation des treeviews.

Sur le ArbreAjoute on donne le nom du tvw, puis l'élément composé des
noms des branches entrecoupés par des TAB

Res = ArbreAjoute(RecetteTV, "Recettes" + TAB + "Desserts" + TAB +
"Glaces",...
aDéfaut, aDéfaut, IdFeuille)

Le pb est que quand on a deux fois une feuille portant le meme nom, cela
ne peut pas fonctionner et seul le dernier est pris en compte sous WD
alors que sous Webdev 7 une feuille vide est créée.

Et pourtant quoi de plus normal qu'avoir 2 feuilles portant le meme nom
?? d'autant qu'il y a l'identifiant pour les distinguer.

Bref, j'ai découvert que j'avais des applis qui merdaient à cause de
cela. Et comme je ne peux pas afficher un identifiant en plus car cela
ne voudrait rien dire, je suis un peu coincé. L'idéal serait une info
différenciante invisible.

Avez vous déjà tourné le pb ?



Avatar
e-pluriel
Voici le problème envoyé à PCSOFT :
Un treeview contient plusieurs feuilles qui ont
| le même libellé mais des identifiants différents.
| La fonction arbreAjoute contient les paramètres :
| aDernier+aAccepteDoublon
| Lors de la sélection d'une ligne de arbre, c'est
| toujours le même identifiant renvoyé pour les feuilles de même
libéllé

Voici leur réponse :
Nous avons immédiatement enregistré et transmis vos éléments à notre
équipe Développement et à notre équipe Qualité. L'incident a été
enregistré avec la référence 31 278.
Dans l'immédiat il est nécessaire de différencier les feuilles de même
niveau. Vous pouvez par exemple rajouter des caractères espace
insécable en fin de libellé ( Caract(160) ).
Voici un exemple en modifiant votre code d'initialisation de l'arbre :
POUR lIncrément=1 A 10
ArbreSelectPlus(Arbre,lPère)
ArbreAjoute(Arbre,ArbreSelect(Arbre)+TAB+"LIBELLE
identique"+Répète(Caract(160),lIncrément), aDéfaut,aDéfaut,
lIncrément,aDernier+aAccepteDoublon,"Feuille n° : "+lIncrément)
ArbreDéroule(Arbre,ArbreSelect(Arbre)+TAB+"LIBELLE
identique"+Répète(Caract(160),lIncrément))
FIN

Bon courage.
Avatar
Roumegou Eric
Dans son message précédent, Alain DOMISE a écrit :
Voici le problème envoyé à PCSOFT :
Un treeview contient plusieurs feuilles qui ont
le même libellé mais des identifiants différents.
La fonction arbreAjoute contient les paramètres :
aDernier+aAccepteDoublon
Lors de la sélection d'une ligne de arbre, c'est
toujours le même identifiant renvoyé pour les feuilles de même


libéllé

Voici leur réponse :
Nous avons immédiatement enregistré et transmis vos éléments à notre
équipe Développement et à notre équipe Qualité. L'incident a été
enregistré avec la référence 31 278.
Dans l'immédiat il est nécessaire de différencier les feuilles de même
niveau. Vous pouvez par exemple rajouter des caractères espace
insécable en fin de libellé ( Caract(160) ).
Voici un exemple en modifiant votre code d'initialisation de l'arbre :
POUR lIncrément=1 A 10
ArbreSelectPlus(Arbre,lPère)
ArbreAjoute(Arbre,ArbreSelect(Arbre)+TAB+"LIBELLE
identique"+Répète(Caract(160),lIncrément), aDéfaut,aDéfaut,
lIncrément,aDernier+aAccepteDoublon,"Feuille n° : "+lIncrément)
ArbreDéroule(Arbre,ArbreSelect(Arbre)+TAB+"LIBELLE
identique"+Répète(Caract(160),lIncrément))
FIN

Bon courage.



Merci de cette réponse.
Comme quoi ce n'est pas complêtement déconnant d'avoir des feuilles de
meme nom; mais effectivement si cela pose pb pour la recup de
l'identifiant.

Avec Webdev 7 et le composant treeview, c'est pire car cela crée une
sous branche vide. Donc cela veut dire qu'il faut en tenir compte
lorsque l'on génère un arbre et tester l'unicité d'une branche pour au
besoin dériver le nom ... sinon gare aux dysfonctionnements.

--
Eric Roumégou
http://cerbermail.com/?TSoulBerPA
(cliquez sur le lien ci-dessus pour me contacter en privé)