2013-08-23 120 views
3

我在JasperReports的服务器5.2.0的报告,这份报告中,我有两个输入控制获取JasperReports服务器输入控件的可见列的值?

第一个是:

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

,另一种是

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

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

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

+0

这个问题已经打开: [将多选和单选的可见列/列表值传递给jrxml文件作为参数。](http://community.jaspersoft.com/jasperreports-server/issues/4347) 。你可以给它一个声音 –

+0

试试这个解决方案:[输入控件](http://community.jaspersoft.com/questions/529170/input-controls)。这是关于使用两个值的paira作为* value列*(例如,用分隔符分隔)并提取这个或那个部分 –

+0

您将在JRML文件中获得国家和国家的ID。为它写一个子查询。然后你会得到这些详细信息在Report中打印 –

回答

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. 国家名称

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%" 
    
    相关问题