PC SOFT

FORUMS PROFESSIONNELS
WINDEVWEBDEV et WINDEV Mobile

Accueil → WEBDEV 2024 → [WebDev7] communication entre fenêtres
[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