Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
Hello tout le monde,
j'ai un problème d'affichage de certains nested, en fait j'ai un problème avec tout les nested des autres lignes, de ma dw principale, que la première.
Juste à l'affichage, pas lors du printpreview
Je remplis les nested via dotnotation :
li_cpt2 = 1 do while li_cpt2 <= 25 and & istr_data3[li_cpt].hosp_hospi_serv[li_cpt2,1] <> '' and & not isnull(istr_data3[li_cpt].hosp_hospi_serv[li_cpt2,1]) idw_dw.object.dw_hospi3[li_row].object.hospi_inami[li_cpt2] = istr_data3[li_cpt].hosp_hospi_serv[li_cpt2,1] idw_dw.object.dw_hospi3[li_row].object.hospi_descr[li_cpt2] = istr_data3[li_cpt].hosp_hospi_serv[li_cpt2,2] idw_dw.object.dw_hospi3[li_row].object.hospi_service[li_cpt2] = istr_data3[li_cpt].hosp_hospi_serv[li_cpt2,3] li_cpt2 ++ loop
Après la fin de la boucle LI_ROW
if idw_dw.GetChild('dw_hospi3', ldwc) <> 1 then messagebox ('','Bardaf') else li_ret = ldwc.setsort('hospi_inami,hospi_descr') li_ret = ldwc.sort() li_ret = ldwc.groupcalc() end if
Si li_row > 1, à l'écran mes données sont "mélangées", elles se "marchent dessus"
Apparement le groupcalc ne fonctionnerait que pour les nested liés à la 1ère ligne, pas aux lignes suivantes ?????????????
Pourquoi ?
Et que faire pour que ça marche ?????????
Merci
Hors ligne
Salut,
Si tu n'es pas dans une datawindow composite as tu pensé à modifer le source de ta datawindow principale en mettant [processing=5]
Cdt
Yanis
Hors ligne
oui, oui Yanis c'est fait, j'ai juste oublié de vous mettre les lignes de code
old_processing = idw_dw.Object.Datawindow.processing idw_dw.Object.Datawindow.processing = "5" if idw_dw.GetChild('dw_hospi3', ldwc) <> 1 then messagebox ('','Bardaf 1') else li_ret = ldwc.setsort('hospi_inami,hospi_descr') li_ret = ldwc.sort() li_ret = ldwc.groupcalc() end if if idw_dw.GetChild('dw_amb3', ldwc) <> 1 then messagebox ('','Bardaf 2') else li_ret = ldwc.setsort('amb_inami,amb_descr') li_ret = ldwc.sort() li_ret = ldwc.groupcalc() end if idw_dw.Object.Datawindow.processing = old_processing
Dernière modification par Sylvie de hannut (25-01-2013 12:47:50)
Hors ligne
un petit effort sur la balise code=pb (sans espaces et en minuscules)
Hors ligne
Personne sait comment faire pour que mon écran soit afficher correctement ????
Hors ligne
Hello je corse encore plus le problème !!!
J'avais :
Dw_principale Dw1 Dw2 DW3 : : DW22
Or un de ces nested comportait une zone de taille variable dans le header d'un group, ce qui en PB9.0.3 Build 8511, n'était pas gérable, vu que le header n'a pas l'option autosize height.
J'ai donc dû faire 3 nested avec ma nested de base et voici donc ce que cela donne :
Dw_princ Dw1 Dw2 Dw3 Dw4 Dw4-1 Dw4-2 Dw5 Dw6 Dw7 Dw7-1 Dw7-2
J'ai toujours mes données des dw3, dw4 (...) ansi que dw6 & dw7 qui se chevauchent.
Avec une seule dw4 ou dw7, et une seule ligne de dw_principale, je faisais
old_processing = idw_dw.Object.Datawindow.processing idw_dw.Object.Datawindow.processing = "5" if idw_dw.GetChild('dw_hospi3', ldwc) <> 1 then messagebox ('','Bardaf hospi') else li_ret = ldwc.setsort('hospi_inami') li_ret = ldwc.sort() li_ret = ldwc.groupcalc() end if if idw_dw.GetChild('dw_amb3', ldwc) <> 1 then messagebox ('','Bardaf ambul') else li_ret = ldwc.setsort('amb_inami') li_ret = ldwc.sort() li_ret = ldwc.groupcalc() end if idw_dw.Object.Datawindow.processing = old_processing
Et ça marchait, mais là, que dois-je faire ????
faire le getchild des dw4-1 et 4-2 + getchild de ma dw 4, et faire un groupcalc pour chacun ???
Comment faire, si ça marche, pour que ça fonctionne si j'ai plusieurs lignes dans ma dw principale ?????
Je suis vraiment dans la panade
Maintenant je ne sais même plus faire le getchild sur la dw 4, returncode = -1 !!!
Merci à tous
Dernière modification par Sylvie de hannut (29-01-2013 10:24:08)
Hors ligne
Attention! Il y a une limitation à ce propos d'indiquée dans l'aide PB:
F1 a écrit:
Nested Report You cannot use GetChild to get a reference to a report in a composite datawindow when the report itself is a composite or nested datawindow
Hors ligne
Pourtant dans l'aide, pour les datawindowchild, on trouve la fonction getchild.
C'est pas logique.
Ce qui me trouble également, c'est que je n'arrive plus à faire un getchild de ma datawindow, maintenant qu'elle contient 2 nested, avant j'y arrivais.
Hors ligne
Les datawindowchilds ne sont jamais des composites (si tu essayes d'en créer une contenant un report, tu ne pourras pas l'utiliser).
Par contre, maintenant que ta dw_4 contient des reports (dw_4_1 et dw_4_2), elle est devenue, de facto,
une composite. D'où le plantage du GetChild dessus.
Hors ligne
Bonjour j'essaye une autre solution :
je garde ma dw de base, contenant une zone de taille variable dans le header du group.
voici ce que j'essaye de faire
old_processing = idw_dw.Object.Datawindow.processing idw_dw.Object.Datawindow.processing = "5" if idw_dw.GetChild('dw_hospi3', ldwc) <> 1 then messagebox ('','Bardaf hospi') else if ldwc.object.amb_descr.height > 60 then li_height = ldwc.object.amb_descr.y + ldwc.object.amb_descr.height + 100 ldwc.Object.DataWindow.Header.1.Height= li_height end if ldwc.setsort('hospi_inami') ldwc.sort() ldwc.groupcalc() end if idw_dw.Object.Datawindow.processing = old_processing
J'ai l'erreur : C0019 : incompatible property object for type datawindowchild
Comment faire, alors, pour récupérer la hauteur d'une zone + la hauteur du header dans une dwchild ???
Merci
Hors ligne
Sylvie de hannut a écrit:
J'ai l'erreur : C0019 : incompatible property object for type datawindowchild
Comment faire, alors, pour récupérer la hauteur d'une zone + la hauteur du header dans une dwchild ???
Au lieu d'utiliser la notation ldwc.object.propriété essaie de passer par ldwc.describe("propriété").
Hors ligne