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











Bonjour à tous,
Pour une fois, c'est moi qui vous pose une colle.
Bon, voila mon problème (Je précise que je suis sous environnement PB6.5 sous windows 2000/Citrix / Oracle 8i).
J'ai créé dynamiquement une datawindow (selon la technique classique du SQLCA.SyntaxFromSQL, puis dw.create),
et il me faut modifier l'Edit Style de certains champs pour les afficher sous forme de DDDW.
Problème: en 6.5, le Modify interdit de faire joujou avec ce type d'attribut (seulement accessible pour describe).
Donc, voila ma question: Y a t-il une autre solution pour gérer ce cas, en dehors de modifier la syntax retournée
par le SQLCA.SyntaxFromSQL? d'avance.
Hors ligne

Hors ligne











Merci m'sieur Pick. Je teste ça et je vous tiens au courant
Hors ligne











Et bien ça marche nickel.
Pour info, un extrait de mon code dans la fonction of_format_column
recevant en paramètres en entrée a_dw de type datawindow (ref) et a_s_column de type string (value):
String s_erreur Integer i_return Datawindowchild dwc_current s_erreur = a_dw.Modify(a_s_column+".DDDW.Name='d_dddw_libelle") IF Len(s_erreur) = 0 THEN s_erreur = a_dw.Modify(a_s_column+".DDDW.DataColumn='n_idlib'") END IF IF Len(s_erreur) = 0 THEN s_erreur = a_dw.Modify(a_s_column+".DDDW.DisplayColumn='s_libelle'") END IF IF Len(s_erreur) = 0 THEN /* Retrieve de la dddw: */ i_return = a_dw.GetChild( a_s_column, dwc_current ) IF i_return < 0 THEN s_erreur = "Cette colonne n'est pas une datawindowchild" ELSE dwc_current.SetTransObject(SQLCA) dwc_current.Retrieve() END IF END IF IF Len(s_erreur) > 0 THEN messagebox("Erreur sur fonction of_format_column", s_erreur) END IF
Encorer ms'ieur Pick
Hors ligne











Bonjour à tous,
Je relance ce topic suite à un souci rencontré sur la DDDW utilisée dynamiquement.
Mon script ci-dessus est toujours valable, mais suite à l'ajout de deux paramètres sur le retrieve de la DDDW, j'ai la fenêtre des retrieval arguments qui apparaît
à chaque fois que je passe sur la première ligne du code:
s_erreur = a_dw.Modify(a_s_column+".DDDW.Name='d_dddw_libelle")
Premier réflexe: Couper l'autoretrieve pour pouvoir lancer le retrieve plus tard avec les bons arguments, MAIS, en PB6.5, cette option n'est pas disponible
J'ai bien pensé à modifier ma DDDW afin de charger toutes les options possibles, puis à la filtrer selon les techniques de shahin ou hellkinder,
mais vu le nombre de lignes présentes dans la table rattachée (près de 1000 pour n'en afficher au final que 3 ou 4), ça prend trois plombes à chaque changement de champ lié à la dropdown.
Je ne suis pas sûr non plus qu'il soit possible de modifier dynamiquement la clause WHERE de la dropdown.
Si quelqu'un a déjà été confronté au problème...
Hors ligne
sur ta dw 'd_dddw_libelle', tu fais un insert data d'une ligne vide.

Hors ligne











Pick. Ce serait donc un problème de chargement de la datawindow principale...
Je regarde ça lundi matin et je vous tiens au courant.
Hors ligne











Ca marche nickel ton truc Pick
Si j'ai bien compris, la ligne vide dans le data force le result set de la DDDW,
laquelle ne lance pas le retrieve automatique.
Une solution simple et efficace
Hors ligne