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

Домашнее задание 1 Тема: Master – Detail отчет

Задана база данных, схема которой приведена на рис. 1а. Необходимо сформировать документ в соответствии со схемой, приведенной на рис. 1б.

Рис. 1 а) Схема базы данных. б) Схема документа

Порядок выполнения работы

1. Установим в форму компоненты Panel1,Button1,QuickRep1, две пары компонентов набора данныхClientDataSet1 иClientDataSet2, а также компонент связиDataSource1.

Установка компонентов в форму

2. Используя свойство DataSetкомпонента TDataSource, установим связьDataSource1 ->ClientDataSet1.

3. Посредством свойства FileNameкомпонентов класса TClientDataSet подключим компоненты

ClientDataSet1 к файлу C:\Пилипенко\Домашная работа 1\Data\Facultet.cds

ClientDataSet2 к файлуC:\Пилипенко\Домашная работа 1\Data\sGroup.cds

4. Установим Master–Detailотношение посредством свойствMasterSourceиMasterFieldsкомпонентаClientDataSet2 для полей СF_CODE-> СF_CODEтаблицsGroupиFacultet.

. Установка master – detail отношения

5. Используя свойство DataSetкомпонента QuickRep1, установим связь QuickRep1 ->ClientDataSet1.

6. Для компонента QuickRep1 установим в активное состояние полосу Detail посредством свойства Bends.HasDetail:=true.

Активизация полосы Detail

7. Поместим в полосу Detail компонент QRDBText1 и подключим его к полю F_Name таблицыFacultetпосредством выбора значений свойствDataSet:=ClientDataSet1 и DataField :=F_Name.

Установка компонента QRDBText в полосу Detail

8. В обработчике события щелчка кнопки Button1 запишем следующие строки программы, активизирующей компоненты.

procedure TForm1.Button1Click(Sender: TObject);

begin

ClientDataSet1.Open; //активизация компонента (доступ к данным)

ClientDataSet2.Open; //активизация компонента (доступ к данным)

QuickRep1.Preview; //вывод документа

end;

9. Скомпилируем приложение и выполним команду вывода документа:.

Первоначальный вид документа

  1. Сохраним разработанный проект File->SaveAll.

  2. Установим в компонент QuickRep1 компонентQRSubDetail.

Установка компонента QRSubDetail

12. Свяжим компонент QRSubDetailс набором данныхClientDataSet2, посредством свойстваDataSet. Установите связь полосы вторичной детализации QRSubDetail с полосой первичной детализации Detail используя свойство LinkBand(QRSubDetail1.LinkBand:= QuickRep1. DetailBand1).

13. Установим в полосу SubDetailкомпонентQRDBText1, который свяжим с полемGR_Nameнабора данныхClientDataSet2 посредством свойствDataSetиDataField.

Установка компонента QRDBText в полосу Sub Detail

14. Скомпилируем приложение и получим документ:

Вид Master – Detail документа

15. Для вывода информации в алфавитном порядке необходимо описать порядок сортировки полей таблиц.

В обработчике события кнопки Button1 допишем следующие строки программы:

procedure TForm1.Button1Click(Sender: TObject);

begin

ClientDataSet1.IndexFieldNames :='F_Name'; //сортировка в Master отношений

ClientDataSet2.IndexFieldNames :='CF_Code; GR_Name'; //сортировка в Detail отношений

ClientDataSet1.Open; //активизация компонента (доступ к данным)

ClientDataSet2.Open; //активизация компонента (доступ к данным)

QuickRep1.Preview; //вывод документа

end;