我正在尝试启动我在 iReport 中创建的报告,其中包含主报告和子报告。在 iReport 中,子报表启动正常并包含数据,但是当我尝试从 java 代码中启动它时,子报表为空。
到目前为止我所做的:
我在主报告中有一个名为“SUBREPORT”的字符串参数,用于定义子报告的路径。例如。值:“E:\ java \ ReportLauncher \ reports \ test_subreport1.jasper”
主报表中的子报表表达式设置为:$P{SUBREPORT}
子报表连接表达式为:$P{REPORT_CONNECTION}
我还定义了一个名为“INVOICE_NUMBER”的子报表参数,该参数设置为 $F{InviInvNo},它映射到主报表中的字段。
在我的java代码中,我有:
HashMap<String, Object> paramHash = new HashMap();
paramHash.put("INVOICE_NUMBER", invoiceID);
paramHash.put("REPORT_CONNECTION", this.conn);
paramHash.put("SUBREPORT", subReportPath);
JasperPrint jasperprint = JasperFillManager.fillReport(this.reportPath, paramHash, this.conn);
主报告创建良好并已填充。然而,子报表区域是空白的。对我做错了什么有什么想法吗?
提前致谢,
安迪.
由于您没有提及有关子报表查询的任何内容:
如果您在子报表中使用详细信息区域,那么您将需要对报表进行数据查询。
在旧的 iReport 中,从Data
菜单,选择Report Query
并在此处写下您的查询。如果您只需要一条记录(即仅一次详细信息带),您可以使用虚拟表。喜欢:
SELECT 'a' FROM DUMMY
否则,如果您不想使用详细信息区域,则可以选择不使用查询来查看其他区域。从Edit
菜单,选择Report Properties
, under More...
选项卡,设置标志When no data
to All Sections, no detail
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)