java - 如何将可选参数传递给报告?

标签 java jasper-reports

我正在使用 iReport 4.5.0 使用嵌入式 sql 查询 创建 JR 报告。

我已经在查询中添加了参数。但我想提供灵 active ,以便用户可以传递参数或不能传递参数,以便相同的报告可以与我的 Web 应用程序一起使用。

谁能告诉我如何使我的报告如此灵活,以便用户可以或不能传递参数。

我像这样修改了queryString:

SELECT columnA, ColumnB FROM Table WHERE Table."columnA" = $P!{}

但是 iReport 未能生成报告。

最佳答案

我通常遵循这种模式:像您一样定义 $P{MyParam}。然后添加带有默认值的 $P{MyParam_SQL},如下所示:

$P{MyParam} == null ? "1=1" : "columnA = '" + $P{MyParam} + "'"

而报表中的SQL是这样的:

SELECT columnA, ColumnB 
FROM table 
WHERE 
  some_filters
  AND $P!{MyParam_SQL}
  AND some_other_stuff

它与其他两个建议的答案没有根本区别。但是我觉得这样很容易理解和维护。

关于java - 如何将可选参数传递给报告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13085317/

相关文章:

java - 使用 hibernate 获取数百万条记录表的最佳方法

java - 启用 JMX 代理是否有性能开销?

java - 如何去除 iReport/Jasper 中多余的饼图?

jasper-reports - 为 Jasper 报告中的每个组重置 $V{REPORT_COUNT}

jasper-reports - 在 iReport 中用逗号分割字段

java - 是否可以将 z 索引设置为 java Graphics?

java - 如何获得最大值作为返回?

date - 使用 jasper 将日期导出到 Excel

java - 在使用 Java 开始游戏之前等待 GC 完成?

grails - 如何在Jasper报告中导出PDF报告