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 :

Réactualisation d'une fenêtre après avoir modifié un enregistrement dans une analyse


Sujet :

WinDev

  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 70
    Par défaut Réactualisation d'une fenêtre après avoir modifié un enregistrement dans une analyse
    Bonjour a tous,

    J'ai un souci pour faire actualiser une combo liée à une analyse.
    Mon analyse "COMPTE" contient Nom, Code banque, code guichet, numéro de compte et Clé.
    Sur ma fenêtre principale, j'ai une combo pour choisir le nom du compte. La sélection du nom fait apparaitre dans 4 champs grisés les infos du compte.
    Un menu Compte, propose 2 sous menus "Nouveau compte" et "Liste des comptes".

    Mon problème: Lorsque je viens d'ajouter un nouvel enregistrement dans l'analyse et que je ferme le fenêtre d'ajout d'enregistrement, la combo n'affiche pas le nouvel enregistrement. (pourtant, si je vais dans liste des comptes, le nouvel enregistrement s'affiche). Il faut que je ferme le programme et que je le relance pour que l'enregistrement figure.

    Il doit manquer manquer un bout de code pour actualiser mais comme je débute et bien je sais pas quoi ni ou.

    Merci à tous pour votre aide.

  2. #2
    Membre chevronné Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2007
    Messages : 762
    Par défaut
    Un truc comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListeAffiche(COMBO_TaCombo)
    ==> http://doc.pcsoft.fr/fr-FR/?3049005&...q=Listeaffiche

    ??

    Olivier

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 70
    Par défaut
    SAlut

    Oui j'ai essayé cette fonction mais je ne sais pas ou placer ce code. Il faut bien comprendre que la combo est placée sur la fenêtre de menu (la fenêtre principale). Donc effectivement, lorsque je rajoute un enregistrement dans l'analyse grâce à une fenêtre fille que je ferme ensuite, la combo n'est pas réactualisée. Donc je ne peux pas à mon avis mettre le Liste affiche en actualisation.

    En fait, quand tu cliques la première fois dans la combo après avoir fait une modif, le nouvel enregistrement n'apparait pas. Si tu recliques, la il apparait parce que le code présent dans "selection d'une ligne" est exécuté.
    Ou alors faudrait-il ajouter un rafraichissement complet de la fenêtre principale en fin du bouton qui permet l'ajout d'un enregistrement??

  4. #4
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 515
    Par défaut
    Bonjour,
    Pourquoi ne pas mettre cette ligne juste après l'appel de la fenêtre en question ?

    Tatayo.

  5. #5
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 70
    Par défaut
    Après avoir cliqué partout et essayé partout, la solution était de mettre dans le code de la combo sous "Entrée de la combo":

    Listeaffiche(Combo,taRéExcuteRequete).

  6. #6
    Membre Expert
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 399
    Par défaut
    Bonjour
    Citation Envoyé par tatayo Voir le message
    Bonjour,
    Pourquoi ne pas mettre cette ligne juste après l'appel de la fenêtre en question ?
    Oui si elle est ouverte par la fonction Ouvre()
    Si c'est par OuvreFille, il faudra que le traitement soit déclenché à la sortie de la fenêtre fille

  7. #7
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Octobre 2013
    Messages
    70
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Octobre 2013
    Messages : 70
    Par défaut
    J avais pensé mettre le code dans le bouton fermer de la fenêtre fille mais la combo n est pas déclarée dans cette fenêtre fille.

  8. #8
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Par défaut
    Bonsoir,

    La fenêtre principale étant ouverte, ses champs sont connus et accessibles par programmation même à partir d'une autre fenêtre à condition de les préfixer du nom de la fenêtre à laquelle ils appartiennent.

    Donc, dans la fenêtre fille, juste après le HAjoute() nouveau compte :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SI HAjoute() ALORS 
       ListeAffiche(LaFenêtrePrincipale.LaComboEnCause, la constante qui convient)
    SINON
       //traiter l'erreur
    FIN
    Sauf erreur de ma part.

    Hemgé

  9. #9
    Membre Expert
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 399
    Par défaut
    Citation Envoyé par pharminticien Voir le message
    J avais pensé mettre le code dans le bouton fermer de la fenêtre fille mais la combo n est pas déclarée dans cette fenêtre fille.
    Par quel code ouvres-tu cette fenêtre ?

  10. #10
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Par défaut
    Il me semble que le plus logique est que ta fenêtre fille renvoie un booléen quand l'insertion est effectuée... donc Mafenetre..ValeurRenvoyée = true

    et dans le code d'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    IF OuvreFille(FEN_Youpi) THEN
        ListeAffiche(LISTE_youpi,tainit)
    END

  11. #11
    Membre Expert
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 399
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 399
    Par défaut
    Citation Envoyé par michel.souris Voir le message
    Il me semble que le plus logique est que ta fenêtre fille renvoie un booléen quand l'insertion est effectuée... donc Mafenetre..ValeurRenvoyée = true

    et dans le code d'appel :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    IF OuvreFille(FEN_Youpi) THEN
        ListeAffiche(LISTE_youpi,tainit)
    END
    Non, une fenêtre fille ne peut pas renvoyer de valeur
    Le code qui suit un OuvreFille est exécuté immédiatement après le OuvreFille

    Ce code est valable avec la fonction Ouvre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    IF Ouvre(FEN_Youpi) THEN
        ListeAffiche(LISTE_youpi,tainit)
    END

  12. #12
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Par défaut
    Autant pour moi !!!!

    Par contre... compte tenu du contexte... quel est l'intérêt de faire un OuvreFille() ?

  13. #13
    Membre Expert
    Homme Profil pro
    Inscrit en
    Octobre 2007
    Messages
    1 075
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Belgique

    Informations forums :
    Inscription : Octobre 2007
    Messages : 1 075
    Par défaut
    Bonjour,

    Citation Envoyé par pharminticien Voir le message
    ...
    Sur ma fenêtre principale, j'ai une combo pour choisir le nom du compte.
    ...
    Mon problème: Lorsque je viens d'ajouter un nouvel enregistrement dans l'analyse et que je ferme le fenêtre d'ajout d'enregistrement, la combo n'affiche pas le nouvel enregistrement.
    Je reviens à la charge. Pourquoi compliquer les choses ?

    La "fenêtre principale" étant ouverte, ses éléments peuvent être manipulés par programmation et indépendamment de la fermeture de la fenêtre secondaire.
    Donc, de n'importe où (Bouton, événement de sortie etc.) dans le code de la "fenêtre d'ajout d'enregistrement", en aval de l'ajout, on peut rafraîchir la combo à condition d'utiliser son nom complet.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ListeAffiche("fenêtre d'ajout d'enregistrement.combo pour choisir le nom du compte", taInit)
    Me trompe-je ?

  14. #14
    Expert confirmé
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 515
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 515
    Par défaut
    Disons que si la fenêtre "fille" est appelée depuis une autre fenêtre "mère", ça ne fonctionne plus, du moins si le nom de la fenêtre est "en dur".

    Le plus simple sera peut-être de tester dans le code d'entrée de la combo si le contenu du fichier lié à changé, et le cas échéant de recharger le tout. Voir de le faire systématiquement, mais c'est bourrin.

    Tatayo.

  15. #15
    Membre Expert
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Par défaut
    .... ou alors de tester l'état de la fenêtre mère via FenEtat...

Discussions similaires

  1. [WD12E] Sélection des enregistrements dans une fenêtre RAD
    Par nambours dans le forum WinDev
    Réponses: 4
    Dernier message: 26/04/2010, 10h16
  2. Réponses: 3
    Dernier message: 15/01/2010, 02h33
  3. position d'un enregistrement dans une table après tri
    Par jaccess dans le forum Requêtes et SQL.
    Réponses: 3
    Dernier message: 31/03/2009, 15h01
  4. Comment modifier un enregistrement dans une table ?
    Par pimst37 dans le forum VBA Access
    Réponses: 3
    Dernier message: 21/02/2008, 21h41
  5. Réponses: 3
    Dernier message: 30/04/2007, 13h22

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