我在主报表中有两个子报表(SubAverageUsage
,SubActualUsage
),并且都分别返回Double值AverageUsage
和ActualUsage
。
在主报表中,我还定义了变量,以分配子报表中返回的值。即var_Average
var_Actual
。两者的ResetType属性都设置为“报告”。并且在Textfield中使用这些变量还会在报表输出中显示正确的结果。
但是,当我在MainReport本地的另一个变量的表达式中使用这些变量时,它不会显示结果。即我在主报表中有一个变量Result
,其值表达式仅假定对子报表中返回的值进行简单的加减。即($P{InStock} + $F{PoDue} -($V{var_Average} - V{var_Actual}))
在主报告中只有一个“详细信息”区域和一列,请在这里说我的话
我尝试了所有可能的属性设置以显示
Result
变量的输出,但是它显示了Null
我在这里想念什么?我知道在评估Result
值之前必须先执行Subreport。我尝试在单独的第一个波段中添加子报表,在第二个波段中添加文本字段,并将EvaluationTime属性设置为“波段”。对我没有任何帮助。
任何方向都会有所帮助。谢谢。
iReport版本3.7.1
<variable name="RESULT" class="java.lang.Double" resetType="Page">
<variableExpression><![CDATA[new Double(
$P{IN_STOCK}.doubleValue()
+ ($F{DELIVERIES_DUE} == null ? new Double(0.0).doubleValue() : $F{DELIVERIES_DUE}.doubleValue())
- ($V{var_Average}.doubleValue() - $V{var_Actual}.doubleValue())
)]]></variableExpression>
<initialValueExpression><![CDATA[new java.lang.Double(0)]]></initialValueExpression>
</variable>