iReport: Passing parameters from a main report que

2019-02-04 11:20发布

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条回答
啃猪蹄的小仙女
2楼-- · 2019-02-04 11:53

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.

查看更多
Luminary・发光体
3楼-- · 2019-02-04 12:06

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

查看更多
何必那么认真
4楼-- · 2019-02-04 12:12

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}

查看更多
聊天终结者
5楼-- · 2019-02-04 12:17

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.
查看更多
登录 后发表回答