在iReport中如何评估使用SubReport返回变量的MainReport变量的表达式

时间:2019-03-27 15:26:52

标签: ireport

我在主报表中有两个子报表(SubAverageUsageSubActualUsage),并且都分别返回Double值AverageUsageActualUsage

在主报表中,我还定义了变量,以分配子报表中返回的值。即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>

0 个答案:

没有答案