FastReport. Вывод данных в внизу страницы

Spread the love

   Недавно коллега обратился с вопросом «Как в FastReport сделать так, чтобы бэнд с данными выводился внизу страницы?».
   Первая моя мысль была положить SubReport на PageFooter. Но такое решение естественно не сработало, и я стал пробовать управлять положением бэнда на странице с помощью скрипта. В результате я нашел решение данного вопроса с помощью дополнительного бэнда и одной строчки скрипта. Поясню на примере.
   Например, вверху отчета нам нужно вывести какую-то информацию (добавляем на страницу бэнд MasterData1) и внизу отчета нам нужно вывести какую-то информацию (добавляем на страницу бэнд MasterData2). А между ними положим еще один бэнд (MasterData3), который заполнит пространство между MasterData1 и MasterData2. Его не будем подключать к данным, а просто укажем количество строк RowCount = 1.
   В скрипте, при старте отчета зададим размер MasterData3:

MasterData3.Height := Engine.PageHeight — MasterData1.Height * MasterData1.RowCount – MasterData2.Height * MasterData2.RowCount

т.е., от высоты страницы отнимаем высоту бэндов с данными. Высоту бэндов с данными вычисляем следующим образом: высоту одной строки бэнда умножаем на количество строк, которые будут в нём выводиться. У меня здесь в скрипте количество строк – это RowCount, а в примере отчета для моего коллеги я использовал количество строк в запросе (DataSet.RecordCount).
   Вот такими нехитрыми манипуляциями мне удалось решить поставленную задачу.

Может быть, вы знаете способ проще?

Читать на сайте автора.

0 ответы

Ответить

Хотите присоединиться к обсуждению?
Не стесняйтесь вносить свой вклад!

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *