PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → combo et valeur mémorisée
combo et valeur mémorisée
Iniciado por Fany, 05,feb. 2016 12:11 - 7 respuestas
Miembro registrado
365 mensajes
Publicado el 05,febrero 2016 - 12:11
Bonjour à tous,

Pourriez vous me donner un petit coup de main s'il vous plait ? :)

Voilà, je bute sur un problème....
Pour simplifier, j'ai un champ combo que je rempli par programmation : pour tous les enregistrements d'un fichier donné, j'ajoute dans ma combo le libellé + d'ID de l'enregistrement, avec le code suivant :

ListeAjoute(COMBO_TypeCollageG,COLLAGE.Collage+gLien(COLLAGE.IDCOLLAGE))

Jusque là ok.

Ensuite, ça coince...
Je voudrais simplement rechercher dans cette combo la valeur d'un ID, pour retrouver l'indice de la combo correspondant, pour pouvoir afficher la valeur "Collage.collage" dans la valeur affichée de la combo.

Je ne sais pas si je suis bien claire.

Exemple :

Ligne1Combo : Collage simple, ValeurMemorisée --> IDCollage = 2
Ligne2Combo : Collage double, ValeurMemorisée --> IDCollage = 9
Ligne3Combo : Collage triple, ValeurMemorisée --> IDCollage = 1

si je veux afficher dans ma combo le texte de IDCollage 1, comment dois-je faire ?
Si je fais
Combo_TypeCollageG = 1 --> j'affiche "Collage simple", mais c'est pas ce que je veux, je voudrais voir la combo se positionner sur la ligne 3 avec "Collage triple" affiché.

Une idée ?

J'ai vraiment cherché, en vain.

D'avance merci pour votre aide !!!

Fany
Miembro registrado
43 mensajes
Publicado el 05,febrero 2016 - 12:41
Bonjour Fany,

Jette un petit coup d'oeil à la fonction Listecherche pour récupérer l'indice de ta ligne, ensuite tu pourras utiliser ton Combo_TypeCollageG = indice

Bon courage.
Miembro registrado
365 mensajes
Publicado el 05,febrero 2016 - 14:00
Merci pour la réponse.
J'avais déjà cherché de ce coté là, mais ça n'a pas fonctionné. La recherche est ciblée sur la valeur affichée de la combo.
Comment lui dire de chercher sur la valeur mémorisée ?
Miembro registrado
365 mensajes
Publicado el 05,febrero 2016 - 14:09
je pourrai effectivement rechercher sur la valeur affichée de la combo, mais en cas de doublons... C'est pour ça que la recherche par l'identifiant. Je trouve ça plus rigoureux.
Miembro registrado
348 mensajes
Publicado el 05,febrero 2016 - 14:29
Bonjour

En partant sur l'alimentation suivante :
ListeAjoute(COMBO_TypeCollageG, gLien(2) + "Ligne 1 Valeur 2")
ListeAjoute(COMBO_TypeCollageG, gLien(9) + "Ligne 2 Valeur 9")
ListeAjoute(COMBO_TypeCollageG, gLien(1) + "Ligne 3 Valeur 1")

Si je fais :
COMBO_TypeCollageG = 1

J'ai bien la ligne 3 qui est sélectionnée

Par contre si je fais ensuite :
Info(COMBO_TypeCollageG)

La valeur affichée est 3, soit l"indice de la ligne
Pour que la valeur retournée soit 1 il faut cocher "Retourne la valeur spécifiée avec la fonction gLien" ou utiliser la Propriété ..ValeurMémorisée

--
Pascal H. http://phapps.e-monsite.com
Publicado el 05,febrero 2016 - 14:47
Fany avait soumis l'idée :
Bonjour à tous,

Pourriez vous me donner un petit coup de main s'il vous plait ? :)

Voilà, je bute sur un problème.... Pour simplifier, j'ai un champ combo que
je rempli par programmation : pour tous les enregistrements d'un fichier
donné, j'ajoute dans ma combo le libellé + d'ID de l'enregistrement, avec le
code suivant :

ListeAjoute(COMBO_TypeCollageG,COLLAGE.Collage+gLien(COLLAGE.IDCOLLAGE))

Jusque là ok.

Ensuite, ça coince... Je voudrais simplement rechercher dans cette combo la
valeur d'un ID, pour retrouver l'indice de la combo correspondant, pour
pouvoir afficher la valeur "Collage.collage" dans la valeur affichée de la
combo.

Je ne sais pas si je suis bien claire.

Exemple :

Ligne1Combo : Collage simple, ValeurMemorisée --> IDCollage = 2
Ligne2Combo : Collage double, ValeurMemorisée --> IDCollage = 9
Ligne3Combo : Collage triple, ValeurMemorisée --> IDCollage = 1

si je veux afficher dans ma combo le texte de IDCollage 1, comment dois-je
faire ? Si je fais Combo_TypeCollageG = 1 --> j'affiche "Collage simple",
mais c'est pas ce que je veux, je voudrais voir la combo se positionner sur
la ligne 3 avec "Collage triple" affiché.

Une idée ?

J'ai vraiment cherché, en vain.

D'avance merci pour votre aide !!!

Fany


il faut utiliser les glien de cette façon

glienactive(nom_cbo,vrai)
listeselectplus(nom_cbo,listecherche(nom_cbo,1))
glienactive(nom_cbo,faux)

une fois le choix fait par l'utilisateur on peut récupérer la valeur
par ..valeurmémoriser si on veut l'id
par ..valeuraffichée si on veut le texte

--
Cordialement JeAn-PhI
Miembro registrado
365 mensajes
Publicado el 05,febrero 2016 - 15:07
Merci beaucoup pour votre aide !!! ça marche nickel :merci:
Effectivement, j'étais passé à coté de l'option "Retourne la valeur spécifiée avec la fonction gLien"
Et maintenant ça fonctionne.

Encore merci d'avoir pris de votre temps pour me répondre, et surtout pour les explications que vous avez fournis avec vos réponses. C'est super de tomber sur des gens comme vous.

Bon weekend à vous !
Miembro registrado
47 mensajes
Publicado el 13,mayo 2020 - 15:52
je complète le sujet.
si je fait
Indice_resultat est un entier=ListeCherche(COMBO_CLient,gn_N_Code_CLI)

la recherche se fait sur la valeur affichée et non la valeur mémorisée. donc la ligne au dessus retourne -1

Si je veux positionner un combo sur la valeur mémorisée il suffit d'écrire
COMBO_CLient=gn_N_Code_CLI


--
Jean-Marc NAHON (Gestform)