JasperReports, PrintWhenExpression и RemoveLineWhenBlank → Странное поведение - PullRequest
1 голос
/ 31 июля 2011

У меня проблема с JasperReports при использовании printWhenExpression и RemoveWhenBlank внутри подотчета.

Чтобы воспроизвести эту проблему, я сделал простой пример, используя один основной отчет и два подотчета.Первый вложенный отчет, назовем его статическим вложенным отчетом, содержит два компонента статического текста в полосе заголовка (метка 1 в первой строке, метка 3 во второй), для обоих атрибутов Position Type установлено значение Float.Атрибут Split Type для заголовка установлен на «Немедленно».

Динамический подотчет содержит три статических текстовых компонента (метка 1 в первой строке, метка 2 во второй и метка 3 в третьей), вседля них в качестве типа позиции установлено значение Float.Но для Label 2 для PrintWhenExpression установлено значение Boolean.FALSE, а для RemoveLineWhenBlank установлено значение TRUE.Таким образом, метка 2 скрыта, а метка 3 перемещена на место метки 2 под меткой 1.

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

В основном отчете я использую компонент подотчета внутри полосы подробностей (тип разделения полосы подробностей установлен на Немедленный) и использую JREmptyDataSource с 90пустые строки.При указании компонента подотчета на статический подотчет вывод pdf, сгенерированный jasperreports, является корректным.Но при использовании динамического подотчета jasperreports оставляет пустое пространство (которое используется при использовании статического подотчета) в конце первой страницы и переходит на следующую страницу для печати метки 3.

В реальном случаеу меня есть проблема, у меня есть подотчет, который содержит более 20 строк с компонентами Static Text и Text Field, большинство из них с printWhenExpression, установленным в поле или параметре, и RemoveLineWhenBlank, установленным в TRUE.При создании вывода PDF в некоторых случаях у меня есть этот конкретный подотчет (который должен занимать только треть страницы), охватывающий одну с половиной страницы с большим пространством, распределенным между видимыми строками в подотчете.И я думаю, что сочетание RemoveLineWenBlank и PrintWhenExpression является причиной проблемы.Так что я хочу знать, если это ошибка или просто я что-то упустил в документации.Вот ссылка на пост, который я сделал на форуме JasperReports, он содержит шаблоны для основного отчета и двух вложенных отчетов, а также два файла PDF, созданных с помощью jasperreports, и снимки экрана, показывающие макет вложенных отчетов: ссылка

Заранее спасибо за помощь.

...