jasper-reports – 如何将参数从一个子报表传递到另一个子报表

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

我有一个主报告(MainReport)和三个子报告(Sub1,Sub2,Sub3)

在Sub1中我有三个汇总变量,表示presentPayable,presentPayment,balance

在Sub2中,我有一个汇总变量,即totalCost

我需要在Sub3中使用Sub1,Sub2的汇总变量.

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

否则请为我提供任何替代方案.

最佳答案 要将值从子报表传递到其父级,父级必须首先具有一个变量来接收该值.在您的情况下,主报告应该有4个变量,分别为presentPayable,presentPayment,balance和totalCost.

接下来,您需要将returnValue元素添加到主报表中的子报表元素.此元素使用属性subreportVariable和toVariable将子报表中的变量映射到此报表中的变量.

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

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

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

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

接下来,打开子报表.在报表检查器中,右键单击“参数”.选择“添加参数”,然后重命名新参数以匹配您在上一步中输入的名称.

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

点赞