我有一个包含 2 个不同子报告的主报告。
我有一个来自 subreport1 的变量 sum,例如 10(整数类型)
我有来自另一个 subreport2 的另一个变量 sum,例如 2(整数类型)
I have 成功从每个子报表中检索了 2 个变量现在我想在主报告中创建一个变量来总结这两个变量
所以现在在我的主报告中我有 3 个变量
第一个变量称为 VAR1,它来自子报表 1
Name VAR1
Variable Class java.lang.Integer
Reset type Report
initial Value Expression 0
第二个变量称为 VAR2,它来自子报表 2
Name VAR2
Variable Class java.lang.Integer
Reset type Report
initial Value Expression 0
最后一个变量称为 SUM
Name SUM
Variable Class java.lang.Integer
Reset type Report
variable expression new Integer($V{VAR1}.intValue() + $V{VAR2}.intValue() )
initial Value Expression 0
当我预览 pdf 时,SUM 变量为 NULL,VAR1 和 VAR2 是整数值,但 SUM 变量始终为 NULL
难道 SUM 是在 VAR1 和 VAR2 之前计算的吗?
我的问题是什么?
您的怀疑是正确的,使用具有从子报表返回的值的变量来计算其他变量是行不通的,因为“常规”变量值是在子报表呈现和返回值之前计算的。
如果您只需要对返回值求和,您可以做的一件事是将两个子报表的值返回到同一个变量中,使用计算=“Sum”作为返回值。也就是说,将第一个子报表中的 val1 返回到 VAR1,并将相同的 val1 返回到 SUM(计算 =“Sum”),并将 val2 从第二个子报表返回到 VAR1 和 SUM(计算 =“Sum”)。
请注意,calculation="Sum" 是针对返回值而不是变量;用于返回值的变量通常需要有calculation="System"。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)