我有一个JRXML,它的摘要区域有一个子报告,JRXML调用一个oracle过程,过程返回一些数据但也在其他表中插入行,那些按程序插入的行在子报表中被访问。
我可以在Studio中执行此操作,但是通过java它无法正常工作,子报表总是通过java变为空白。我已将连接自动提交设置为true。
知道它将如何运作吗?。
以下是主报告中的子报告jrxml 。
<subreport>
<reportElement x="-11" y="37" width="891" height="43" uuid="a8071066-22fc-46a7-9208-ebd217ddd22e"/>
<subreportParameter name="NUMBER_FORMAT">
<subreportParameterExpression><![CDATA[$P{NUMBER_FORMAT}]]></subreportParameterExpression>
</subreportParameter>
<subreportParameter name="REPORT_ID">
<subreportParameterExpression><![CDATA[$F{REPORT_ID}]]></subreportParameterExpression>
</subreportParameter>
<connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
<subreportExpression><![CDATA[$P{ChargeWiseSummarySubReport}]]></subreportExpression>
</subreport>
我的 java代码如下。
con.setAutoCommit(true);
JasperReport jasperReport=JasperCompileManager.compileReport(inputStream);
JasperReport jasperSubReport=JasperCompileManager.compileReport(stream);
params.put("ChargeWiseSummarySubReport",jasperSubReport);
JasperPrint jasperPrint=(JasperPrint) JasperFillManager.fillReport(jasperReport,params,con);
查询子报告
SELECT JCD.CHARGEID , JCD.CHARGEDESC,
SUM(JCD.LOCAL_REVENUE) BILLING,
SUM(JCD.LOCAL_COST) EXPENSE,
SUM(JCD.LOCAL_PROFIT) PROFIT,
'1' OIND
FROM FS_RP_JCDATA JCD
WHERE JCD.REPORT_ID = $P{REPORT_ID}