【问题标题】:How to use Multi-Select with iReport with Stored Procedure in Report Query?如何在报表查询中使用带有存储过程的 iReport 多选?
【发布时间】:2013-04-24 04:57:19
【问题描述】:

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

使用户能够混合/匹配列表中的选择(多选)很重要。 如果 iReport 中的查询是 SQL 或有一个视图作为源 - 例如,多选可以很好地工作。 http://community.jaspersoft.com/questions/529890/how-do-multi-select-ireport-36

在这种情况下,WHERE $X{IN,<colname>,<iReport parameter>} 可以很好地启用多选: http://community.jaspersoft.com/questions/519185/using-x-query-parameter-type-not-supporte

但是,我想将所有输入传递给 iReport 查询中的 SQL Server 存储过程。在这种情况下,单值输入都可以正常工作——但我一直无法弄清楚如何使用多选——$X{} 似乎不起作用,否则——因为 iReport em> 多选参数必须定义为 java.util.Collection -- 我得到“查询中不支持的参数类型”。

谁能指出我遗漏了什么,或提出解决方法?

【问题讨论】:

    标签: stored-procedures jasper-reports ireport multi-select


    【解决方案1】:

    好的——我在这方面走得更远,可以展示什么对我有用: 要使数组 SP 参数起作用(即使用 WHERE IN() 子句进行查询,其中输入参数的所有逗号分隔元素都进入 IN()):

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

    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.on :

    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

    来自 VW_SpecimenAccessions

    在哪里 ClinstageGroup

    IN(SELECT [value] FROM dbo.fn_split(@ClinStageGroup_Multi, ','))

    8 – 现在可以在 jasperserver 报告上切换 clinstagegroup(多)选择,并在屏幕上显示适当的结果集。

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-07-07
      • 2017-04-12
      • 1970-01-01
      • 2020-04-02
      • 2017-09-23
      • 1970-01-01
      • 2010-09-22
      相关资源
      最近更新 更多