好的——我在这方面已经走得更远了,可以展示什么对我有用:让数组 SP 参数工作(即使用 WHERE IN() 子句进行查询,其中输入参数的所有逗号分隔元素都进入在()):
1 – 从 iReport 中的调用中删除了参数名称 – 可能会混淆问题……</p>
2 – 制作 iReport 参数:CLINSTAGEGROUP_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 。上 :
security.validation.sql.on=false
当使用数组/集合参数安装和运行 iReport 时,这消除了 6626 错误。
4 – 在 SQL Server 上下载并安装 fn_Split():http:
//sqlmag.com/stored-procedures/treat-yourself-fnsplit
5 – 在 Jasperserver 上安装 iReport .jrxml 文件
6 – 创建 Jasperserver INPUT 对象 – 获取 clinstagegroup (s) 列表的查询,以及 Multi-Select Query 类型的 INPUT CONTROL(参数名称设置为 CLINSTAGEGROUP_MULTI – 以便识别同名的 iReport 参数)。
7 – 在 SQL Server 上设置存储过程:将 CLINSTAGEGROUP_MULTI 参数传递到 SQL Server 存储过程中,变为 @ClinStageGroup_Multi varchar(4000)
将结果集返回到 iReport 的示例查询:
选择 a,b,c, ... n
FROM VW_SpecimenAccessions
哪里 ClinstageGroup
IN(SELECT [value] FROM dbo.fn_split(@ClinStageGroup_Multi, ','))
8 – 现在可以在 jasperserver 报告上切换 clinstagegroup(多)选择,并在屏幕上显示适当的结果集。
9 – 跨过那个障碍 – 现在进入下一个……</p>