2013-07-04 124 views
4

我是新手,我正在设计我的报告,使用iReport 4.5如何将参数从一个子报告传递到另一个子报告

我有一个主报告(MainReport)和三个子报表Sub1的分公司2Sub3中

Sub1的我有三个摘要变量说presentPayablepresentPayment余款

分公司2我有一个总结变量说TOTALCOST

我需要使用的Sub1的摘要变量,分公司2Sub3中

我该怎么做?这可能会将变量从一个子报告传递给另一个?

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

+0

可能的重复:[将参数从主报表传递到子报表到Jasper子报表](http://stackoverflow.com/q/13843167/876298)&[将子报表变量传递给其他子报表](http:// stackoverflow。 com/q/7823179/876298) –

+0

嗨亚历克斯,我需要将参数从一个子报表传递到另一个子报表。我还没有找到在这个提供的链接解决方案。 – NSS

回答

2

要将一个值从一个子报表传递给它的父项,父项必须首先有一个变量才能接收该值。你的情况主要报告应该有4个变量,分别为presentPayablepresentPayment平衡TOTALCOST

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

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

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

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

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

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

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

+0

嗨GenericJon,非常感谢您给出答案。我已经完成了您提到的所有步骤,除了最后一点。也就是说,要在另一个子报表中使用该值,只需将主报表中的变量传递给另一个子报表作为参数。你能否一步一步向我解释.Bcoz我没有得到如何将变量作为参数从一个报告传递给另一个报告。 – NSS

+0

@NSS:我已经添加了一些如何将它作为参数传递的步骤。希望有所帮助。 – GenericJon

+0

不知道我是否需要打开一个新问题; LMK。我遵循了步骤。我的问题和我想的一样。我需要来自Table1的Date1的每个实体的Volume1,来自Table2的Date2的Vol2以及每个实体的Table3中的[Vol2-Vol1]。 //我将Entity,Vol1和Vol2从前两个表中输入MainReport,然后输入到Table3中。 ///然而,当我预览,我得到这个错误:引起:net.sf.jasperreports.engine.JRException:变量WellID_Return不能从源变量WellID分配。 \t at net.sf.jasperreports.engine.fill.AbstractVariableReturnValueSourceContext.check(AbstractVariableReturnValueSourceContext.java:77) – dharol

相关问题