2015-01-15 2 views
0

Я использую Jasper iReports 5.2.0, и я хочу напечатать список на нечетных страницах отчета и статический текст на четных страницах.Разный контент на нечетных и четных страницах

Для достижения этой цели я создал отчет с моим запросом списка с 100 последовательных строк и поместить его в Деталь 1 и мой статический текст в Фрагмент 2.

Затем я добавил: Print When Expression = $V{PAGE_NUMBER}%2 != 0 к Заголовок столбца и Деталь 1 и Print When Expression = $V{PAGE_NUMBER}%2 != 0 к Деталь 2 , а также максимально Фрагмент 2 полосы Высота (без этого я потеряет больше строк)

Все отображаются на правильных страницах, но в отчете не отображаются все строки. Я имею в виду, если мой запрос возвращал 100 строк, 1-100

  • первой страницу шоу 1-20
  • второй страницу показать статического текст
  • третьей страница шоу 22-40
  • четвёртой страницы показать статические текст
  • пятая страница шоу 42-60
  • ...

Что я должен сделать так, что ряд печатать на правой странице?

ответ

0

Вы должны сделать следующее:

Создать 2 бэндов:

а) detail1 - Для статических четных страниц (убедитесь, что эта деталь полоса первый). Максимизируйте его размер - чтобы использовать всю страницу, поместите на нее свой статический текст. Набор PrintWhenExpression = $V{PAGE_NUMBER}%2 == 0 на полосе

б) Detail2 - Для данных, не используют PrintWhenExpressions на нем

Как это работает: wholepage DetailBand1 отображается только на четных страницах, поскольку он занимает всю страницу, ваши данные (Detail2) перемещается на четную страницу, поэтому все работает так, как ожидалось, и никакие записи не пропущены.

+0

Это был один из других вариантов, которые я пробовал после моего сообщения, и за то, что я смог открыть (если я правильно помню), это вопрос _solution_ на мой вопрос, но если вам нужно сделать итоговые данные, это не будет показано правильно. – hmarques

+0

не отредактировал комментарий ко времени для остальной части моего ответа ... Ex: 1-я страница показывает 3 строки со значением 2 каждый, общее количество на этой странице показывает 4, на странице 2 (статический текст) будет отображаться в общей сложности 2. Единственный способ, которым я нашел правильную распечатку отчета (ex.invoice report) со статическим текстом в спину, был использование основного отчета для подсчета количества необходимых мне страниц на основе номера строк, которые могут вписываться в каждую страницу. Я объясню свое решение лучше, недостаточно доступных символов здесь – hmarques

+0

вы правы, это может не сработать, если вы хотите провести промежуточные итоги/итоги. Еще один способ, который я собираюсь сделать, - создать 1 детальную группу.В каждом из диапазонов данных (GroupHeader, Detail и т. Д.) Добавьте элемент _PageBreak_ ** выше ** текстовых полей с помощью параметра PrintWhenExpression = $ V {PAGE_NUMBER}% 2 == 0'. и используйте * Background * band для вашего StaticText. затем установите «PrintWhenExpression = $ V {PAGE_NUMBER}% 2 == 0' o \ для BackgroundBand. Пожалуйста, дайте мне знать, если это поможет. – mike

Смежные вопросы