Jasper reports 使用iReport工具为JasperReports创建子报表

Jasper reports 使用iReport工具为JasperReports创建子报表,jasper-reports,Jasper Reports,我正在开发一个基于struts的应用程序。我想创建一个Jasper报告,其中包含纸张对象的问题和回答。显然,我有一个包含零件属性的纸张对象列表,每个纸张对象内部都有一个问题列表。此外,每个问题都有一个回答列表 我可以使用显示不同零件名称的纸张对象创建主报告。但我想显示与该部分相关的问题以及与每个问题相关的回答 我的模型课程是: //纸张 公开课论文{ 公共字符串部分名; 公开问题清单; } //问题: 公开课问题{ 公共字符串问题; 公开列表答案; } //答复 公开课答案{ 公共字符串应答;

我正在开发一个基于struts的应用程序。我想创建一个Jasper报告,其中包含
纸张
对象的问题和回答。显然,我有一个包含零件属性的
纸张
对象列表,每个
纸张
对象内部都有一个
问题列表
。此外,每个
问题
都有一个回答列表

我可以使用显示不同零件名称的纸张对象创建主报告。但我想显示与该部分相关的问题以及与每个问题相关的回答

我的模型课程是:

//纸张
公开课论文{
公共字符串部分名;
公开问题清单;
}
//问题:
公开课问题{
公共字符串问题;
公开列表答案;
}
//答复
公开课答案{
公共字符串应答;
}

我知道我必须在
iReport
中使用子报表。当我这样做时,数据源表达式
newjrbeancollectiondatasource($F{questions})
new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{questions})

完美。。。。。。。。。。。。此外,请在主报告中导入类

 <import value="net.sf.jasperreports.engine.*"/>
 <import value="net.sf.jasperreports.engine.data.*"/>

而子报表标记将具有

<subreport isUsingCache="true">
<reportElement x="0" y="39" width="555" height="276"/>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{addresses})]]></dataSourceExpression>
<subreportExpression class="java.lang.String"><![CDATA[$P{SUBREPORT_DIR} + "report1_subreport5.jasper"]]></subreportExpression>
</subreport>


子报表看起来就像普通字段。注意:子报表不会出现错误,因为它无法在bean中找到字段。

响应应转到此处,以帮助将来遇到类似问题的人。如果您说编译失败,您能给出与失败相关的错误消息吗?您已经给出了类结构,但没有给出任何报告信息。你在哪里用这个表达?