jaspersoft 中不支持的子报表部分类型 ArrayList
Unsupported subreport section type ArrayList in jaspersoft
我需要展示一个从 bean 获取数据的复杂报告。
我创建了一个容器 bean,它有其他 bean 的列表。
public class OreComputateContainerBean implements Serializable{
private static final long serialVersionUID = 1L;
private Long id;
private List<ViewOreGiorniMeseTotBean> listViewOreGiorniMeseTotBean;
private List<ViewOreComputateMeseBean> listViewOreComputateMeseBean;
private List<ViewOreComputateBean> listViewOreComputateBean;
}
在 Tibco Jaspersoft 的主报表中,我添加了子报表并创建了一个字段,例如
<field name="listViewOreGiorniMeseTotBean" class="java.util.List"/>
子报表构建如下:
<subreport>
<reportElement x="280" y="0" width="171" height="83" uuid="a0bfc3a5-e452-4f3e-a875-2eaaf7f367e6"/>
<subreportExpression><![CDATA[$F{listViewOreGiorniMeseTotBean}]]></subreportExpression>
</subreport>
当我尝试在我的应用程序中构建报告时,我看到以下异常
net.sf.jasperreports.engine.JRRuntimeException: Unsupported subreport section type java.util.ArrayList
我需要如何构建子报表才能正确显示数据?
您的子报表定义有两个问题:
subreportExpression
应该定义子报表 .jasper
文件的路径
- 数据引用应作为
dataSourceExpression
传递。此外,JasperReport 要求子报表数据源是 JRDataSource 的实例。
因此,一种可能的解决方案是将子报表声明修改为类似于
的内容
<subreport>
<reportElement x="280" y="0" width="171" height="83" uuid="a0bfc3a5-e452-4f3e-a875-2eaaf7f367e6"/>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{listViewOreGiorniMeseTotBean})]]></dataSourceExpression>
<subreportExpression><![CDATA[subreport_path_relative_to_SUBREPORT_DIR_variable.jasper"]]></subreportExpression>
</subreport>
我需要展示一个从 bean 获取数据的复杂报告。
我创建了一个容器 bean,它有其他 bean 的列表。
public class OreComputateContainerBean implements Serializable{
private static final long serialVersionUID = 1L;
private Long id;
private List<ViewOreGiorniMeseTotBean> listViewOreGiorniMeseTotBean;
private List<ViewOreComputateMeseBean> listViewOreComputateMeseBean;
private List<ViewOreComputateBean> listViewOreComputateBean;
}
在 Tibco Jaspersoft 的主报表中,我添加了子报表并创建了一个字段,例如
<field name="listViewOreGiorniMeseTotBean" class="java.util.List"/>
子报表构建如下:
<subreport>
<reportElement x="280" y="0" width="171" height="83" uuid="a0bfc3a5-e452-4f3e-a875-2eaaf7f367e6"/>
<subreportExpression><![CDATA[$F{listViewOreGiorniMeseTotBean}]]></subreportExpression>
</subreport>
当我尝试在我的应用程序中构建报告时,我看到以下异常
net.sf.jasperreports.engine.JRRuntimeException: Unsupported subreport section type java.util.ArrayList
我需要如何构建子报表才能正确显示数据?
您的子报表定义有两个问题:
subreportExpression
应该定义子报表.jasper
文件的路径- 数据引用应作为
dataSourceExpression
传递。此外,JasperReport 要求子报表数据源是 JRDataSource 的实例。
因此,一种可能的解决方案是将子报表声明修改为类似于
的内容<subreport>
<reportElement x="280" y="0" width="171" height="83" uuid="a0bfc3a5-e452-4f3e-a875-2eaaf7f367e6"/>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($F{listViewOreGiorniMeseTotBean})]]></dataSourceExpression>
<subreportExpression><![CDATA[subreport_path_relative_to_SUBREPORT_DIR_variable.jasper"]]></subreportExpression>
</subreport>