Переменное время расчета - PullRequest
2 голосов
/ 23 сентября 2011

Я хочу вычислить строку один раз (в основном, конкатенацию) в переменной, используя результат запроса моего отчета, а затем отправить ее в мои подчиненные отчеты.

Но на данный момент он рассчитывается в следующем порядке (скажем, операция A - это вычисление моей переменной, а операция B - вызов моего подотчета):

A B A B A B ...

И то, что я ищу, это A A A ... B B B (здесь каждый B имеет в параметре последнее вычисление A).

Есть ли решение, которое решает мою проблему следующим образом (думаю, это проблема времени расчета)?

Спасибо.

1 Ответ

2 голосов
/ 23 сентября 2011

Чтобы изменить время вычисления переменной, вы можете использовать атрибуты resetType и incrementType.

Если вы хотите, чтобы он рассчитывался только один раз (в начале отчета), установите incrementType="Report". Вам также придется изменить variableExpression на initialValueExpression.

Пример:

<variable name="var1" class="java.lang.String" incrementType="Report">
    <initialValueExpression><![CDATA[$F{foo}+$F{bar}]]></initialValueExpression>
</variable>
...