- •Лабораторная работа №1 Тема: Анализ предметной области задачи. Проектирование структуры базы данных
- •Постановка задачи
- •Лабораторная работа №2 Тема: Создание таблиц бд инструментальным способом
- •Задания:
- •Лабораторная работа №5 Тема: Определение отношений между таблицами
- •Задание:
- •Лабораторная работа №6 Тема: Создание таблиц бд реляционным способом
- •Задание:
- •Лабораторная работа №7 Тема: Навигация нд. Модификация нд
- •Задание:
- •Лабораторная работа №9 Тема: Поиск записей
- •Лабораторная работа №10 Тема: Запросы
- •Задание:
- •Лабораторная работа №11 Тема: Запросы с параметром. Динамический запрос
- •Задание:
- •Лабораторная работа №12 Тема: Простой отчет (Rave Report, qReport)
- •Задание:
- •Создание простейшего отчёта с помощью qReport
- •Лабораторная работа №13 Тема: Отчет с группировкой. Отчет со связанными таблицами
- •Задание:
- •Создание отчёта с группировкой (qReport)
- •Создание отчёта с группировкой (Rave Report)
- •Создание отчёта для связных нд (qReport)
- •Лабораторная работа №14 Тема: Экспорт и импорт данных в Word, Excel
- •Задание:
- •Экспорт в ms excel
- •Экспорт в ms Word
- •Лабораторная работа №15 Тема: Экспорт и импорт данных в Calc, Writer
Создание отчёта для связных нд (qReport)
В тех случаях, когда требуется создать отчёт на основе данных, получаемых из нескольких таблиц БД, можно поступить двумя способами:
С помощью компонента Query объединить данные из нескольких таблиц в один набор данных, после чего строить отчет обычным образом;
Создать несколько наборов данных (по одному на каждую таблицу) и соединить эти наборы между собой связью мастер-детальный, используя их свойства MasterSource и MasterFields. Далее для отображения информации из связанных наборов данных в отчёте применяются компонент QRBand (для главной таблицы) и компонент QRSubDetail (для подчиненной таблицы).
Компонент QRSubDetail специально предназначен для включения в отчет информации из детального набора данных. Свойство DataSet этого компонента должно содержать ссылку на детальный набор данных.
Пусть имеются две таблицы. Первая таблица Stydent.db содержит информацию о студентах колледжа имеет такие поля:
Код студента (Kod_styd);
ФИО (FIO);
Группа (Nazvanie_gr);
Форма обучения (Forma_ob);
Прописка (Propiska);
Во второй таблице Dogovor.db содержится информация о договорах, заключённых со студентами, и имеет следующие поля:
Код студента (Kod_styd);
Номер договора (Nom_dogovora);
Сумма (Symma);
Дата заключения (Data);
Таблицы Stydent.db и Dogovor.db находятся в отношении один-ко-многим, то есть одному студенту могут соответствовать несколько договоров.
Для создания отчета, прежде всего, требуется разместить на форме два компонента Table1 и Table2, связав их, соответственно, с таблицами Stydent.db и Dogovor.db. Кроме того на форму помешается компонент DataSource, связанный с компонентом Table1.
После этого между наборами данных устанавливается связь по одноименным полям Kod_styd. В качестве текушего индекса должен быть выбран индекс по полю Kod_Styd.
После того как связь была установлена, можно перейти к проектированию отчёта. На форму добавляется компонент QuickRep. Свойству DataSet данного компонента присваивается значение Table1.
Затем в отчёте размешается полоса заголовка, то есть компонент QRBand1, свойство BandType которого равно rbTitle. На эту полосу помещается компонент QRLabel, в свойство Caption которого записывается строка, обозначающая заголовок данного отчета.
После помещается полоса QRBand2 (BandType - rbColumnHeader), на которой помещаются компоненты QRLabel, где будут отображаться заголовки столбцов главной таблицы.
Затем добавляется еше одна полоса QRBand3 и ее свойству BandType присваивается значение rbDetail. На этой полосе помешаются пять элементов QRDBText которые связываются с полями Kod_styd, FIO, Forma_ob, Propiska и Nazvanie_gr таблицы Stydent.db.
На следующем шаге в отчёте размещается компонент QRSubDetail. Данный компонент связывается с подчинённой таблицей: его свойству DataSet присваивается значение Table2. На этой полосе помещаются три компонента QRDBText, которые связываются с полями Nom_dogovora, Data и Symma таблицы Dogovor.db.
Наконец, в поле компонента QRBand3 размещаются заголовки столбцов, соответствующие отображаемым полям подчинённой таблицы.
В результате на этапе проектирования форма отчёта принимает вид:
Создание отчёта для связных НД (Rave Report)
Пусть имеются две таблицы: Dogovor.db и Plat_por.db. В первой таблице содержится информация о договорах, заключённых со студентами, и имеет следующие поля:
Код студента (Kod_styd);
Номер договора (Nom_dogovora);
Сумма (Symma);
Дата заключения (Data);
Во второй таблице содержится информация о платёжных поручениях, которая имеет следующие поля:
Номер договора (Nom_dogovora);
Номер платёжного поручения (Nom_plat_por);
Сумма (Symma);
Дата оплаты (Data_opl);
Таблицы Dogovor.db и Plat_por.db находятся в отношении один-ко-многим, то есть одному студенту могут соответствовать несколько договоров.
Порядок действий:
Устанавливается на форму два компонента Table, которые связываются с таблицами БД – Dogovor.db и Plat_por.db соответственно при помощи свойства TableName;
Кроме того на форму помешается компонент DataSource, связанный с компонентом Table1.
После этого между наборами данных устанавливается связь по одноименным полям Nom_dogovora. В качестве текушего индекса должен быть выбран индекс по полю Nom_dogovora.
После связи таблиц устанавливается компонент TrvProject, который обеспечивает представление в приложении отчета. Для того чтобы связать проект отчета Rave Reports с компонентом, используется свойство ProjectFile;
Устанавливается компонент управления отчётом TRvSystem, который обеспечивает выполнение основных операций с отчетом из приложения. В приложении он должен быть связан с компонентом TRvProject. Для этого достаточно передать в свойстве Engine компонента ссылку на TRvSystem;
Затем помещается на форму два компонента RvTableConnection, которые связываются с таблицами БД Dogovor.db и Plat_por.db при помощи свойства Table;
Для создания отчёта необходимо вызвать визуальную среду разработки Rave Reports двойным нажатием мыши по компоненту RvProject или при помощи команды контекстного меню: Rave Visual Designer;
Все объекты, обеспечивающие доступ к внешним источникам данных из отчетов проекта, собраны в словаре просмотра данных Data View Dictionary. Новый объект создается командой File - New Data Object главного меню.
В открывшемся диалоговом окне выбирается пункт Direct Data View и указываются источники данных RvTableConnection3 и RvTableConnection4;
Устанавливается на лист элемент Region, который создаёт в отчёте область, предназначенную для размещения любых других элементов и определяющую часть страницы отчёта, отведенную под отображение данных;
Затем помещается элемент элемент Band, который будет отображать заголовок отчёта;
Помещается ещё один элемент Band, где будут отображаться заголовки столбцов главной таблицы Dogovor.db.
Для представления однострочного текста имеется простой элемент оформления Text. Текст задается свойством Text. При помощи данного элемента задаются все надписи в отчёте: заголовки, названия столбцов и т.д.
Помещаем на лист элемент DataBand1, который создает полосу, моделирующую строку просмотра данных. Данный компонент необходимо связать с источником данных при помощи свойства DataView, в котором указывается DataView1. Здесь будут отображаться поля главной таблицы и заголовки столбцов подчинённой таблицы;
Помещаем на лист элемент DataBand2, который необходим для отображения полей подчинённой таблицы.
Необходимо установить следующие значения свойств:
ControllerBand – DataBand1;
BandStyle - Detail;
DetailKey – Nom_dogovora;
DataView – DataView2;
MasterDataView - DataView1;
MasterKey – Nom_dogovora.
На полосе DataBand1 располагаются элементы отображения данных DataText, которые связываются с источником данных при помощи свойства DataView, в котором указываем значение DataView1;
На полосе DataBand2 располагаются элементы отображения данных DataText, которые связываются с источником данных при помощи свойства DataView, в котором указываем значение DataView2;
Для каждого элемента DataText в свойстве DataField задаётся поле просмотра, значения которого будут отображаться элементом;
Для просмотра отчёта необходимо выполнить команду
File – Execute Report,
где выбирается переключатель Preview;
После создания необходимого отчёта требуется его сохранить. Для этого используется команда:
File – Save as;
Для того, чтобы вызвать отчёт в приложении необходимо в свойстве ProjectFile компонента RvProject указать путь к сохранённому отчёту и прописать следующий код программы:
RvProject1.Execute;
Вид отчёта «Список студентов» на этапе его разработки:
