获取JasperReports Server输入控件的可见列的值?

时间:2013-08-23 07:15:12

标签: jasper-reports jasperserver

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

第一个是:

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

另一个是

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

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

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

1 个答案:

答案 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!!

在上面的场景中,您可以显示

  1. 州名
  2.   

    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. 国家/地区名称
    2.   

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