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

Property DataSet: tDataSet;

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

Пример. Пусть имеется таблица БД Tovary.DB, содержащая помимо прочих поле Tovar (название товара).

Пусть также имеется таблица БД Rashod.DB, содержащая сведения об отпуске материалов со склада. В состав таблицы входят поля

N_RASH - уникальный номер события отпуска товара;

DEN -номер дня;

MES - номер месяца;

GOD - номер года;

TOVAR - код отпущенного товара;

POKUP - наименование покупателя;

KOLVO - количество единиц отпущенного товара.

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

Разместим в форме компонент ТТаblе (имя TovaryTable), ассоциированный с таблицей Tovary.DB. Разместим в форме компонент TDataSource (имя DS_TovaryTable) и свяжем его с TovaryTable. Разместим в форме компонент ТТаblе (имя RashodTable), ассоциированный с таблицей Rashod.DB.

Установим связь Master-Detail в приложении между НД TovaryTable и RashodTable. Для этого при помощи редактора связей установим в свойство RashodTable.MasterSource значение DS_TovaryTable, и в свойство RashodTable.MasterFields значение TOVAR'.

Заметим, что после установления связей между НД, в НД RashodTable текущим индексом должен быть индекс по полю 'Tovar' (свойство RashodTable. IndexFieldNames = Tovar').

Приступим к разработке отчета. Путь отчет имеет имя QuickRepi. Определим заголовок отчета - компонент TQRBand с именем QRBand2, в свойство BandType которого установлено значение rbTitle.

Установим в качестве основного НД отчета TovaryTable, указав QuickRepi.DataSet = TovaryTable.

Разместим в отчете компонент типа TQRBand с именем QRBandi и установим в его свойство BandType значение rbDetail. Этот компонент будет использоваться для выдачи детальной информации из НД TovaryTable. Разместим в области компонента QRBandi компонент TQRDBText (имя QRDBTexti) и свяжем его с полем Tovar НД TovaryTable.

Разместим в отчете компонент TQRSubDetail (имя QRSubDetaiM). Установим в его свойство DataSet значение RashodTable, связав таким образом данный компонент с подчиненным НД. Разместим в области компонента QRSubDetaiM три компонента TQRDBText (имена QRDBText2 ... QRDBText4) и свяжем их с полями НД RashodTable, соответственно Pokup, Kolvo, D. Поле D определено в НД RashodTable как вычисляемое по значениям полей DEN, MES, GOD.

Разместим в области компонента QRBand1 заголовки столбцов. Вид формы отчета показан на рис. 9.15.

Войдем в режим предварительного просмотра результатов. В результирующем отчете для каждой записи НД TovaryTable выводятся подчиненные ей записи в НД RashodTable.

ЗАМЕЧАНИЕ. Если необходимо определить заголовок и подвал для информации, группируемой в компоненте TQRSubDetail, следует воспользоваться свойством этого компонента.

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