Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Bonjour,
Je souhaiterais accèder à tous les objets d'une datawindow sans connaitre le nom de l'objet.
Par exemple si j'ai une colonne DateFacture et une zone texte Date de Facture
Ma colonne j'arriverais à y accèder avec la commande:
i = 1 //1,2,3,4,5,6,7,8,9,10
ls_nomObjet = maDataWindow.Describe("#"+string(i)+".Name")
Par contre je n'arrive pas à accèder à mon champ texte.
Le but de la manoeuvre est de pouvoir déplacer tous les champs d'un header de 100 vers le haut par exemple en dynamique, car le jour où je rajoute une colonne je n'aurais pas à rajouter une ligne de code.
Pour information je débute au niveau de powerbuilder alors ne soyez pas trop dur.
Merci d'avance.
Dernière modification par Curios (11-09-2008 14:41:40)
Hors ligne
Salut, jette un coup d'oeil à ce script
fais ton traitement selon la valeur de ls_type
bon courage
Hors ligne
Merci avec ça je vais pouvoir me débrouiller.
Hors ligne
n'oublie pas le [RESOLU]
Hors ligne
Bonjour,
Tu peux essayer ça
Long ll_Index, ll_nb_Control, ll_next_index, ll_found_index String ls_text, ls_objects, ls_colonne string ls_liste_object[], ls_vide[] string ls_separateur = "~t" datastore ds_1 //datastore à laquelle tu veux accéder ds_1 = create datastore ds_1.Dataobject = 'Ta_datawindows' ds_1.settransobject(sqlca) //Récupère les objets de ds_1 ls_objects = ds_1.Object.DataWindow.Objects ls_liste_object = ls_vide if len(ls_objects) > 0 then ll_found_index = 1 ll_next_index = pos(ls_objects, ls_separateur, ll_found_index) do while ll_next_index > 0 ls_liste_object[upperbound(ls_liste_object) + 1] = mid(ls_objects, ll_found_index, ll_next_index - ll_found_index) ll_found_index = ll_next_index + 1 ll_next_index = pos(ls_objects, ls_separateur, ll_found_index) loop ls_liste_object[upperbound(ls_liste_object) + 1] = mid(ls_objects, ll_found_index, len(ls_objects)) end if //Parcour le tableau contenant chaque objet ll_nb_Control = upperbound(ls_liste_object) for ll_Index = 1 to ll_nb_Control ls_colonne = ls_liste_object[ll_Index] ls_text = '' //Récupère le text de ton objet ls_text = ds_1.Describe(ls_colonne+".text") If ls_text <> '!' then End if next
Hors ligne