将值从主报告传递到子报告?

发布于 2024-10-18 12:29:35 字数 663 浏览 4 评论 0原文

我刚刚开始使用 iReport,并接受了对现有报告进行一些更改的任务。

目前有一份主要报告,其中包含 A 部分和 B 部分(联系方式和一些其他信息)。有一个子报告 C,然后是一个子报告 D。我的任务是为 D 中的每个项目复制 A 和 B。如果报告有许多 D 部分,我希望每个部分都有一个 A 和 B。

所有数据都在同一个 XML 文档中,并且要获取 A 部分和 BI 部分的数据,

((net.sf.jasperreports.engine.data.JRXmlDataSource)$F{REPORT_DATA_SOURCE}).dataSource("/Header/")

对于 D 部分的子报告来说

((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("/Header/ProductHeader/Member")

如果我将显示 A 部分数据的文档结构中的字段拖到 D 部分,并检查它所说的表达式,则 ,获取数据很简单 $F{ContactNumber} 但在 D 中显示 Null,即使它在 A 部分中显示值

我需要如何修改数据源以在 D 中显示 A 和 B 的内容?

提前致谢

I just started to work with iReport and got the task to do some changes to already existing reports.

Currently there's a main report with section A and B (contact details and some other info). There is a sub report C and then a subreport D. My task is to replicate A and B for every item in D. If the report has many D sections I want to have an A and B for each.

All data is in the same XML document and to get the data for section A and B I have simply

((net.sf.jasperreports.engine.data.JRXmlDataSource)$F{REPORT_DATA_SOURCE}).dataSource("/Header/")

and for sub report with D section

((net.sf.jasperreports.engine.data.JRXmlDataSource)$P{REPORT_DATA_SOURCE}).subDataSource("/Header/ProductHeader/Member")

if I drag a field from Document Structure that displays data in Section A to section D and check the expression it says
$F{ContactNumber} but displays Null in D even though it displays a value in section A

How do I need to modify my data sources to display content of A and B in D?

Thanks in advance

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

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

发布评论

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

评论(1

原来分手还会想你 2024-10-25 12:29:35

您需要将参数传递给您的子报告。除非您明确定义合同,否则子报告不会共享主报告中的任何数据。它更像是一个方法调用,而不是主报告的延续。

如果您想在子报告的主报告中显示名为 foo 的字段,则需要执行以下操作:

  1. 在子报告中创建一个名为 foo 的参数
  2. 在主报表中创建子报表元素。
  3. 在子报表元素的属性中,有一个名为“参数”的属性。打开该对话框并添加一个名为 foo 的参数和正确的值表达式。

当您想在子报告中使用 foo 的值时,您应该使用表达式:$P{foo}(如果它是主报告参数)。

You need to pass parameters to your sub-report. A sub-report doesn't share any data from your main report unless you explicitly define the contract. It is more like a method call then a continuation of the main report.

If you wanted to display a field with the name foo in your main report in the sub-report you would need to do the following:

  1. Create a parameter in your sub-report with the name foo.
  2. Create a sub-report element in your main report.
  3. In the Properties of the sub-report element, there is a property called "Parameters". Open up the dialog and add a parameter with the name foo and the correct value expression.

When you want to use the value for foo in your sub-report you should use the expression: $P{foo} if it is a main report parameter.

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