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

Parameters iReport:将参数从主报表查询传递到表或列表的数据集查询,parameters,jasper-reports,ireport,Parameters,Jasper Reports,Ireport,我了解如何将参数从主报表传递到子报表,因为子报表对象中有一个特定的字段。但是,我希望将表或列表对象作为使用者(而不是子报表)执行相同的操作。可能吗 例如,假设我有一个参数'customerID',我可以用一个主报表查询填充该参数,但我似乎无法将该参数传递给表的dataset的SQL查询 我已经尝试过,并将继续尝试各种参数、字段和变量的组合,但都无济于事 这类事情需要子报表实现吗 (如果它很重要而且不明显,我正在使用JDBC)我制作了一个快速测试报告,以复制您正在做的事情,并且它工作正常 以下是我

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

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

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

这类事情需要子报表实现吗


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

我制作了一个快速测试报告,以复制您正在做的事情,并且它工作正常

以下是我采取的步骤

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

  • 在hashmap中将其传递给主报告

    hashmap.put(“customerID”、“12345”)

  • 在报告中,将数据集查询的属性
    语言设置为
    SQL

  • 将属性
    querytext
    设置为与下面类似的内容

    select*from*customers c其中c.ID=$p{customerID}


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

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


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

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

1)通过右键单击主报告的参数部分------->添加参数------->将新添加参数的属性(数据类型)设置为所需属性,在主报告中创建所需参数

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

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


来源:

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

  • 通过右键单击主报告的参数部分------->添加参数------->将新添加参数的属性(数据类型)设置为所需的属性,在主报告中创建所需的参数
  • 在表/列表的数据源的参数部分中创建等效参数,与步骤1完全相同
  • 在报表浏览器中,右键单击表格,然后单击编辑表格数据集------->选择参数选项卡------->单击添加------->从上部组合框(即数据集参数名称)中选择参数(您在第2步的数据集参数部分中创建的),然后单击下部按钮(即赋值表达式,即在步骤1中添加的参数

  • 谢谢你,瓦迪。这就是我挣扎了一天的原因。我第一次尝试同时使用iReport和JasperServer。如果您只想参考jrxml代码,如何传递fieldsHere的另一个好答案的值: