- •Создание отчетов с использованием генератора отчетов QuickReport
- •Теоретические сведения
- •Компоненты генератора отчетов QuickReport
- •Операции и функции, используемые в выражениях
- •Значения свойства Data компонента tqrSysData
- •Технология создания отчетов
- •Лабораторное задание
- •Порядок выполнения лабораторной работы
- •Требования к отчету
Компоненты генератора отчетов QuickReport
Компонент TQuickRep, размещенный на форме, представляется сеткой отчета, в которую затем помещаются составные части отчета, например, полосы TQRBand. Основные свойства компонента TQuickRep приведены в табл.1.
Таблица 1
Основные свойства компонента TQuickRep
Свойство |
Назначение |
Bands |
Множество полос, включаемых в отчет. Каждой полосе соответствует определенный элемент свойства: HasColumnHeader - заголовки столбцов; HasDetail - детальная информация; HasPageFooter - нижний колонтитул; HasPageHeader - верхний колонтитул; HasSummary - итоги для отчета; HasTitle - заголовок отчета. Полоса включается в отчет, если соответствующий элемент свойства равен True |
Окончание табл.1
Свойство |
Назначение |
DataSet |
Указывает набор данных, для которого создается отчет. Если нужно вывести связанную информацию из нескольких таблиц базы данных, то ее объединяют в одном наборе данных при помощи компонента Tquery. Если таблицы связаны отношением “главная-подчиненная”, то указывается главная таблица, а ссылка на соответствующие подчиненные таблицы задается в компонентах TQRSubDetail |
Description |
Описание отчета |
Font |
Шрифт, которым будет печататься информация в отчете |
Frame |
Параметры рамки отчета |
Options |
Параметры отчета |
Page |
Параметры страницы отчета |
ShowProgress |
Разрешает (True) или запрещает (False) показывать индикатор процесса печати отчета |
Units |
Единицы измерения расстояний в отчете (дюймы, миллиметры, пиксели и т.д.) |
Zoom |
Масштаб отображения отчета (в процентах от его размеров на листе бумаги) на этапе разработки |
Многие из этих свойств можно установить на этапе конструирования с помощью редактора свойств, если в локальном меню компонента TQuickRep выбрать пункт Report settings (рис.1).
Компонентом TQuickRep можно управлять с помощью имеющихся у него методов. В частности, методы Preview и PreviewModal активизируют окно предварительного просмотра отчета (рис.2), а метод Print инициирует печать отчета на принтере. Чтобы на этапе конструирования отобразить в окне предварительного просмотра содержимое отчета в том виде, в каком оно будет выводиться на печать, нужно выбрать пункт Preview в локальном меню компонента TQuickRep. При этом некоторые данные (например, значения вычисляемых полей) отображаться не будут, поскольку они вычисляются только во время выполнения приложения.
Рис.1.
Окно установки параметров отчета
Рис.2.
Окно предварительного просмотра отчета
Стандартное окно предварительного просмотра отчета не всегда удобно, поскольку его элементы управления невозможно изменить (например, русифицировать). Поэтому можно воспользоваться компонентом TQRPreview, предназначенным для создания нестандартного окна просмотра. Чтобы отобразить отчет в нестандартном окне просмотра, нужно в форму с компонентом TQuickRep поместить компонент TQRPreview, настроить его и предусмотреть его активизацию методом Show.
Компоненты TQRBand задают полосы отчета и используются для размещения таких компонентов, отображающих информацию, как TQRLabel, TQRDBText, TQRDBImage и т.п. Основные свойства компонента TQRBand приведены в табл.2.
Таблица 2
Основные свойства компонента TQRBand
Свойство |
Назначение |
AlignToBottom |
Если значение этого свойства задано равным True, то полоса печатается всегда внизу страницы; причем если это полоса детальной информации, то она будет единственной на странице |
BandType |
Назначение полосы |
Font |
Шрифт, которым будет печататься информация, размещенная на полосе. Это свойство имеет более высокий приоритет, чем аналогичное свойство компонента TQuickRep |
Frame |
Параметры рамки вокруг полосы |
Size |
Размер полосы |
Свойство BandType указывает назначение полосы, например: rbTitle - полоса содержит заголовок отчета; rbPageHeader - полоса содержит верхний колонтитул; rbDetail - полоса содержит информацию из набора данных, заданного свойством DataSet компонента TQuickRep (полоса выводится каждый раз при переходе на новую запись в наборе данных; эта полоса повторяется для всех записей набора данных, начиная с первой записи и кончая последней; позиционирование на первую запись и последовательный перебор записей осуществляется компонентом TQuickRep автоматически).
Поместить компонент TQRBand в сетку отчета и указать назначение представляемой им полосы отчета можно двумя способами:
1) выбрать компонент TQRBand в палитре компонентов, разместить его на компоненте TQuickRep и выбрать значение свойства BandType, соответствующее назначению полосы;
2) в группе Bands окна установки параметров отчета (см. рис.1) пометить “галочкой” переключатель, соответствующий включаемой в отчет полосе. Все указанные таким способом полосы будут помещены в сетку отчета после закрытия окна.
Компонент TQRBand может обрабатывать только события AfterPrint и BeforePrint, которые наступают соответственно после окончания и перед началом печати или просмотра полосы отчета.
К
Рис.3.
Окно редактора формул
Поле Enter expression служит для ввода и редактирования выражения, которое может состоять из имен полей (столбцов) таблиц, функций и переменных, связанных знаками операций, набираемыми с помощью среднего ряда кнопок (табл.3). Имя поля таблицы (Data field), функция (Function) или переменная (Variable) добавляется в выражение с помощью вспомогательного окна, которое появляется при нажатии на соответствующую кнопку верхнего ряда.
Таблица 3
