Отображение статического текста вместо пустой группы в JasperReports - PullRequest
0 голосов
/ 09 июля 2009

У меня есть отчет Jasper, в котором отображается список позиций по счетам. Эти позиции сгруппированы по платежному периоду, а затем по тому, является ли товар платным или кредитным. Для периодов выставления счетов, в которых есть начисления, но нет кредитов, я хотел бы отобразить статическое текстовое поле с надписью «Нет кредитов» в группе «Кредит» за этот период. Как это может быть сделано?

Отредактировано, чтобы добавить: Это предполагает, что я использую запрос SQL для источника данных, в отличие от его настройки. Если я настрою свой источник данных, я смогу обработать это при предварительной обработке до того, как доберусь до отчета, но я надеялся найти способ обойти поведение Jasper по пропуску групп без строк, соответствующих критериям группы.

1 Ответ

1 голос
/ 10 июля 2009

Если бы вы могли в своем источнике данных иметь общее количество кредитов для каждой группы, то вы можете использовать свойство «печатать при выражении» для статического текста. например:

new Boolean ($F{total_credits}.equals(0));

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

Вам может потребоваться создать переменную вместо непосредственного использования $F{total_credits} - я не уверен, как JasperReports справляется с доступом к полям в нижних колонтитулах групп. Вы также можете обнаружить, что в заголовке группы он выбирает правильные значения total_credits, а в нижнем колонтитуле группы - нет.

Другим способом было бы иметь переменную, которая подсчитывает общее количество кредитов в группе. Вам необходимо установить «тип сброса» для переменной «группа», а затем установить группу сброса. Выражение переменной будет выглядеть примерно так:

$V{myvariable} + 
($F{credit_or_debit}.equals("credit") ? new Integer(1) : new Integer(0))

и выражение начального значения будет new Integer(0)

Тогда в нижнем колонтитуле группы вы можете использовать «напечатать когда выражение» в статическом тексте для просмотра переменной.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...