我在 JasperReports Server 5.2.0 中有一个报告,在这个报告中我有两个输入控件
第一个是:
COUNTRY (value column- COUNTRY_ID, visible column- COUNTRY_NAME)
另一个是
STATES (value column- STATE_ID and visible column - STATE_NAME).
我传递给报告的这两个参数,现在在报告的末尾,我想显示输入参数选择值,以便用户可以看到他所选择的内容。但我无法获得参数的可见值。我只能打印值列值。
所以我的问题是有没有办法在报告中打印输入控件的可见列值?
答案 0 :(得分:0)
到目前为止,Visible Columns
未被传递,其中Value Columns
被传递给Jasper中的Jrml文件。
To answer you question There is a way to print the visible column values.
It can be done using Sub-queries, by using 'Value Column' passed to the JRML file.
Then add the subquery to your main query and it`s done!!
在上面的场景中,您可以显示
SELECT States.STATE_NAME from States WHERE state_id = $P{STATE_ID}
- 如果是单选输入控件
SELECT GROUP_CONCAT(States.STATE_NAME) from States WHERE state_id = $X{IN,state_id,STATE_ID}
- 如果是多选输入控件
SELECT Country.COUNTRY_NAME from COUNTRY WHERE country_id= $P{COUNTRY_NAME}
- 如果是单选输入控件
SELECT GROUP_CONCAT(Country.COUNTRY_NAME) from COUNTRY WHERE country_id = $X{IN,state_id,STATE_ID}
- 如果是多选输入控件
假设这是您的主要查询,其中国家和州缺失..
SELECT `id`, `product-id`, `name`, `description`, `branch`, `stock`, `price` FROM `products` WHERE `name` LIKE "%car%"
修改过的查询看起来像..
SELECT `id`, `product-id`, `name`, `description`, `branch`, `stock`, `price`, (SELECT States.STATE_NAME from States WHERE state_id = $P{STATE_ID}) as state, (SELECT Country.COUNTRY_NAME from COUNTRY WHERE country_id=P{COUNTRY_NAME}) as country FROM `products` WHERE `name` LIKE "%car%"