【问题标题】:Get the value of visible column of JasperReports Server input control?获取 JasperReports Server 输入控件可见列的值?
【发布时间】:2015-10-15 20:33:46
【问题描述】:

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

第一个是:

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

另一个是

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

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

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

【问题讨论】:

标签: jasper-reports jasperserver


【解决方案1】:

到目前为止,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!!

在上述场景中可以显示

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


假设这是您的主要查询,其中缺少 Country 和 State..

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%"

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-06-18
    相关资源
    最近更新 更多