【问题标题】:iReport: Passing parameters from a main report query to a dataset query for a table or listiReport:将参数从主报表查询传递到表或列表的数据集查询
【发布时间】:2010-09-10 01:16:31
【问题描述】:

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

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

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

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

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

【问题讨论】:

  • 这里还有一个很好的答案,如果你只是想参考 jrxml 代码:link

标签: parameters jasper-reports ireport


【解决方案1】:

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

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

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

3) 在报表浏览器中,右键点击表格点击编辑表格数据集 ------> 选择参数选项卡 ----------->点击添加 ---------->选择参数 strong>(您在步骤 1 中在数据集的参数部分创建的)从 上部组合(即数据集参数名称)------> 然后 单击下部按钮 (ie) 赋值表达式,即您在步骤 1 中添加的参数。

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

【讨论】:

  • 谢谢你。这就是我一天以来一直在努力的事情。我是第一次尝试同时使用 iReport 和 JasperServer。
  • 如何为字段传递值
【解决方案2】:

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

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

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

【讨论】:

    【解决方案3】:

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

    这是我采取的步骤。

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

    • 将它传递给哈希图中的主报告。

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

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

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

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

    【讨论】:

      【解决方案4】:

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

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

      【讨论】:

        猜你喜欢
        • 2015-04-11
        • 1970-01-01
        • 2013-04-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多