Разработка баз данных в Delphi. 11 Уроков



         

Глава 22 Построение отчета главный-детальный


Если необходимо построить отчет на основе более чем одной ТБД, можно поступить двумя способами:

1.     с помощью компонента TQuery произвести соединение данных из нескольких таблиц БД в один НД, после чего определить в отчете нужные группировки;

2.     создать в приложении по одному НД на каждую таблицу, соединить эти наборы между собой связью главный-детальный (используя свойства MasterSource, MasterFields набора данных) и применить в отчете компонент (или несколько компонентов) TQRSubDetail для вывода информации из детального НД (или группы детальных НД); для вывода информации из главного НД, как и в обычных отчетах, применяется компонент TQRBand, у которого в свойстве BandType установлено значение rbDetail.

Построение отчета для первого случая осуществляется аналогично тому, как это описано выше. Построение отчета для второго случая имеет некоторые отличительные особенности. Рассмотрим второй способ.

Компонент TQRSubDetail предназначен для показа в отчете информации из детального НД. Его свойство

 

Property DataSet: TDataSet;

указывает имя детального НД, информация из которого будет выводиться в пространстве компонента TQRSubDetail. В остальном использование этого компонента аналогично использованию компонента TQRBand, у которого в свойство BandType установлено значение rbDetail.

Пусть имеется таблица БД TOVARY.DB, содержащая помимо прочих поле TOVAR (название товара). Пусть также имеется таблица БД RASHOD.DB, содержащая сведения об отпуске материалов со склада. В ее состав входят поля N_RASH (уникальный номер события отпуска товара), DEN (номер дня), MES (номер месяца), GOD (номер года), TOVAR (наименование отпущенного товара), POKUP (наименование покупателя) и KOLVO (количество единиц отпущенного товара).

Таблицы TOVARY.DB и RASHOD.DB находятся в отношении один-ко-многим, то есть одному товару может соответствовать более одного факта отпуска товара со склада.

Разместим на форме компонент TTable (им TovaryTable), ассоциированный с ТБД TOVARY.DB, и связанный с ним компонент TDataSource


Содержание  Назад  Вперед