iReport:将参数从主报告查询传递到表或列表的数据集查询

问题描述 投票:0回答:4

我了解如何将参数从主报表传递到子报表,因为子报表对象中有一个特定的字段。但是,我想作为消费者(而不是子报表)对表或列表对象执行相同的操作。可以吗?

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

我已经尝试并继续尝试参数、字段和变量的各种组合,但没有效果。

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

(如果它很重要并且不明显,我正在使用 JDBC)

parameters jasper-reports
4个回答
25
投票

要将参数从主报表传递到iReport 3.6.7+中的表或列表数据源,您需要执行以下步骤:

1)在主报表中右键创建所需参数点击主报表的参数部分------>添加参数-------->设置属性(数据类型)新添加的参数到您想要的参数。

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

3) 在报表资源管理器中,右键 单击表格,然后 单击“编辑表数据集” ------> 选择参数选项卡 ----------->单击添加 ---------->上部组合(即数据集参数名称)中选择参数(您在步骤 1 中在数据集的参数部分中创建的参数)------ > 然后单击下方按钮(即)分配值表达式,即您在步骤 1 中添加的参数。

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


12
投票

不知道你使用的是什么版本,但我可以在 iReport 3.7.6 中做到这一点。

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

然后,要将值传递给参数,请右键单击报表检查器中的表,选择“编辑表数据源”。转到“参数”选项卡。每个数据集参数都可以从主报告的参数、字段或变量中获取其值。


0
投票

我制作了一份快速测试报告来复制您正在做的事情并且它有效。

这是我采取的步骤。

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

  • 将其通过哈希映射传递到您的主报告。

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

  • 在报告中将属性

    The language of for the dataset query
    设置为
    SQL

  • 将属性

    Query text
    设置为类似于下面的内容。

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


0
投票

要将主报表的参数传递到iReport上版本中的表格或列表数据源,我们需要执行以下步骤:

  1. 通过右键单击主报告的参数部分在主报告中创建所需的参数----->添加参数-------->将新添加的参数的属性(数据类型)设置为您想要的一个。
  2. 在表/列表的数据源的参数部分中创建等效参数,与步骤 1 完全相同。
  3. 在报表资源管理器中,右键单击表并单击编辑表数据集 ------> 选择参数选项卡 ----------> 单击添加 -------- -->从上面的组合(即数据集参数名称)中选择参数(您在步骤 2 中在数据集的参数部分中创建的) ------> 然后单击下面的按钮(即)分配值表达式,即参数您在步骤 1 中添加的。
© www.soinside.com 2019 - 2024. All rights reserved.