Как избежать повторения имени столбца в JRXML? Есть ли какой-либо атрибут для исключения заголовка столбца на каждой странице при создании отчета с использованием JRXML и Jasper?
Избегайте повторения заголовка столбца в JRXML
Ответ 1
Если заголовок всегда будет на определенной странице (например, на первой странице), вы можете добавить
<printWhenExpression><![CDATA[$V{PAGE_NUMBER}==1]]></printWhenExpression>
что сделает его печать только на странице 1. PAGE_NUMBER
- встроенная переменная, которая автоматически увеличивается при создании отчета.
Ответ 2
Установите в свой код Java следующий параметр, если вы используете java для заполнения отчета:
parameters.put(JRParameter.IS_IGNORE_PAGINATION, Boolean.TRUE);
Ответ 3
В теге отчета jasper put isIgnorePagination="true"
Ответ 4
Другой вариант: http://jasperreports.sourceforge.net/api/net/sf/jasperreports/engine/JRParameter.html#IS_IGNORE_PAGINATION
"Если установлено значение true, отчет будет сгенерирован на одной длинной странице.
Ответ 5
Есть ли какой-либо атрибут, чтобы избежать заголовка столбца на каждой странице при создании отчета с использованием JRXML и Jasper?
Вы можете использовать свойство isPrintInFirstWholeBand
и переместить заголовок столбца в диапазон Group Header
(или Title
, если у вас нет группы).
Ответ 6
Более простой вариант - выбрать "Заголовок таблицы", который будет использоваться для заголовка вместо "Заголовок столбца".
Я также столкнулся с такой же проблемой, и это решение сработало для меня.
Ответ 7
Создайте фиктивную группу и используйте группу Footer Band. Это сделало трюк для меня, поскольку итоговая группа уже использовалась.
Ответ 8
Я попробовал:
params.put(JRParameter.IS_IGNORE_PAGINATION, Boolean.TRUE);
Но, я получил длинную страницу 1/1, что печатать нелегко без разделения строки пополам.
Вместо этого я выбрал второй подход от дизайнера iReport:
1 - создать новые пустые ячейки в заголовке таблицы.
2. Переместите ячейки (ячейки заголовка) из заголовка столбца в заголовок таблицы, перетаскивая их одну за другой.
3-Удалите пустые ячейки в заголовке столбца.
4-Дизайн нового фона ячеек, выбрав их, выбрав Backcolor из свойств, или выбрав столбец (таблицу) для определения стиля, выберите table 1_CH
из свойств.
Ответ 9
Я бы просто не использовал заголовок столбца, когда смогу. По какой-то причине заголовки групп предоставляют пользователям гораздо больше возможностей и гибкости.
Поэтому, даже если я не использую группы в своем отчете, я создаю "константную группу", которая использует константное выражение как groupExpression
, а затем использую этот заголовок группы в качестве заголовка столбца отчета.
С помощью постоянного выражения, такого как true
, группа никогда не меняется, поскольку она не зависит от набора данных. И поскольку он никогда не изменяется, он не только никогда не будет напечатан дважды автоматически, он также предоставит возможность повторной печати на каждой странице (среди других вариантов), просто установив флажок в студии JasperSoft (или добавив соответствующий атрибут в групповой тег).
Преимущества перед деактивацией нумерации страниц или использованием зависимой от страницы printWhenExpression
:
- не зависит от номера страницы, на которой заголовок появляется впервые (титульный лист или динамический контент могут перенести первый вид на вторую или третью страницу)
- позволяет разбивать на страницы (удобно экспортировать в формате PDF с верхними и нижними колонтитулами страниц)
- предлагает больше опций, чем стандартный заголовок столбца
Downsides
- добавляет сложности в отчет
Вот пример для неповторяющегося определения заголовка группы констант в JRXML:
<group name="columnHeaderGroup" isReprintHeaderOnEachPage="false">
<groupExpression><![CDATA["a constant"]]></groupExpression>
<groupHeader>
<band height="20">
<!-- any column header content like Static Texts or Text Fields -->
</band>
</groupHeader>
</group>
Обратите внимание, что вы также можете просто удалить isReprintHeaderOnEachPage="false"
, так как это поведение по умолчанию.
Ответ 10
Мы также можем использовать нижнюю строку, чтобы избежать повторения columnHeader