Modifier

Hier (ou avant hier), j'ai répondu à une question sur le forum de PCSoft® et je me suis dit que l'information en intéresserait certains d'entre vous.

Lien vers le post original.

L'idée était de pouvoir rafraîchir le contenu d'une table qui se trouve dans une fenêtre interne. L'objectif était d'utiliser cette fenêtre interne dans un onglet dynamique.

Pour moi, il faut considérer la fenêtre interne comme une boîte noire. Il faut en connaître le moins possible pour l'utiliser.

Je vous renvoie déjà sur mon article précédent : WinDev® - Oui à l'indépendance des fenêtres internes. Il explique comment rendre une fenêtre interne indépendante de sa fenêtre mère.

Là, c'est plutôt l'inverse. On souhaite que la fenêtre mère en connaisse le moins possible de la fenêtre interne.

Pour cela, je crée dans ma fenêtre interne (appelée fintTest) une procédure Rafraîchir. Imaginons que je souhaite rafraîchir une table (son nom sera UneTable pour rester simple). Ma méthode Rafraichir va donc ressembler à cela.

Procedure Rafraichir()
    TableAffiche(UneTable,taInit)

Dans la fenêtre mère, on va donc rajouter notre onglet et créer un onglet via la méthode suivante :

NomAliasOnglet est une chaîne = OngletOuvre(Onglet1,"Test",fintTest)
Ajoute(tAlias, UnAlias)

L'alias de l'onglet (contenu dans NomAliasOnglet) permet d'agir dessus.

Enfin, pour rafraîchir le contenu de la fenêtre interne, on fait :

SI ChampExiste(NomAliasOnglet) ALORS
    UnOnglet est un Champ <- Onglet1[NomAliasOnglet ]
    UnOnglet.fintTest.Rafraichir(NomAliasOnglet )
FIN

Et voilà, je peux rafraîchir à volonté ma fenêtre interne. Et ça marche même si j'ai plusieurs onglets ouverts avec la même fenêtre interne. Je ne rafraîchit que l'onglet qui m'intéresse.

J'espère que cet article vous aidera à utiliser plus facilement les fenêtres internes.

Pour les abonnés, sachez que je vous ai mis à disposition un projet exemple dans le dossier :

  • 2017-10-26 Fenêtre interne, onglet dynamique et rafraichissement

Si ce n'est pas encore le cas, abonnez-vous et récupérez l'exemple gratuitement.

Merci pour votre lecture !

Article suivant Article précédent

Blog Comments powered by Disqus.