Page 1 sur 1

[Résolu] Rafraichir une vue dans un cadre

MessagePublié: 24 Août 2011 à 08:51
par pascal29
Bonjour,

J'ai un agencement de cadre, on va résumer ça à 2 cadres, gauche et droite.
Celui de gauche sert à la navigation et celui de droite à l'affichage des vues.

A gauche, j'ai mis en place une zone de liste déroulante avec 2 choix possibles qui change une variable d'environnement selon la valeur sélectionnée.

Là où ça coince, c'est que j'aimerais rafraichir une vue selon le choix fait, donc selon la variable d'environnement.
Dans le PostOpen de ma vue j'ai ajouté :
Code : Tout sélectionner
@SetViewInfo([SetViewFilter];@Environment(variable) ;"Site";1)

Tout ça fonctionne très bien à l'ouverture de la base mais impossible de rafraichir la vue après que la variable d'environnement ait changé.

Pour info, j'avais également ajouté dans le QueryRecalc de ma vue ce que j'ai mis dans le PostOpen. Et là j'ai quelques erreurs qui apparraissent ("Evalutations de formules récursives trop nombreuses"), mais au final, après acquittement des erreurs, ma vue se rafraichit bien ...

Si quelqu'un a une idée,
Merci.

MessagePublié: 24 Août 2011 à 12:42
par roubech
Je suppose que tu positionne ta variable d'environnement sur le onchange de ta liste déroulante. tu as essayé de faire un OpenView juste après ? plutot que de chercher à envoyer un évènement refresh au cadre ou à la vue dans le cadre, tu viens simplement chrger la vue souhaité dans ce cadre et le PostOpen sera de nouveau exécuté ...

MessagePublié: 25 Août 2011 à 10:16
par pascal29
C'est bien dans le OnChange que je change ma variable d'environnement.
Et oui, j'ai essayé avec un OpenView pour forcer la réouverture mais ça ne change rien.
Ce qui est bizarre, c'est que j'ai accès à d'autre vue via mon cadre de navigation de gauche, et que quand je change de vue et que je reviens sur ma vue que je souhaite rafraichir, ben là, la vue est bien à jour par rapport à la variable d'environnement. Donc d'un coté ça fonctionne mais si je suis obligé de changer de vue pour revenir sur la vue initiale, c'est pas super ...

MessagePublié: 25 Août 2011 à 11:06
par Raziel
Une solution comme ça... elle vaut ce quelle vaut.

1. Dans ta liste déroulante, coche l'option "Raffraichir à chaque nouveau mot clé"
2. Dans ta vue, dans l'évènement PostOpen, tu laisse ton code actuel.
3. Dans le masque contenant ta lsite déroulante, ajoute, dans l'évènement "PostRecalc" le code suivant :
Code : Tout sélectionner
@Environment("nom de ta variable d'environnement";nom de la liste déroulante);
@SetTargetFrame("nom du cadre qui affiche ta vue");
@Command([OpenView]; "Nom de ta vue");
@SetViewInfo([SetViewFilter];@Environment("nom de ta variable d'environnement") ;"Site";1)

MessagePublié: 26 Août 2011 à 07:45
par pascal29
Ta solution fonctionne Raziel !

Merci à tous.