我有一个包含 2 个不同子报告的主报告。
我有一个来自 subreport1 的变量 sum,例如 10(整数类型)
我有来自另一个 subreport2 的另一个变量 sum,例如 2(整数类型)
我已经成功地从每个子报告中检索了 2 个变量, 现在我想在主报告中创建一个变量来总结这 2 个变量
所以现在在我的主报告中我有 3 个变量
第一个变量称为 VAR1,它来自子报表 1
Name VAR1
Variable Class java.lang.Integer
Reset type Report
initial Value Expression 0
Run Code Online (Sandbox Code Playgroud)
第二个变量称为 VAR2,它来自子报表 2
Name VAR2
Variable Class java.lang.Integer
Reset type Report
initial Value Expression 0
Run Code Online (Sandbox Code Playgroud)
最后一个变量称为 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
Run Code Online (Sandbox Code Playgroud)
当我预览 pdf 时,SUM 变量为 NULL,VAR1 和 VAR2 是整数值,但 SUM 变量始终为 NULL
难道 SUM 是在 VAR1 和 VAR2 之前计算的吗?
我的问题是什么?
您的怀疑是正确的,使用具有从子报表返回的值的变量来计算其他变量是行不通的,因为“常规”变量值是在子报表呈现和返回值之前计算的。
如果您只需要对返回值求和,您可以做的一件事是将两个子报表的值返回到同一个变量中,使用计算=“Sum”作为返回值。也就是说,将第一个子报表中的 val1 返回到 VAR1,并将相同的 val1 返回到 SUM(计算 =“Sum”),并将 val2 从第二个子报表返回到 VAR1 和 SUM(计算 =“Sum”)。
请注意,calculation="Sum" 是针对返回值而不是变量;用于返回值的变量通常需要有calculation="System"。
| 归档时间: |
|
| 查看次数: |
7184 次 |
| 最近记录: |