2010-09-10 58 views
19

我明白如何将参数从主报表传递到子报表,因为子报表对象中存在特定的字段。不过,我想用表或列表对象作为消费者(而不是子报表)来做同样的事情。可能吗?iReport:将主要报表查询中的参数传递给表或列表的数据集查询

例如,假设我有一个“customerID”参数,可以用主报表查询填充,但我似乎无法将此参数传递给表的数据集的SQL查询。

我试过了,并继续尝试,参数,字段和变量的各种组合,但无济于事。

这种事情是否需要子报表实现?

(如果它的事项,是不是很明显,我使用JDBC)

回答

0

我做一个快速的测试报告,进行复制,你在做什么和它的工作。

这是我采取的步骤。

  • 在您的报告中创建一个参数例如客户ID

  • 将它传递到您的主要报告中的散列图。

    hashmap.put("customerID", "12345");

  • 在报告中设定的属性The language of for the dataset querySQL

  • 将属性Query text设置为与下图类似的内容。

    select * from * customers c where c.ID=$P{customerID}

+0

我试过这个,但没有得到任何成功。 – 2017-08-26 20:24:44

11

不知道你使用的是什么版本,但我可以做这件事的iReport 3.7.6。

首先我将参数添加到数据集中。

然后,要将值传递给参数,请右键单击Report Inspector中的Table,选择“Edit table datasource”。转到“参数”选项卡。每个数据集参数都可以从主报告中的参数,字段或变量中获取其值。

19

主报告传递参数给表或列表数据源iReport的 3.6.7+,你需要做以下步骤:

1)创建所需的参数点击主报告参数部分右边的主报告------>添加参数-------->将新增参数的属性(数据类型)设置为你想要的参数。

2)完全按照步骤1在表/列表的数据源参数部分中创建等效参数。

3)从报表资源管理器中,右键单击在桌子上点击编辑表数据集 ------>选择参数标签 ---------- - >点击添加 ---------->上组合(即数据集参数名称)选择参数(您在步骤1的数据集参数部分创建的)--- --->然后点击下按钮(即)赋值表达式,即你在步骤1中添加的参数。

来源:http://hamroblog-sristi.blogspot.fr/2011/04/passing-parameters-from-main-report-to.html

+1

谢谢!就是这个! – YarsRevenge13 2014-04-17 22:34:08

+1

谢谢Ouadie。这就是我一直在努力的一天。我试图第一次使用iReport和JasperServer。 – mwangi 2016-11-22 13:50:25