|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() |
Bonjour,
Mon souci, utiliser avec ireport un flux XML, en affichant dans un report le contenu d'un noeud et dans un sous report avoir les fils de ce noeud. Précisement, le passage de la liste d'objet au sous report à partir d'un field( de type list d'objets) défini dans le master report. qlq sûrement déjà rencontrer ce problème, merci de votre aide |
|
|
00
|
|
|
#2 |
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 48 ![]() |
en fait tu passes a ton sous-report l'id de ton noeud (ou un moyen de l'identifier)
avec un parametres, tu utilises le meme datasource xml et avec le xpath qui va bien ça ira normalement si tu veux plus d'infos, donne un exemple de ta source xml |
|
|
00
|
|
|
#3 |
|
Invité de passage
![]() |
D'abord merci pour ta réponse, un exemple simple serait :
<adressbook> <category> <person> <nom>aaaa</nom> <prenom>ekk</prenom> <hobbies> <hobby>aaer</hobby> <hobby>azer</hobby> <hobbies> </person> </category> </adressbook> Comment passer l'affiche de la laiste des hobby à un sous report, actuellement j'ai un field dans le master avec une description :hobbies*hobby que je passe en paramétre au sous report. |
|
|
00
|
|
|
#4 |
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 48 ![]() |
en lisant le tutorial, il y a un exemple du genre ... exemple que je n'arrivais pas à faire tourner donc j'ai un peu triché
utilise un truc de ce genre : <adressbook> <category> <person id=1> <nom>aaaa</nom> <prenom>ekk</prenom> <hobbies> <hobby>aaer</hobby> <hobby>azer</hobby> <hobbies> </person> </category> </adressbook> et dans ton xpath de ton sous rapport tu mets /adressbook/category/person[@id=$P{ID}]/hobbies/hobby où $P{ID} est un paramètre que tu passe à ton sous-rapport avec l'id de la personne en cours sur ton masterreport et comme datasource tu specifie la même bonne chance |
|
|
00
|
|
|
#5 |
|
Invité de passage
![]() |
phyzalis, j'ai suivi tes consignes mais sans grand succès ce matin, pourrais-tu l'illustrer par un bout de code, stp ?
Autant, je m'éclate avec les javabean et les sousReports qu'avec un flux XML comme DS, je galère. thinks! |
|
|
00
|
|
|
#6 |
|
Membre du Club
![]() Inscription : octobre 2006 Messages : 48 ![]() |
un bout de code ? utilises-tu ireport pour générer ton rapport ou bien est ce que tu passe par java ?
Il y a un très bon tutorial là ça s'applique avec une base de donnée mais tu peux fonctionner avec ce que je t'ai donné pour xml enfin j'espere |
|
|
00
|
|
|
#7 |
|
Invité de passage
![]() |
phyzalis bonsoir,
J'ai réussi à faire ce que je voulais, merci de ton attention et conseils en faite, j'ai utilisé un subDataSource à partir du paramètre REPORT_DATA_SOURCE et ça marche pas trop mal , je m'affranchir même de l'ID en paramètre vers le sous report. concrêtement,ça donne: ((JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSourcce("/hobbies/hobby") Merci, A+ |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 3 ![]() |
Bonjour,
je suis entrain d'essayer de générer un rapport avec ireport 1.3.1 à partir d'un fichier XML. Je me suis basé sur le tutoriel: http://ireport.sourceforge.net/cap7.html#7.4 les résultats sont: => j'arrive à faire fonctionner le rappport principal en modifiant la synthaxe Xpath ex: CATEGORY => ../@name au lieu de /adressbook/category/person@name PERSON => @id au lieu de /adressbook/category/person@name FIRSTNAME => FIRSTNAME au lieu de /adressbook/category/person+FIRSTNAME => par contre pour le "subreport" je coince: - ce qui est écrit dans le tutoriel je n'arrive pas à le faire fonctionner - la technique du passage de paramètre proposé dans cette discussion: J'arrive bien à passer ID en paramètre, il est bien valué au niveau du "subreport" par contre je n'arrive pas au résultat avec la syntaxe Xpath : /adressbook/category/person[@id=$P{ID}]/hobbies/hobby si je test unitairement /adressbook/category/person[@id=1]/hobbies/hobby, je n'ai pas le résultat souhaité à priori autant de "null" que de "person" - quant à la technique du "subdatassource" je n'ai pas compris comment la mettre en place... pour résumer je galère avec le "subreport"... je me suis permis de me raccrocher à votre discussion qui visiblement est dans le droit fil de mes soucis si vous pouvez m'éclairer je vous en remercie d'avance |
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : février 2007 Messages : 3 ![]() |
Bon j'ai finalement réussi à reproduire l'exemple du tutoriel (non sans mal...)
J'ai finalement utilisé le "subdatasource", ce qui donne en résumé: pour la connexion: /addressbook/category/person pour les champs du masterreport: CATEGORY: ../@name PERSON_ID: @id FIRSTNAME: FIRSTNAME LASTNAME: LASTNAME au niveau des subreport dans le masterreport pour les hobbies: la Connexion/DataSource Expression => ((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("person/hobbies/hobby") pour les emails: la Connexion/DataSource Expression => ((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("person/email") dans les subreports: pour les hobbies HOBBY: . pour les emails EMAIL: . je ne suis pas certain que cela soit la méthode la plus élégante, mails elle fonctionne.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com