3

我在JasperReports Server 5.2.0中有一份报告,在这份报告中我有两个输入控件

第一个是:

COUNTRY (value column- COUNTRY_ID, visible column- COUNTRY_NAME) 

另一个是

STATES (value column- STATE_ID and visible column - STATE_NAME).

我将这两个参数传递给报告,现在在报告末尾我想显示输入参数选择值,以便用户可以看到他选择的内容。但我无法获得参数的可见值。我只能打印值列值。

所以我的问题是有什么方法可以在报告中打印输入控件的可见列值?

4

1 回答 1

0

到现在为止,Visible Columns没有传到Value ColumnsJasper 中的 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!!

在上述场景中可以显示

  1. 州名

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}- 如果是多选输入控制

  1. 国家的名字

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%"
于 2015-10-15T07:45:07.800 回答