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
    Nouveau membre du Club
    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
    Points : 26
    Points
    26
    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 confirmé Avatar de wd_newbie
    Homme Profil pro
    Développeur
    Inscrit en
    Mars 2007
    Messages
    723
    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 : 723
    Points : 627
    Points
    627
    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
    Nouveau membre du Club
    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
    Points : 26
    Points
    26
    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 éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

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

    Tatayo.

  5. #5
    Nouveau membre du Club
    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
    Points : 26
    Points
    26
    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
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    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
    Nouveau membre du Club
    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
    Points : 26
    Points
    26
    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 émérite
    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
    Points : 2 441
    Points
    2 441
    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
    Expert confirmé
    Homme Profil pro
    ?
    Inscrit en
    Juillet 2002
    Messages
    2 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    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 chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    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
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

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

    Informations professionnelles :
    Activité : ?

    Informations forums :
    Inscription : Juillet 2002
    Messages : 2 378
    Points : 4 494
    Points
    4 494
    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 chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

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

    Par contre... compte tenu du contexte... quel est l'intérêt de faire un OuvreFille() ?
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

  13. #13
    Membre émérite
    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
    Points : 2 441
    Points
    2 441
    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 éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    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 chevronné
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2009
    Messages
    1 278
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Mars 2009
    Messages : 1 278
    Points : 2 151
    Points
    2 151
    Par défaut
    .... ou alors de tester l'état de la fenêtre mère via FenEtat...
    SQL : le véritable Esperanto

    "Les patates à ta tata épatent ton tonton mais les pates aux thons à ton tonton épatent pas ta tata." (Michel Souris)

    MERCI DE NE PAS M'ENVOYER DE MESSAGE PRIVE POUR DES QUESTIONS TECHNIQUES SANS MON ACCORD !

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, 09h16
  2. Réponses: 3
    Dernier message: 15/01/2010, 01h33
  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, 14h01
  4. Comment modifier un enregistrement dans une table ?
    Par pimst37 dans le forum VBA Access
    Réponses: 3
    Dernier message: 21/02/2008, 20h41
  5. Réponses: 3
    Dernier message: 30/04/2007, 12h22

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