Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Lab2_5_ПИ.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
4.07 Mб
Скачать

1.2. Другие типы секций

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

Секции могут быть добавлены путем выбора из палитры компонент и помещением их на компонент TQuickRep. Вы должны позаботиться за установкой свойства BandType в необходимое значение. Так же хорошим тоном является задания значимого имени компоненту, например PageHeaderBand, DetailBand и так далее. Это выполняется автоматически, если вы добавляете секции с использованием свойства TQuickRep.Bands.

В дополнение для создания групп и Master-Detail отчетов используются те же самые секции.

1.3. Получение данных

QuickReport может получать данные от различных источников. Обычно вы присоединяете ваш отчет к Delphi компоненту DataSet, такому как TTable или TQuery. DataSet может находиться на той же самой форме, что и отчет, на другой форме или в модуле данных. Если DataSet не находится в форме отчета, то требуется добавить в раздел uses модуль формы или данных. Затем следует установить свойство DataSet компонента TQuickRep для связи с DataSet.

DataSet должен быть активным во время печати отчета, в противном случае отчет не генерируется.

1.4. Фильтрация и сортировка данных

QuickReport не имеет своих собственных средств для сортировки данных. Данные всегда печатаются в том порядке, в каком они поступают от источника данных. Для изменения порядка печати данных укажите индекс в компоненте TTable присоединенном к отчету. Если такого индекса не существует, то добавьте нужный или используйте компонент TQuery.

При печати отчета с помощью компонента TQuery задайте порядок сортировки в запросе. Смотрите соответствующую документацию по написанию SQL запроса.

Фильтрация данных может быть выполнена несколькими различными путями. Если вы печатаете с помощью компонента TTable и используете Delphi 2.0 или выше, то вы можете использовать свойство TTable.Filter для создания условий фильтрации. Не забудьте также становить свойство TTable.Filtered.

Другое возможное решение – это использовать компонент TQuery и указать условие Where для выбора условий фильтрации. Delphi позволяет создавать параметризированные запросы, которые позволяют просто управлять данным процессом. Смотрите документацию Delphi по данному вопросу.

Третий возможный путь – это использовать событие BeforePrint вашей Detail секции для включения или выключения печати данной секции. Пример ниже показывает использования обработчика данного события.

procedure TrepList.ReportDetailPrintEvent(Sender:TComponent;

PrintBand : Boolean);

begin

PrintBand := CustomerTableCompany.Value > ‘H’;

end;

1.5. Добавление текста и полей данных

Для печати текста в отчете вы должны добавить печатные компоненты в ваш отчет. Имеется два основных компонента TQRLabel и TQRDBText.

Компонент TQRLabel используется для печати статического текста, текста и чисел рассчитываемых во время генерации отчета. Для печати статического текста просто разместите компонент TQRLabel на соответствующей секции и укажите текст в свойстве Caption. Текст появится в соответствующей позиции секции и будет печататься всякий раз, как печатается данная секция.

Вы можете изменить шрифт и цвет шрифта путем задания соответствующих свойств Fonts. QuickReport поддерживает любые TrueType или PostScript шрифты.

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

Используя компонент TQRDBText, вы можете печатать информацию из полей базы данных. Разместите компонент в секции и свяжите его с источником данных. Затем выберите поле, которое вы желаете печатать.

Вы можете также использовать компонент TQRExpr для печати статических или динамических данных и полей базы данных.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]