Jasper reports 如何将两个变量求和并存储到一个变量中
我有一个包含两个不同子报表的主报表 我有一个来自子报表1的变量和,例如10(类型Integer) 我从另一个子报表2中得到了另一个变量sum,例如2(类型Integer) 我已成功地从每个子报告中检索到2个变量 现在我想在mainreport中创建一个变量,将这两个变量相加 现在在我的主报告中,我有3个变量 第一个变量称为VAR1,它来自子报表1Jasper reports 如何将两个变量求和并存储到一个变量中,jasper-reports,Jasper Reports,我有一个包含两个不同子报表的主报表 我有一个来自子报表1的变量和,例如10(类型Integer) 我从另一个子报表2中得到了另一个变量sum,例如2(类型Integer) 我已成功地从每个子报告中检索到2个变量 现在我想在mainreport中创建一个变量,将这两个变量相加 现在在我的主报告中,我有3个变量 第一个变量称为VAR1,它来自子报表1 Name VAR1 Variable Class java.lang.Intege
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
是不是在VAR1和VAR2之前计算了总和
我有什么问题 您的猜测是正确的,使用具有从子报表返回的值的变量来计算其他变量不起作用,因为“常规”变量值是在子报表呈现和返回值之前计算的 如果只需要对返回的值求和,那么可以使用calculation=“sum”将两个子报表中的值返回到同一个变量中。也就是说,将第一个子报表中的val1返回给VAR1,并将相同的val1返回给calculation=“SUM”求和,将第二个子报表中的val2返回给VAR1,并返回给calculation=“SUM”求和
请注意,calculation=“Sum”用于返回值,而不是变量;用于返回值的变量通常需要有calculation=“System”。这取决于使用SUM变量的频带。此外,您是否在报告中显示了用于测试的VAR1和VAR2的值?我在主报告中有3个详细栏位,第一个详细栏位包含我的第一个子报告,第二个详细栏位包含第二个子报告,第三个详细栏位包含3个变量VAR1、VAR2和SUM,是的,我的VAR1和VAR2显示用于测试。最后,我只想在第三个细节栏中显示总和,但它是空的,我不知道为什么。您是否尝试将总和变量的
计算时间
更改为“现在”?另外,您是否尝试过使用另一个波段,如Summary
或Group Footer
?我将SUM变量的计算时间设置为“now”(在报告之前),并将其放置在Summary波段,但我怀疑计算部分出了问题。您是否尝试过表达式$V{VAR1}+$V{VAR2}
?把它放到一个文本字段中,看看计算结果是否正确。谢谢你,它帮了我很多忙!