|
PROFESSIONAL NEWSGROUPS WINDEV, WEBDEV and WINDEV Mobile |
| | | | | |
OuvreFille et code qui suit |
Started by Pampi, Oct., 07 2005 4:00 PM - 5 replies |
| |
| | | |
|
| |
Posted on October, 07 2005 - 4:00 PM |
Bonjour,
J'utilise une instruction OuvreFille à partir d'une fenêtre libre.
Mon problème est qu'il faudrait qu'à la fermeture de la fenêtre fille, des procédures locales à la fenêtre libre et/ou du code se déroulent au niveau de ma fenêtre libre (1ère fenêtre du projet).
Or, dans l'aide de OuvreFille, il est stipulé :
Lors de l'appel de la fonction OuvreFille , les traitements suivants sont exécutés : exécution du code "Déclaration des globales" de la fenêtre fille, exécution des codes d'initialisation des champs (l'ordre est indéterminé), exécution des traitements suivant l'appel de la fonction OuvreFille de la fenêtre mère, affichage de la fenêtre fille.
C'est bien entendu le point " exécution des traitements suivant l'appel de la fonction OuvreFille de la fenêtre mère" qui me pose problème : y a-t-il un moyen de contourner ce problème ? Ex : la fenêtre mère contient une liste de clients avec une saisie de paramètres (une dizaine et autant de requêtes derrière + plusieurs boutons de lancement de ces requêtes) pour ne faire afficher que certains clients.
La fenêtre fille ouvre la fiche client pour modif ou création.
Je ne peux donc pas faire un TableAffiche ou relancer les requêtes après le OuvreFille puisqu'il va l'éxécuter avant l'affichage de la fenêtre fille.
Quel est le moyen de gérer tout cela (du code à la fermeture de la fenêtre fille me semblerait incongru ...) ?
Merci par avance pour vos réponses .
Pampi |
| |
| |
| | | |
|
| | |
| |
Posted on October, 07 2005 - 5:08 PM |
Pour ne pas compliquer le pb, j'avais volontairement parlé d'1 fenêtre fille. La réalité est plus compliquée que ça.
1er écran = fenêtre libre avec 1 onglet : 1 volet liste de vendeurs et 1 volet liste d'acquéreurs.
Depuis la fenêtre libre, je veux pouvoir ouvrir une fenêtre fiche vendeur et une fenêtre fiche acquéreur en même temps (je ne veux pas utiliser le MDI).
Voilà, voilà ...
Merci.
Pampi |
| |
| |
| | | |
|
| | |
| |
Posted on October, 07 2005 - 6:29 PM |
Bonjour,
Avez vous réélement besoin d'une fenêtre fille ?
Dans votre cas, une fenêtre modale est peut être nécéssaire....
-- Ed en Ligne
"Pampi" <Pampi@wanadoo.fr> a écrit dans le message de news: 43466aa3$1@news.pcsoft.fr...
Bonjour,
J'utilise une instruction OuvreFille à partir d'une fenêtre libre.
Mon problème est qu'il faudrait qu'à la fermeture de la fenêtre fille, des procédures locales à la fenêtre libre et/ou du code se déroulent au niveau de ma fenêtre libre (1ère fenêtre du projet).
Or, dans l'aide de OuvreFille, il est stipulé :
Lors de l'appel de la fonction OuvreFille , les traitements suivants sont exécutés : exécution du code "Déclaration des globales" de la fenêtre fille, exécution des codes d'initialisation des champs (l'ordre est indéterminé), exécution des traitements suivant l'appel de la fonction OuvreFille de la fenêtre mère, affichage de la fenêtre fille.
C'est bien entendu le point " exécution des traitements suivant l'appel de la fonction OuvreFille de la fenêtre mère" qui me pose problème : y a-t-il un moyen de contourner ce problème ?
Ex : la fenêtre mère contient une liste de clients avec une saisie de paramètres (une dizaine et autant de requêtes derrière + plusieurs boutons de lancement de ces requêtes) pour ne faire afficher que certains clients.
La fenêtre fille ouvre la fiche client pour modif ou création.
Je ne peux donc pas faire un TableAffiche ou relancer les requêtes après le OuvreFille puisqu'il va l'éxécuter avant l'affichage de la fenêtre fille.
Quel est le moyen de gérer tout cela (du code à la fermeture de la fenêtre fille me semblerait incongru ...) ?
Merci par avance pour vos réponses .
Pampi
|
| |
| |
| | | |
|
| | |
| |
Posted on October, 07 2005 - 7:46 PM |
Pampi a écrit :
Bonjour,
J'utilise une instruction OuvreFille à partir d'une fenêtre libre.
Mon problème est qu'il faudrait qu'à la fermeture de la fenêtre fille, des procédures locales à la fenêtre libre et/ou du code se déroulent au niveau de ma fenêtre libre (1ère fenêtre du projet).
Or, dans l'aide de OuvreFille, il est stipulé :
Lors de l'appel de la fonction OuvreFille , les traitements suivants sont exécutés : exécution du code "Déclaration des globales" de la fenêtre fille, exécution des codes d'initialisation des champs (l'ordre est indéterminé), exécution des traitements suivant l'appel de la fonction OuvreFille de la fenêtre mère, affichage de la fenêtre fille.
C'est bien entendu le point " exécution des traitements suivant l'appel de la fonction OuvreFille de la fenêtre mère" qui me pose problème : y a-t-il un moyen de contourner ce problème ? Ex : la fenêtre mère contient une liste de clients avec une saisie de paramètres (une dizaine et autant de requêtes derrière + plusieurs boutons de lancement de ces requêtes) pour ne faire afficher que certains clients.
La fenêtre fille ouvre la fiche client pour modif ou création.
Je ne peux donc pas faire un TableAffiche ou relancer les requêtes après le OuvreFille puisqu'il va l'éxécuter avant l'affichage de la fenêtre fille.
Quel est le moyen de gérer tout cela (du code à la fermeture de la fenêtre fille me semblerait incongru ...) ?
Merci par avance pour vos réponses .
Pampi
Faire dans la fenetre mère une procédure "ReAffiche" qui servira à raffraichir la table et relancer les requetes. Lors de la fermeture de la fenetre fille faire: ExecuteTraitement("FenetreMere.ReAffiche",trtProcedure)
Ca devrait marcher.
-- Pascal N0.pascal.SPAM@efpe.biz Ne garder que le prénom pour me joindre |
| |
| |
| | | |
|
| | |
| |
Posted on October, 08 2005 - 12:59 PM |
Bonjour,
Je poste simplement ma méthode pour réaliser ce genre de choses, sans aucune prétention aucune...
Toutes mes fenetre (listes ou fiches) possédent une procédure Refresh() qui execute les requetes / traitements necessaires (par exemple une fiche client avec 15 onglets, je vais charger uniquement le contenu de l'onglet en cours à l'appel de refresh).
Ensuite j'ai simplement un refresh() dans le traitement "prise de focus de la fenetre" de chacune de mes fenetres, un refresh() dans mon bouton "rechercher", toujours le même refresh dans le traitement "modification de onglet" etc...
On perd certe un peu de temps puisque j'actualise systématiquement les listes sur la prise de focus, mais en contre partie, sur les grosses applis, je n'ai plus aucun problème d'incohérence due par exemple à une liste de fenetre interne non actualisée...
Sur les listes affichant vraiment beaucoup d'enregistrements je limite eventuellement un peu l'utilisation du refresh sur la prise de focus, mais globalement, avec des requêtes bien optimisée, qui n'affichent que le necessaire, je suis trés satisfait de ma technique.
Mais je reste persuadé qu'une méthode de programmation ultra générique, même si elle est un peu moins performante, limite un maximum les bugs...
En espérant avoir aidé, et à l'acoute des méthodes des autres concernant ce point... |
| |
| |
| | | |
|
| | |
| |
Posted on October, 10 2005 - 11:36 AM |
Merci à Pascal F et 2501 pour vos réponses que je vais de ce pas tester.
Bonne journée.
Pampi |
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|