Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous
Je ne sais pas si quelqu'un a déjà eu ce problème et s'il y a une subtilité qui m'échappe ( du à un framework douteux) ou s'il s'agit vraiment d'un bug PB.
J'ai deux dw, un maitre et une fille, je travaille avec des filtres pour afficher le détail du maitre dans la dw fille. Pas de soucis jusqu'ici tout fonctionne.
Seulement quand je déclenche l'itemerror dans la dw fille, eh bien quand je change de ligne dans la dw maitre, le filtre ne fonctionne plus, les éléments sont les même qu'avant le déclenchement de l'itemerror.
Le rowfocuschanged se déclenche bien au debugger, et le setfilter et le filter me retournent 1.
Mais à l'affichage, la dw fille affichent toujours les éléments de départ ...........
Je suis en PB 12.5 sous win 7 64 bits.
Merci à ceux qui sauront m'expliquer ce phénomène !
Dernière modification par rapitou (25-07-2013 08:54:17)
Hors ligne
Bonjour,
avant de relancer un filtre,
re-initialises tu le filtr ?
dwa.setfilter("")
dwa.filter()
A+++
Hors ligne
rhooo pffff la question !
Oui c'est écrit dans mon message
Hors ligne
Mon système de filtre fonctionne très bien, mais dès que je passe dans l'itemerror de la dw detail ça fout la grouille ....
Hors ligne
Rien de spécial dans itemError de cette DW ou des couches inférieures (l'évènement est peut être traité sur plusieurs couches de surcharge) ?
Hors ligne
J'ai fait un override dans l'itemerror, qui retourne 1
Hors ligne
Apparemment le filtre ne se passe pas bien, parce que l'évènement itemerror est de nouveau déclenché dans le dw fille quand je veux changer de ligne dans la dw maitre. Sauf que je n'avais pas de message à cause de mon return 1.
Maintenant il faut que je vois pourquoi le premier déclenchement de l'itemerror provoque un déclenchement systématique quand je change de ligne ....
Hors ligne
C'est bon j'ai trouvé ....
Le premier itemerror se déclenché quand je veux cocher une case ( donc passer la valeur d'un champ à 1). Sauf que je n'ai pas les droits donc la valeur 1 est rejetée pour repasser à la valeur initiale qui était à null ... Sauf que mon champ est un checkbox ( ok = 1 , ko = 0 ) et que du coup il ne veut plus de la valeur null qui était pourtant celle de départ.
Donc il repassait dans l'itemerror mais je n'avais pas l'info puisque mon return 1 n'affiche pas de message.
Donc j'initialise mon champ à 0 plutôt que de le laisser à null.
Merci pour votre aide !
Hors ligne