Merci jmini,
En fait, je viens juste de trouver ce que tu sembles vouloir expliquer (pas simple à expliquer textuellement cette histoire )
Donc oui, ça j'avais capté qu'il fallait reporter les paramètres du rapport principal vers ceux du DataSet1 et donc faire un mapping entre ces deux "scopes".
Ensuite effectivement, tout se passe dans le paramétrage de l'élément qui va utiliser le DataSet1, comme source de données (en l'occurrence dans mon cas c'est un Pie 3D Chart). Alors qu'au départ, je pensais que ce mapping aurait dû se faire directement entre le rapport principal et le DataSet... mais non.
En tombant sur ce post http://jasperforge.com/plugins/espfo...&topicid=31029 j'ai compris comment devait être fait le mapping et donc que la chose était possible (déjà ça m'a soulagé).
Par contre, une fois qu'on a compris où faire le mapping, il faut évidemment faire attention à être cohérent dans l'utilisation de ces paramètres. On a vite fait de se planter et d'inverser les paramètres du rapport principal et ceux du DataSet... De plus, lorsque l'on élabore la requête du DataSet, il faut évidemment faire référence aux paramètres mappés, ce qui empêche l'éditeur SQL de valider correctement la requête...
Voici l'endroit, pour le Pie Chart, où j'ai fait mon mapping :
Donc, je récapitule pour ceux qui voudraient y voir plus clair.
Dans mon cas, j'ai deux dates 'Début' et 'Fin' pour délimiter un période.
Ces deux paramètres sont fournis en entrée du rapport et sont utilisés pour délimiter les valeurs affichées dans le rapport principal, ainsi que dans la requête d'un DataSet utilisé comme source d'un Pie Chart :
Paramètres (de type TimeStamp dans mon cas) du rapport principal :
- IN_PARAM_DATE_DEB
- IN_PARAM_DATE_FIN
Paramètres (de type TimeStamp dans mon cas) du DataSet (DataSet1 par exemple) :
Requête du DataSet :SELECT *
FROM ...
WHERE
date_deb >= $P{DATE_DEB}
AND date_fin < $P{DATE_FIN}
Le mapping est donc à faire dans les paramètres du Pie Chart, comme indiqué dans le screenshot ci-dessus.
Par rapport à des questions que je me suis posées, voici mes déductions :
- Aucune initialisation des paramètres DATE_DEB et DATE_FIN n'est à faire, à partir du moment où ils sont mappés.
- Le nom des paramètres du DataSet n'ont pas à être identiques par rapport à ceux du rapport principal (contrairement à ce que j'ai pu croire un moment et surtout ce que j'ai pu lire)
- Inutile d'utiliser des variables, les paramètres sont suffisants.
Bon voilà, j'ai perdu pas mal de temps à trouver cette solution, qui ne me semble vraiment pas intuitive... Profitez-en !
Partager