我正在研究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'参数的值。
答案 0 :(得分:23)
Jasper Report有一个特殊的变量$ X:
select * from customer where $X{IN,customer_role,roles}
答案 1 :(得分:1)
接受的答案中链接的示例不适合我。
因此,同时对我有用的替代方法是使用:
...
WHERE customer_role IN ($P{roles})
我用过这个:
...
WHERE customer_role IN ($P!{roles})
对于 roles
变量,我传入一个包含一个或多个值的字符串,每个值都用单引号引起来,用逗号分隔(例如,'1','2','3'
)。
请参阅 here 以供参考。
答案 2 :(得分:0)
要补充@Aaron的响应,可以在JasperSoft Studio中配置列表参数(在您的情况下为“角色”),如下所示:
答案 3 :(得分:-3)
Jasper Report有一个特殊的变量$ X:
select * from customer where $X{IN,customer_role,roles}