- •Лабораторная работа №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
Лабораторная работа №13 Тема: Отчет с группировкой. Отчет со связанными таблицами
Цель: Изучить среду Rave Report, способы создания отчетов.
Задание:
Изучить среду Rave Report.
Изучить вкладки Rave, Report.
Создать отчет с группировкой.
Создать отчет со связанными таблицами.
Создание отчёта с группировкой (qReport)
Для группирования данных используется компонент QRGroup. Условие группировки содержится в свойстве Expression, иначе говоря, в группу будут входить записи набора данных, удовлетворяющие установленному условию. Роль такого условия выполняет имя поля набора данных, на основе которого будет осуществляться группирование записей. Для каждой группы выводится ее заголовок и подвал. В качестве заголовка группы используется компонент QRGroup, а в качестве подвала - компонент QRBand со значением свойства BandType, равным rbGroupFooter. При этом свойство FooterBand. компонента QRGroup должно обязательно содержать ссылку на компонент подвала группы. Как правило, в заголовке группы выводится группирующее выражение, а в подвале - различная агрегированная информция, такая как, например, суммарное или среднее значение по группе в целом.
Важным условием является то, что группировка будет осуществляться только на основе текущего индекса. Другими словами, необходимо, чтобы в качестве текущего индекса был использован индекс, построенный по полю (или полям, в случае создания вложенных групп данных), которое используется для группирования записей в отчете.
Имеется таблица Stydent.db, в которой хранятся данные о студентах колледжа. В этой таблице представлены следующие поля :
Код студента (Kod_styd);
ФИО (FIO);
Группа (Nazvanie_gr);
Форма обучения (Forma_ob);
Прописка (Propiska);
Необходимо составить отчёт, отображающий данные из этой таблицы. При этом нужно осуществить группировку всех записей по названию группы, в которых учатся студенты. Также необходимо отображать названия столбцов отчета и в подвале страницы выводить номер страницы и текущую дату. В конце отчета должна быть выведена информация об общем количестве студентов.
На первом шаге решения поставленной задачи на форму помещается компонент Table и его свойству IndexFieldNames или IndexName устанавливается соответствующее значение, которое содержит ссылку на индекс, построенный по полю Nazvanie_gr.
После того как на форму помещён компонент QuickRep и его свойству DataSet задано значение Table1, в отчёте размещаются такие полосы:
полоса заголовка отчета - компонент QRBand1, у которого свойство BandType имеет значение rbTitle;
полоса заголовков колонок - компонент QRBand2 со значением свойства BandType, равным rbColumnHeader;
полоса группы - компонент QRGroup, свойству Expression присваивается значение Table1.Nazvanie_gr (устанавливает поле, на основе которого будет производиться группирование данных);
полоса детальной информации - компонент QRBand3, для которого свойство BandType установлено в rbDetail;
полоса подвала отчета - компонент QRBand5, свойство BandType имеет значение rbSummary;
полоса подвала страницы - компонент QRBand6, со значением свойства BandType, равным rbPageFooter.
На полосах отчета размещаются компоненты QRLabel, содержащие различные пояснительные надписи, в том числе заголовок отчета, заголовки столбцов и т.п.
На полосу группы QRGroup помещается компонент QRExpr, у которого свойству Expression необходимо присвоить значение Table1.Nazvanie_gr, позволяющее отображать значения поля Nazvanie_gr для текущей группы данных.
В полосе детальной информации размещаются компоненты QRDBText, ссылающиеся на соответствующие поля набора данных, а именно на поля FIO, Kod_styd, Forma_ob и Propiska.
В подвал отчёта также включается компонент QRExpr, свойству Expression которого нужно задать значение Count, позволяющее посчитать общее число выведенных в отчете записей или, другими словами, общее количество студентов.
На полосе подвала страницы необходимо разместить два компонента QRSysData. Свойству Data одного из них присвоить значение qrsDate, а другого - qrsPageNumber. Таким образом, в подвале страницы будет отображаться текущая дата и номер текущей страницы отчёта.
В результате на этапе проектирования форма отчета принимает вид:
