我有一份报告,使用许多变量来计算超过16个月的滚动库存。用户正在请求翻转金额(或结转)中的一些困难计算,例如只有结转金额> 0,但仅适用于某些类别(组),然后将结转从一个类别添加到另一个类别的结转。我已经解决了大部分问题,但是我需要在组= "XXX"
时为残留设置一个变量,并且即使组发生变化也要保持该变量值。我可以轻松地设置变量以更改类别(组)$F{group1}=="XXX"?QTY_ON_HAND - QTY_ORDERED:0.0
,但是当组变为"YYY"
然后变为"ZZZ"
时,变量的值将更改为0.我需要当变量到达组"XXX"
时,使用变量值在"ZZZ"
组中作为计算的一部分,但如果它在那时重置为0,则它是无用的。我也尝试过设置变量= $V{rollover_amount}
并尝试更改计算类型,重置类型和增量类型无效。
我将计算设置为“无计算”,增量和重置类型设置为“无”
我正在使用 Jaspersoft Studio 5.5 ,但这同样适用于 iReport Designer。
答案 0 :(得分:0)
我看到两种可能的方法。 1)看起来您已经通过在Variable Expression属性中使用条件逻辑创建计算而开始了。继续这种方法。当组条件失败时,尝试将变量重置为自身。就像是: $ F {group1} ==“XXX”? {做你需要做的}}:$ F {group1}
2)使用JasperReport Scriptlet并管理报告之外的逻辑。 http://jasperreports.sourceforge.net/sample.reference/scriptlet/