Après windows pour les nuls, voici PB pour les bons (ou presque).

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 25-05-2009 13:09:02

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

[Problème réouvert] Entête spécifique pour mon état

Salut à tous,
Mon rapport est très spécifique, il doit contenir 3 entêtes dans le même rapport.

Exemple :
---------------------------------------------------------------------------------------
        Champ 1  Champ 2   Champ 3
Ligne1
Ligne2
Ligne3           
Ligne4
Ligne5

        Champ 4  Champ 5   Champ 6
Ligne6
Ligne7                                           Champ 4  Champ 5           
Ligne8                                   Ligne11
Ligne9                                   Ligne12
Ligne10
---------------------------------------------------------------------------------------
Or, lors de la création de l’entête d’une datawindow tabular se crée dynamiquement.

Existe t’il un moyen pour faire ce type du rapport.

Merci d’avance

Dernière modification par mattdamon (28-05-2009 09:32:12)

Hors ligne

 

#2 25-05-2009 15:16:16

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

Re: [Problème réouvert] Entête spécifique pour mon état

Je l'ai trouvé...
Il fallait créer 3 datawindows : la première contient :   Champ 1  Champ 2   Champ 3
la deuxième contient : Champ 4  Champ 5   Champ 6 et la troisième contient: Champ 4  Champ 5.

finalement il faut créer une datawindow principale puis on fait appel à ces trois datawindow en tant repport en allant dans Insert ==>control==>report et on positionne chaque datawindow dans sa place.

Et voilà la vie est belle..

Dernière modification par mattdamon (25-05-2009 15:23:48)

Hors ligne

 

#3 26-05-2009 17:52:08

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

Re: [Problème réouvert] Entête spécifique pour mon état

Bonsoir à tous,

je revient autrefois sur ce sujet.
En fait, je suis arrivé a positionner 5 reports dans une datawindow. mais je sais pas est-ce que c'est possible de manipuler ces reports (faire le getitem et setitem, retrieve....) ?

Je crois que seulement le l'événement retrieve() que ça marche non ? le retrieve() de la datawindow principale où j'ai positionné les 5 reports.

Merci,

Dernière modification par mattdamon (27-05-2009 07:15:41)

Hors ligne

 

#4 27-05-2009 12:29:40

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

Re: [Problème réouvert] Entête spécifique pour mon état

il faut récupérer les reports via un GetChild sur la DW principale
ensuite tu pourras les manipuler à ta guise


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

Hors ligne

 

#5 27-05-2009 15:21:45

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

Re: [Problème réouvert] Entête spécifique pour mon état

J'arrive pas à comprendre pourquoi rtncode me retourne -1.

Code: pb

DataWindowChild child_report
integer rtncode

rtncode = dw_principale.GetChild('dw_1', child_report)


child_report.dataobject = 'rw_etat'

child_report.settransobject(SQLCA)


quand j'affecte la dataobject : rw_etat à child_report, un message d'erreur qui s'affiche :
Incompatible property dataobject for type datawindowchild

SVP, c'est quoi le problème ?

Dernière modification par mattdamon (27-05-2009 15:22:01)

Hors ligne

 

#6 27-05-2009 15:35:27

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

Re: [Problème réouvert] Entête spécifique pour mon état

c'est quoi ton dw_1 ? il faut utiliser le nom du report intégré dans la DW principale :

Code: pb

rtncode = dw_principale.GetChild('r_report', child_report)

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

Hors ligne

 

#7 27-05-2009 16:16:26

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

Re: [Problème réouvert] Entête spécifique pour mon état

erasorz a écrit:

c'est quoi ton dw_1 ? il faut utiliser le nom du report intégré dans la DW principale :

Code: pb

rtncode = dw_principale.GetChild('r_report', child_report)

voici ce que j'ai :

http://img32.imageshack.us/img32/5986/reports.png



J'ai utilisé dw_1 et rw_etat mais toujours le même resultat

Code: pb

rtncode = dw_principale.GetChild('dw_1', child_report)

Code: pb

rtncode = dw_principale.GetChild('rw_etat', child_report)

Dernière modification par mattdamon (27-05-2009 16:25:57)

Hors ligne

 

#8 27-05-2009 16:46:17

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

Re: [Problème réouvert] Entête spécifique pour mon état

C'est ma faute, je l'ai trouvé...
il faut que la datawindow principale est de type composite   

Hors ligne

 

#9 27-05-2009 17:20:17

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

Re: [Problème réouvert] Entête spécifique pour mon état

j'allais le dire

A report is a DataWindow that is part of a composite DataWindow.


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

Hors ligne

 

#10 28-05-2009 07:13:35

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

Re: [Problème réouvert] Entête spécifique pour mon état

erasorz a écrit:

j'allais le dire

A report is a DataWindow that is part of a composite DataWindow.

Merci erasorz, bonne journée 

Hors ligne

 

#11 28-05-2009 09:25:06

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

Re: [Problème réouvert] Entête spécifique pour mon état

lors de la création de ma datawindow principale de type composite datawindow, j'ai lui selectionné 5 reports de type tabular datawindow.

l'image ci-dessus montre le nom d'un report que je l'ai positionné sur la datawindow principale :

http://img32.imageshack.us/img32/5986/reports.png

le code ci-dessus montre comment la manipulation du premier report.

Code: pb

DataWindowChild child_report
integer rtncode

rtncode = dw_principale.GetChild('dw_1', child_report)

child_report.settransobject(SQLCA)

child_report.retrieve()


le problème c'est que je comprend pas pourquoi le retrieve() me retourne 0 malgré que le select du report sur pl/sql developer me retourne des lignes.


Est ce que il existe des choses qui manquent dans mon code ?

je besoin de vos aides...

Merci à vous.

Dernière modification par mattdamon (28-05-2009 09:27:49)

Hors ligne

 

#12 28-05-2009 09:48:43

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

Re: [Problème réouvert] Entête spécifique pour mon état

quel est l'intéret de faire un retrieve d'un sous-report ?
quand tu fais un retrieve de la DW principale, tous les reports inclus sont aussi "retrievés"...

(d'ailleurs ton settransobject(SQLCA) est inutile si tu l'a déjà fait sur la DW principale)


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

Hors ligne

 

#13 28-05-2009 12:19:58

nico  
Modérateur
Award: bf
Lieu: Plélan le grand
Date d'inscription: 08-02-2007
Messages: 273
Pépites: 13
Banque: 9,223,372,036,854,776,000

Re: [Problème réouvert] Entête spécifique pour mon état

Erasorz a écrit:

quel est l'intéret de faire un retrieve d'un sous-report ?
quand tu fais un retrieve de la DW principale, tous les reports inclus sont aussi "retrievés"...

Sauf dans le cas ou l'on a des arguments à envoyer à chaque child_report

Code: pb

DataWindowChild child_report1,child_report2,child_report3
integer rtncode1,rtncode2,rtncode3

dw_principale.settransobject(SQLCA)

rtncode1 = dw_principale.GetChild("dw_1", child_report1)
child_report1.settransobject(SQLCA)

rtncode2 = dw_principale.GetChild("dw_2", child_report2)
child_report2.settransobject(SQLCA)

rtncode3 = dw_principale.GetChild("dw_3", child_report3)
child_report3.settransobject(SQLCA)

child_report1.retrieve(arg1,arg2)
child_report2.retrieve(arg1,arg3)
child_report3.retrieve(arg4,arg5)

Hors ligne

 

#14 28-05-2009 12:28:58

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

Re: [Problème réouvert] Entête spécifique pour mon état

euh, il suffit d'envoyer tous les arguments à la composite qui elle-même redispatchera aux reports


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

Hors ligne

 

#15 28-05-2009 15:21:16

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

Re: [Problème réouvert] Entête spécifique pour mon état

erasorz a écrit:

quel est l'intéret de faire un retrieve d'un sous-report ?
quand tu fais un retrieve de la DW principale, tous les reports inclus sont aussi "retrievés"...

(d'ailleurs ton settransobject(SQLCA) est inutile si tu l'a déjà fait sur la DW principale)

Tu peux me dire pourquoi le setitem et le getitem ne fonctionnent jamais ? toujours -1 comme retour

Hors ligne

 

#16 28-05-2009 15:41:45

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

Re: [Problème réouvert] Entête spécifique pour mon état

mattdamon a écrit:

Tu peux me dire pourquoi le setitem et le getitem ne fonctionnent jamais ? toujours -1 comme retour

Simplement parcequ'une composite n'est pas modifiable. Elle ne peut qu'afficher des informations.


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

Hors ligne

 

#17 28-05-2009 15:47:23

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

Re: [Problème réouvert] Entête spécifique pour mon état

foon a écrit:

mattdamon a écrit:

Tu peux me dire pourquoi le setitem et le getitem ne fonctionnent jamais ? toujours -1 comme retour

Simplement parcequ'une composite n'est pas modifiable. Elle ne peut qu'afficher des informations.

Mais comme il a dit  erasorz que avec le GetChild sur la DW principale cela peux fonctionner non ?

erasorz a écrit:

il faut récupérer les reports via un GetChild sur la DW principale
ensuite tu pourras les manipuler à ta guise

Hors ligne

 

#18 29-05-2009 06:57:00

nico  
Modérateur
Award: bf
Lieu: Plélan le grand
Date d'inscription: 08-02-2007
Messages: 273
Pépites: 13
Banque: 9,223,372,036,854,776,000

Re: [Problème réouvert] Entête spécifique pour mon état

Tu peux peut-être utiliser ça

Code: pb

Value = dw_principale.object.child_report.object.nom_colonne[i]

Hors ligne

 

#19 29-05-2009 07:03:11

nico  
Modérateur
Award: bf
Lieu: Plélan le grand
Date d'inscription: 08-02-2007
Messages: 273
Pépites: 13
Banque: 9,223,372,036,854,776,000

Re: [Problème réouvert] Entête spécifique pour mon état

Erasorz a écrit:

euh, il suffit d'envoyer tous les arguments à la composite qui elle-même redispatchera aux reports

C'est vrai qu'il suffit d'envoyer les arguments à la composite. C'est juste que le code donné par Mattdamon n'est pas incorrect.
En plus, cette methode me permet d'envoyer des arguments de type Number_array à ma composite.

Hors ligne

 

#20 29-05-2009 07:10:55

nico  
Modérateur
Award: bf
Lieu: Plélan le grand
Date d'inscription: 08-02-2007
Messages: 273
Pépites: 13
Banque: 9,223,372,036,854,776,000

Re: [Problème réouvert] Entête spécifique pour mon état

Foon a écrit:

Simplement parcequ'une composite n'est pas modifiable. Elle ne peut qu'afficher des informations.

C'est faux, j'ai des composites dans mes impressions, et je les manipules comme une datawindow. Je vais chercher des données et je vais modifier des colonnes.

Hors ligne

 

#21 29-05-2009 07:54:23

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

Re: [Problème réouvert] Entête spécifique pour mon état

nico a écrit:

Foon a écrit:

Simplement parcequ'une composite n'est pas modifiable. Elle ne peut qu'afficher des informations.

C'est faux, j'ai des composites dans mes impressions, et je les manipules comme une datawindow. Je vais chercher des données et je vais modifier des colonnes.

Exact , mais il y a une limitation, qui concerne peut-être la composite de Mattdamon:

Aide PB a écrit:

Nested reports    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.

(Cette limitation est agaçante, car elle ne permet pas de manipuler des données dans une datawindow récursive )


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

Hors ligne

 

#22 29-05-2009 10:18:10

mattdamon  
Le Tuniso-Parisien
Lieu: Livry-Gargan 93190
Date d'inscription: 29-12-2007
Messages: 569
Pépites: 89
Banque: 77,512,666,613,392,940

Re: [Problème réouvert] Entête spécifique pour mon état

Je sais pas pourquoi j'ai opté au départ ce choix d'utilisation des reports, parce que on peux le faire autrement sans datawindow composite et reports...

tout ce que j'ai fait, j'ai construit une datawindow standard dont le quel j'ai mis tout les champs que j'ai besoin ensuite pour alimenter mon rapport, je fais les GetItem et les SetItem...

Ça n'empêche pas que le sujets est très intéressent et besoin d'investigation...   

A+   

Dernière modification par mattdamon (29-05-2009 10:20:31)

Hors ligne

 

Pied de page des forums

Propulsé par FluxBB 1.2.22