在jasperreport中传递SQL“IN”参数列表

时间:2011-06-03 11:20:01

标签: sql jasper-reports

我正在研究Jasper Reports,我的查询使用SQL'IN'谓词。

SELECT customer_name AS NAME, 
       id_customer   AS ID 
  FROM customer 
 WHERE customer_role IN ($P{roles})

此处,role参数可以包含1个或多个整数值,并在生成jasper报告时动态决定。

任何人都可以帮助我如何通过Java程序动态设置'roles'参数的值。

4 个答案:

答案 0 :(得分:23)

Jasper Report有一个特殊的变量$ X:

select * from customer where $X{IN,customer_role,roles}

应该有效。 See herehere

答案 1 :(得分:1)

接受的答案中链接的示例不适合我。

因此,同时对我有用的替代方法是使用:

...
WHERE customer_role IN ($P{roles})

我用过这个:

...
WHERE customer_role IN ($P!{roles})

对于 roles 变量,我传入一个包含一个或多个值的字符串,每个值都用单引号引起来,用逗号分隔(例如,'1','2','3')。

请参阅 here 以供参考。

答案 2 :(得分:0)

要补充@Aaron的响应,可以在JasperSoft Studio中配置列表参数(在您的情况下为“角色”),如下所示:

List parameter

答案 3 :(得分:-3)

Jasper Report有一个特殊的变量$ X:

select * from customer where $X{IN,customer_role,roles}