如何在主报表中插入子报表中的数据以获取?

时间:2016-03-23 10:44:44

标签: java jasper-reports

我有一个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}

0 个答案:

没有答案