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 :

[WD5.5]Contenu d'une liste déroulante


Sujet :

WinDev

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Points : 34
    Points
    34
    Par défaut [WD5.5]Contenu d'une liste déroulante
    Bonjour à tous !

    Je dois afficher une liste déroulante contenant les informations d'une table fichier. Je m'y prends comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    HLitPremier("UTILISAT","CODUTIL")
    TantQue pas H.EnDehors
    	ListeAjoute("UTILISATEUR",UTILISAT.NOMUTIL)
    	HLitSuivant("UTILISAT")
    FIN
    Une fois un choix fait dans cette liste déroulante et la saisie d'autres informations dans la page, j'enregistre les réponses dans une table fichier.

    Mais lorsque je souhaite réafficher la fenêtre pour par exemple modifier des informations, comment puis-je pré-sélectionner dans la liste déroulante le choix précédemment fait ? C'est-à-dire que la liste déroulante affiche la valeur enregistrée dans la table et non la première valeur parmi celles contenues dans la liste...

    Merci d'avance pour les renseignements

  2. #2
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UTILISATEUR=LISTECHERCHE( UTILISATEUR,VALEUR_NOMUTILISATEUR)
    PS : Tu devrais utiliser les codes, plutot que les noms

  3. #3
    Membre averti Avatar de tunizar
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    573
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 573
    Points : 427
    Points
    427
    Par défaut
    Salut
    il y a le fonction glien qui marche super bien !!

  4. #4
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Points : 34
    Points
    34
    Par défaut
    Je sèche...

    Dans mon bloc initialisation de la liste déroulante, je vois pas comment je peux mettre le code pour son remplissage (à partir d'une table fichier) et ensuite, si besoin, faire une pré-sélection d'un nom dans cette liste (à partir d'un autre fichier) pour qu'il soit affiché quand j'ouvre ma fenêtre...

    J'utilise GLien pour récupérer le "CODUTIL" que j'enregistre dans mon fichier mais après, je vois pas comment m'y prendre.

  5. #5
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Si tu nous montrais ton code (avec suffisament d'explications) peut-être que l'on pourrait t'aider.

    Dans ton premier poste, tu ne parles pas de gLien, puis tu en parles dans le second

    Donnes nous plus d'éléments, et peut-être qu'on aura une idée !

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Points : 34
    Points
    34
    Par défaut
    Pardonnez-moi si ce n'est pas clair...

    Alors voici le code que j'utilise pour remplir la liste déroulante (le code est situé dans le bloc "initialisation" de la liste UTILISATEUR) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    HLitPremier("UTILISAT","CODUTIL")
    TantQue pas H.EnDehors
    	ListeAjoute("UTILISATEUR",UTILISAT.NOMUTIL+gLien(UTILISAT.CODUTIL))
    	HLitSuivant("UTILISAT")
    FIN
    infoobjet("UTILISATEUR",43,vrai)
    Je récupère alors le code de l'utilisateur choisi dans un champ (code placé dans le bloc "a chaque modification de la liste") :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CODEUTIL=UTILISATEUR[UTILISATEUR]
    Pour l'enregistrement, ma table s'appelle ERELEV et j'enregistre comme ceci :
    avec un HAjoute.


    Ce que je voudrais c'est que quand j'affiche à nouveau un relevé enregistré (qui utilise la même fenêtre que précédemment), le nom de l'utilisateur choisi dans la liste déroulante soit présélectionné dans celle-ci, mais qu'il puisse être modifié (c'est-à-dire que la liste soit toujours remplie et que je puisse en choisir un autre)

    J'espère que c'est plus clair (ça correspond exactement à l'option "selected" de HTML pour une liste déroulante)

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    19 647
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2004
    Messages : 19 647
    Points : 32 889
    Points
    32 889
    Par défaut
    Tu as essayé TableSelect() ?

  8. #8
    Inactif  
    Profil pro
    Inscrit en
    Février 2003
    Messages
    4 341
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2003
    Messages : 4 341
    Points : 5 953
    Points
    5 953
    Par défaut
    Bon, alors le problème c'est que

    Citation Envoyé par La doc PCSoft
    ListeCherche ne tient pas compte des valeurs ajoutées par gLien.
    Donc tu ne vas pas pouvoir récupérer simplement l'indice de ta liste par ListeRecherche sur le CODUTIL

    Seul moyen, une petite fonction perso.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
     
    Fonction FGetIndCmbUtil( cpCombo, cpCodUtil)
    local
       nlRetour  est un entier
       llTrouve  est un booleen
     
    nlRetour = 1
    tantque nlRetour <= { cpCombo}..occurrence
       si { cpCombo}[ nlRetour] = cpCodUtil alors
          llTrouve = vrai
       sinon
          nlRetour ++
       fin
    fin
    si pas llTrouve alors nlRetour = -1
    renvoyer( nlRetour)
    Dans ton code tu fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    UTILISATEUR = FGetIndCmbUtil( "UTILISATEUR", CODEUTIL)
    Normalement ça devrait fonctionner !

  9. #9
    Nouveau membre du Club
    Inscrit en
    Janvier 2007
    Messages
    63
    Détails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 63
    Points : 34
    Points
    34
    Par défaut
    J'ai enfin trouvé la solution !

    En fait, lorsque je remplie ma liste, je vérifie si l'enregistrement dans ma table fichier est égal à celui que je suis en train d'ajouter à la liste.
    Si c'est le cas, je note son indice et puis à la fin j'utilise "ListeSelectPlus("MaListe",Indice)" pour présélectionner le bon enregistrement dans la liste.

    Je donne donc la solution pour ceux qui auraient le même problème que moi !

    En tout cas merci quand même à tous.

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 28/05/2007, 15h37
  2. [PHP-JS] Contenu d'une liste déroulante
    Par luffyOP dans le forum Langage
    Réponses: 2
    Dernier message: 30/01/2007, 17h07
  3. Réponses: 3
    Dernier message: 24/01/2007, 10h36
  4. Réponses: 1
    Dernier message: 20/04/2006, 09h17
  5. Contenu d'une liste déroulante
    Par tets88 dans le forum Access
    Réponses: 3
    Dernier message: 20/03/2006, 11h37

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