PC SOFT

GRUPOS DE DISCUSSÃO PROFISSIONAL
WINDEVWEBDEV e WINDEV Mobile

Inicio → WEBDEV 2024 → tree view + requete
tree view + requete
Iniciado por david, out., 04 2004 7:00 PM - 8 respostas
Publicado em outubro, 04 2004 - 7:00 PM
Bonjour à tous, j'en appelle à votre aide.
Je souhaite executer une requete avec comme paramètre une valeur se trouvant dans une branche d'un tree view.
Le problème c'est que je n'arrive pas à récupérer cette valeur (chaine de caractères).
Je suis ouvert à toutes vos propositons

D'avance merci
Publicado em outubro, 04 2004 - 7:15 PM
david a émis l'idée suivante :

Bonjour à tous, j'en appelle à votre aide.
Je souhaite executer une requete avec comme paramètre une valeur se trouvant
dans une branche d'un tree view. Le problème c'est que je n'arrive pas à
récupérer cette valeur (chaine de caractères). Je suis ouvert à toutes vos
propositons

D'avance merci


quand tu fais un arbre ajoute, tu spécifies un id qui peut être une clé
fichier, ou une zone stockée dans une zone mémoire
ArbreAjoute(tvw,Branche,icoOuv,icoOuv,wTVD_ID)
dans cet ex, wTVD_ID est l'identifiant primaire d'une table
Avec l'instruction qui suit, je récupère cet identifiant
identArbre=ArbreRécupèreIdentifiant(tvw,ArbreSelect(tvw))
Libre à moi ensuite de lire un fichier ou une table

--
Eric
Webmaster des Wtablettes
www.wtablettes.net
Publicado em outubro, 04 2004 - 7:27 PM
Salut,

Pour récupérer la valeur du treeview, tu as 2 solutions:

La première est d'ajouter une ID au momment de l'exécution de la
fonction ArbreAjoute() puis de récupérer cette valeur grâce à la
fonction ArbreRécupèreIdentifiant(). C'est la solution la plus propre.

2ème solution, tu te débrouilles par le biais d'un simple ArbreSelect()
puis tu traites la chaine de caractères reçue pour extraire la valeur
qui t'intéresse (la fonction ExtraitChaine() peut être bien utile dans
ce cas là...)

Bon dev'

Guillaume



Il se trouve que david a formulé :

Bonjour à tous, j'en appelle à votre aide.
Je souhaite executer une requete avec comme paramètre une valeur se trouvant
dans une branche d'un tree view. Le problème c'est que je n'arrive pas à
récupérer cette valeur (chaine de caractères). Je suis ouvert à toutes vos
propositons

D'avance merci


--
Guillaume
Publicado em outubro, 05 2004 - 11:24 AM
merci pour votre aide, mais j'ai toujours un pb (petit détail qui a son importance : je débute sous webdev!!!). Je n'obtient pas mon id :(

Voila mon code d'initialisation du treeview :

MONARBRE est une chaîne = "ARBRESERVICES"

ArbreStyleGlobal(ModeXP)
ArbreCrée(MONARBRE,PAGEWW..Nom,BTPAGEAFF..Nom)
ArbreAjoute(MONARBRE,"Services")

HLitPremier(Services_esic,IDServices_esic)
TANTQUE PAS HEnDehors()
HLitPremier(Etat_demande,IDEtat_demande)
TANTQUE PAS HEnDehors()
ArbreAjoute(MONARBRE, "Services"+TAB+Services_esic.NOM+TAB+Etat_demande.NOM,Image1,Image2,Services_esic.IDServices_esic)
ArbreDéfinitAction(MONARBRE, "Services"+TAB+Services_esic.NOM,Bouton_requete_service..Nom,actionBouton)
HLitSuivant(Etat_demande,IDEtat_demande)
FIN
HLitSuivant(Services_esic,IDServices_esic)
FIN

ArbreDéroule(MONARBRE,"Services")
ArbreAffiche(MONARBRE,CHPHTML..Nom)




Voila le code du bouton "Bouton_requete_service" :

identArbre est une chaîne // recherche

identArbre=ArbreRécupèreIdentifiant("monarbre",ArbreSelect("monarbre"))
Info(identArbre)

Quand je clic sur un service de mon travail, j'aimerais récupérer son identifiant pour un traitement futur.

Encore merci pour votre aide
Publicado em outubro, 05 2004 - 11:41 AM
Salut,

Sans vouloir dire de bétise, il y a une petite coquille dans ton
code...

david avait écrit le 05/10/2004 :
merci pour votre aide, mais j'ai toujours un pb (petit détail qui a son
importance : je débute sous webdev!!!). Je n'obtient pas mon id :(

Voila mon code d'initialisation du treeview :

MONARBRE est une chaîne = "ARBRESERVICES"

ArbreStyleGlobal(ModeXP)
ArbreCrée(MONARBRE,PAGEWW..Nom,BTPAGEAFF..Nom)
ArbreAjoute(MONARBRE,"Services")


Pour parenthèse la ligne précédente n'est pas forcément utile car le
noeud "service" est créé dans les autres ArbreAjoute() que tu
exécutes...


HLitPremier(Services_esic,IDServices_esic)
TANTQUE PAS HEnDehors()
HLitPremier(Etat_demande,IDEtat_demande)
TANTQUE PAS HEnDehors()
ArbreAjoute(MONARBRE,
"Services"+TAB+Services_esic.NOM+TAB+Etat_demande.NOM,Image1,Image2,Services_esic.IDServices_esic)


Pour moi, ton problème se situe là: tu ne définit pas une action au
même niveau que le noeud que tu viens de créer. (sauf si c'est ta
volonté... tu as donné une ID au noeud
"Services"+TAB+Services_esic.NOM+TAB+Etat_demande.NOM qui n'est pas le
même que celui auquel tu ajoutes une action ligne suivante:
"Services"+TAB+Services_esic.NOM .

ArbreDéfinitAction(MONARBRE,
"Services"+TAB+Services_esic.NOM,Bouton_requete_service..Nom,actionBouton)


Donc, si je ne me trompe pas la dessus, tu devrais retomber sur tes
pattes en veillant bien à ce que le noeud pour lequel tu définis une
action est bien le même noeud que celui à qui tu as attribué une ID.

HLitSuivant(Etat_demande,IDEtat_demande)
FIN
HLitSuivant(Services_esic,IDServices_esic)
FIN

ArbreDéroule(MONARBRE,"Services")
ArbreAffiche(MONARBRE,CHPHTML..Nom)




Voila le code du bouton "Bouton_requete_service" :

identArbre est une chaîne // recherche

identArbre=ArbreRécupèreIdentifiant("monarbre",ArbreSelect("monarbre"))
Info(identArbre)

Quand je clic sur un service de mon travail, j'aimerais récupérer son
identifiant pour un traitement futur.

Encore merci pour votre aide


Tiens nous au courant

--
Guillaume
Publicado em outubro, 05 2004 - 11:41 AM
david a exprimé avec précision :
merci pour votre aide, mais j'ai toujours un pb (petit détail qui a son
importance : je débute sous webdev!!!). Je n'obtient pas mon id :(

Voila mon code d'initialisation du treeview :

MONARBRE est une chaîne = "ARBRESERVICES"

ArbreStyleGlobal(ModeXP)
ArbreCrée(MONARBRE,PAGEWW..Nom,BTPAGEAFF..Nom)
ArbreAjoute(MONARBRE,"Services")



HLitPremier(Services_esic,IDServices_esic)
TANTQUE PAS HEnDehors()
HLitPremier(Etat_demande,IDEtat_demande)
TANTQUE PAS HEnDehors()
ArbreAjoute(MONARBRE,
"Services"+TAB+Services_esic.NOM+TAB+Etat_demande.NOM,Image1,Image2,Services_esic.IDServices_esic)
ArbreDéfinitAction(MONARBRE,
"Services"+TAB+Services_esic.NOM,Bouton_requete_service..Nom,actionBouton)
HLitSuivant(Etat_demande,IDEtat_demande) FIN
HLitSuivant(Services_esic,IDServices_esic)


j'suis pas spécialiste de HF (ne travaillant qu'en sql) mais là il me
semble que tu auras plusieurs id de meme valeur ??
Essaie plutôt de composer une clé :
Services_esic.IDServices_esic+"/"+IDEtat_demande
Sinon cela me semble correct.
Il faut que tu débuggues.

FIN

ArbreDéroule(MONARBRE,"Services")
ArbreAffiche(MONARBRE,CHPHTML..Nom)




Voila le code du bouton "Bouton_requete_service" :

identArbre est une chaîne // recherche

identArbre=ArbreRécupèreIdentifiant("monarbre",ArbreSelect("monarbre"))

pour récupérer avec mon ex cité plus haut ...
monIdServ=extraitchaine(identarbre,1,"/")
monIdEtat=extraitchaine(identarbre,2,"/")

Info(identArbre)

Quand je clic sur un service de mon travail, j'aimerais récupérer son
identifiant pour un traitement futur.

Encore merci pour votre aide


--
Eric
Webmaster des Wtablettes
www.wtablettes.net
Publicado em outubro, 05 2004 - 12:16 PM
merci à vous deux mais là je craque !!!
J'ai essayé vos deux méthodes mais rien n'y fait je ne récupère aucun identifiant.
Pourtant lors de la création de l'arbre, il est bien ajouté !

Sinon Eric à titre d'info ce que tu as sur ton site c'est exactement ce que je cherche à faire.

Help ;=))
Publicado em outubro, 05 2004 - 12:59 PM
david a utilisé son clavier pour écrire :
merci à vous deux mais là je craque !!!
J'ai essayé vos deux méthodes mais rien n'y fait je ne récupère aucun
identifiant. Pourtant lors de la création de l'arbre, il est bien ajouté !

Sinon Eric à titre d'info ce que tu as sur ton site c'est exactement ce que
je cherche à faire.


je te donnerais bien l'algo, mais cela risque de t'embrouiller
gravement car :
- c'est écrit pour du mysql et en utilisant des classes
- cela gère les notions de pere/fils.

Bref je veux bien te l'envoyer mais c'est pas l'exemple simple.

As tu une bonne vs du composant ?
A titre d'info, il y en a un (légèrement amélioré) qui fn bien sur les
wtablettes.

Help ;=))


--
Eric
Webmaster des Wtablettes
www.wtablettes.net
Publicado em outubro, 05 2004 - 1:17 PM
Essaye peut-être de créer un petit projet de test ou tu crée un
Treeview simple dans lequel tu mets actions et identifiants...
Ca t'aidera suremment à comprendre ton erreur et retomber sur tes
pattes..
pour ne pas trop t'embêter, tu peux même (si tu as windev) faire un
copier/coller du code exemple dans l'aide sur le treeview de WinDev et
le modifier juste pour les fonctions arbreaffiche() et arbrecrée()...

Si tu n'y arrive pas encore après ça, n'hésites pas à nous redécrire un
peu ton problème.

Dernière parenthèse, ton ID est un nombre? si c'est le cas, il faut
bien penser que le ArbreRécupèreIdentifiant() te renvoie une chaine de
caractères ! Il te faut donc écrire :

Resultat =
val(ArbreRécupèreIdentifiant("MonArbre",ArbreSelect("MonArbre"))

Autre suggestion: Si par hasard ton identifiant est une chaine, vérifie
bien qu'il n'y a pas de caractère ' dedans...
Si c'est le cas, le ArbreAffiche s'emmèle les pinceaux (vu que c'est un
caractère très utilisé en JS) et cela ne pourra fonctionner. Il faut
alors prévoir de remplacer ce caractère avant le ArbreAjoute() au moyen
d'un simple Remplace()

Bon courage

david a émis l'idée suivante :
merci à vous deux mais là je craque !!!
J'ai essayé vos deux méthodes mais rien n'y fait je ne récupère aucun
identifiant. Pourtant lors de la création de l'arbre, il est bien ajouté !

Sinon Eric à titre d'info ce que tu as sur ton site c'est exactement ce que
je cherche à faire.

Help ;=))


--
Guillaume