将参数值从主报表的查询传递到子报表的查询 - iReport

Pass a parameter value from main report's query to subreport's query - iReport

我有两个 JRXML。一个是主报表,一个是子报表。

在主报告中我有一个类似

的查询
select name, address, phoneno from Employee where id=$P{id}

因此,我已将 ID 添加到主报告中的 Parameters,当我预览报告时它会提示输入 ID。

现在在子报表中,我需要一个像

这样的查询
select age, bloodgroup from Employee where id=$P{id} and name=$P{name}

where 子句名称应取自主报表。

我不需要像 id 这样的名称提示。

那么如何将主报表的参数值传递给子报表呢?

在主报表中,您必须 "pass" 子报表所需的所有参数。

假设在您的主报表中您想要将 CITY 参数传递给您的子报表,您应该有如下代码:

    <subreportParameter name="City">
      <subreportParameterExpression><![ CDATA[$P{City} ]] ></subreportParameterExpression>
    </subreportParameter>

除此之外,您还必须在子报表(参数部分)中添加相同的参数。

请注意,在 CDATA 部分中,您可以有多个参数,您也可以传递参数($P{parameter_name})或字段($F{field_name})

希望对您有所帮助!