Après windows pour les nuls, voici PB pour les bons (ou presque).

Le forum (ô combien francophone) des utilisateurs de Powerbuilder.

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 14-04-2009 08:25:48

micmx  
Membre Geek
Date d'inscription: 02-02-2009
Messages: 84
Pépites: 1,028
Banque: 1,383,846,119

[RESOLU] Récupérer les "Child" de plusieurs DDDW

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:

Code: pb

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 :

Code: pb

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

 

#2 14-04-2009 12:48:52

Chrnico  
N2I Power
Award: bf
Lieu: Vanves
Date d'inscription: 05-06-2007
Messages: 1206
Pépites: 12,884,901,943
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] Récupérer les "Child" de plusieurs DDDW

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.

Code: pb

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...


Tu dois donc tu peux (Kant)

Tu peux donc tu dois (N2i)
www.n2i.fr

Hors ligne

 

#3 14-04-2009 12:56:56

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: [RESOLU] Récupérer les "Child" de plusieurs DDDW

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 )


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#4 14-04-2009 13:55:06

micmx  
Membre Geek
Date d'inscription: 02-02-2009
Messages: 84
Pépites: 1,028
Banque: 1,383,846,119

Re: [RESOLU] Récupérer les "Child" de plusieurs DDDW

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

 

Pied de page des forums

Propulsé par FluxBB 1.2.22