
- •Лабораторная работа №5 Составление отчетов
- •Скомпилируйте приложение
- •Скомпилируйте приложение.
- •1. Первый отчет
- •1.1. Простой отчет
- •1.2. Другие типы секций
- •1.3. Получение данных
- •1.4. Фильтрация и сортировка данных
- •1.5. Добавление текста и полей данных
- •2. Создание отчетов
- •2.1. Разметка, единицы измерения и масштаб
- •2.2. Размер бумаги и границы
- •2.3. Выбор шрифта
- •2.4. Заголовок отчета и описание
- •2.5. Добавление секций
- •2.6. Размеры секций
- •2.8. Выключение секций
- •2.9. Добавление печатных компонент к отчету
- •2.2.10.4. Размер
- •2.2.10.5. Стиль шрифта и цвет текста
- •2.2.10.6. Выравнивание
- •2.2.10.7. Выравнивание по секции
- •2.2.10.8. Цвет фона и прозрачность
- •2.2.10.9. Рамки
- •2.2.10.10. Разрешение и запрет
- •2.2.10.11. Печать статического текста
- •2.11. Печать из полей базы данных
- •2.2.11.1. Форматирование вывода
- •2.2.11.2. Печать мемо полей
- •2.2.11.3. Печать простых графических фигур
- •2.12. Печать графики
- •2.2.12.1. Статические изображения
- •2.2.12.2. Изображения, хранящие в таблицах
- •2.13. Печать RichText полей
- •3. Использование выражений
- •3.1. Создание выражений
- •2.3.1.1. Использование полей базы данных в выражениях
- •2.3.1.2. Использование строк в выражениях
- •2.3.1.3. Примеры выражений
- •3.2. Использование выражений
- •3.3. Размер стека
- •4. Создание групп
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 для печати статических или динамических данных и полей базы данных.