В переменной подотчета у вас есть calculation=System
. Это следует использовать, когда вы сами вычисляете переменную с помощью скриптлета. У вас нет соответствующего скриптлета, присоединенного к отчету, поэтому переменная никогда не вычисляется.
Возможно, вы захотите изменить определение переменной, чтобы она вычислялась в начале подотчета, примерно так:
<variable name="A" class="java.lang.Integer" resetType="Report" calculation="Nothing">
<variableExpression><![CDATA[$F{sum}]]></variableExpression>
</variable>
resetType="Report"
никогда не будет сбрасывать переменную во время работы отчета.
calculation="Nothing"
будет оценивать выражение переменной для каждой строки в наборе данных.
Эти атрибуты могут быть опущены, так как они являются используемыми значениями по умолчанию. Затем вы должны обнаружить, что переменная инициализирована правильно.