Le forum (ô combien francophone) des utilisateurs de Powerbuilder.
reBonjour à tous,
Bon ben tant que je gagne, je joue !
Je suis donc en train de développer des statistiques. Chaque stat est composée d'un Dataobject affiché aussi joliment que possible à l'écran. Toutefois, j'offre la possibilité à l'utilisateur d'imprimer ces stats, avec une présentation légèrement différente : en gros, j'ajoute un entête et un pied de page propre à l'édition papier.
J'avais pensé ne concevoir qu'une seule DW composite d_papier, parée du Header et du Footer spécial impression, avec dans la bande Detail une DW/Dataobject imbriquée que je pourrais ensuite changer dynamiquement pour imprimer telle ou telle stat, ses données provenant d'un ShareData avec la DW affichée à l'écran.
Mais je n'y arrive pas et ça fait des heures que je tourne en rond.
J'ai essayé 3 versions de d_papier :
d_papier1 : une composite
d_papier2 : une freeform avec un report object imbriqué appelé dw_stat
d_papier3 : d_papier2 modifiée avec processing=5
Voici le bout de code :
// idw_report est le contrôle dw appelé à être imprimé avec la méthode print() // le contrôle est correctement instancié idw_report.DataObject = "d_papier1" // On change le dataobject du rapport embarqué // is_dw_ecran contient le nom du DataObject qui nous intéresse ls_ret = idw_report.Modify("dw_stat.DataObject = ~"" + is_dw_ecran + "~"") // on récupère une référence sur le rapport embarqué li_ret = idw_report.GetChild("dw_stat", idwc_report_stat) // on fait un partage de données pour (on l'espère éviter un retrieve) li_ret = idw_stat.ShareData(idwc_report_stat)
Dans les trois cas, le modify() ne renvoie pas d'erreur mais le GetChild() échoue (=> -1)
Quelqu'un verrait-il ce qui cloche ? ça doit bien être possible de parvenir au résultat attendu non ?
Merci
Dernière modification par General Protection Fault (31-08-2010 09:01:29)
Hors ligne
Tu n'aurais pas oublié le SQLCA par hasard?
Hors ligne
idwc_report_stat = idw_report.Object.dw_stat
Hors ligne
Alors :
* La proposition de Shahin retourne une erreur 2 Null Object Ref, quelque soit la version de d_papier.
* Foon : c'est pire que ça ;) je ne l'ai pas mis consciemment : comptant sur un ShareData, il ne me parait pas nécessaire. Mais tu introduis le doute dans mon esprit. Comme en tout cas, il ne peut pas faire de mal, je l'ai ajouté et le bougre me retourne -1 ! ça c'est surprise... que je met de côté pour demain ;-)
Bonne soirée tout le monde !
Dernière modification par General Protection Fault (26-08-2010 16:02:28)
Hors ligne
Foon tu avais visiblement déjà été traité ce sujet non ?
http://pbadonf.fr/forum/viewtopic.php?pid=26391
et ta réponse était :
F1 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.
Hors ligne
Précision : la DW intégrée à d_papier n'est pas une composite. Elle ne contient pas non plus elle-même de dw intégrée. C'est une bête tabular.
Dernière modification par General Protection Fault (27-08-2010 07:12:38)
Hors ligne