Разрыв и удерживание данных

Top  Previous  Next

В этом разделе будут рассмотрены два режима печати бэндов - "Разрыв" и "Удерживание".

 

В обычном режиме печати бэнда FastReport проверяет, достаточно ли места на текущей странице. Если места не достаточно, бэнд печатается целиком на следующей странице. Если включить свойство "Может разрываться" у бэнда, FastReport будет пытаться напечатать часть содержимого бэнда на имеющемся месте, т.е. "разорвать" его.

 

Попытка разрыва бэнда может быть успешной, а может, и нет. Это зависит от того, какие объекты расположены на бэнде, и их настроек. Разрываться могут следующие объекты:

 

"Текст"
"Форматированный текст"
"Таблица"

 

Эти объекты также имеют свойство "Может разрываться". Если оно включено, объект может быть разорван. Неразрываемый объект всегда выводится целиком там, где ему хватает места.

 

На рисунке ниже показан пример того, как может быть разорван бэнд.

 

break

 

Алгоритм разрыва не всегда работает корректно. В случае, когда одновременно разрывается несколько объектов с разным размером шрифта, либо сложным обрамлением, могут возникать артефакты.

 

Цель разрыва данных - максимально использовать место на листе, чтобы в дальнейшем сэкономить бумагу при печати отчета. У удерживания данных цель противоположная: вывести определенную группу бэндов целиком на одном листе. В этом случае на листах отчета остается довольно много неиспользованного пространства, но зато данные печатаются в виде, более удобном для восприятия.

 

Механизм удерживания данных (KeepTogether) позволяет удерживать на одной странице (или колонке, если отчет с колонками) определенную группу бэндов. Если при печати удерживаемых данных достигается конец страницы, FastReport переносит все ранее напечатанные данные на новую страницу.

 

Вы можете использовать удерживание данных в следующих случаях:

 

печать всех строк бэнда "Данные" вместе;
печать всех элементов группы (заголовок, данные, подвал) вместе;
печать строки главного источника данных вместе со всеми строками из подчиненного источника в отчетах типа master-detail;
печать заголовка отчета или заголовка данных вместе с хотя бы одной строкой данных;
печать подвала отчета или подвала данных вместе с хотя бы одной строкой данных;
печать вместе основного и дочернего бэнда.

 

Рассмотрим применение удерживания данных.

 

Для удерживания вместе всех строк данных или группы (заголовок, данные, подвал) включите свойство "Держать вместе" (KeepTogether). Это свойство используется в бэндах "Данные" и "Заголовок группы". На рисунке показано, как печатаются данные без удерживания и с удерживанием:

 

keepDataTogether

 

Для удерживания строки данных главного источника вместе со строками подчиненного источника включите свойство "Держать детали вместе" (KeepDetail) у бэнда "Данные". Это свойство используется в отчете типа master-detail:

 

keepDetailTogether

 

Для запрета "висячих" заголовков и подвалов используйте свойство "Не отрывать от данных" (KeepWithData). Это свойство имеется у следующих бэндов:

 

заголовок отчета;
подвал отчета;
заголовок данных;
подвал данных;
заголовок группы;
подвал группы.

 

Оно позволяет не отрывать заголовок/подвал от строки данных. То есть, вместе с заголовком на странице должна помещаться хотя бы одна строка данных:

 

keepWithData

 

Для того чтобы держать вместе бэнд и его дочерний бэнд, включите свойство "Держать дочерний бэнд вместе" (KeepChild).