PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → Remplissage d'une combo
Remplissage d'une combo
Débuté par guest, 06 fév. 2006 14:26 - 8 réponses
Posté le 06 février 2006 - 14:26
Abandonnant l'analyse HF du fait de l'utilisation de PostGreSQl, j'ai un peu de mal à remplir mes combos via le code.

J'ai besoin de mettre la clé de ma table en tant qu'indice et le libellé dans la combo.

J'ai bien essayé d'utilisé le glien mais :

1) comment savoir si ma combo est correctement remplie ?
2) comment sélectionner la clé 6 sur ma combo

Voici le code qui ne marche pas (eventuellement le point 1 mais je suis pas sur


>>>>
gApplication = Val( INILit ("DEFAUT", "Appli", "", fRepExe() + "\Toto.ini"))

gRequêteSQL = "SELECT app_id, app_libelle_application, app_chemin_et_nom_prefixe FROM applications"
SI SQLExec(gRequêteSQL, "REQ_APPS") ALORS
TANTQUE SQLAvance ("REQ_APPS") = 0
ResAjout est un booléen = ListeAjoute (ComboApplication, SQLLitCol("REQ_APPS",2)+ gLien (SQLLitCol("REQ_APPS",1)))
SI gApplication = SQLLitCol("REQ_APPS",1) ALORS
gApp_Chemin_et_Nom_Prefixe = SQLLitCol("REQ_APPS",3)
FIN
FIN
SINON
SQLInfoGene()
Erreur("REQ_APPS, Code erreur : " + SQL.Erreur +RC+ SQL.MesErreur)
FIN
ComboApplication=gApplication // positionne sur l'appli par défaut

<<<<
Posté le 06 février 2006 - 14:55
Bonjour,
Tu devrais utiliser les combo de type table, celà te permet de mettre plusieurs colonnes dans la combo, ce qui est plus simple à gérer qu'avec la fonction glien.
Dans ton exemple, tu peux mettre une colonne AppId et une Applibelle. Tu indiques que la colonne renvoyée est la colonne AppId.
Le remplissage de la combo devient alors un simple SqlTable(), et pour sélectionner un identifiant particulier tu paux alors utiliser TableCherche et TableSelectPlus.

Frédéric.
Posté le 06 février 2006 - 16:11
Excellent. Je vais tester.

Merci

Gaston
Posté le 07 février 2006 - 12:08
Bonjour,

J'ai bien créé une combo de type Table avec 2 colonnes.
Mais n'ayant pas préciser de Fichier parcouru, et pour cause puisque mon fichier, j'y accède en Odbc.
Je n'arrive pas à préciser la rubrique mémorisée.

Gaston
Posté le 07 février 2006 - 12:20
Ah ok, pas besoin de rubrique mémorisée, ca marche au poil.

Merci, ca simplifie la programmation

Gaston
Posté le 07 février 2006 - 12:32
Pas besoin de passer par la propriété "colonne mémorisée", tu peux lire directement dans la "table" associée à la combo:
MaCombo.IdAppli[MaCombo] te renvoie la valeur sélectionnée.

Frédéric.
Posté le 07 février 2006 - 12:52
Encore un petit souci.

Lorsque je veux, en programmation, me positionner sur un n° appli par défaut, je fais :

ListeSelectPlus(ComboApplication,resultat)

ou resultat est calculé ainsi :
resultat est un entier = TableCherche (cAppId, gApplication, Vrai , 1)


cAppId est ma premiere colonne de la combo
gApplication vaut 3
resultat ramene 1

Tout ca est correct

Mais a l'affichage , je ne vois pas s'afficher le libellé.
Par contre, si je déroule, je vois mon libellé sélectionné (en gris foncé)

J'aimerais avoir mon libellé sans avoir à dérouler.

Gaston
Posté le 07 février 2006 - 13:01
Pour confirmer ma derniere question a propos de l'element sélectionner.
Si je mets :

Erreur (ComboApplication.cAppId[ComboApplication])

il ramene bien 3 donc tout est bon sauf l'element qui ne s'affiche pas sur la combo à l"etat fermé.

Et si j'essaie de cliquer sur mon libellé apparaissant dans ma combo déroulée, il ne le ramene pas au dessus.

gaston
Posté le 07 février 2006 - 16:03
Probleme résolu, j'avais oublié de remettre la rubrique affiché dans l'élément Combo.

Merci beaucoup