|
FORUMS PROFESSIONNELS WINDEV, WEBDEV et WINDEV Mobile |
| | | | | |
[WebDev7] communication entre fenêtres |
Débuté par xavier.pauriol, 11 juil. 2003 12:44 - 5 réponses |
| |
| | | |
|
| |
Posté le 11 juillet 2003 - 12:44 |
bonjour à tous,
je programme un site intranet avec des formulaires. et pour remplir ceux ci je propose à l'utilisateur d'ouvrir des fenêtres secondaires renfermant certaines informations. ma question est la suivante... : comment rapatrier des infos sélectionnées dans ces fenêtres secondaire (ds des combo, des tables et autres) vers des champs (texte) de la fenêtre principale ? (avec bien sur une mise à jour de cette page de façon à ce qu'elle affiche les données sélectionnées) si quelqu'un a un début de réponse n'utilisant pas WWDIALOG [et oui, pas tout le monde n'est abonné à la LST ]
Merci d'avance ! |
| |
| |
| | | |
|
| | |
| |
Posté le 11 juillet 2003 - 12:35 |
Slt Xavier
Avec la notion de Contexte() (contexteOuvre, contexteExiste, etc...) ta frame est toujours active (à moins que tu n'ai fait un contexteFerme()).
Donc pour lire on fait : maValeur = Maframe.monchamp
Il te suffit de tester dans l'autre sens : Maframe.monchamp = maValeur
A priori, il te restera la possibilté dans ta seconde frame de réactualiser la frame à mettre à jour et, dans celle-ci de faire un truc genre MonChamp = maFrame2.monchamp (mais c'est un peu lourd à gérer. J'espère que la première solution est la bonne).
Alain V
"Xavier PAURIOL" <xavier.pauriol@st.com> a écrit dans le message de news: 3f0e8715$1@news....
bonjour à tous, je programme un site intranet avec des formulaires. et pour remplir ceux ci je propose à l'utilisateur d'ouvrir des fenêtres secondaires renfermant certaines informations. ma question est la suivante... : comment rapatrier des infos sélectionnées dans ces fenêtres secondaire (ds des combo, des tables et autres) vers des champs (texte) de la fenêtre principale ? (avec bien sur une mise à jour de cette page de façon à ce qu'elle affiche les données sélectionnées) si quelqu'un a un début de réponse n'utilisant pas WWDIALOG [et oui, pas tout le monde n'est abonné à la LST ] Merci d'avance ! |
| |
| |
| | | |
|
| | |
| |
Posté le 11 juillet 2003 - 13:51 |
Merci Alain je vais tester ça...
cependant un pageActualise() n'est il pas nécessaire pour mettre à jour les champs dans ma frame de départ ? et dans ce cas la problématique est de lancer ce pageActualise() (sur la page principale) après fermeture de la page secondaire...
"Alain V" <alain.vanderriest@snef.fr> wrote:
Slt Xavier
Avec la notion de Contexte() (contexteOuvre, contexteExiste, etc...) ta frame est toujours active (à moins que tu n'ai fait un contexteFerme()).
Donc pour lire on fait : maValeur = Maframe.monchamp
Il te suffit de tester dans l'autre sens : Maframe.monchamp = maValeur
A priori, il te restera la possibilté dans ta seconde frame de réactualiser la frame à mettre à jour et, dans celle-ci de faire un truc genre MonChamp =
maFrame2.monchamp (mais c'est un peu lourd à gérer. J'espère que la première solution est la bonne).
Alain V |
| |
| |
| | | |
|
| | |
| |
Posté le 11 juillet 2003 - 14:28 |
En fin de code un pageactualise devrait être suffisant (quitte à utiliser une procédure globale pour mettre à jour les champs selon les pages dans laquelle tu es, puis en déchargement de page utiliser un flag ou actualiser ta page initiale).
Voilà qq idées qui me viennent à l'esprit.
Fo voir
A+
Alain V
"Xavier PAURIOL" <xavier.pauriol@st.com> a écrit dans le message de news: 3f0e96c5$1@news....
Merci Alain je vais tester ça...
cependant un pageActualise() n'est il pas nécessaire pour mettre à jour
les
champs dans ma frame de départ ? et dans ce cas la problématique est de lancer ce pageActualise() (sur la page principale) après fermeture de la page secondaire... "Alain V" <alain.vanderriest@snef.fr> wrote: Slt Xavier
Avec la notion de Contexte() (contexteOuvre, contexteExiste, etc...) ta frame est toujours active (à moins que tu n'ai fait un contexteFerme()).
Donc pour lire on fait : maValeur = Maframe.monchamp
Il te suffit de tester dans l'autre sens : Maframe.monchamp = maValeur
A priori, il te restera la possibilté dans ta seconde frame de réactualiser > >la frame à mettre à jour et, dans celle-ci de faire un truc genre MonChamp
= maFrame2.monchamp (mais c'est un peu lourd à gérer. J'espère que la première
solution est la bonne).
Alain V
|
| |
| |
| | | |
|
| | |
| |
Posté le 11 juillet 2003 - 16:46 |
j'avais déjà pensé au pageActualise() en fin de code... le seul hic c'est que ce pageActualise ne va pas actualiser ma fenêtre principale mais en ouvrir une nouvelle occurence dans ce qui était ma fenêtre secondaire ! ((
pour ce qui est de mettre à jour les champs via une procédure globale, pas de soucis pour le codage... mais gros soucis une fois de plus pour faire afficher les nouvelles valeurs dans la page principale
bref je tourne en rond là, c'est vraiment prise de tête ! ((
"Alain V" <alain.vanderriest@snef.fr> wrote:
En fin de code un pageactualise devrait être suffisant (quitte à utiliser une procédure globale pour mettre à jour les champs selon les pages dans laquelle tu es, puis en déchargement de page utiliser un flag ou actualiser ta page initiale).
Voilà qq idées qui me viennent à l'esprit.
Fo voir
A+
Alain V |
| |
| |
| | | |
|
| | |
| |
Posté le 11 juillet 2003 - 20:48 |
Patience Xavier ! C'est en effet super galère. J'ai passé des jours sur un problème de ce genre. Sans pouvoir te donner une solution miracle, voici quelques suggestions : 1 - Dans le code d'initialisation navigateur de la deuxième fenêtre, ajoute : ChangeDestination(Frame) avec Frame = le nom de la frame où se trouvent les champs que tu veux actualiser. (Si ta première page n'est pas dans une frame, oublie tout, je n'ai pas de solution. Cette solution ne fonctionne qu'avec une page 1 dans une frame). 2 - A la fin de ton code serveur dans la deuxième page, ajoute : PageAffiche(NomPage) avec NomPage = le nom de la première page qui se trouve dans ta frame citée au point 1. 3 - débrouille-toi pour fermer la fenêtre de la deuxième page après avoir suivi les deux étapes précédentes. Une solution (moche) que j'ai adoptée est de mettre l'instruction NavigateurFerme() dans le code navigateur "onBlur" (perte de focus) du bouton de la deuxième page sur lequel je clique pour la fermer. Comme ce bouton appelle aussi le code serveur du point 2 ci-dessus, l'affichage au premier plan de la page 1 provoque la perte de focus du bouton, donc la fermeture de la frame. Tout cela fonctionne en Webdev 1.5 Peut-être Webdev 7 est-il mieux équipé pour ce genre de voltiges ?
Il y a aussi la LST 47 qui donne un exemple similaire : WWAgenda, avec ouverture d'un petit calendrier dans une fenêtre "popup".
Raphaël
"Xavier PAURIOL" <xavier.pauriol@st.com> a écrit dans le message news: 3f0ebfc9$1@news....
j'avais déjà pensé au pageActualise() en fin de code... le seul hic c'est que ce pageActualise ne va pas actualiser ma fenêtre principale mais en
ouvrir
une nouvelle occurence dans ce qui était ma fenêtre secondaire ! (( pour ce qui est de mettre à jour les champs via une procédure globale, pas de soucis pour le codage... mais gros soucis une fois de plus pour faire afficher les nouvelles valeurs dans la page principale bref je tourne en rond là, c'est vraiment prise de tête ! (( "Alain V" <alain.vanderriest@snef.fr> wrote: En fin de code un pageactualise devrait être suffisant (quitte à utiliser une procédure globale pour mettre à jour les champs selon les pages dans laquelle tu es, puis en déchargement de page utiliser un flag ou actualiser
ta page initiale).
Voilà qq idées qui me viennent à l'esprit.
Fo voir
A+
Alain V
|
| |
| |
| | | |
|
| | | | |
| | |
| | |
| |
|
|
|