Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Je vais tenter de vous expliquer mon problème de façon clair.
Pour récupérer une valeur sélectionnée et un élément qui colle à cette valeur dans la DDDW on fait par exemple:
dw_main.getchild( "es_client", ldwc_client) ls_name = dw_main.object.es_client[1] li_age = ldwc_client.getitemnumber(ldwc_client.getselectedrow(0) , "age_cli")
Cependant, j'ai une DW Grid où j'ai une série de DDDW (donc j'ai plusieurs listes de selection de clients)
Si je veux récupérer tous les noms , c'est simple :
for li_i = 1 to ii_nombreCli lstr_tabCli.nomCli[li_i] = dw_main.object.es_client[li_i] next
Mais comment récupérer l'age de chacun?
si je récupère dw_main.getchild( "es_client", ldwc_client) , il prendra en compte le dernier seulement :s
J'espère avoir été assez précis, si vous avez besoin d'autre chose, n'hésitez pas.
Merci d'avance !
Dernière modification par micmx (14-04-2009 14:19:15)
Hors ligne
Dans une DW la DDDW est associée à une colonne et est la même sur chaque ligne (par exemple si tu filtres ta DDDW pour en supprimer quelques lignes, tu verras apparaître les valeurs sur les lignes pour lesquelles la DDDW ne peut plus afficher la display value). Donc un seul GetChild suffit. Ensuite tu peux utiliser un find sur ta child pour accéder aux âges des clients.
long ll_row integer li_i datawindowchild ldwc_client dw_main.getchild( "es_client", ldwc_client) for li_i = 1 to ii_nombreCli lstr_tabCli.nomCli[li_i] = dw_main.object.es_client[li_i] ll_row = ldwc_client.Find("es_client = '" + dw_main.object.es_client[li_i]+"'", 1, ldwc_client.RowCount()) if ll_row > 0 then lstr_tabCli.ageCli[li_i] = ldwc_client.Object.age_cli[ll_row] end if next
Mais attention utiliser une DDDW pour une liste de clients risque vite d'être galère, sauf si ton application gère quelques clients seulement...
Hors ligne
il y a aussi la possibilité de faire la jointure dans ta requête et d'ajouter l'age en colonne invisible (valable après le retrieve et avant une re-sélection éventuelle dans le DDDW )
Hors ligne
J'ai juste remplacé le ldwc_client.object par ldwc_client.getItemNumber vu que la propriété n'existe pas sur un dwc
Sinon c'est parfait!
Il ne s'agit pas de clients, j'ai mis des clients à titre d'exemple.
Merci pour votre aide
Dernière modification par micmx (14-04-2009 14:00:20)
Hors ligne