Jasper reports Jasper子报表仅在第一页填充-Java
我有一个主报表,在组页脚中有一个子报表。目标是在每页上显示此子报表。在Jaspersoft Studio中,这一点非常有效,但当我在Spring服务中编译并填充模板时,子报表仅在第一页填充。当我在“无数据类型时”中添加“所有部分无详细信息”时,我只看到列标题。我花了好几个小时试图调试,但没有成功。下面是jrxml和java代码 JRXMLJasper reports Jasper子报表仅在第一页填充-Java,jasper-reports,subreport,Jasper Reports,Subreport,我有一个主报表,在组页脚中有一个子报表。目标是在每页上显示此子报表。在Jaspersoft Studio中,这一点非常有效,但当我在Spring服务中编译并填充模板时,子报表仅在第一页填充。当我在“无数据类型时”中添加“所有部分无详细信息”时,我只看到列标题。我花了好几个小时试图调试,但没有成功。下面是jrxml和java代码 JRXML <groupFooter> <band height="144"> <subrepo
<groupFooter>
<band height="144">
<subreport>
<reportElement x="70" y="90" width="642" height="30" uuid="47af6568-4e1c-4dc4-8688-dfb4d6e17bbc"/>
<dataSourceExpression><![CDATA[$P{TEMPLATE_DATA}]]></dataSourceExpression>
<subreportExpression><![CDATA[$P{TEMPLATE_XML}]]></subreportExpression>
</subreport>
</band>
</groupFooter>
Java代码
Map<String, Object> parameters = new HashMap<>()
parameters.add("TEMPLATE_XML", compiledSubReport)
List<entity> entityList = util.getEntities()
JRBeanCollectionDataSource data = new JRBeanCollectionDataSource(entityList)
parameters.add("TEMPLATE_DATA", data)
return JasperFillManager.fillReport(mainReport, parameters, mainDataSource)
Map参数=新HashMap()
parameters.add(“模板XML”,compiledSubReport)
List entityList=util.getEntities()
JRBeanCollectionDataSource数据=新的JRBeanCollectionDataSource(entityList)
参数。添加(“模板数据”,数据)
返回JasperFillManager.fillReport(mainReport、参数、mainDataSource)
数据源对象不能多次使用,每次显示子报表时都需要创建一个新的数据源对象
您可以通过将entityList
作为参数传递给报表,然后将其用于子报表来实现这一点:
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{ENTITY_LIST})]]></dataSourceExpression>