java - 将 "where condition"传递给导出 pdf 的 jasperreports

标签 java jasper-reports ireport

一个简单的 SQL 表,具有两个属性和三行:

reference | name:

0 | first

1 | second

2 | third

我有一个带有 Swing 的 Java 应用程序,通过 JList 显示这一点(每行连接两个字符串、引用和名称)。

我按下按钮,使用从 iReport 编译的“from_ireport.jasper”成功导出整个数据库。我也可以从代码编译。

我想选择一个或多个元素,按下按钮并获取仅包含所选元素的 pdf。在哪里以及如何为 jasper 指定“where 条件”?

我找不到一个简单的例子来看看。 谢谢。

最佳答案

要解决此问题,您可以使用 JR 报告的参数。

例如,您可以使用以下查询表达式:

<queryString>
        <![CDATA[SELECT reference, name FROM table WHERE $P!{whereCondition}]]>
</queryString>

传递参数值的Java代码示例:

Map<String, Object> params = new HashMap<String, Object>();
params.put("whereCondition", "reference > 0");
JasperReport jasperReport = JasperCompileManager.compileReport(reportSource);
JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, connection);
<小时/>

更多详情可以查看Query Sample .

关于java - 将 "where condition"传递给导出 pdf 的 jasperreports,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12081601/

相关文章:

使用 bean 类填充 Jtextfield 时出现 java.lang.NullPointerException

java - 如何通过反射改变List中对象的信息?

java - 没有数据库的简单 Jasper 报告

jasper-reports - 最后一条记录的 iReport 变量

java - 看不见的饼图标签?

java - 为什么 iReports 预览中不显示货币格式

java - 主线程在 CompletableFuture 完成之前退出

java - Android 版 Twitter 的 oAuth 错误

java - 导出 JasperReports 查询结果

java - 如何在每次出现单词 "*"后放置 "**"和 "EUR"