20
votes

I understand how to pass parameters from a main report to a subreport, since there's a specific field for this in the subreport object. However, I'd like to do the same thing with a table or list object as a consumer (rather than a subreport). Is it possible?

For example, say I have a parameter of 'customerID' that I can populate with a main report query, but I can't seem to pass this parameter to the table's dataset's SQL query.

I've tried, and continue to try, various combinations of parameters, fields, and variables, but to no avail.

Does this sort of thing require a subreport implementation?

(If it matters and isn't obvious, I'm using JDBC)

4
Here's another good answer, if you just want to refer jrxml code: linkiaL

4 Answers

26
votes

To pass the parameters from main report to the table or list datasources in the iReport 3.6.7+, you need to do following steps:

1) create required parameters in the main report by right clicking on the parameters section of main report------> add parameter-------->set the properties (data type) of newly added parameter to your desired one.

2) create equivalent parameters in the table/List's data source's parameters section exactly as in step 1.

3) from report explorer, right click on the table and click on Edit Table DataSet ------> Select the parameters tab ----------->Click on add ---------->Choose the parameter (which you created in the dataset's parameter section in step 1) from upper combo (i.e. Dataset parameter name) ------> then click on lower button (i.e.) assign value expression i.e. the params which you added in step 1.

source : http://hamroblog-sristi.blogspot.fr/2011/04/passing-parameters-from-main-report-to.html

12
votes

Don't know what version you are using, but I was able to do it in iReport 3.7.6.

First I add the parameters to the dataset.

Then, to pass the values to the parameters, right-click on the Table in Report Inspector, choose "Edit table datasource". Go to "Parameters" tab. Each dataset parameter can take its value from parameter, field, or variable from the main report.

0
votes

I make a quick test report to replicate what you were doing and it worked.

Here are the steps I took.

  • Create a parameter in your report e.g. customerID

  • Pass it to your main report in a hashmap.

    hashmap.put("customerID", "12345");

  • In the report set the property The language of for the dataset query to SQL.

  • Set the property Query text to something similar as is bellow.

    select * from * customers c where c.ID=$P{customerID}

0
votes

To pass the parameters from main report to the table or list datasources in the iReport upper version we need to do following steps:

  1. create required parameters in the main report by right clicking on the parameters section of main report------> add parameter-------->set the properties (data type) of newly added parameter to your desired one.
  2. create equivalent parameters in the table/List's data source's parameters section exactly as in step 1.
  3. from report explorer, right click on the table and click on Edit Table DataSet ------> Select the parameters tab ----------->Click on add ---------->Choose the parameter (which you created in the dataset's parameter section in step 2.) from upper combo (i.e. Dataset parameter name) ------> then click on lower button (i.e.) assign value expression i.e. the params which you added in step 1.