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

Jasper reports 如何将参数从一个子报表传递到另一个子报表,jasper-reports,Jasper Reports,我是新手,正在使用iReport 4.5设计报告 我有一个主报告(MainReport)和三个子报告(Sub1、Sub2、Sub3) 在Sub1中,我有三个汇总变量,即presentPayment、presentPayment和balance 在Sub2中,我有一个汇总变量,即totalCost 我需要在Sub3中使用Sub1、Sub2的摘要变量 我该怎么做?是否可以将变量从一个子报表传递到另一个子报表 否则,请为我提供任何替代方法。要将值从子报表传递给其父报表,父报表必须首先有一个变量来接收该

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

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

在Sub1中,我有三个汇总变量,即presentPayment、presentPayment和balance

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

我需要在Sub3中使用Sub1、Sub2的摘要变量

我该怎么做?是否可以将变量从一个子报表传递到另一个子报表


否则,请为我提供任何替代方法。

要将值从子报表传递给其父报表,父报表必须首先有一个变量来接收该值。在您的情况下,主报表应该有4个变量,分别对应于presentPayment、presentPayment、balance和totalCost

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

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

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

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

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

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


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

可能重复:&Hi-Alex,我需要将参数从一个子报表传递到另一个子报表。我在提供的链接中没有找到解决方案。Hi-GenericJon,非常感谢您给出答案。除了最后一点,我已经完成了您提到的所有步骤。即在另一个子报表中使用该值,只需将变量作为参数从主报表传递到另一个子报表。你能一步一步地给我解释一下吗?Bcoz我不知道如何将变量作为参数从一个报表传递到另一个报表。@NSS:我添加了一些关于如何将其作为参数传递的步骤。希望有帮助。不确定我是否需要提出一个新问题;lmk。我遵循步骤。我想我的问题是一样的。我需要表1中Date1的每个实体的卷1,表2中Date2的卷2,以及表3中每个实体的[Vol2-Vol1]//我将前两个表中的实体Vol1和Vol2输入MainReport,然后输入表3///但是,当我预览时,我得到以下错误:由以下原因引起:net.sf.jasperreports.engine.JRException:变量WellID\u返回值不可从源变量WellID赋值。位于net.sf.jasperreports.engine.fill.AbstractVariableReturnValueSourceContext.check(AbstractVariableReturnValueSourceContext.java:77)