Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjours,
J'ai une première datawindow avec plusieurs ligne.
J'en ai une deuxième dont je veux qu'il n'est qu'une seul ligne.
Est il possible de faire un share data entre ces deux datawindow, mais que seul une ligne de la datawindow principale sera chargé dans la seconde datawindow ?
PB 10.2.1
merci d'avance
Dernière modification par Melke (10-09-2007 12:29:21)
Hors ligne
Bonjour,
Non, le Sharedata permet de partager les mêmes données entre deux DW, tu auras donc les mêmes données dans les deux, mais rien ne t'empêche de filtrer les enregistrements récupérer dans la seconde datawindow de façon à n'afficher que la ligne qui t'intéresse...
Hors ligne
Le problème, lorsque je filtre sur la deuxième datawindow, sa ùme filtre aussi la première datawindow
Hors ligne
en effet, tout ce qui est filter(), sort() et compagnie effectué sur une DW en sharedata est automatiquement répercutésur els autres DW's partageant le sharedate.
Ne devrait tu pas simplement utiliser rowscopy(...) ?
Hors ligne
Ah oui, c'est vrai que les deux DW partagent le même buffer de données...
Bon, ton problème, ce ne serait pas de gérer une datawindow liste et une détail par hasard?
Hors ligne
Oui c'est ça...
Comment on fait ?
Dernière modification par Melke (10-09-2007 12:52:49)
Hors ligne
Ok, alors ce qu'il faut que tu fasses, c'est gérer un ScrollToRow au niveau de ta fenêtre détail à chaque fois que tu sélectionneras une ligne dans ta liste:
Au niveau de dw_liste, tu codes ceci dans l'événement "RowFocuschanged"
dw_detail.ScrolltoRow( This.CurrentRow() )
Hors ligne
Sinon tu peux utiliser un RowsCopy de la 1er DW sur la 2eme.
Hors ligne
Je vais prendre la solution de foon
mais, j'ai un autre problème, j'ai une datawindow list, j'ai sur chaque ligne un bouton qui ouvre une popup et qui permet de définir le champs...
J'avais la solution du sharedata étant donnée que je n'avai q'une ligne...
Sa devient plus compliqué...
Dernière modification par Melke (10-09-2007 13:05:06)
Hors ligne