PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → combo alimentée selon la valeur d'une autre combo
combo alimentée selon la valeur d'une autre combo
Débuté par cedric, 17 mai 2006 14:44 - 13 réponses
Posté le 17 mai 2006 - 14:44
Bonjour à tous!

J'ai 2 combo alimentées par des requetes dont 1 avec une requete paramétrée.
Ma premiere combo affiche le libéllé de mon client et je memorise sa reference (description/contenu).
Je souhaiterai que ma 2 eme combo affiche la liste de produit du client sélectionné dans ma premiere combo.

J'ai déclaré une variable globale dans ma fenetre qui reçoie la ref de mon client.
Cette variable globale porte le meme nom que le parametre de ma requete parametrée.
J'arrive bien a récupérer la ref avec :
ref_cli = COMBO_client..Valeur ( partie : Entrée combo_produit ),
mais la combo n'affiche rien.

Auriez vous une idée?

Merci d'avance!
Posté le 17 mai 2006 - 15:28
salut
ile ne faut pas utiliser COMBO_client..ValeurAffichée plutot?
Posté le 17 mai 2006 - 15:48
cela ne marche pas, ma 2 eme combo est vide!
Posté le 17 mai 2006 - 15:51
C'est bon j'ai trouvé!
Sur un "survol de souris", j'ai mis:

ListeAffiche(COMBO_produit, taDébut)
MaSource.ref_cli = COMBO_client..Valeur
Posté le 17 mai 2006 - 15:56
Bonjour,

Pourrais tu etre un peu plus precis stp.

Quelle combo n'affiche rien? Quelle combno a une requête paramétrée?
Quel est le code exécuté lors de la sélection de la ligne de la combo du client?

Philippe

cedric a écrit :
Bonjour à tous!

J'ai 2 combo alimentées par des requetes dont 1 avec une requete paramétrée.
Ma premiere combo affiche le libéllé de mon client et je memorise sa reference (description/contenu).
Je souhaiterai que ma 2 eme combo affiche la liste de produit du client sélectionné dans ma premiere combo.

J'ai déclaré une variable globale dans ma fenetre qui reçoie la ref de mon client.
Cette variable globale porte le meme nom que le parametre de ma requete parametrée.
J'arrive bien a récupérer la ref avec :
ref_cli = COMBO_client..Valeur ( partie : Entrée combo_produit ),
mais la combo n'affiche rien.

Auriez vous une idée?

Merci d'avance!

Posté le 17 mai 2006 - 16:40
Dans son message, cedric racontait :

C'est bon j'ai trouvé!
Sur un "survol de souris", j'ai mis:

ListeAffiche(COMBO_produit, taDébut)
MaSource.ref_cli = COMBO_client..Valeur


Le plus simple ici serait de mettre dans la 1ere combo (avec la liste des clients)
// selection d'une ligne
requete_combo2.ref_cli = moimeme // a condition d'avoir bien mis en valeur mémorisée de combo1 la ref_cli
hexecuterequete(requete_combo2)
listeaffiche(combo2, taDébut)

Comme ca la liste n'est réactualisée que si on change de client (ca évite de perdre la valeur selectionnée dans combo2 lors du survol)

bon dev
--
Lionel

mailto:lionel.breil*NOSPAM*@gmail.com
(retirer *NOSPAM* pour m'écrire)
Posté le 17 mai 2006 - 18:23
Le probleme c est que mes requetes sont des requetes intégrées. je ne peux y faire appel dans mon code!
A moins que je me trompe?!
Posté le 17 mai 2006 - 19:03
Dans son message, cedric racontait :

Le probleme c est que mes requetes sont des requetes intégrées. je ne peux y faire appel dans mon code!
A moins que je me trompe?!


Les requetes intégrées sont accessibles par NomCombo..FichierParcouru
Dans ce cas il faudra modifier un peu le code que je t'ai donné, qui deviendra :
//selection d'une ligne
hexecuterequete(combo2..fichierparcouru, combo1) // tjrs en ayant la valeur mémorisée de combo1 = ref_cli
listeaffiche(combo2, tadébut)


bon dev
--
Lionel

mailto:lionel.breil*NOSPAM*@gmail.com
(retirer *NOSPAM* pour m'écrire)
Posté le 17 mai 2006 - 19:03
Le fait que tes requètes soient intégrées ce n'est pas un problème : tu peux les exporter ! Et je pense que cela irait trés vite d'en créer des nouvelles et de "brancher" les combos dessus !

Je suis assez d'accord avec la sélection dans la première combo qui déclanche la seconde requète et rafraichit l'affichage de celle ci ! c'est beaucoup plus sur !

Bon dev
Posté le 18 mai 2006 - 11:44
Désolé, mais cela ne marche pas!
J'ai cette erreur:

Erreur à la ligne 2 du traitement Sélection d'une ligne de COMBO_client.
Vous avez appelé la fonction HExécuteRequête.
L'utilisation de l'option hRequêteSansCorrection n'est autorisée que si un nom de connexion est spécifié dans l'appel à la fonction. Vous devez modifier l'appel à la fonction en lui passant un nom de connexion valide.


Informations techniques

Projet : CODIF

Dump de l'erreur du module <WD100HF.DLL> <10.00Cpc>.

- Appel WL :
Traitement de <New_Doc.COMBO_client>, ligne <2>, thread <0>
Fonction <HExécuteRequête>, n° de syntaxe <0>

- Niveau : erreur fatale (EL_FATAL)

- Code erreur : 70180

- Code erreur WD55 : 180

- Pas de code d'erreur système

- Pas de message d'erreur système

- Que s'est-il passé ?
L'utilisation de l'option hRequêteSansCorrection n'est autorisée que si un nom de connexion est spécifié dans l'appel à la fonction. Vous devez modifier l'appel à la fonction en lui passant un nom de connexion valide.

- Infos de debug :
iehf065
Fonction (7,56)

- Infos attachées :
EIT_LOGICALTABLENAME : <New_Doc_1$Requête>
EIT_DATEHEURE : 18/05/2006 09:59:13
EIT_PILEWL :
Sélection d'une ligne de COMBO_client (New_Doc.COMBO_client), ligne 2

- Identifiant dans le .err : 72313
Posté le 18 mai 2006 - 12:50
Dans son message, cedric racontait :

Désolé, mais cela ne marche pas!
J'ai cette erreur:

Erreur à la ligne 2 du traitement Sélection d'une ligne de COMBO_client.
Vous avez appelé la fonction HExécuteRequête.
L'utilisation de l'option hRequêteSansCorrection n'est autorisée que si un nom de connexion est spécifié dans l'appel à la fonction. Vous devez modifier l'appel à la fonction en lui passant un nom de connexion valide.



Pourquoi utiliser ici hRequeteSansCorrection ? La requete étant valide et interprétable par le moteur HF il n'est pas necessaire de préciser ce
parametre.
Des fois les messages d'erreur servent a quelque chose, et il faut donc les lire avant de dire qu'une proposition ne marche pas. De plus, les
solutions proposées ici ne sont pas bible, mais juste de quoi avancer dans le développement : il faut les adapter.
Enfin (mais ceci n'est que mon point de vue) je n'aime pas qu'on me dise que le code que je propose ne marche pas quand l'erreur ne vient pas de mon
code mais d'une modification qui y a été apportée : mon code fonctionne dans des cas simples / standard, la modif ne marche pas !
--
Lionel

mailto:lionel.breil*NOSPAM*@gmail.com
(retirer *NOSPAM* pour m'écrire)
Posté le 18 mai 2006 - 13:31
Mais justement, je n'utilise pas hRequeteSansCorrection!
J'avais oublier de dire que je bosse avec sql server.

PS: Faut pas s'énerver, cela ne sert a rien!
Désolé que vous l'ayez mal pris (comme d'habitude!), ce n'était pas le but recherché.
Posté le 18 mai 2006 - 17:34
cedric a écrit :
Mais justement, je n'utilise pas hRequeteSansCorrection!
J'avais oublier de dire que je bosse avec sql server.

PS: Faut pas s'énerver, cela ne sert a rien!
Désolé que vous l'ayez mal pris (comme d'habitude!), ce n'était pas le but recherché.


Salut

Et Lionel faut etre cool des fois !!!


Sinon dans le code de selection de ligne de ta première combo tu peux mettre

REQ_COMBO2.PARAM = COMBO1
ListeAffiche(COMBO_2,taRéExecuteRequete)
Posté le 19 mai 2006 - 11:08
Dans son message, Christophe racontait :

cedric a écrit :
Mais justement, je n'utilise pas hRequeteSansCorrection!
J'avais oublier de dire que je bosse avec sql server.

PS: Faut pas s'énerver, cela ne sert a rien!
Désolé que vous l'ayez mal pris (comme d'habitude!), ce n'était pas le but recherché.


Salut

Et Lionel faut etre cool des fois !!!


Sinon dans le code de selection de ligne de ta première combo tu peux mettre

REQ_COMBO2.PARAM = COMBO1
ListeAffiche(COMBO_2,taRéExecuteRequete)



Oui oui bon je sais j'aurais pas du m'emporter, mais bon quand j'ai vu que l'erreur concernait hRequeteSansCorrection, j'ai un peu craqué car je n'ai
jamais mis ca dans mon code...
Apparement windev sait que tu passes par sql server, et il attend un nom de connection dans l'appel de hexecuterequete (il semblerait qu'il ajoute
tout seul le hrequetesanscorrection - mais peut etre ce parametre est-il défini directemlent dans la requete).
Sinon comme le dit christophe listeaffiche(XXX, taRéExecuteRequete) devrait marcher.

Bon dev
--
Lionel

mailto:lionel.breil*NOSPAM*@gmail.com
(retirer *NOSPAM* pour m'écrire)