PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WINDEV 2024 → combo dans un champ table [WD9]
combo dans un champ table [WD9]
Débuté par christophe, 19 avr. 2005 12:53 - 2 réponses
Posté le 19 avril 2005 - 12:53
Bonjour,
comment faire pour avoir des valeur différentes danss une combo insérée dans un champs table, en fonction de la ligne sélectionnée.

J'ai essayé ceci :
pour x = 1 a 5
tableselectplus (table1,x)
listeajoute(table1.combo1,x)
fin

mais j'ai les même valeur (1,2,3,4,5) dans les combos de chaque ligne du champ table

merci
Posté le 19 avril 2005 - 16:03
Pour une combo ds un champ table, il faut considerer que tu as une unique combo.
Si tu veux des valeurs differentes il faut vider et re-remplir ta combo qd l'utilisateur entre en saisie par exple.
Posté le 19 avril 2005 - 18:25
bonjour,
Attention si tu vide et "rerempli" ta combo tu vas avoir des supprises sur les autres lignes

un truc qui fonctionne testé et certifié !

Dans le code de déclaration de ta fenetre
Evenement("MaProcOuvreCombo","MaTable",514) // WM_LBUTTONUP

tu rempli ta combo avec toutes les valeur possibles
ListeAjoute("MaCombo",1)
...
ListeAjoute("MaCombo",8)

tu déclares ta combo en affichage seul et sans bouton

Dans les procédures locales de la fenêtre
ou dans un objet ( revoir l'appel dans evenement )

PROCEDURE MaProcOuvreCombo(Message,wParam,lParam)

Colonne est une chaine =
Colonne = TableInfoXY(MoiMeme..Nom,tiNomColonne,SourisPosX(),SourisPosY())

Si Colonne = "MaCombo" alors
MaListeValeur est une chaine

// à modifier selon les critères de remplissage de ta combo
SELON ConditionRemplissage
CAS "Condition1"
MaListeValeur = "1,3,5,7"
CAS "Condition2"
MaListeValeur = "2,4,6,8"
FIN
OuvrePopUpPosition(MaFenetrePopUp,poSelonChamp,"MaCombo")
FIN

tu créé une fenêtre popup (ici MaFenetrePopUp) dans laquelle tu mets un champ combo
(ici Combo1 )

PROCEDURE MaFenetrePopUp(ListeValeur)
ListeAjoute(Combo1,Remplace(ListeValeur,",",RC))
ListeSelectPlus(Combo1,ListeCherche(Combo1,MonChampPopUp))

Dans le code de sélection d'une ligne de la combo tu met
MonChampPopup=MoiMême..ValeurAffichée
Ferme(MaFenetrePopUp)

// tu peux revoir le code pour gérer gLien et le retour

tu peux aussi alimenter une combo cachée dans la fenêtre selon a peut près les mêmes principes, perso je préfère la fenêtre combo parce-qu'elle devient disponible partout dans le projet...

bon dev
patrice