PC SOFT

FOROS PROFESIONALES
WINDEVWEBDEV y WINDEV Mobile

Inicio → WINDEV 2025 → Remplir une combo liste à l'aide d'une liaison
Remplir une combo liste à l'aide d'une liaison
Iniciado por ROMULUS001, 22,jun. 2020 11:59 - 4 respuestas
Miembro registrado
352 mensajes
Publicado el 22,junio 2020 - 11:59
Bonjour.

J'ai une combo que je dois alimenter, celle ci contient un grand nombre d'enregistrements (> 1500).
J'ai fait un test où j'ai établie la liaison du champ combo sur la table concernée, le chargement a été instantané.

Du coup, je voulais établir cette liaison, non pas par IHM, mais par programmation, mais la liste reste vite, voici mon code :

COMBO_Clients..FichierParcouru = "CLIENT"
COMBO_Clients..RubriqueAffichée= "CLIENT.Intitule"
COMBO_Clients..RubriqueParcourue= "CLIENT.ID"
ListeAffiche(COMBO_Clients)


Comme je n'ai pas réussi à dire que ma combo doit faire une liaison fichier par code, je l'ai fait par dans l'IHM, la propriété TypeRemplissage de la combo est en lecture seule.

Merci
Publicado el 22,junio 2020 - 15:51
Bonjour,
Est-ce que la COMBO est bien en fichier/requete ?

COMBO_1..LiaisonFichier = sComboFichierLiaison
COMBO_1..FichierParcouru = sComboReqParcourue
COMBO_1..RubriqueAffichée = sComboAffichee
COMBO_1..RubriqueParcourue = sComboParcourue
COMBO_1..RubriqueMémorisée = sComboMemo

Pour moi ce code fonctionne.
En étant en fichier/requete et sans le listeAffiche.
Ceci me permet de changer le fichier parcouru de ma combo.
Miembro registrado
352 mensajes
Publicado el 22,junio 2020 - 18:05
Bonjour Hacyrak.

Après avoir remarqué que la propriété TypeRemplissage soit en lecture seule, je dis bien, au niveau IHM, que la combo se remplie via fichier / requête.

Par programmation, j'ai mis le code suivant, mais cette fois ci, en passant pas une variable requête SQL
COMBO_Clients..LiaisonFichier = "Req_Clients.ID"
COMBO_Clients..FichierParcouru = "Req_Clients"
COMBO_Clients..RubriqueAffichée= "Req_Clients.Intitule"
COMBO_Clients..RubriqueMémorisée = "Req_Clients.ID"


Bizarrement, chaque ligne affiche un ########
Et de plus, impossible de récupérer les glien, peu importe si je fais COMBO_Clients..Valeur ou COMBO_Clients..ValeurMémorisée
Publicado el 23,junio 2020 - 10:44
Bonjour,
Je vois que vous utilisez maintenant une requête à la place du fichier.
Avez-vous exécuter la requête avant ?
Vérifier aussi que les données de la requête soit correcte.
SI HExécuteRequête(Req_Clients) ALORS
POUR TOUT Req_Clients
Trace(Req_Clients.ID, Req_Clients.Intitule)
FIN
FIN
COMBO_Clients..LiaisonFichier = "Clients.ID" //Permet avec EcranVersFichier d'enregistrer des modifications
COMBO_Clients..FichierParcouru = "Req_Clients"
COMBO_Clients..RubriqueAffichée= "Req_Clients.Intitule"
COMBO_Clients..RubriqueParcourue = "Req_Clients.Intitule"
COMBO_Clients..RubriqueMémorisée = "Req_Clients.ID"
Miembro registrado
352 mensajes
Publicado el 23,junio 2020 - 15:15
Bonjour, entre requête et fichier, windev ne fait pas la différence.
J'ai pu résoudre mon problème, la solution était loin d'être évidente, dans les propriétés RubriqueAffichée et RubriqueMémorisée , il fallait juste mettre la rubrique, et non le fichier parcouru suivi de la rubrique, comme cela :

COMBO_Clients..FichierParcouru = "Req_Clients"
COMBO_Clients..RubriqueAffichée= "Intitule"
COMBO_Clients..RubriqueMémorisée = "ID"
COMBO_Clients..RubriqueParcourue= "Intitule"


J'ai été aussi confronté à un autre problème, là aussi, c'était loin d'être évident : en affichage, je voulais mettre CODE <tabulation> INTITULE, au niveau de la requête, j'ai ajouté une nouvelle colonne, comme cela :
code+WL.Caract(9)+IntituleAS CodeIntitule


En exécutant la requête, la nouvelle colonne affiche correctement les données, mais quand je m'en sers dans la propriété RubriqueAffichée, je ne voyais que le code.
En faisant mes tests à l'aide de l'assistant, j'ai remarque que dans l'IHM du champ combo, dans l'onglet Contenu, il fallait que l'option "Accès direct (sans limite)" soit sélectionnée, et non "Chargé en mémoire"