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 :

mise à jour d'une fenetre apres selection dans une combo


Sujet :

WinDev

  1. #41
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    Peut être que le problème vient de la requete, essaye d'utiliser la même syntaxe pour la requete, et reprend ce code là :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    REQ_membresalpha.Param1= cocheactif
    HExécuteRequête(REQ_membresalpha)
    ListeSupprimeTout(COMBO1)
    ListeSupprimeTout(COMBO2)
    HLitPremier(REQ_membresalpha, Nommembre)
       TANTQUE PAS HEnDehors(REQ_membresalpha, Nommembre) 
       ListeAjoute(COMBO1, Complète(Nommembre, 10) + TAB + ... 
         Complète(Prénommembre, 10))
       ListeAjoute(COMBO2, ChampLicence)
       HLitSuivant(REQ_membresalpha)
       FIN
    Normalement ta requete parametrée sélectionne déja les membres actif ou non donc tu n'as pas besoin de refaire une recherche avec HLitRecherche().
    En passant le paramètre à la requète tu as donc la bonne sélection.
    Comme ta Combo est une Combo table, pour remplir les deux colonnes tu dois utiliser la forme col1 + TAB + col2, le mieux est aussi de fixer la taille pour éviter d'avoir des informations qui n'apparaissent pas.
    Essaye tout ça avec une combo sans saisie, puis si ça fonctionne met là en saisie (a voir).

    Tiens moi au courant

    A+

  2. #42
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 573
    Points : 258
    Points
    258
    Par défaut
    salut dslé beaucoup de boulot en début de semaine pas le temps de m'y remettre

    bon j'ai revu le code et j'ai avancé j'avais bien un problème de syntaxe, mais ça ne fonctionne pas encore tout à fait.

    voici le code:
    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
    17
    18
    19
    20
    21
    22
    23
    SI cocheactif =1 ALORS
    	REQ_membresalpha.Param1=1
    	HExécuteRequête(REQ_membresalpha)
    	HLitPremier(REQ_membresalpha,Membres.Nommembre)
    SINON
    	HExécuteRequête(REQ_membresalpha)
    	HLitPremier(REQ_membresalpha,Membres.Nommembre)
    FIN
     
     
    // remplissage des combos
    ListeSupprimeTout(Mod_nom)
    ListeSupprimeTout(mod_licence)
     
    TANTQUE PAS HEnDehors(REQ_membresalpha) 
    //	info(REQ_membresalpha.Nommembre)
    	ListeAjoute (Mod_nom,REQ_membresalpha.Nommembre+TAB+REQ_membresalpha.Prénommembre)
    	ListeAjoute(mod_licence,REQ_membresalpha.licence)
     
    	HLitSuivant
    FIN
    FichierVersEcran
    miseàjourcompteur()
    Donc les combos se remplisse bien, la combo par numéro marche très bien mais celle par nom ne m'affiche pas le membre que je sélectionne..... mais un autre.

    voila donc maintenant je cherche pourquoi

    merci beaucoup de ton aide

  3. #43
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    Ton fichier doit pointer vers un autre enregistrement lorsque tu remplis ta combo.
    Dans le code selection d'une ligne de ta combo, il faut que tu te positionne sur le bon enregistrement puis que tu l'affiche.

    A+

  4. #44
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 573
    Points : 258
    Points
    258
    Par défaut
    après quelques test la combo avec le n° de licence ne fonctionne pas. Je croyais que oui mais les enregistrement était dans le bon ordre....

    Je crois bien que tu as encore raison, le code sur mes combo ne convient pas car elle ne selectionne pas le membre par rapport au nom que je choisi mais par rapport à son n° d'enregistrement dans le fichier...

    la fonction info sur la valeur de la combo me renvoie le n° d'enregistrement
    Il faudrait qu'elle me renvoi le nom ou le numéro de licence.

    voici le code qu'il y a sur ma combo pour le moment:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    HLit(REQ_membresalpha,Mod_nom)
    mais je me rends compte que cette fonction demande le nom du fichier (ça c'est bon)
    et ensuite le n° d'enregistrement (pas le N° de licence ou le nom dans l'autre combo)

  5. #45
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Si le n° de licence et le nom sont des clés dans ton fichier, le code de ta combo peut utiliser HLitRecherchePremier()

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    // A chaque selection d'une ligne de Combo
    HLitRecherchePremier(FichierMembre,CleLicence,mod_licence..ValeurAffichée)
    Si HTrouve(FichierMembre) ALORS
    FichierVersEcran()
    FIN
    Idem pour le nom, si le nom n'est pas clé, il faut que tu ajoute une troisième colonne invisible qui contient la clé unique de ton fichier, et lors de la sélection de la ligne tu fais pointer les enregistrements dessus.

    A+

  6. #46
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 573
    Points : 258
    Points
    258
    Par défaut
    je comprend bien ce que tu me dis.... mais comment donner à la combo la valeur de ma colone d'identification?

    Pour le moment la combo prend comme valeur le n° d'enregistrement...

    Si je fais une liaison ce n'est plus une table mémoire si?

  7. #47
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 573
    Points : 258
    Points
    258
    Par défaut
    Bravo....

    ton code marche très bien ce coup ci et en plus je viens d'apprendre un nouveau truc...

    J'ai encore 2 petits soucis:
    1)Ma combo sur le numéro de licence affiche un liste. Elle est lié à la requete ce qui fait que quand je change de membre la valeur affichée change aussi et c'est très bien. PAr contre je n'arrive pas à faire la même chose sur la combo nom qui affiche une table. Quand je selectionne un nom elle m'affiche le membre voulu dans la fenetre mais la combo reste vide..... j'ai essayé de la l'iée aussi mais sans succés.

    2) Le second est surement plus délicat.
    Les nom sont par oredre alphabétique dans la combo nom puisque associé à la requete alphabétique....
    Par contre les n° de licence eux ne sont du coup pas dans l'ordre.....

    La fenetre et la combo nom sont dans l'ordre alphabétique. C'est bien pour utiliser la combo pour rechercher un nom ainsi que pour l'utilisation des boutons précédent et suivant. donc il faut que ces 2 éléments soient sur la meme source ma requete alpha.

    Peut on donner une autre source pour afficher les numéros de licence dans l'ordre croissant dans la combo sans changer l'ordre de la fenetre....

    je ne suis pas sur d'être très clair, dis moi si tu veux que je reformule... en attendant je cherche..

    Vraiment merci beaucoup parce que tu m'as déjà bien aidé.


    edit:

    apres un peu de boulot voila mon nouveau code.
    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
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    SI cocheactif =1 ALORS
    	REQ_membresalpha.Param1=1
    	REQ_membresnum.Param1=1
    	HExécuteRequête(REQ_membresalpha)
    	HExécuteRequête(REQ_membresnum)
    	HLitPremier(REQ_membresalpha,Membres.Nommembre)
    SINON
    	HExécuteRequête(REQ_membresalpha)
    	HExécuteRequête(REQ_membresnum)
    	HLitPremier(REQ_membresalpha,Membres.Nommembre)
    FIN
     
     
    // remplissage des combos
    ListeSupprimeTout(Mod_nom)
    ListeSupprimeTout(mod_licence)
     
    TANTQUE PAS HEnDehors(REQ_membresalpha) 
    //	info(REQ_membresalpha.Nommembre)
    	ListeAjoute (Mod_nom,REQ_membresalpha.Nommembre+TAB+REQ_membresalpha.Prénommembre+TAB+REQ_membresalpha.IDMembres)
    //	ListeAjoute(mod_licence,REQ_membresnum.licence)
     
    	HLitSuivant
    FIN
    Info(REQ_membresnum.licence)
    Info("valeur affichée" + " " +mod_licence..ValeurAffichée)
     
    TANTQUE PAS HEnDehors(REQ_membresnum)
    ListeAjoute (mod_licence,REQ_membresnum.Licence)
    HLitSuivant
    FIN
     
    HLitPremier
    FichierVersEcran
    Ma combo licence ne se remplie pas et l'info me renvoie 0
    le fichier requete n'est pas parcouru par le TANTQUE PAS hendehors
    on dirait qu'il est déjà en dehors....

  8. #48
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    D'après ton code, tu ne lis pas les enregistrements de la 2ème requête, il faut faire un HLitPremier() aussi avec la requête sur les licences.

    A+

  9. #49
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 573
    Points : 258
    Points
    258
    Par défaut
    effectivement avec ça marche mieux.....

    Il me manque plus qu'à afficher le nom sélectionné dans la combo nom et ça sera terminé pour cette fenetre

    encore merci de ton aide..... t'es un chef

  10. #50
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Salut,

    Tu peux essayer de créer 2 bouton radio, par exemple Recherche par Nom (1er choix par défaut) et Recherche par Licence (2ème choix).
    Si c'est le 1 qui est sélectionné, la Combo Licence est grisée et le reste du code fonctionne normalement, si le choix est 2, alors c'est la combo nom qui est grisée et celle des licence qui est active, dans ce cas dans le code de déplacement par les flèches tu fais un truc du style :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    // Par exemple l'enregistrement suivant
    SI SEL_Choix = 2 ALORS
    mod_licence += 1
    ExecuteTraitement(Mod_Licence , trtSélection)
    FIN
    Idem pour les autres flèches.

    A+

  11. #51
    Membre actif

    Homme Profil pro
    Enseignant
    Inscrit en
    Août 2006
    Messages
    573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Août 2006
    Messages : 573
    Points : 258
    Points
    258
    Par défaut
    hello

    En fait le code marche très bien, les bouton de déplacement aussi. C'est juste que quand je selectionne un membre dans la combo, les infos sont bien affichées dans la fenetre mais la combo reste vide. J'aimerais que le nom du membre reste affiché dans la combo.
    Je crois que pour ça il faut que la combo ait une liaison avec le fichier mais ça ne veut pas marcher...

    Je vais peut etre essayer de la refaire au cas ou....



    edit:

    Et oui quand on a plus de solution, il faut essayer de refaire ce qu'on a déjà fait et bizarement des fois ça rerentre dans l'ordre.....

    Merci beaucoup Basam95

  12. #52
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2008
    Messages
    410
    Détails du profil
    Informations personnelles :
    Âge : 57
    Localisation : France, Val d'Oise (Île de France)

    Informations forums :
    Inscription : Janvier 2008
    Messages : 410
    Points : 513
    Points
    513
    Par défaut
    Est ce que tu veux dire que quand tu sélectionne une entrée dans la combo Licence la combo Nom est vide ou est ce que c'est quand tu sélectionne un Nom dans la combo Nom que celle-ci se vide.

    Edit :

    De rien !

    A+

+ Répondre à la discussion
Cette discussion est résolue.
Page 3 sur 3 PremièrePremière 123

Discussions similaires

  1. Réponses: 0
    Dernier message: 29/01/2011, 17h40
  2. Réponses: 1
    Dernier message: 26/12/2010, 21h20
  3. Réponses: 3
    Dernier message: 05/02/2010, 03h45
  4. copier une cellule d'une à une autre après selection dans combobox
    Par fripoti dans le forum Macros et VBA Excel
    Réponses: 12
    Dernier message: 11/07/2008, 14h23
  5. Mise à jour d'une variable après choix dans une combobox
    Par ~Brouette~ dans le forum Langage
    Réponses: 1
    Dernier message: 21/12/2007, 11h09

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