当前位置: 首页 > 知识库问答 >
问题:

Jasper API只打印第一个报表其他报表打印为空

暨鹭洋
2023-03-14
    JasperPrint jasperPrint = null;
            // Fill report
            Iterator i1 = l1.iterator();
            Iterator i2 = l2.iterator();
            int i = 1;
            while (i1.hasNext() && i2.hasNext()) {
                parameters.put("SUBJECTOID", (String) i1.next());
                parameters.put("HISTORYRECORD", (String) i2.next());
                try (ProfilePoint fillReport = ProfilePoint
                        .profileAction("ProfAction_ReportHelper_fillJasperReport")) {
                    jasperReport = JasperCompileManager.compileReport(jrxmlPath);

                    jasperPrint = JasperFillManager.fillReport(jasperReport, parameters, emptyDataSource);
                    System.out.println("fillReport**********" + i);

                }

                // Export to PDF
                try (ProfilePoint exportReport = ProfilePoint
                        .profileAction("ProfAction_ReportHelper_exportJasperReport")) {
                    JasperExportManager.exportReportToPdfFile(jasperPrint,
                            "C:\\JASPER\\JASPEROUTPUT\\Report" + i + ".pdf");
                    System.out.println("exportReportToPdfFile**********" + i);
                }
                i++;
                jasperPrint = null;
                jasperReport = null;

是否有任何缓存或某种设置在jasper或类似的东西?

共有1个答案

养枫涟
2023-03-14

谢谢@dada67的建议它起作用了

我为每个迭代传递了新的emptydatasource,它起作用了。

多谢..!!!

 类似资料:
  • 在主报表的细节部分,我创建了两个非常相同的子报表。我在主报表上指定了这两个子报表的高度为300像素,因此它们占据相等的空间,并在设计中一个接一个地显示为两个框。 子报表的设计如下所示。它的高度保持在300px。详细信息带根据从数据库返回的行数进行迭代。这可能返回3到8行。 现在,我希望在预览子报表时,如下图所示逐个显示子报表,其间没有任何空白。现在,当第一行只返回3行时,我看到它们之间有空白。如何

  • 我正在尝试使用带有子报表的主报表,而这个也带有子报表。我有一个Object列表,我将其作为JAVA的参数传递。当我打印Jasper时,只打印列表中的第一项,我不知道为什么(如果我只使用Master和一个子报表,它将打印所有对象并正确显示所有数据)。 代码是:JAVA(最相关的部分) JRXML大师 子报告 子子报表 请忽略jrxml的简单设计,我只是删除了不相关的信息。知道吗?

  • 主要内容:1 查看JasperReports JRPrint文件,2 打印JasperReports的报表1 查看JasperReports JRPrint文件 上一章:《JasperReports 填充报表》,我们已经通过JasperReports生成了.jrprint报表文件,接下来我们可以编写预览程序来预览.jrpirnt文件的效果。 输出结果如下: 2 打印JasperReports的报表 我们可以使用net.sf.jasperreports.engine.JasperPrintMana

  • 当我在没有图表的情况下使用JasperReports创建报表时,Java应用程序并从jbutton调用它 我很累地寻找如何解决这个问题,但在网上什么也没找到

  • 问题内容: 我有一个列表’a’,在这里我需要用文本文件’hello.txt’的行打印列表中所有匹配的字母,但是它只打印列表和行中的第一个单词而不是所有列表和线 结果为: 所需的输出: 请帮助我获得期望的输出。答案将不胜感激! 问题答案: 文件对象是一个迭代器。迭代之后,它就筋疲力尽了,因此您的循环仅适用于第一个键。将这些行存储在中,这样就可以了。 另外,您也可以交换循环,因此只将文件迭代一次。如果

  • 我的主报告中有一个子报告。这在细节栏中。问题是它只针对主报告的第一条记录运行。我希望它能为所有细节乐队的唱片播放。它不会显示在其他页面上。为了运行它,我传递了一个sql查询参数,该参数为详细信息带提供信息。 这是jrxml的主报告: 子报表 jrxml: