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 :

Lier deux listes déroulantes


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 46
    Points : 33
    Points
    33
    Par défaut Lier deux listes déroulantes
    Bonjour !
    Je voudrais juste savoir comment faire pour lier deux listes déroulantes :
    c'est-à-dire que mes deux listes ont les mêmes valeure et, lorsque je sélectionne une valeur dans la premiere, je voudrais qu'elle n'y soit plus dans la seconde.
    merci pour votre aide

  2. #2
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Bonjour,

    Nous allons avoir du mal à vous répondre, ne sachant pas quel langage vous utilisez ... Peut être même cette question serait elle plus à sa place dans un autre forum si elle concerne un langage "classique".

    Cependant, sur le principe, il suffit d'avoir une méthode, déclenchée par l'événement "sélection d'un élément" dans une liste, qui va altérer le contenu des listes de la manière que vous souhaitez.

    Bonne continuation.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  3. #3
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 46
    Points : 33
    Points
    33
    Par défaut
    voici ma premiere liste déroulante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
     ListeInsere("TRI_1","Société",1)
     ListeInsere("TRI_1","Prestation",2)
     ListeInsere("TRI_1","Article",3)
     ListeInsere("TRI_1","Public",4)
     ListeInsere("TRI_1","Regroupement",5)
    et je voudrais que ma deuxieme soit identique,mais sans la valeur qui est selectionné dans la premiere...
    Comment faire svp?

  4. #4
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Je ne connais pas Windev, cependant le principe est à peu près le même partout ...

    Il doit exister un événement déclenché par la sélection d'un élément dans la liste TRI_1.

    Pour cet événement, il faut qu'il invoque une méthode qui va :
    - soit vider la deuxième liste (TRI_2), puis y remettre tous les éléments de TRI_1 SAUF celui qui a été sélectionné.
    - soit retirer de TRI_2 l'élément sélectionné dans TRI_1, et le mémoriser pour le restituer à la désélection ...

    La première méthode est moins efficace/performante parce qu'on vide tout pour tout remettre, mais la seconde est beaucoup moins sûre parce qu'il faut vraiment s'assurer que l'élément sera bien remis à chaque fois que c'est nécessaire.
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  5. #5
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    46
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 46
    Points : 33
    Points
    33
    Par défaut
    merci, c'est deja des bons renseignements...je vais essayer de m'appuyer la dessus

  6. #6
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Voici avec "COMBO1" et "COMBO2" pour le nom des listes déroulantes
    Code est à mettre dans la partie : A chaque modification de Liste COMBO1
    (le code est exécuté lors de la selection d'un élément de la liste COMBO1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    indice est un entier
    indice = listecherche("COMBO2",COMBO1[COMBO1])
    if indice <> -1 then
    	listesupprime("COMBO2",indice)
    END
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

  7. #7
    Membre expert
    Avatar de 2Eurocents
    Profil pro
    Inscrit en
    Septembre 2004
    Messages
    2 177
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Septembre 2004
    Messages : 2 177
    Points : 3 166
    Points
    3 166
    Par défaut
    Citation Envoyé par le y@m's
    (le code est exécuté lors de la selection d'un élément de la liste COMBO1)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    indice est un entier
    indice = listecherche("COMBO2",COMBO1[COMBO1])
    if indice <> -1 then
    	listesupprime("COMBO2",indice)
    END


    Ce que tu fais est dangereux, le y@m's !!!

    Avec ce code, si je sélectionne le premier élément, puis change d'avis et sélectionne le second :
    1- dans le meilleur des cas (je ne connais pas le comportement de windev vis-à-vis de l'indexation des listes), j'aurai supprimé le 1er et le 2e élément de la liste
    2- dans le pire des cas, j'aurai supprimé le 1er et le 3e élément (c'est à dire le 2e après suppression du premier).

    Je ne crois pas que ce soit le comportement souhaité.

    En gros, le comportement souhaité est d'avoir une liste de premier choix, et une liste de second choix excluant l'élément choisi dans la première. Il faut cependant permettre à l'utilisateur de changer d'avis dans la première sans tout détruire au niveau de la seconde.

    Relis les deux méthodes que j'ai proposé ... la seconde est entachée de ce risque. La première est infiniment plus sûre, mais ne connaissant pas windev, je ne saurai la mettre en place. Peut être le pourras tu ...
    La FAQ Perl est par ici
    : La fonction "Rechercher", on aurait dû la nommer "Retrouver" - essayez et vous verrez pourquoi !

  8. #8
    Expert confirmé
    Avatar de le y@m's
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2005
    Messages
    2 636
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2005
    Messages : 2 636
    Points : 5 943
    Points
    5 943
    Par défaut
    Mon code est executé lors du clic sur la valeur voulue de la liste deroulante, il n'y a aucun risque puisque je supprime un élément en fonction de l'indice que j'ai récupéré juste avant (donc je suis sur que celui-ci est valide).
    Cependant il est vrai que si l'utilisateur se trompe ben il peut pas revenir en arriere (de toute façon s'il ce trompe c'est sa faute :p).
    Après c'est à grellierj de voir s'il veut mettre des conditions, demander une confirmation ou déplacer le code vers un bouton... à lui d'implementer le code comme ça l'arrange.
    Je ne répondrai à aucune question technique par MP.

    Pensez aux Tutoriels et aux FAQs avant de poster (pour le java il y a aussi JavaSearch), n'oubliez pas non plus la fonction Rechercher.
    Enfin, quand une solution a été trouvée à votre problème
    pensez au tag

    Cours Dvp : http://ydisanto.developpez.com
    Blog : http://yann-disanto.blogspot.com/
    Page perso : http://yann-disanto.fr

Discussions similaires

  1. Réponses: 4
    Dernier message: 16/02/2009, 20h52
  2. Lier deux listes déroulantes
    Par PHPkoala dans le forum IHM
    Réponses: 2
    Dernier message: 26/05/2008, 11h52
  3. [Formulaire] lier deux listes déroulantes
    Par Ayack dans le forum IHM
    Réponses: 2
    Dernier message: 20/02/2008, 12h46
  4. [AJAX] lier deux listes déroulantes alimenté par une base de données (Mysql)
    Par arnaudperfect dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 23/04/2007, 01h06
  5. [PHP-JS] Lier deux listes déroulantes
    Par budiste dans le forum Langage
    Réponses: 6
    Dernier message: 15/11/2005, 15h36

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