Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Pages: 1
Bonjour,
Je veux charger un DataStore et charger les données de ce datastore dans un controle DropDownListBox. Mon DataStore je l'affecte à un DataWindow ayant des arguments mais je n'arrive pas à charger mon DataStore.
J'utilise une fonction qui ne renvoie rien. Le code de cette fonction est le suivant:
// charger l'ensemble des dropdownlistbox... integer i, li_nbr Datastore lds_var_de_chargement lds_var_de_chargement= CREATE Datastore lds_var_de_chargement.dataobject='d_classes_enseignant' // lds_var_de_chargement.dataobject=la_datawindow lds_var_de_chargement.settransobject(SQLCA) IF nb_criteres=2 THEN li_nbr=lds_var_de_chargement.retrieve(critere1,critere2) //li_nbr=lds_var_de_chargement.retrieve() messagebox("",string(li_nbr)+", "+critere1+", "+string(critere2)) ELSE IF nb_criteres=3 THEN li_nbr=lds_var_de_chargement.retrieve(critere1,critere2,critere3) END IF END IF //uo_criteres.ddlb_directions.additem(" - - - - - Tous les élements - - - - -") For i=1 To lds_var_de_chargement.rowcount() le_cobo_box.Additem(lds_var_de_chargement.object.data[i,2]) NEXT //uo_criteres.ddlb_directions.text=" - - - - - Tous les élements - - - - -" destroy lds_var_de_chargement //return li_nbr
Quelqu'un peut-il m'aider?
Merci
Hors ligne
dans ta boucle construis la chaine de valeurs, libellés séparés par tabulations et slashs, et ensuite affecte ça à la propriéte values de la colonne :
ls_chaine = 'data1~tdisplay1/data2~tdisplay2/data3~tdisplay3' dw_1.Modify( "la_colonne_ddlb.Values='" + ls_chaine + "'" )
Hors ligne
Bonjour Fosta,
Juste une question: Il y a une raison pour que tu n'utilises pas une dropdowndatawindow?
Hors ligne
Dis moi FOSTA, quand tu parles de DropDownListBox, tu parles du style d'édition du même nom dans un DataWindow control, ou simplement du contrôle standard?
Parce que je pense qu'erasorz a compris la 1ère version, et moi je me tâte...
Hors ligne
Cortex a écrit:
Parce que je pense qu'erasorz a compris la 1ère version, et moi je me tâte...
tout à fait Thierry...
d'ailleurs j'ai répondu mécaniquement, mais c'est vrai que la question de foon est pertinente également, pourquoi pas un DDDW ?
si c'est un DDLB de fenêtre, dans ta boucle il suffit d'utiliser listboxname.AddItem( item )
Hors ligne
La variable "li_nbr" renvoie zéro (0) cela m'amene à comprendre qu'il n'y a aucun enregistrement dans la datastore or lorsque je fais un retrieve sur la DataWindow 'd_classes_enseignant' en lui donnant les paramèteres "matricule"(qui est un String) et l'année qui sont mes deux paramètres, j'ai bien l'affichage de mes enregistrements en resultat. je peux donc conclure que la datasore ne charge pas les données.
Je n'utilise pas une dropdowndatawindow parce que j'utilise le controle standard DropDownListBox.
Hors ligne
Bien déduit à mon avis.
Ok, on avance là... Donc, en développement ta dw retrieve bien tes données mais à l'exécution tu n'as ni erreurs ni rows.
Bref, y a un truc qui a foiré
Essaie de vérifier que tout est correctement initialisé, si ca tombe, c'est tout bête...
li_nbr=lds_var_de_chargement.retrieve(critere1,critere2) if li_nbr = 0 then // déterminer ce qui va pas... if not isvalid( lds_var_de_chargement.object ) then messagebox('Erreur', 'DataObject non initialisé correctement') if sqlca.dbhandle() <= 0 then messagebox('Erreur', 'Transaction non connectée') elseif li_nbr < 0 then messagebox('Erreur', 'Erreur lors du retrieve') end if
T'as vérifier la valeur de tes arguments critere1 et critere2?
T'es sûr d'être sur la même DB en développement et à l'exécution?
Hors ligne
N'aurais tu pas unproblème de format avec ton argument année?
Hors ligne
Cortex, les arguments renvoient les bonnes valeurs.
J'ai ajouté le code pour verifier s'il y a une erreur mais il n'y a aucun message d'erreur.
Hors ligne
FOSTA a écrit:
Cortex, les arguments renvoient les bonnes valeurs.
J'ai ajouté le code pour verifier s'il y a une erreur mais il n'y a aucun message d'erreur.
Attend, ca va pas ça...
La dernière possibilité, c'est que lors du retrieve dans PB tu utilise une connection DB différente de celle que ton appli utilise via SQLCA lors de l'exécution, et que dans un cas il y ait des données et pas dans l'autre...
Je vois pas ce que ça serait d'autre...
Hors ligne
J'ai pu résoudre le problème. En fait, il n'y avait pas de problème je me connectais avec le mauvais utilisateur. Le code que je vous ai présenté marche bien.
Merci à tous pour votre aide.
Hors ligne
N'oublies pas le [RESOLU]
Hors ligne
je n'y colle !!!!!!!!
Hors ligne
Pages: 1