Приложения для работы с локальными базами данных_______________541

9.13 Создание отчетов

В разделе 4.8.3 уже рассматривались компоненты страницы QReport, относя-
щиеся к системе подготовки и печати отчетов QuickReport. Там же излагалась мето-
дика построения форм, содержащих отчеты, и управления ими. Но при этом не за-
трагивались компоненты, связанные с базами данных. А именно при работе с база-
ми данных проявляется вся мощь QuickReport.

QuickReport использует генератор отчетов, состоящих из множества полос.
Полоса (band) — это область отчета или раздел, содержащий некоторый текст,
изображения, графики, диаграммы и т.п. Полоса является контейнером для дру-
гих компонентов, вносящих в отчет информацию или графику.

Если полоса и размещенные на ней компоненты связаны с базой данных, то
содержание этой полосы печатается столько раз, сколько соответствующих запи-
сей имеется в источнике данных. Таким образом, достаточно расположить компо-
ненты, связанные с данными, на полосе, а печатаемые значения и их количество
будут автоматически управляться базой данных.

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

Давайте зададимся задачей построить отчет по уже многократно использован-
ной нами базе данных dbP, первая страница которого показана на рис. 9.50. Отчет,
озаглавленный «КАДРОВЫЙ СОСТАВ ПРЕДПРИЯТИЯ ПО СОСТОЯНИЮ НА ...» должен
включать в себя следующие разделы:

Заголовок раздела	Информация, распечатываемая в разделе
ОТДЕЛЫ	Список всех отделов
СПИСОЧНЫЙ СОСТАВ ОТДЕЛОВ	Состоит из ряда подразделов, каждый из которых имеет свой подзаголовок «СОТРУДНИКИ ОТДЕЛА ...», после которого следует список фамилий сотрудников
ЛИЧНЫЕ ДЕЛА	Состоит из ряда подразделов, каждый из которых имеет свой подзаголовок «СОТРУДНИКИ ОТДЕЛА ...», после которого следует информация о фамилии, имени, отчестве сотрудника, его пол, год рождения, фотография сотрудника и его характеристика

В разделе «ЛИЧНЫЕ ДЕЛА» каждый подраздел «СОТРУДНИКИ ОТДЕЛА ...» дол-
жен начинаться с новой страницы. Все страницы должны иметь нижний колонти-
тул, в котором слева печатается надпись «Кадровый состав», а справа — номер
страницы.

Строя этот отчет мы по ходу дела рассмотрим необходимые нам свойства раз-
личных компонентов.

Основным компонентом, на котором размещаются все полосы отчета, является
QuickRep. Откройте новое приложение и разместите на нем этот компонент. Боль-
шинство свойств и методов QuickRep рассмотрены в разделе 4.8.3. Не упоминалось
там только об одном свойстве — DataSet, определяющем набор данных. Этим набо-
ром может являться компонент типа TTable, TQuery и т.п. Поэтому для того, чтобы
можно было построить наш отчет, поместите на форму компонент типа TTable, на-
зовите его TDep и свяжите его с таблицей Dep базы данных dbP. Перенесите на фор-
му компонент типа TDataSource, назовите его DSDep и свяжите с TDep. Перенесите
на форму еще один компонент типа TTable, назовите его TPers и свяжите его с таб-
лицей Pers базы данных dbP. Установите между двумя таблицами обычную связь,
чтобы TDep была головной таблицей, а TPers связывалась с ней по полю Dep.