gpt4 book ai didi

java - 如何验证 JasperReports 中的空报告?

转载 作者:行者123 更新时间:2023-11-29 04:56:22 26 4
gpt4 key购买 nike

我的情况是,当我无法通过查询检索任何在 jasper 文件中找到的内容时,仍会生成报告。

我正在使用这行代码生成报告。

ByteArrayOutputStream baos = new ByteArrayOutputStream();

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReportStream, params, jdbcConnection);
long start = System.currentTimeMillis();
Exporter jrExporter = getJRExporter(format, jasperPrint, baos);
jrExporter.exportReport();
bytes = baos.toByteArray();

有没有办法使用导出器对象来检测我的报表是否为空?我尝试使用 byteArray 验证 null,然后在生成 pdf 格式时转换为 String。

但是我无法轻易检查 byteArray 是否为 null,因为尽管我的查询没有返回任何结果,但它仍会产生此输出:

%PDF-1.4
%����
1 0 obj <</Length 45/Filter/FlateDecode>>stream
x�3P0T�5T0P0�4�ɹ\�\N!\�f
���
!)\�!\�\\

最佳答案

jasperReport 标签上设置 whenNoDataType="NoPages" 或删除 whenNoDataType 属性(默认为“NoPages”)

检查JasperPrint中有多少页,如果0则有NoData

    JasperPrint print = JasperFillManager.fillReport(jasperReportStream, params, jdbcConnection);
List<JRPrintPage> pages = print.getPages();
if (pages.size()==0){
//No pages, do not export instead do other stuff
}

关于java - 如何验证 JasperReports 中的空报告?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33611523/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com