PB à toute heure et à tout moment. (à parcourir avec modération)

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 22-11-2013 18:11:33

legagneur  
Membre Geek
Lieu: Yaoundé
Date d'inscription: 02-10-2013
Messages: 81
Pépites: 395
Banque: 0

[RESOLU] DropdownDatawindow dynamique

Bonsoir cher tous,
J'ai un datawindow dw_1 qui a un ensemble de colonne dont une est une DropDownList. Seulement je ne veux pas mettre les différentes valeurs de ce champ statiquement à travers les proprietés des DataWindows. Je voudrai pouvoir remplir cette colonne de Datawindow en récupérant à chaque fois les valeurs depuis une base de données.
Seulement je n'y arrive pas. Est-ce possible de le faire? si oui comment le faire au niveau du code?
Merci et bonne soirée à tous

Dernière modification par legagneur (26-11-2013 09:29:47)

Hors ligne

 

#2 22-11-2013 19:17:14

rincevent  
Modérateur
Award: bf
Lieu: Belgique
Date d'inscription: 06-02-2007
Messages: 722
Pépites: 100,002,023
Banque: 0

Re: [RESOLU] DropdownDatawindow dynamique

Bonsoir ,

voilà le minimum à coder pour faire d'une colonne une dddw mais il te faut toujours une datawindow (ls_dddw_name ) définie qui fait le retrieve des données

Code: pb

    datawindowchild ldwc_child
    

    ma_dw.Modify(ls_col + ".dddw.name='" + ls_dddw_name + "'")
    ma_dw.Modify(ls_col + ".dddw.displaycolumn='" + ls_displaycolumn_name + "'")
    ma_dw.Modify(ls_col + ".dddw.datacolumn='" + ls_datacolumn_name + "'")

    ma_dw.GetChild(ls_col, ldwc_child)
    ldwc_child.SetTransObject(SQLCA)
    
    ldwc_child.Retrieve()


ça réponds à ta question ?


http://img114.imageshack.us/img114/8519/userbar175801nb.gif
Pourquoi ne puis-je vivre comme n'importe quel être humain ? Pourquoi mon destin est-il de ne pouvoir cesser de me battre ?

Hors ligne

 

#3 25-11-2013 12:24:40

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] DropdownDatawindow dynamique

rincevent a écrit:

ça réponds à ta question ?

Pas sûr : je crois qu'il demande comment remplir dynamiquement une dropdownlist, pas une dropdowndatawindow

Pour remplir dynamiquement une dropdownlist, tu peux appeler en boucle SetValue() :

Code: pb

//exemple avec 2 tableaux labels[] et valeurs[]
string labels[], valeurs[], s
// ...
// [ici on remplit les tableaux]
// ...
ta_datawindow.ClearValues("column_name")
for i = 1 to upperbound(valeurs[])
  //chaque info est composée du label et de la valeur
  //séparés par une tabulation
  s = labels[i] + '~t' + valeurs[i]
  ta_datawindow.SetValue("column_name", i, s)
next

The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#4 26-11-2013 09:23:48

legagneur  
Membre Geek
Lieu: Yaoundé
Date d'inscription: 02-10-2013
Messages: 81
Pépites: 395
Banque: 0

Re: [RESOLU] DropdownDatawindow dynamique

Bonjour,

Merci beaucoup mr SEKI mon problème est résolu

Hors ligne

 

#5 26-11-2013 09:56:26

Yanis  
Modérateur
Lieu: paris
Date d'inscription: 16-06-2010
Messages: 349
Pépites: 665
Banque: 150

Re: [RESOLU] DropdownDatawindow dynamique

Salut,

     

legagneur a écrit:

Je voudrai pouvoir remplir cette colonne de Datawindow en récupérant à chaque fois les valeurs depuis une base de données.

Si les données affichées dans la dropDownList sont récupérées d'une base de donnée celà s'appelle une DropDownDatawindow comme le décrit Rincevent.


Cdt
Yanis

Hors ligne

 

#6 26-11-2013 12:32:11

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: [RESOLU] DropdownDatawindow dynamique

Yanis a écrit:

Si les données affichées dans la dropDownList sont récupérées d'une base de donnée celà s'appelle une DropDownDatawindow comme le décrit Rincevent.

Non.
Une dropdownlist c'est bien un contrôle dans une datawindow qui possède une liste d'items prédéfinis (non basée directement sur une requête). Cette liste peut être remplie "en dur" dans l'éditeur de datawindow, mais rien n'empêche de la remplir dynamiquement (par exemple à l'ouverture de la fenêtre) à partir de données venant d'une requête à la bdd, d'un autre datastore, etc.

Alors qu'une dropdowndatawindow c'est un contrôle qui associe la valeur courante du champ à un élement d'une liste provenant du résultat d'une autre datawindow, qui est basée dans la plupart des cas sur un dataobject et une requête à la base.

Maintenant si tu voulais dire que dans le principe, si les éléments de la dropdownlist proviennent de la base, une dropdowndatawindow est sans doute plus adaptée, je suis d'accord.
À moins que définir une autre datawindow juste pour alimenter la liste ça ne soit trop lourd ?


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

#7 26-11-2013 12:36:59

Yanis  
Modérateur
Lieu: paris
Date d'inscription: 16-06-2010
Messages: 349
Pépites: 665
Banque: 150

Re: [RESOLU] DropdownDatawindow dynamique

Salut

Seki a écrit:

Maintenant si tu voulais dire que dans le principe, si les éléments de la dropdownlist proviennent de la base, une dropdowndatawindow est sans doute plus adaptée, je suis d'accord.
À moins que définir une autre datawindow juste pour alimenter la liste ça ne soit trop lourd ?

Oui c'est tout simplement ce que je voulais dire.  Je pense que c'est moins lourd que de faire soit un curseur et d'alimenter la liste ou de générer dynamiquement une datawindow à partir d'un ordre select et d'alimenter la liste ensuite ou tout autre solution.

Si la dropDowndatawindow n'a pas d'argument de lecture tu n'as rien à faire que de créer ta dropdowndatawindow et de l'associer à la colonne. Si celle ci à un argument de lecture il te faut simplement décocher la propriété autoretrieve lorsque tu associe la dropdowndatawindow et d'effectuer le retrieve comme le montre rincevent dans son exemple  en lui passant tes arguments.


Cdt
yanis

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22