IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WinDev Discussion :

Filtrer une combo avec saisie sur elle meme


Sujet :

WinDev

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2018
    Messages : 92
    Par défaut Filtrer une combo avec saisie sur elle meme
    Bonjour tout le monde,
    j'ai besoin de votre aide SVP !

    Je me retourne vers vous après avoir beaucoup cherché, en fait j'ai une combo sur laquelle je veux faire un filtre en saisissant, donc au moment de la saisie elle déroule et me propose les enregistrements qui correspondent à ma recherche, peut importe la méthode, programmation, requête ou fichier de données, j'ai arrivé à le faire par programmation en utilisant les résultats d'une requête mais en poursuivant la recherche, elle m'ajoute les lignes et elle ne se mit pas à jour.
    voici le bout de code que j'ai utilisé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    //ListeSupprimeTout(COMBO_produit_a_commandee)
    HExécuteRequête(REQ_Listee_produit_a_commandee,hRequêteDéfaut,MoiMême)
    POUR TOUT REQ_Listee_produit_a_commandee
     ListeAjoute(MoiMême,REQ_Listee_produit_a_commandee.Produitlibelle)
    FIN
    //ListeAffiche(COMBO_produit_a_commandee)
    ComboOuvre(MoiMême)
    si je rajoute ListeSupprimeTout par exemple, ça supprime même ce que je saisi
    en avec ListeAffiche ça m'affiche une erreur.
    Vous pouvez me donner une autre solution.
    Erreur à la ligne 6 du traitement A chaque modification de COMBO_produit_a_commandee.
    Vous avez appelé la fonction ListeAffiche.
    Commande invalide pour le champ COMBO_produit_a_commandee car c'est une Combo Mémoire
    (cette commande n'est valide que sur les Listes, Tables et Combos fichier).

    ----- Informations techniques -----

    Projet : monaidecom

    Appel WL :
    Traitement de 'A chaque modification de COMBO_produit_a_commandee' (FEN_Boncommande_client.COMBO_produit_a_commandee), ligne 6, thread 0
    Fonction 'ListeAffiche', syntaxe 0

    Que s'est-il passé ?
    Commande invalide pour le champ COMBO_produit_a_commandee car c'est une Combo Mémoire
    (cette commande n'est valide que sur les Listes, Tables et Combos fichier).

    Code erreur : 10050
    Niveau : erreur fatale (EL_FATAL)

    Dump de l'erreur du module 'wd200obj.dll' (20.0.373.11).
    Identifiant des informations détaillées (.err) : 10050
    Informations de débogage :
    Fonction (1,114)
    Informations supplémentaires :
    EIT_PILEWL :
    A chaque modification de COMBO_produit_a_commandee (FEN_Boncommande_client.COMBO_produit_a_commandee), ligne 6
    EIT_DATEHEURE : 24/09/2020 19:27:23

  2. #2
    Expert confirmé
    Avatar de Voroltinquo
    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Juin 2017
    Messages
    2 933
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 59
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Chef de projet en SSII

    Informations forums :
    Inscription : Juin 2017
    Messages : 2 933
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Pourquoi ne pas directement faire une combo sur requête qui affiche le libellé et qui renvoie la PK ?
    En ce qui concerne la recherche, il y a une case à cocher "avec recherche" (ou quelque chose comme ça) dans la rubrique IHM de la description. Ta combo n'a même pas besoin d'être en saisie.

  3. #3
    Membre expérimenté

    Homme Profil pro
    Sans
    Inscrit en
    Mars 2018
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Mars 2018
    Messages : 153
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    Citation Envoyé par Zeus_Appolos Voir le message
    ...Vous pouvez me donner une autre solution...
    Voici ce que tu pourrais faire :

    Tu remplis ta combo comme tu le fais actuellement mais dans l'onglet "contenu", de la fenêtre 7 onglets, tu choisis un type de déroulé en "fenêtre popup".

    Tu construis ta popup avec une table que tu remplis avec les mêmes éléments que ta combo plus une colonne masquée contenant l'identifiant de ton élément et qui sera renvoyé à la combo avec, par exemple, le code suivant dans l'évènement de sélection d'une ligne de la table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MyPopupControl = MySelf[MySelf].id
    Dans ta fenêtre popup, tu poses un champ de saisie avec le code suivant dans l'évènement "à chaque modification" :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    IF MySelf <> "" THEN
    	TableEnableFilter(Table_produit_a_commander.colonne_a_filtrer, filterContains, MySelf)
    ELSE
    	TableDisableFilter(Table_produit_a_commander)
    END
    Je pense que ça devrait correspondre à ton besoin.

    Hth, Padbrain

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2018
    Messages : 92
    Par défaut
    Merci beaucoup à vous

    La solution de padbrain résout en grande partie mon problème.

    A la sélection d'une ligne de la table je veux affecter la valeur et fermer la fenêtre Pop. Lorsque je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Ferme(FEN_Pop_Produits)
    la pop n' apparaît plus mais affiche dans le combo la première ligne de la table.

    comment pourrai-je faire cela ?

  5. #5
    Membre expérimenté

    Homme Profil pro
    Sans
    Inscrit en
    Mars 2018
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Mars 2018
    Messages : 153
    Billets dans le blog
    1
    Par défaut
    Sur l'évènement bouton gauche relaché de ta table :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MyPopupControl = MySelf[MySelf].id
    Close()

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2018
    Messages
    92
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Octobre 2018
    Messages : 92
    Par défaut
    ça fait le même effet que Ferme()

  7. #7
    Membre expérimenté

    Homme Profil pro
    Sans
    Inscrit en
    Mars 2018
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Mars 2018
    Messages : 153
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par Zeus_Appolos Voir le message
    ça fait le même effet que Ferme()
    Tu dois remplir ta combo en utilisant gLien :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    comboItem.Add("Libellé de l'item" + gLink(itemId))
    ou utiliser l'id comme rubrique mémorisée dans les 7 onglets de ta combo si tu utilises une liste fichier.

  8. #8
    Membre expérimenté

    Homme Profil pro
    Sans
    Inscrit en
    Mars 2018
    Messages
    153
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Sans

    Informations forums :
    Inscription : Mars 2018
    Messages : 153
    Billets dans le blog
    1
    Par défaut
    Et avant que tu ne poses d'autres questions :

    Dans les déclarations globales de ta popup, tu récupères l'identifiant de l'article en sélection dans ta combo :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    PROCÉDURE MyWindow(pItemId is int = Null)
    que tu peux alors sélectionner dans ta table par défaut avec ce code que tu pourrais mettre dans l'évènement de "Fin d'initialisation" de la fenêtre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    FOR iIndex = 1 _TO_ Table_produit_a_commander..Occurrence
    	IF Table_produit_a_commander[iIndex].id = pItemId THEN
    		Table_produit_a_commander.SelectPlus(iIndex)
    		BREAK
    	END
    END
    Tu peux aussi ajouter un bouton "Annuler" avec action prédéfinie sur fermer la fenêtre, ce qui permet à l'utilisateur de fermer la combo sans modifier la sélection.

    Et, enfin, ajouter un bouton "Aucune sélection" avec le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    MyPopupControl = 0
    Close()
    Qui permet de ne rien sélectionner.

    hth, padbrain

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 06/01/2015, 15h10
  2. [WD15] Fermeture d'une combo avec saisie + fenetre popup
    Par Menadel dans le forum WinDev
    Réponses: 3
    Dernier message: 02/04/2013, 14h08
  3. [WD16] Filtrer une combo sur 3 critères
    Par wojc01 dans le forum WinDev
    Réponses: 5
    Dernier message: 24/05/2011, 23h33
  4. Réponses: 6
    Dernier message: 04/12/2008, 18h28
  5. [Access] Requête (avec AND) sur 1 meme champ d'une table
    Par jeje22 dans le forum Langage SQL
    Réponses: 3
    Dernier message: 11/09/2006, 22h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo