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 :

Remplir champ "SAISI" suite à sélection dans une "COMBO" [WD25]


Sujet :

WinDev

  1. #1
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 229
    Points : 91
    Points
    91
    Par défaut Remplir champ "SAISI" suite à sélection dans une "COMBO"
    Bonjour à tous.

    J'ai une table MySQL dans laquelle se trouve plusieurs colonnes : id, animation, durée.

    Dans ma fenêtre, j'ai une COMBO_animation avec saisie (pour ajouter des animations), une COMBO_id et un champ SAI_durée.

    Je souhaiterais que lorsque un animation choisi une animation dans la COMBO_animation, le reste des champs soient automatiquement rempli.

    J'ai essayé plusieurs choses, fait de nombreuses recherches sur le net mais je n'ai pas réussi à mettre en oeuvre mon souhait.

    Je dois probablement mal m'y prendre ou placer mon code au mauvais endroit.

    J'ai consulté la documentation mais n'ai pas réussi non plus.

    Merci d'avance pour l'aide que vous pourrez m'apporter.

  2. #2
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 229
    Points : 91
    Points
    91
    Par défaut
    Je vais un peu étoffer mon sujet en précisant que ma combo_animation se rempli automatiquement via les données de ma base de donnée.

  3. #3
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 049
    Points : 9 384
    Points
    9 384
    Par défaut
    Est-ce que tu places ton code au bon endroit ? Va savoir. Tu le places où ?
    Est-ce que ton code est correct ? Va savoir. Tu en es où dans ta dernière version ?
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  4. #4
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 229
    Points : 91
    Points
    91
    Par défaut
    Comme rien ne fonctionnait, j'ai supprimé tout le code.

    Finalement, je souhaiterais "couplé" mes deux COMBO... certains de mes collègues animateurs préférent saisir par code et d'autres par libellé...

    Dans l'idée, lorsque je saisi le libellé de l'animation ou que je sélectionne un libellé, la COMBO_id affiche automatiquement le code de l'animation et la durée et vice-versa lorsque je saisi l'ID, la combo_animation affiche l'animation qui correspond au code.

    J'ai placé mes essais de code dans "Sélection d'une ligne de COMBO_animation" pour voir si cela marchait mais ça n'a rien changé.

    Il me faut peut-être ajouté un HLitRecherchePremier ou des commandes supplémentaires.

    C'est la première fois que j'utilise un COMBO.

  5. #5
    Membre chevronné
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mai 2003
    Messages
    941
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Alimentation

    Informations forums :
    Inscription : Mai 2003
    Messages : 941
    Points : 1 931
    Points
    1 931
    Par défaut
    Dans la sélection de ta combo, il faut que tu fasses quelque chose comme ça.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SI HLitPremier(animation,id,COMBO.id,hidentique) alors
    FichierVersEcran()
    FIN
    Si tu ne l'is pas l'enregistrement windev ne peut pas savoir quoi afficher
    Philippe,


    N'hésitez à lever le pouce si mon aide vous a été utile.

  6. #6
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 229
    Points : 91
    Points
    91
    Par défaut
    J'étais sûr qu'il me fallait ajouter quelque-chose de cet ordre après mon précédent message.

    C'était si simple... Je vais refaire mon code pour voir ce que cela donne.

  7. #7
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 229
    Points : 91
    Points
    91
    Par défaut
    Voilà, problème presque résolu...

    Voici le code de mon combo_id (selection d'une ligne COMBO) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    res est un entier
    res = combo_id
     
    SI HLitPremier(animation,res) ALORS
    	COMBO_animation = animation.libelle
    	SAI_Durée_en_jours				= animation.duree
    	SAI_Date_de_fin_animation	=  EntierVersDate(DateVersEntier(SAI_Date_de_début_animation) + SAI_Durée_en_jours)
    FIN
    Voici le code de mon combo_animation


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    res est un entier
    res = combo_animation
     
    SI HLitPremier(animation,res) ALORS
    	COMBO_id = animation.id
    	SAI_Durée_en_jours				= animation.duree
    	SAI_Date_de_fin_animation	=  EntierVersDate(DateVersEntier(SAI_Date_de_début_animation) + SAI_Durée_en_jours)
    FIN
    Ca fonctionne mais le problème est que les valeurs des champs et COMBO ne se mettent pas à jour après une seconde sélection.

    Je précise que les deux combos sont dans la même fenêtre.

  8. #8
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 049
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 049
    Points : 9 384
    Points
    9 384
    Par défaut
    Tu fais ça
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SI HLitPremier(animation,res) ALORS
    	COMBO_animation = animation.libelle
    	SAI_Durée_en_jours				= animation.duree
    	SAI_Date_de_fin_animation	=  EntierVersDate(DateVersEntier(SAI_Date_de_début_animation) + SAI_Durée_en_jours)
    FIN
    Je tte propose de modifier un peu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    SI HLitPremier(animation,res) ALORS
    	COMBO_animation = animation.libelle
    	SAI_Durée_en_jours				= animation.duree
    	SAI_Date_de_fin_animation	=  EntierVersDate(DateVersEntier(SAI_Date_de_début_animation) + SAI_Durée_en_jours)
    sinon
            WARNING ( "Perdu !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! " )
    FIN
    ça ne va pas beaucoup t'avancer.... mais dans ton code, tu envisages le cas où ça se passe bien ... et tu laisses le programme totalement silencieux quand ça se passe mal.

    Quand ça se passe mal, le programme doit CRIER pour te prévenir que ça va mal.
    A la place du mot PERDU, tu peux certainement lui demander d'afficher des informations plus pertinentes.

    Concrètement, je remplacerais hLitPremier par Lit RecherchePremier pour corriger le problème ... On doit RECHERCHER la première ligne qui correspond à notre critère, et pas lire la première ligne venue.
    Et du coup, attention, la syntaxe de hLitRecherchePremier est un peu différente.
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  9. #9
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 229
    Points : 91
    Points
    91
    Par défaut
    Vi vi vi...

    C'est effectivement prévu...

    J'ai bien un SINON... si ça se passe mal... et je gère l'erreur complète dans un fichier log mais j'avais la flemme de recopier l'intégralité du code. C'est surtout pour la gestion de la mise à jour des champs que cela me posait problème.

    Je n'ai pas pensé à HLitRecherchePremier. Je vais immédiatement tester cette nouvelle information.

  10. #10
    Membre régulier
    Inscrit en
    Novembre 2005
    Messages
    229
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 229
    Points : 91
    Points
    91
    Par défaut
    Problème solutionné... Un grand merci à vous...

    L'utilisation de HlitRecherchePremier à changé ma vie...

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

Discussions similaires

  1. Réponses: 20
    Dernier message: 27/07/2010, 15h52
  2. Réponses: 3
    Dernier message: 05/01/2010, 08h22
  3. Réponses: 2
    Dernier message: 30/11/2009, 14h40
  4. Réponses: 4
    Dernier message: 22/06/2009, 12h12
  5. [ODBC] Garder une saisie après sélection dans une liste déroulante
    Par nawak.seb dans le forum PHP & Base de données
    Réponses: 23
    Dernier message: 27/08/2008, 14h48

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