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








Bonjour à tous,
Je suis sur PB9 et je souhaiterai connaître la structure de la datawindow en cours d'analyse.
Par exemple, j'ai la dw_1 qui contient les champs A, B, C et D. Je souhaiterai boucler sur ces 4 champs de
manière à vérifier pour chacun d'entre eux une caractéristique (par exemple, s'ils sont en gras).
Comment puis-je faire cela ?
Merci.

Hors ligne














Exemple de script pour boucler sur les colonnes :
ll_count = Long ( dw_1.Describe( 'DataWindow.Column.Count' ) ) For ll_cpt = 1 To ll_count ls_colname = Lower( dw_1.Describe( '#' + String( ll_cpt ) + '.Name' ) ) Next
Hors ligne








Merci erasorz, c'est exactement ce que je cherchais, cependant pour les computed field, comment puis-je
faire ?

Hors ligne





salut,
il existe une méthode qui te permet d'obtenir la liste complète des champs de la datawindow
String ls_value ls_value = dw_1.describe ( "datawindow.objects")
La chaine retounée comprend tous les champs ( label , data , compute filed etc. ) séparé par une tabulation. A toi de découper cette chaine pour éliminer les champs label etc ( ex : si tu as respecté le nommage des champs label avec _t à la fin il est facile de les retirer) et ne prendre que ce qui t'interress
NB : Attention le mot objects prend un S dans ce cas
Cdt
Yanis
Dernière modification par Yanis (06-08-2010 12:34:30)
Hors ligne








Merci beaucoup Yanis pour cette réponse, je pourrai ainsi résoudre mon problème !
Doctor Z.

Hors ligne





salut,
Voici un script pb qui te permettra de faire ce que tu désire
string ls_list_object integer li_pos integer li_pos_debut String ls_nom_col ls_list_object = dw_column_list.describe ( "datawindow.objects" ) li_pos = pos ( ls_list_object, char ( 9) ) li_pos_debut = 1 do while li_pos > 0 ls_nom_col = mid ( ls_list_object , li_pos_debut , li_pos - li_pos_debut ) ls_nom_col = trim (ls_nom_col ) Choose case dw_column_list.describe ( ls_nom_col + ".type" ) Case "text" //............. //............. Case "column" //............. //............. Case "compute" //............. //............. End choose li_pos ++ li_pos_debut = li_pos li_pos = pos ( ls_list_object , char ( 9) , li_pos ) loop
cdt
Yanis
Hors ligne








Yanis a écrit:
salut,
Voici un script pb qui te permettra de faire ce que tu désireCode: pb
string ls_list_object integer li_pos integer li_pos_debut String ls_nom_col ls_list_object = dw_column_list.describe ( "datawindow.objects" ) li_pos = pos ( ls_list_object, char ( 9) ) li_pos_debut = 1 do while li_pos > 0 ls_nom_col = mid ( ls_list_object , li_pos_debut , li_pos - li_pos_debut ) ls_nom_col = trim (ls_nom_col ) Choose case dw_column_list.describe ( ls_nom_col + ".type" ) Case "text" //............. //............. Case "column" //............. //............. Case "compute" //............. //............. End choose li_pos ++ li_pos_debut = li_pos li_pos = pos ( ls_list_object , char ( 9) , li_pos ) loop
cdt
Yanis
Merci beaucoup Yanis pour ta réponse complète

Hors ligne