При установке атрибута
«Start new page»=True в свойствах группы
JusperReport, библиотека
export.xls рассчитывает размер свободного пространства от нижней границы группы до края листа и заполняет его растянутой строкой, чтобы
Excel переносил
следующую запись группы на новую страницу. Но
Excel клал
железный бетон на эти расчёты и переносит растянутую ячейку на новую страницу,
таким образом отчёт превращается в беспорядочную кашу переносов страниц и
разрывов.
Описание варианта обхода:
Написанное ниже на основе анализа исходного кода библиотеки net.sf.jasperreport, не претендует называться решением, т.к. производимые действия не совсем логичны, однако именно в такой конфигурации шаблон выдаёт на печать предсказуемый результат, без не объяснимых разрывов.
Установить дополнительные параметры отчёта,
в части группы export.xls, как показано на рис. 1.
|
Рис.1 |
Добавить
Band типа
«Column Header» установить ему высоту
от 20-50
px, и добавить
доп. атрибут
«freeze»=2
как на рис.2
|
Рис.2 |
Band «Header» группы, которую надо печатать с новой страницы, должен
следовать сразу за Band типа «Column Header»,
который мы настроили выше.
Для Band «Header» устанавливаем атрибут «start
new page»=true
Первым
элементом Band «Header»
должен быть «Static Text» любой высоты, с
атрибутом «print
related values»=true.
Правильная последовательность элементов на
рис.3.
|
Рис.3 |
Границы «Bottom» и «Top» в Свойствах печати страницы должны быть равны 0, см.рис. 4.
|
Рис.4 |