PAGE_COUNT неправильно отображается в JasperReports ...? - PullRequest
8 голосов
/ 08 января 2009

Я добавил нижний колонтитул Страница x из y в свой отчет, но PAGE_COUNT, похоже, не работает.

Может быть, проблема возникает из-за того, что у меня много подотчетов?

Я получаю:

Page 1 of 1

Page 2 of 0

Page 3 of 0

Page 4 of 0

Есть идеи?

Ответы [ 8 ]

9 голосов
/ 08 мая 2012

Ну, не знаю старших версий, но в JasperReports 4.5.1; Вы можете определить два текстовых поля, каждое из которых включает $V{PAGE_NUMBER} переменные. Тот, который имеет EvaluationTime: now показывает номер текущей страницы; другой с EvaluationTime: report показывает общее количество страниц. Простой трюк, но работает:)

6 голосов
/ 15 октября 2010

Изменение evaluationTime="Report" решило проблему.

2 голосов
/ 27 октября 2012

На самом деле это ошибка! И подтверждено разработчиками.

Смотри ссылку: ссылка для отслеживания ошибок сообщества Jasper

PAGE_COUNT рассчитывается неправильно, если используется свойство BAND: «Предотвращение разделения»

2 голосов
/ 08 января 2009

наши отчеты выглядят так:

http://pastebin.com/m401fa41

1-ая часть, интерпретируемая при генерации страницы, дает номер текущей страницы (evaluationTime="Now")

2-я часть, интерпретируемая в конце отчета, дает общее количество страниц (evaluationTime="Report")

НТН

2 голосов
/ 08 января 2009

Я нашел решение.

http://jasperforge.org/tracker/index.php?func=detail&aid=2873&group_id=102&atid=612

Но в книге JasperReports для разработчиков Java (стр. 146) говорится, что PAGE_COUNT - это общее количество страниц в отчете. Я думаю, ошибка в книге.

1 голос
/ 25 августа 2017

Сводка: чтобы иметь номер страницы и номер страницы в TextField.

Шаг 1: создайте переменную, которая будет указывать номер текущей страницы. Настройки: * Имя: CURRENT_PAGE_NUMBER

  • Класс переменной: Java.lang.Integer

  • Расчет: ничего

  • Тип сброса: Нет

  • Тип приращения: Страница

  • Выражение переменной: $ V {CURRENT_PAGE_NUMBER} == ноль? $ V {PAGE_NUMBER}: $ V {PAGE_NUMBER} + 1

Шаг 2: Настройки TextField

  • Выражение текстового поля: "PAGE:" + $ V {CURRENT_PAGE_NUMBER} + "/" + $ V {PAGE_NUMBER}

  • Класс выражения: Java.lang.String

  • Время оценки: Авто

И это все. Не нужно ничего добавлять, чтобы получить такой результат, как: Страница 1/3 | Страница 2/3 | Стр.3 / 3.

1 голос
/ 11 августа 2016

Решение заключается в следующем: Мы не должны помещать $ {V PAGE_NUMBER} + "/" + $ {V} PAGE_NUMBER в одно и то же поле.

правильный способ - поместить $ {V PAGE_NUMBER} в отдельное поле и "/" + $ {V} PAGE_NUMBER в другое поле

у меня это работает

извините за мой английский

1 голос
/ 13 января 2015

У меня нет доступа к jaspercommunity (для проверки общей ссылки), но я делаю хороший обходной путь: D

Используйте 4 текста, например:

txtStatic1(Page) txtField1($V{PAGE_NUMBER})  txtStatic2(of) txtField2($V{PAGE_NUMBER})

Где:

txtField1($V{PAGE_NUMBER}) -> AVAILABLE TIME = PAGE
txtField2($V{PAGE_NUMBER}) -> AVAILABLE TIME = REPORT

Это работает для меня.

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