Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour à tous,
Une de mes colonnes est de style drop down datawindow. Je voudrait que les données qu'elle fait apparaître dépendent d'une saisie dans une autre colonne. J'ai pensé enlever la propriété autoretrieve et appeler le retrieve avec la donnée saisie en argument, mais je ne sais pas comment écrire ce retrieve !
Aidez-moi SVP.
Dernière modification par abdelta (11-12-2007 16:53:00)
Hors ligne
il faut passer par getchild
et tu codes ton script sur l'event itemchanged...
Hors ligne
pick ouic a écrit:
et tu codes ton script sur l'event itemchanged...
jusque là je m'en serait sortie toute seule
pick ouic a écrit:
il faut passer par getchild
mais ça, je sais pas faire. Et une fois que j'ai fait un getchild, j'en fais quoi ?
Hors ligne
ls_argument=dw_1.getitemstring(1,"colonne_saisie") dw_1.getchild("nomdetacolonnedropdown",ldw_child) ldw_child.settransobject(sqlca) ldw_child.retrieve(ls_argument)
Hors ligne
J'espère que ta DataWindow principale est plus une fiche (mono-ligne) qu'une liste...
La source de données d'une colonne de style DDDW est globale à la colonne, impossible donc (à ma connaissance) d'avoir proprement une liste dont les éléments sont différents d'une ligne à l'autre.
Si j'ai donc bien compris, tu as besoin d'un bout de code dans ce genre, à insérer dans l'événement itenchanged :
String ls_valeur_selecteur DataWindowChild ldwc If dwo.Name = "ma_colonne_selecteur" And row > 0 Then ls_valeur_selecteur = This.GetItemString(row, dwo.Name) ldw_principale.GetChild("ma_colonne_dddw", ldwc) ldwc.SetTransObject(SQLCA) ldwc.Retrieve(ls_valeur_selecteur) End If
Si plus AutoRetrieve, tu devras aussi appliquer ce Retrieve() manuel à l'initialisation de ta DW principale.
Pense également à vider la valeur de ta colonne dans la DW principale si elle n'est plus cohérente avec les nouvelles valeurs de ta DropDownDW.
Hors ligne
ok, j'ai fait sur getchild et j'ai trouvé dans les exemples
Merci
Hors ligne
Grrr, coiffé au poteau...
Comme quoi, vouloir écrire posément des messages tout bien léchés présente quelques inconvénients
Hors ligne
00 pépites pour FMolinas, pour son temps passé
Hors ligne
FMolinas a écrit:
J'espère que ta DataWindow principale est plus une fiche (mono-ligne) qu'une liste...
La source de données d'une colonne de style DDDW est globale à la colonne, impossible donc (à ma connaissance) d'avoir proprement une liste dont les éléments sont différents d'une ligne à l'autre.
Malheureusement, ma datawindow principale est de type grid. En effet, ca change toute la colonne et pas uniquement la ligne que je veux. Je vais réfléchir à une autre solution.
Hors ligne
Voici deux articles sympas :
1. How to filter Dropdown Datawindows
2. Multi-Key DropDownDataWindows
Hors ligne
Si je peux me permettre, je sais pas si ca t'aidera..Ca permet d'avoir des dropdown avec des listes differentes à chaque ligne :
CE POST
Hors ligne
J'aime bien l'idée développée dans les articles qu'a envoyé Shahin. Je m'en suis inspirée.
Merci à tous.
En ce qui me concerne, c'est résolu.
Hors ligne