Включение и исключение вложенных отчетов (iReport-JasperReports) - PullRequest
3 голосов
/ 16 декабря 2008

Мне нужно включить или исключить подотчет на основе условия. Я использую iReport для создания JasperReports. Т.е., если у подотчета есть значения, мне нужно включить этот подотчет, иначе нет. Может кто-нибудь, пожалуйста, пришлите образец или скажите мне, как решить эту проблему.

Ответы [ 3 ]

6 голосов
/ 23 декабря 2008

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

Я использую это регулярно - например, поле printWhenExpression может содержать:

new Boolean($F{TOTAL_STATS}.intValue() != 0)

где TOTAL_STATS из запроса к базе данных основного отчета. Если не ноль, мы показываем подотчет, детализирующий некоторые данные.

0 голосов
/ 11 января 2010

Ответ Джейми Лав о "printWhenExpression" намечен.

если в подотчете не напечатано никаких данных, Jasper удаляет пробел

На самом деле, по крайней мере, в JasperReports 3.7.0 есть свойство подотчета «Удалить строку, когда пусто», которое управляет этим поведением. По умолчанию - по крайней мере, когда я использую iReport - этот параметр отключен.

WEG

0 голосов
/ 17 ноября 2009

Насколько мне известно, если в подотчете не напечатано никаких данных, Джаспер устраняет пустое пространство. Другими словами, если ваш подотчет обычно занимает половину страницы, но данных нет, то пустое пространство удаляется. Я не уверен, что вы это имеете в виду, включая или исключая отчет.

Другим решением было бы разместить подотчет в основном отчете, и, щелкнув правой кнопкой мыши -> Свойства -> вкладка Подотчет, вы выбираете вкладку «Условие подотчета» и записываете там свое условие. Если условие истинно, содержимое подотчета будет напечатано, в противном случае оно не будет напечатано.

...