Сравните текущий номер страницы с номером последней страницы

Как вы проверяете, действительно ли текущая печатная страница является последней печатной страницей?

Я пробовал следующее:

$V{currentPage}.intValue() == $V{totalNumberOfPages} ? Boolean.TRUE : Boolean.FALSE 

    долго ждал … но ответа от Stackoverflow … Во всяком случае, я нашел свое решение ..

    Сначала в вашей сводной группе поставьте эту строку

      

    Помните, что эта строка должна быть только в сводной полосе отчета.

    После этого вы можете сравнить этот параметр в любой момент времени в своем отчете, чтобы найти последний номер страницы.

    Например

      

    При следующей Print When Expression снова отображается сводная группа:

     new Boolean(($P{REPORT_PARAMETERS_MAP}.put( "LastPageNumber",$V{PAGE_NUMBER}).equals("dummyPrintWhen")) || Boolean.TRUE) 

    Вы также можете использовать holdskey tot test для существования ключа:

     new Boolean(!$P{REPORT_PARAMETERS_MAP}.containsKey("LastPageNumber")) 

    Нумерские выражения также работают, это выражение оценивается как true на каждой странице, кроме той, на которой установлен параметр:

     new Boolean($P{REPORT_PARAMETERS_MAP}.get("LastPageNumber") < $V{PAGE_NUMBER}) 

    Моя проблема заключалась в том, что я создал несколько нижних колонтитулов для нескольких кросс-таблиц в конце моего отчета с константой в качестве группового выражения, чтобы они печатались только один раз. Установив параметр в первом нижнем колонтитуле, я теперь могу окончательно сжимать заголовки столбцов, не прибегая к подзаголовкам. Отличная работа!!

    Ягода.

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

      

    я думаю, на самом деле, что Summary Band вызывается только один раз, но у вас плохая практика программирования в этом случае, потому что, если нет ключевого ассоциирования с KEY in the MAP она вернет null и вы вызовете метод equals ему, вы получите NULLPOINTEREXCEPTION но я думаю, что не в этом случае.

    вы должны отменить это

      

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

    1). создать параметр в jasperreports

     parameter name="totalRecordsOnReport" class="java.lang.Integer" 

    2). передайте итоговые записи вашей детали в качестве параметра.

     HashMapparameters=.... parameters.put("totalRecordsOnReport",yourDetailRowCount); 

    Мне нужно распечатать некоторые материалы только на последней странице ниже детали, и я использую этот код.

    component print when expression

     $V{REPORT_COUNT}.equals($P{totalRecordsOnReport}) 

    и печатает на последней странице.

    Interesting Posts

    не может нажимать на строку listview с помощью кнопки изображения

    Создание дерева на основе глубины из иерархических данных в MySQL (без CTE)

    Как указать вручную установленные пакеты программного обеспечения в Ubuntu?

    Ключ авторизации SSH для нескольких систем

    Windows 7 не загружается BIOS, и компьютер повторно перезапускает

    Неинициализированные указатели в коде

    Как имитировать буферизованное периферийное устройство с SwingWorker?

    Как использовать SearchView в панели инструментов Android

    Как выполнить запрос «in» в структуре сущностей?

    LINQ: когда использовать SingleOrDefault и FirstOrDefault () с критериями фильтрации

    XPathSelectElement всегда возвращает null

    OnItemClickListener не работал с флажком?

    Не удается удалить атрибут только для чтения из окон папки 8.1

    Как я могу использовать WCF только с базовыми атрибутами, SSL и базовой аутентификацией в IIS?

    Щелкните правой кнопкой мыши значок панели задач и панели в начале не откроет контекстное меню на окнах 10

    Давайте будем гением компьютера.