* При перепечатке материалов ссылка на www.SeoLiga.ru обязательна!
Выключение секций
19 февраля 2009
Иногда требуется отключить печать секции, в зависимости от некоторых условий, или во время проектирования (design time) или во время исполнения (runtime). Во время проектирования установите свойство TQRBand.Enabled в значение False. Данное свойство также может быть установлено во время исполнения, до генерации отчета или в любом обработчике во время генерации отчета.
Во время генерации отчета вы можете временно запретить печать секции в обработчике события BeforePrint. Данный обработчик получает var параметр PrintBand, который требуется установить в значение False, если не требуется печатать секцию – это действует только на одно событие, то есть когда в следующий раз вырабатывается данное событие, требуется повторная установка параметра. Данная особенность может использоваться для простой фильтрации данных: Procedure TrepCusList.RepDetailBeforePrint( Sender:TQRCustomBand; var PrintBand: Boolean); begin if CustTableTotalSales > 3000000 then PrintBand := True else PrintBand := False; end;
Очень часто забывают, что данная проверка и установка параметра может быть сделана короче и быстрее следующим образом: procedure TrepCusList.RepDetailBeforePrint( Sender: TQRCustomBand; var PrintBand: Boolean); begin PrintBand := CustTableTotalSales > 3000000; end; Если вы выключаете печать подвала (page footer), то остается пустое пространство внизу страницы вместо заполнения данного пространства данными из секции Detail. Это случается, потому что QuickReport не может проверять размер подвала все время, что резко снизило бы быстродействие системы. Если вы запрещаете печать подвала, то вы должны также изменить и его размер, вызвав метод QuickRep.ResetPageFooterSize, что бы QuickReport мог правильно рассчитать размер страницы для данных.