我是新手,我正在使用 iReport 4.5 设计我的报告。
我有一份主报告( MainReport )和三个子报告( Sub1 , Sub2 , SUB3 )
在 Sub1 中我有三个摘要变量,例如 presentPayable , presentPayment ,余额
在 Sub2 中我有一个摘要变量说 totalCost
我需要在 Sub3 中使用 Sub1 , Sub2 的摘要变量。
我该怎么做?这可以将变量从一个子报告传递给另一个吗?
否则请为我提供任何替代方案。
答案 0 :(得分:2)
要将子报表中的值传递给其父级,父级必须首先拥有一个变量来接收该值。在您的情况下,主报告应该有4个变量,分别用于 presentPayable , presentPayment ,余额和 totalCost
接下来,您需要在主报告中的returnValue
元素中添加subreport
元素。此元素使用属性subreportVariable
和toVariable
将子报表中的变量映射到此报表中的变量。
要在iReport中执行此操作,请单击主报表中的子报表元素。在属性列表中,单击返回值。应出现一个对话框。单击添加按钮。键入子报表变量的名称,然后在此报表中选择要将其传输到的变量。您应该将计算类型保留为“Nothing”,这将指示jasper只使用新值覆盖变量。单击确定添加此项,然后重复其他变量/子报告。
现在,当您运行报表时,每次子报表完成处理时,子报表中变量的当前值都会传回主报表中的指定变量。
要在另一个子报表中使用该值,您需要将变量从主报表传递到另一个子报表作为参数。这包含两部分:将subreportParameter
添加到父报表中的subreport
元素,并将parameter
添加到子报表本身。
在iReport中,单击主报表中的子报表元素。在属性列表中,单击 Parameters 。在出现的对话框中,单击添加按钮。为参数指定名称(例如 presentPayable )并输入引用主报表中变量的值表达式(例如$V{presentPayable}
)。对要传入的每个变量重复此操作。
接下来,打开子报表。在报表检查器中,右键单击 Parameters 。选择添加参数,然后重命名新参数以匹配您在上一步中输入的名称。
在子报表中,您现在应该可以像任何其他参数一样引用这些值(例如$P{presentPayable}
)。