Transmettre des valeurs du rapport principal sous le rapport?
Je viens de commencer à travailler avec iReport et avait la tâche de faire quelques modifications à déjà des rapports existants.
Actuellement il y a un rapport principal avec de la section A et B (les détails de contact et d'autres informations). Il y a un sous-rapport C puis un sous-rapport D. Ma tâche est de reproduire A et B pour chaque élément de D. Si le rapport comporte de nombreuses sections D je veux avoir une A et B pour chaque.
Toutes les données sont dans le même document XML et d'obtenir les données pour la section A et B, j'ai simplement
((net.sf.jasperreports.engine.data.JRXmlDataSource)$F{REPORT_DATA_SOURCE}).dataSource("/Header/")
et pour les sous rapport avec le D de la section
((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("/Header/ProductHeader/Member")
si j'ai faites glisser un champ de la Structure du Document qui affiche les données dans la Section A de la section D et de vérifier l'expression qu'il dit
$F{ContactNumber} mais affiche la valeur Null dans D même si elle affiche une valeur dans la section Un
Comment dois-je modifier mes sources de données afin d'afficher le contenu de A et de B en D?
Merci d'avance
OriginalL'auteur Nick | 2011-02-22
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour passer des paramètres à un sous-rapport. Un sous-rapport ne partage pas toutes les données de votre rapport principal, sauf si vous définissez explicitement le contrat. C'est plus comme un appel de méthode alors un prolongement du rapport principal.
Si vous souhaitez afficher un champ avec le nom
foo
dans votre rapport principal dans le sous-rapport, vous devez effectuer les opérations suivantes:foo
.foo
et la valeur correcte de l'expression.Lorsque vous souhaitez utiliser la valeur de
foo
dans votre sous-rapport, vous devez utiliser l'expression:$P{foo}
si c'est un paramètre d'état principal.OriginalL'auteur Aaron