Первый отчет 7 Компоненты 11 Создание отчетов 19 Обзор печатных (printable) компонент 35

Вид материалаОтчет
Работа с секциями
TQRBand из палитры и размещения их в отчете. Заметим, что в этом случае вы должны сами побеспокоиться об установке свойства Band
Page Header
Column Header
Page Footer
Размеры секций
Включение и выключение секций
Подобный материал:
1   2   3   4   5   6

Работа с секциями


QuickReport является генератором работающий с секциями (band). Если вы незнакомы с данным понятием, то думайте об секциях как о маленьких кусочках бумаги (шаблонах), которые размещаются горизонтально на бумаге и заполняются данными. Различные шаблоны копируются в различные места страницы/отчета. Печатные компоненты TQRLabel, TQRDBText и другие, разработаны для размещения на секциях. Размещение данных компонент на прямую на отчет не предусмотрено.

Простейшим путем добавления секций в отчет является использование свойство TQuickRep.Bands в инспекторе объектов. Щелкните по значку ‘+’ слева от надписи ‘Bands’ для развертывания списка секций:

Figure 9 - Bands sub properties



Инспектор объектов показывает, используется данная секция или нет, и вы можете добавить или удалить любую секцию просто установив соответствующее свойство. Секции созданные данным путем имеют имена, описывающие их назначение: DetailBand1, PageHeaderBand1 и т.д. Свойство BandType устанавливается автоматически.


Хотя и возможно добавление секций вручную и установке BandType в rbSubDetail или rbGroupHeader, но это не рекомендуется. Данные секции предназначены для использования только с секциями TQRSubDetail и TQRGroup. Использование их где-либо еще может дать непредсказуемый результат.

Вы также можете добавить секции путем выбора компоненты TQRBand из палитры и размещения их в отчете. Заметим, что в этом случае вы должны сами побеспокоиться об установке свойства BandType, и вы также должны дать секции подходящее имя. Свойство Bands контейнера TQuickRep преобразуется автоматически для отражения секций добавленных в отчет данным путем.

Здесь список простых секций, которые вы можете добавить в отчет:

Table 2 - Simple band types

Band type

Purpose

Page Header

Первая секция, обычно печатается на каждой странице. Печать на первой странице определяется свойством Options.FirstPageHeader. Значение по умолчанию: печатать на первой странице.

Title

Секция title - первая секция, которая печатается в отчете (после заголовка первой страницы, если есть). Часто используется для печати титульного листа отчета, критериев выбора данных, Даты и времени создания и т.д.

Column Header

Секция заголовков, печатается вверху регулярного отчета, на каждой странице. После заголовка страницы (и после Title на первой странице).

В много колоночном отчете , печатается для каждой колонки. Часто используется для печати наименований полей.

Detail

Секция для печати каждой записи (строки) вашего набора данных. Это конечно наиболее важная секция в отчете и которая занимает основное место в вашем отчете. Вы должны поместить data-aware печатные компоненты, такие как TQRDBText на эту секцию.

Summary

После печати всех секций detail, вы можете отпечатать суммарные итоги в данной секции..

Page Footer

Последняя секция на каждой странице. Печать на последней странице определяется свойством Options.LastPageFooter..



Как только вы добавляете новые секции в отчет, вы видите как они позиционируются в порядке действительной печати. Вы видите, что секция Page Header помещается вверх, следующая за ней секция Title, column header и так далее, как это показано на Figure 10.

Figure 10 - Simple band types



Тип каждой секции печатается маленькими буквами в левом нижнем углу. Это позволяет вам идентифицировать их в отчете. Данный текст не попадает в финальный отчет.

Секции появляющиеся в отчете компоненты TQuickRep показываются в том порядке, в каком они будут при печати. Это помогает понять как это будет отпечатано. Наиболее частое использование секций показано на Figure 10, но это становится весьма сложным, когда вы начинаете печатать суб-секции и групировавать.

Размеры секций


Секции получают их горизонтальный размер от компоненты TQuickRep. Их свойства Size.Width используются только как read only; Попытка записи в них других значений игнорируется. Для одно-колоночного отчета, ширина всех секций устанавливается равной ширине страницы минус левая и правая границы. Во многоколоночном отчете, ширина секции (Column Header, Detail, Sub Detail, Group Header and Group Footer) подстраивается под доступную ширину отдельной колонки

Тем не менее вы можете изменять вертикальный размер секции. Выберите секцию и измените размер с помощью мышки или с помощью изменения свойства Size.Height.

Включение и выключение секций


Иногда вы не желаете запретить печать той или другой секции. Это может быть сделано или в design time или в run time, установкой свойства TQRBand.Enabled в False.

Во время генерации отчета вы также можете временно запретить печать секции в обработчике события BeforePrint. Данный обработчик имеет параметр PrintBand, который вы можете установить в False для запрета печати секции – но только на один раз. Данное свойство весьма удобно для организации простой фильтрации:

procedure TrepCusList.RepDetailBeforePrint

(Sender: TQRCustomBand;

var PrintBand: Boolean);

begin

PrintBand := CustTableTotalSales > 3000000;

end;


Примечание: Когда PrintBand устанавливается в False для detail секции, значения для данной записи не включаются в расчет агрегатных TQRExr функций, например функция SUM. Данное поведение отличается между версиями QuickReport 2 и QuickReport 3.

Если вы выключите секцию Page Footer, следствием будет появление пустого пространства внизу каждой страницы – секция Detail не использует данное пространство, QuickReport не проверяет размер страницы каждый раз. Так что если вы смените свойство Enabled секции Page Footer, то вызовите метод ResetPageFooterSize для обновления информации.