首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用java中的子报表生成Jasper报表

使用java中的子报表生成Jasper报表
EN

Stack Overflow用户
提问于 2012-03-20 18:59:00
回答 1查看 41.2K关注 0票数 18

我知道如何在没有任何子报告的情况下生成jasper报告。但目前我的报告中有一个子报表,我想知道如何在java中编译该子报表?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2012-03-20 19:54:52

您可以像编译简单报表一样编译子报表-例如,在JasperCompileManager.compileReport(java.lang.String sourceFileName)方法的帮助下。

之后,您可以将编译后的子报表作为参数传递给主报表。

示例:

代码语言:javascript
复制
JasperReport jasperMasterReport = JasperCompileManager.compileReport(masterReportSource);
JasperReport jasperSubReport = JasperCompileManager.compileReport(subReportSource);

Map<String, Object> parameters = new HashMap()<String, Object>;
parameters.put("subreportParameter", jasperSubReport);

JasperFillManager.fillReportToFile(jasperMasterReport, parameters, outputFileName, connection);

来自主报告的jrxml文件(示例)的代码片段:

代码语言:javascript
复制
<parameter name="subreportParameter" class="net.sf.jasperreports.engine.JasperReport"/>
...
<detail>
    <band height="50">
        ...
        <subreport>
                <reportElement isPrintRepeatedValues="false" x="5" y="25" width="325" height="20" isRemoveLineWhenBlank="true" backcolor="#ffcc99"/>
                <subreportParameter name="City">
                    <subreportParameterExpression><![CDATA[$F{City}]]></subreportParameterExpression>
                </subreportParameter>
                <connectionExpression><![CDATA[$P{REPORT_CONNECTION}]]></connectionExpression>
                <returnValue subreportVariable="PriceSum" toVariable="ProductTotalPrice" calculation="Sum"/>
                <subreportExpression class="net.sf.jasperreports.engine.JasperReport"><![CDATA[$P{subreportParameter}]]></subreportExpression>
            </subreport>

备注

我提到了一个用于生成结果的旧API:。

如果使用JasperReports 6.x,最好使用导出器( 接口的具体实现,例如JRPdfExporter)来生成输出文件

如何使用导出器权限的示例可以在here中找到

票数 45
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9785451

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档