java - 使用 Java 代码报告显示为空白,在 Studio 中预览正常

标签 java jasper-reports

使用 Jaspersoft Studio 6.6.0,我创建了一个非常简单的报告,其中包含静态文本和红色矩形(以及我之前测试过的许多其他内容)。没有查询来获取数据,没有动态字段或任何东西。

这就是设计的样子: enter image description here

所有不同格式(HTML、PDF 等)的预览看起来都不错 enter image description here

当我尝试在网络应用程序中生成报告时,我遇到了问题。使用库版本 6.7.0。

像这样编码的 HTML 导出会产生一个空字符串

JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params);
StringBuilder htmlStringBuilder = new StringBuilder();
HtmlExporter exporter = new HtmlExporter();

SimpleHtmlExporterConfiguration conf = new SimpleHtmlExporterConfiguration();
conf.setHtmlHeader("");
conf.setBetweenPagesHtml("");
conf.setHtmlFooter("");
conf.setFlushOutput(true);
exporter.setConfiguration(conf);
SimpleHtmlExporterOutput output = new SimpleHtmlExporterOutput(htmlStringBuilder);
exporter.setExporterOutput(output);
exporter.setExporterInput(new SimpleExporterInput(jasperPrint));

exporter.exportReport();
return htmlStringBuilder.toString(); // empty string

使用“导出为 PDF”创建单页 PDF 文件。该页是空白的。

JasperExportManager.exportReportToPdfFile(jasperPrint, "file.pdf");

我尝试使用 Studio 和 Java 代码来编译 JRXML 文件。结果还是一样。 JasperPrint 对象似乎已填充,但是页面上没有任何元素,我认为这是相关的。有机会找出原因吗? enter image description here

最佳答案

我看到有两种选择:

  1. 在您的 Java 代码中导入 net.sf.jasperreports.engine.JREmptyDataSource 类并填充 jasperPrint,如下所示:

    JasperPrint jasperPrint = JasperFillManager.fillReport(jasperReport, params, new JREmptyDataSource());

    这应该保证您的详细信息区域显示一次。这是 JasperSoft Studio 在您使用一个空记录数据适配器预览报表时使用的内容。

  2. 例如,在 JasperSoft Studio 中,将所有内容从“详细信息”区域移至“摘要”区域,然后在“报告属性”选项卡中选择:

    When No Data Type: All Sections No Detail

    这样,当您不提供任何数据时,将渲染除详细信息带之外的所有其他带。

关于java - 使用 Java 代码报告显示为空白,在 Studio 中预览正常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53587545/

相关文章:

java - 我可以将 java 代码放入 .jrxml (jasperreport) 中吗?

java - xls 格式的报告 : row and column auto adjustment

java - 在 iReports 和 Jasper 和 java bean 数据源中使用表格功能

java - 参数神秘返回

java - 超出 Google+ Java 客户端 API 速率限制

java - MyBatis 不支持 boolean 映射

java - Eclipse 图标在高分辨率屏幕上非常小

java - 从 java 设置 kotlin lambda

java - 我可以验证空数据源/空白 pdf 吗?

java - 比较数据源中的行以打印特定记录