Jasper Reports 中的空白子报表

发布于 2024-08-27 02:29:15 字数 824 浏览 9 评论 0原文

我正在尝试启动我在 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);

主报告创建良好并已填充。然而,子报表区域是空白的。对我做错了什么有什么想法吗?

提前致谢, 安迪.

I'm trying to launch a report that I created in iReport which contains a main report and a subreport. In iReport, the subreport launches fine and contains data, however when I try to launch it from within my java code, the subreport is blank.

What I've done so far:

  • I have a String parameter in the main report called "SUBREPORT" that is used to define the path to the subreport. E.g. value: "E:\java\ReportLauncher\reports\test_subreport1.jasper"

  • The subreport expression in the main report is set to: $P{SUBREPORT}

  • The subreport connection expression is: $P{REPORT_CONNECTION}

  • I also have a subreport parameter defined called "INVOICE_NUMBER" that is set to $F{InviInvNo}, which maps to a field in the main report.

In my java code, I have:

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);

The main report is created fine and is populated. The subreport area however is blank. Any thoughts for what I'm doing wrong?

Thanks in advance,
Andy.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

顾挽 2024-09-03 02:29:15

由于您没有提及有关子报表查询的任何内容:

如果您在子报表中使用详细信息带,那么您将需要报表的数据查询。

在旧版 iReport 中,从数据菜单中选择报告查询并在此处编写查询。如果您只需要一条记录(即只有一次详细信息带),您可以使用虚拟表。喜欢:

SELECT 'a' FROM DUMMY

否则,如果您不想使用详细信息带,则可以选择不使用查询来查看其他带。从编辑菜单中,选择报告属性,在更多...选项卡下,将标记当没有数据设置为所有部分,无详细信息

Since you didn't mention anything about the subreport query:

If you are using the Detail Band in the subreport, then you will need a Data Query for the report.

In old iReport, from Data menu, choose Report Query and write your query here. If you want only one record (i.e. Detail band only one time) you can use a dummy table. Like:

SELECT 'a' FROM DUMMY

Otherwise, if you don't want to use the Detail Band, you have the option to view the other bands without using a query. From Edit menu, choose Report Properties, under More... tab, set the flag When no data to All Sections, no detail

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文