Pas de problème (pb), que du PowerBuilder (PB) ^^

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

Recherche rapide

Annonce

Certaines rubriques, dont des cours, sont uniquement visibles par les membres du forum ^^.
Dans la rubrique Liens & Références, vous avez accès à un sommaire de téléchargement, profitez-en !
Il existe maintenant un nouveau TOPIC "Votre CV en Ligne" accessible uniquement par demande.

#1 24-01-2013 14:53:18

Sylvie de hannut  
Membre completement Geek
Lieu: Hannut (Belgique)
Date d'inscription: 10-06-2011
Messages: 123
Pépites: 499
Banque: 0

Affichage incorrect de nested report

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 :

Code: pb

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

Code: = Pb

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

 

#2 24-01-2013 16:45:31

Yanis  
Modérateur
Lieu: paris
Date d'inscription: 16-06-2010
Messages: 349
Pépites: 665
Banque: 150

Re: Affichage incorrect de nested report

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

 

#3 25-01-2013 09:24:53

Sylvie de hannut  
Membre completement Geek
Lieu: Hannut (Belgique)
Date d'inscription: 10-06-2011
Messages: 123
Pépites: 499
Banque: 0

Re: Affichage incorrect de nested report

oui, oui Yanis c'est fait, j'ai juste oublié de vous mettre les lignes de code

Code: pb

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

 

#4 25-01-2013 12:13:29

erasorz  
Admin
Lieu: Babylone
Date d'inscription: 23-11-2006
Messages: 5121
Pépites: 97,197
Banque: 2,147,483,647

Re: Affichage incorrect de nested report

un petit effort sur la balise code=pb (sans espaces et en minuscules)


N'envoyez jamais un humain faire le travail d'un programme.

Hors ligne

 

#5 25-01-2013 15:24:39

Sylvie de hannut  
Membre completement Geek
Lieu: Hannut (Belgique)
Date d'inscription: 10-06-2011
Messages: 123
Pépites: 499
Banque: 0

Re: Affichage incorrect de nested report

Personne sait comment faire pour que mon écran soit afficher correctement ????

Hors ligne

 

#6 29-01-2013 10:14:53

Sylvie de hannut  
Membre completement Geek
Lieu: Hannut (Belgique)
Date d'inscription: 10-06-2011
Messages: 123
Pépites: 499
Banque: 0

Re: Affichage incorrect de nested report

Hello je corse encore plus le problème !!!

J'avais :

Code:

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 :

Code:

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

Code: pb

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

 

#7 29-01-2013 11:14:41

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2487
Pépites: 88
Banque: 9,223,372,036,854,776,000

Re: Affichage incorrect de nested report

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


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#8 29-01-2013 13:03:44

Sylvie de hannut  
Membre completement Geek
Lieu: Hannut (Belgique)
Date d'inscription: 10-06-2011
Messages: 123
Pépites: 499
Banque: 0

Re: Affichage incorrect de nested report

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

 

#9 29-01-2013 13:15:56

foon  
N2iGeek + MangasGeek = foon
Award: bf
Lieu: Bonchamp-Lès-Laval
Date d'inscription: 28-02-2007
Messages: 2487
Pépites: 88
Banque: 9,223,372,036,854,776,000

Re: Affichage incorrect de nested report

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.


Seuls ceux qui ne font rien ne font jamais d'erreurs
http://www.nerdtests.com/images/badge/163124fb7fb459a3.gif

Hors ligne

 

#10 29-01-2013 14:31:35

Sylvie de hannut  
Membre completement Geek
Lieu: Hannut (Belgique)
Date d'inscription: 10-06-2011
Messages: 123
Pépites: 499
Banque: 0

Re: Affichage incorrect de nested report

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

Code: = pb

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

 

#11 29-01-2013 14:48:55

seki  
0x73656B69
Award: bf
Lieu: Laquenexy & Luxembourg
Date d'inscription: 20-11-2008
Messages: 1118
Pépites: 4,296,080,204
Banque: 9,223,372,036,854,776,000
Site web

Re: Affichage incorrect de nested report

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é").


The best programs are the ones written when the programmer is supposed to be working on something else. - Melinda Varian

Mes réponses PB sur StackOverflow
http://stackoverflow.com/users/flair/317266.png

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22