gpt4 book ai didi

java - Jasper Reports 中的空白子报表

转载 作者:行者123 更新时间:2023-11-30 11:59:28 26 4
gpt4 key购买 nike

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

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

提前致谢,安迪。

最佳答案

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

如果您在子报表中使用 Detail Band,那么您将需要报表的数据查询。

在旧的 iReport 中,从 Data 菜单中,选择 Report Query 并在此处编写您的查询。如果您只想要一个记录(即只需要一次详细信息带),您可以使用虚拟表。喜欢:

SELECT 'a' FROM DUMMY

否则,如果您不想使用 Detail Band,您可以选择在不使用查询的情况下查看其他 Band。从 Edit 菜单中,选择 Report Properties,在 More... 选项卡下,将标志 When no data 设置为所有部分,无详细信息

关于java - Jasper Reports 中的空白子报表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2564674/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com