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

使用bean数据源和子报表获取JasperReports中生成的空白报表

晏经武
2023-03-14

我正在创建一个JasperReports的报告,其中只有子报告。

以下是我目前面临的场景。

为了简化问题,让我们只考虑两个 jasper 报告:mainReport 和 subReportFile1。

我的主报告jasper文件如下:

 <?xml version="1.0" encoding="UTF-8"?>
 <!-- Created with Jaspersoft Studio version 5.6.1.final using  JasperReports Library version 5.6.1  -->
 <!-- 2015-01-28T14:21:34 -->
 <jasperReport xmlns="http://jasperreports.sourceforge.net/jasperreports" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports http://jasperreports.sourceforge.net/xsd/jasperreport.xsd" name="mainReport" pageWidth="555" pageHeight="802" columnWidth="555" leftMargin="0" rightMargin="0" topMargin="0" bottomMargin="0" uuid="84a1df53-5934-4d37-a3ae-44735dfd5dc3">
  <property name="com.jaspersoft.studio.unit." value="pixel"/>
  <property name="ireport.zoom" value="1.0"/>
  <property name="ireport.x" value="0"/>
  <property name="ireport.y" value="1936"/>
 <property name="com.jaspersoft.studio.data.defaultdataadapter" value="One Empty Record"/>
 <parameter name="SUBREPORT_DIR" class="java.lang.String" isForPrompting="false">
     <defaultValueExpression><![CDATA["/my/file/path/jaspers/"]]></defaultValueExpression>
  </parameter>
  <parameter name="customObjectList" class="java.util.List"/>
  <detail>
    <band height="181" splitType="Stretch">
        <subreport>
            <reportElement x="0" y="3" width="554" height="157" uuid="782c39a9-1617-403c-b997-36f5cb9cdefd"/>
            <dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{malwareList})]]></dataSourceExpression>
            <subreportExpression><![CDATA["/my/file/path/jaspers/subreport.jasper"]]></subreportExpression>
        </subreport>
        </band>
    </detail>
 </jasperReport>

子报表具有以下字段,我已为其创建了以下自定义 Bean 类,并将其作为参数发送到主报表文件。我有具有以下字段的自定义BeanClass:

    String field1;
    String field2;
    private int field3;
    int field4;
    String field5;
    String date;

我正在我的 java 文件中执行以下行,但仍然得到一个空白的 pdf 报告文件。

  JasperRunManager.runReportToPdfFile(path, "/home/neeraj/test.pdf",
                parametersMap, new JREmptyDataSource());

参数映射包含我发送给子报表的列表。这就是我想做的。将bean列表的数据源发送到存在的其他子报表。

我哪里出错了?

共有1个答案

颛孙星海
2023-03-14

主报表不包含任何记录(JREmptyDataSource),因此不处理明细栏。不执行明细带中的子报表。

将子报表移动到标题带中。并设置报告属性“当没有数据类型时”=“所有部分没有详细信息”

 类似资料:
  • 我使用iReport设计了我的报告,并用Java编译了它。

  • 我从jenkins控制台收到以下消息,但是文件夹是空的,报表没有数据。 C:\Program Files(x86)\Jenkins\Workspace\SCS测试>CD C:\Checkouts\SCS\Test C:\checkouts\scs\test>“behave-tags=@defrost_007-f allure_behave.formatter:allureformatter-o C

  • 当我试图通过使用JavaBean数据源并在表中显示bean的字段值来生成报告时,PDF报告显示的是空值。 我有一个简单的bean(PersonBean)如下所示: 填充并返回bean集合的Person类如下所示:

  • 为什么我的子报表没有显示?看,JRXML代码非常简单。当我按下iReport中的查看按钮时,仅显示主报告。不显示这两个子报表。欢迎任何帮助。 report1_subreport1.jrxml:仅包含标题栏中的静态文本 report1.jrxml :包含一个静态文本和两个子报表,与之前定义的相同。

  • 主要内容:JasperReports <subreport>元素子报表是 JasperReports 的一项不错的功能。此功能允许将一个报表合并到另一个报表中,即一个报表可以是另一个报表的子报表。子报表帮助我们保持报表设计简单,因为我们可以创建许多简单的报表并将它们封装到主报表中。子报告的编译和填充就像普通报告一样。当合并到另一个报告模板中时,任何报告模板都可以用作子报告,(报告模板的)内部没有任何更改。 子报表就像普通的报表模板。它们实际上是net.sf.j

  • 我正在尝试使用Jasper Reports 6.5.1将数据从Java传递到使用JRBeanCollectionDataSource的报告中的字段属性。 我已经创建了JavaBean和报告,所有数据似乎都顺利通过,但最终结果是一个空白页面,我似乎无法解决这个问题。任何帮助都将不胜感激。请看下面我的代码... 提前致谢 代码生成报告 爪哇豆 以下是报告源XML