4

我是新手,我正在使用iReport 4.5设计我的报告。

我有一个主报告(MainReport)和三个报告(Sub1Sub2Sub3

Sub1我有三个汇总变量说presentPayablepresentPaymentbalance

Sub2我有一个汇总变量说totalCost

我需要在我的Sub3中使用Sub1Sub2的汇总变量。

我怎样才能做到这一点?这是否可以将变量从一个子报表传递到另一个子报表?

否则,请为我提供任何替代方法来执行此操作。

4

1 回答 1

2

要将值从子报表传递到其父级,父级必须首先具有一个变量来接收该值。在您的情况下,主报告应该有 4 个变量,presentPayablepresentPaymentbalancetotalCost 各有一个

接下来,您需要向主报表中returnValue的元素添加一个元素。此元素使用属性和subreport将子报表中的变量映射到此报表中的变量。subreportVariabletoVariable

要在 iReport 中执行此操作,请单击主报表中的子报表元素。在属性列表中,单击Return Values。应出现一个对话框。单击添加按钮。键入子报表变量的名称并在此报表中选择您希望将其传输到的变量。您应该将计算类型保留为“Nothing”,这将指示 jasper 简单地用新值覆盖变量。单击确定添加此内容,然后对其他变量/子报表重复此操作。

现在,当您运行报表时,每次子报表完成处理时,子报表中变量的当前值都会传回主报表中的指定变量。

要在另一个子报表中使用该值,您需要将主报表中的变量作为参数传递给另一个子报表。这有两个部分:将 a 添加subreportParametersubreport父报表中的元素,并将 a 添加parameter到子报表本身。

在 iReport 中,单击主报表中的子报表元素。在属性列表中,单击参数。在出现的对话框中,单击添加按钮。为参数命名(例如presentPayable)并输入一个引用主报告中的变量的值表达式(例如$V{presentPayable})。对要传入的每个变量重复此操作。

接下来,打开您的子报表。在报告检查器中,右键单击Parameters。选择Add Parameter,然后重命名新参数以匹配您在上一步中输入的名称。

在子报表中,您现在应该能够像引用任何其他参数(例如$P{presentPayable})一样引用这些值。

于 2013-07-04T14:49:12.977 回答