当前位置: 首页 > 面试题库 >

如何在JasperReports中验证空报告?

拓拔松
2023-03-14
问题内容

我的情况是,当我无法通过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
    }


 类似资料:
  • 问题内容: 有没有办法在不使用PHP的情况下检查变量是否为有效的JSON字符串?我没有PHP 5.3.3。 问题答案:

  • 我是XML验证方面的新手,在调用adobe server生成PDF之前,我被要求对XML进行验证。我有以下内容,我们通过对象获取XML,然后调用。如果有任何元素为null或空以停止生成pdf,任何人都可以帮助我一步一步地验证XML吗

  • 问题内容: 我正在尝试向位于警告对话框内的编辑文本字段添加一些文本验证。它提示用户输入名称。 我想添加一些验证,以便如果他们输入的内容为空白或为null,则除了创建Toast说错误之外,它不会做任何其他事情。 到目前为止,我有: 但这仅会关闭“警报”对话框,然后显示Toast。我希望警报对话框仍在屏幕上。 谢谢 问题答案: 我认为您应该重新创建,因为似乎作为参数给出的并不能让您选择停止的关闭。 我

  • 我创建Jasper报告的java代码是 当我在不使用子报表的情况下创建报表时,它会成功运行。当我插入任何子报表时,代码失败,异常显示 我在某个地方读过这一行来使用子报表。 我还需要使用此代码吗?我是PHP开发人员。不太懂爪哇。我使用Jasper报告,因为我们需要创建大PDF。这个工具帮了我们太多。但现在我被一个需要使用子报表的新报告所困扰。

  • 我试图验证下面的响应,这是一个没有数组名称的数组。 当我尝试使用下面的匹配时,每个脚本都会出错。 ' 错误:com.intuit.karate.exception.KarateExcture:期望在路径$中找到属性为['soldTo']的对象,但找到了'net.minidev.json.JSONArray'。com.intuit.karate.StepDefs.match命名(StepDefs.j