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

时间:2010-09-10 01:16:32

标签: parameters jasper-reports ireport

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

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

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

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

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

4 个答案:

答案 0 :(得分:21)

要将主报告中的参数传递到 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 :(得分:12)

不知道您使用的是哪个版本,但我能够在iReport 3.7.6中执行此操作。

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

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

答案 2 :(得分:0)

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

以下是我采取的步骤。

  • 在报告中创建参数,例如的customerID

  • 将其传递到散列图中的主报告。

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

  • 在报告中将属性The language of for the dataset query设置为SQL

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

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

答案 3 :(得分:0)

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

    右键单击主报告的“参数”部分,在主报告中创建所需的参数------>添加参数-------->将新添加的参数的属性(数据类型)设置为您想要的一个。
  1. 完全按照步骤1在表/列表的数据源的参数部分中创建等效参数。
  2. 从报表浏览器中,右键单击表格,然后单击“编辑表格数据集” ------>选择“参数”选项卡----------->单击添加------ ---->从上方组合(即数据集参数名称)中选择参数(您在步骤2中的数据集参数部分中创建的参数)------>然后单击下方按钮(即)分配值表达式,即您在步骤1中添加的参数。