我了解如何将参数从主报表传递到子报表,因为子报表对象中有一个特定的字段。但是,我想将表或列表对象作为消费者(而不是子报表)做同样的事情。可能吗?
例如,假设我有一个“customerID”参数,我可以使用主报表查询填充该参数,但我似乎无法将此参数传递给表的数据集的 SQL 查询。
我已经尝试并继续尝试各种参数、字段和变量的组合,但无济于事。
这种事情需要子报表实现吗?
(如果重要且不明显,我正在使用 JDBC)
我了解如何将参数从主报表传递到子报表,因为子报表对象中有一个特定的字段。但是,我想将表或列表对象作为消费者(而不是子报表)做同样的事情。可能吗?
例如,假设我有一个“customerID”参数,我可以使用主报表查询填充该参数,但我似乎无法将此参数传递给表的数据集的 SQL 查询。
我已经尝试并继续尝试各种参数、字段和变量的组合,但无济于事。
这种事情需要子报表实现吗?
(如果重要且不明显,我正在使用 JDBC)
要将参数从主报表传递到iReport 3.6.7+中的表格或列表数据源,您需要执行以下步骤:
1)通过右键单击主报告的参数部分在主报告中创建所需的参数-------->添加参数-------->将新添加参数的属性(数据类型)设置为您的想要的。
2)在表/列表的数据源的参数部分中创建等效参数,与步骤 1 完全相同。
3)从报告资源管理器中,右键单击表并单击编辑表数据集------>选择参数选项卡----------->单击添加-------- --->从上部组合(即数据集参数名称)中选择参数(您在步骤1中在数据集的参数部分中创建)------>然后单击下部按钮(即)分配值表达式,即参数您在步骤 1 中添加的。
来源:http ://hamroblog-sristi.blogspot.fr/2011/04/passing-parameters-from-main-report-to.html
不知道您使用的是什么版本,但我能够在 iReport 3.7.6 中做到这一点。
首先,我将参数添加到数据集。
然后,要将值传递给参数,请右键单击 Report Inspector 中的表,选择“编辑表数据源”。转到“参数”选项卡。每个数据集参数都可以从主报表的参数、字段或变量中获取其值。
我制作了一份快速测试报告来复制您正在做的事情并且它有效。
这是我采取的步骤。
在您的报告中创建一个参数,例如 customerID
将其传递给哈希图中的主报告。
hashmap.put("customerID", "12345");
在报告中将属性设置The language of for the dataset query
为SQL
。
将属性设置Query text
为类似于下面的内容。
select * from * customers c where c.ID=$P{customerID}
要将主报表中的参数传递到 iReport 上版本中的表格或列表数据源,我们需要执行以下步骤: