Search Results for

    Show / Hide Table of Contents

    Разрыв данных

    Обратим внимание на одну особенность отчета с рыбами: на некоторых страницах внизу остается много пустого места. Почему это происходит? Когда отчет строится, ядро FastReport заполняет свободное место листа бэндами. После вывода каждого бэнда текущая позиция смещается все ниже и ниже. Когда FastReport обнаруживает, что места для вывода очередного бэнда не хватает (его высота больше, чем высота оставшегося места на листе), то формируется новая страница и вывод бэндов продолжается на ней. И так до тех пор, пока есть записи в наборе данных.

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

    Чтобы рациональнее использовать бумагу, воспользуемся возможностью FastReport разбивать содержимое бэндов на части. Все, что нужно - это включить опцию "Разрыв" (AllowSplit) у бэнда "Данные 1 уровня". Мы видим, что пустого места внизу страниц отчета значительно поубавилось:

    Как работает разрыв бэнда? В FastReport есть несколько объектов, которые поддерживают эту возможность. Это объекты "Текст", "Линия" и "RichEdit". Они могут быть "разорваны", остальные объекты - нет. Когда FastReport сталкивается с необходимостью выполнить разрыв, он делает следующее:

    • выводит неразрываемые объекты, которые полностью помещаются на свободном месте;

    • частично выводит разрываемые объекты (текстовые объекты выводятся таким образом, чтобы в объекте поместилось целое число строк);

    • формирует новую страницу и продолжает вывод объектов;

    • если неразрываемый объект не помещается на свободное место, он переносится на следующий лист, при этом все объекты, лежащие под ним, также смещаются;

    • процесс продолжается до тех пор, пока не будут полностью выведены все объекты бэнда.

    Алгоритм разрыва станет понятен, если взглянуть на рисунок:

    Следует отметить, что алгоритм разрыва не обеспечивает 100% качества получаемого отчета. Поэтому используйте эту опцию аккуратно, если объекты на разрываемом бэнде сгруппированы сложным образом и к тому же имеют разный размер шрифта. Вот пример того, что может получиться:

    Back to top © 1998-2024 ООО «Быстрые отчеты»