Stored procedures 如何在报表查询中使用Multi-Select with iReport和存储过程?

Stored procedures 如何在报表查询中使用Multi-Select with iReport和存储过程?,stored-procedures,jasper-reports,ireport,multi-select,Stored Procedures,Jasper Reports,Ireport,Multi Select,我正在使用iReport 5.0尝试为SQL Server 2008R2后端开发报表 使用户能够混合/匹配多选列表中的选择非常重要。 如果iReport中的查询是SQL或具有作为源的视图,则multi-select可以很好地工作。 在这种情况下,WHERE$X{In,,}可以很好地启用muti select: 但是,我希望在iReport查询中将所有输入传递给SQL Server存储过程。在本例中,单值输入都可以正常工作-但我一直无法弄清楚如何使用multi-select-$X{}似乎不起作

我正在使用iReport 5.0尝试为SQL Server 2008R2后端开发报表

使用户能够混合/匹配多选列表中的选择非常重要。 如果iReport中的查询是SQL或具有作为源的视图,则multi-select可以很好地工作。

在这种情况下,WHERE$X{In,,}可以很好地启用muti select:

但是,我希望在iReport查询中将所有输入传递给SQL Server存储过程。在本例中,单值输入都可以正常工作-但我一直无法弄清楚如何使用multi-select-$X{}似乎不起作用,否则-因为iReport multi-select参数必须定义为java.util.Collection-我得到了查询中不支持的参数类型


有人能指出我遗漏了什么,或者提出一个解决办法吗?

好的-我在这方面做得更进一步了,可以展示什么对我有效: 要使用WHERE IN子句(其中输入参数的所有逗号分隔的元素都进入IN)获取数组SP参数以进行ie查询,请执行以下操作:

1–从iReport调用中删除了参数名称–可能会混淆问题

2–生成iReport参数: CLINSTAGEGROUP\u MULTI 类型: java.util.Collection

3–在Jasperserver上,位于: /usr/local/jasperreports-server-cp-4.5.0/apache-tomcat/webapps/jasperserver/WEB-INF/classes/esapi/security-config.properties 已关闭security.validation.sql.on:

security.validation.sql.on=false

这消除了使用array/collection参数安装和运行iReport时出现的6626错误

4–在SQL Server上下载并安装fn_Split:

5–在Jasperserver上安装iReport.jrxml文件

6–创建Jasperserver输入对象–用于获取clinstagegroup列表的查询,以及参数名称设置为clinstagegroup_Multi的Multi-Select query类型的输入控件–以便识别同名的iReport参数

7–在SQL Server上设置存储过程: CLINSTAGEGROUP_MULTI参数被传递到SQL Server存储过程中,并成为@CLINSTAGEGROUP_MULTI varchar4000

将resultset返回到iReport的查询示例:

选择a、b、c。。。n

来自VW_样本许可证

克林顿集团在哪里

从dbo.fn中选择[value]_split@ClinStageGroup_Multi",

8–现在可以在jasperserver报告上切换clinstagegroup multiselections,并在屏幕上返回相应的结果集


9–越过障碍–现在进入下一个…

好的-我在这方面做得更进一步,可以展示什么对我有效: 要使用WHERE IN子句(其中输入参数的所有逗号分隔的元素都进入IN)获取数组SP参数以进行ie查询,请执行以下操作:

1–从iReport调用中删除了参数名称–可能会混淆问题

2–生成iReport参数: CLINSTAGEGROUP\u MULTI 类型: java.util.Collection

3–在Jasperserver上,位于: /usr/local/jasperreports-server-cp-4.5.0/apache-tomcat/webapps/jasperserver/WEB-INF/classes/esapi/security-config.properties 已关闭security.validation.sql.on:

security.validation.sql.on=false

这消除了使用array/collection参数安装和运行iReport时出现的6626错误

4–在SQL Server上下载并安装fn_Split:

5–在Jasperserver上安装iReport.jrxml文件

6–创建Jasperserver输入对象–用于获取clinstagegroup列表的查询,以及参数名称设置为clinstagegroup_Multi的Multi-Select query类型的输入控件–以便识别同名的iReport参数

7–在SQL Server上设置存储过程: CLINSTAGEGROUP_MULTI参数被传递到SQL Server存储过程中,并成为@CLINSTAGEGROUP_MULTI varchar4000

将resultset返回到iReport的查询示例:

选择a、b、c。。。n

来自VW_样本许可证

克林顿集团在哪里

从dbo.fn中选择[value]_split@ClinStageGroup_Multi",

8–现在可以在jasperserver报告上切换clinstagegroup multiselections,并在屏幕上返回相应的结果集

9–越过障碍–现在进入下一个