Je comprends comment passer des paramètres d’un rapport principal à un sous-rapport, puisqu’il existe un champ spécifique à cet effet dans l’objet sous-rapport. Cependant, j'aimerais faire la même chose avec un objet table ou liste en tant que consommateur (plutôt qu'en tant que sous-rapport). C'est possible?
Par exemple, supposons que j'ai un paramètre de 'customerID' que je puisse renseigner avec une requête de rapport principale, mais que je n'arrive pas à passer ce paramètre à la requête SQL de l'ensemble de données de la table.
J'ai essayé et continue d'essayer diverses combinaisons de paramètres, de champs et de variables, mais en vain.
Est-ce que ce genre de chose nécessite une implémentation de sous-rapport?
(Si cela compte et que ce n'est pas évident, j'utilise JDBC)
Pour passer les paramètres du rapport principal au table ou à la liste des sources de données dans le iReport 3.6.7+, vous devez suivre les étapes suivantes:
1) créez les paramètres requis dans le rapport principal en cliquant à droite sur la section des paramètres du rapport principal ---- -> ajouter un paramètre --------> définir les propriétés (type de données) du paramètre ajouté à votre choix.
2) créez des paramètres équivalents dans la section des paramètres de la table/liste de la source de données, exactement comme à l'étape 1.
3) dans l'explorateur de rapports, cliquez à droite sur le tableau et cliquez sur Edit Table DataSet ------> Sélectionnez l'onglet Paramètres -----------> Cliquez sur ajouter ----------> Choisissez le paramètre (que vous avez créé dans la section de paramètre du jeu de données à l'étape 1) dans la liste déroulante supérieure ( c.-à-d. nom du paramètre de fichier) ------> puis cliquez sur le bouton du bas (c.-à-d., affectez une expression de valeur, c’est-à-dire les paramètres que vous avez ajoutés à l’étape 1 .
source: http://hamroblog-sristi.blogspot.fr/2011/04/passing-parameters-from-main-report-to.html
Je ne sais pas quelle version vous utilisez, mais j'ai pu le faire dans iReport 3.7.6.
D'abord, j'ajoute les paramètres à l'ensemble de données.
Ensuite, pour transmettre les valeurs aux paramètres, cliquez avec le bouton droit de la souris sur l’Inspecteur de rapports, choisissez "Modifier la source de données de la table". Allez dans l'onglet "Paramètres". Chaque paramètre de jeu de données peut prendre sa valeur dans un paramètre, un champ ou une variable du rapport principal.
Pour transmettre les paramètres du rapport principal à la table ou à la liste des sources de données dans la version supérieure d'iReport, nous devons suivre les étapes suivantes:
Je fais un rapide rapport de test pour reproduire ce que vous faisiez et cela a fonctionné.
Voici les étapes que j'ai prises.
Créez un paramètre dans votre rapport, par exemple. N ° de client
Transmettez-le à votre rapport principal dans une hashmap.
hashmap.put("customerID", "12345");
Dans le rapport, définissez la propriété The language of for the dataset query
sur SQL
.
Définissez la propriété Query text
sur quelque chose de similaire à ce qui suit.
select * from * customers c where c.ID=$P{customerID}