Лабораторная работа (СУБД Oracle) №7 / lab7/lab7.doc
Лабораторная работа №7
по курсу СУБД ORACLE
Введение
В лабораторной работе рассматривается процесс построения простых отчетов (документов для печати) с использованием среды разработки Oracle Reports Developer 6i (в частности программы Oracle Report Builder).
Справочные материалы
Для самостоятельного изучения и подготовки к лабораторной работе рекомендуются следующие справочные материалы (на англ. языке):
§ Guide60.pdf Oracle Forms Developer and Oracle Reports Developer
§ or_buildrep60.pdf Oracle® Reports Developer Building Reports Release 6i, A73172-01
Задание
Для базы данных со схемой и данными, указанными в примере (см. ниже), создать следующие экранные отчеты:
1. Табличный отчет с данными о Дисциплине, Преподавателе и средней оценке которую он поставил.
2. Отчет с группировкой данных по схеме:
| Факультет | Группа | Преподаватель | Дата Выставления Оценки | Количество выставленных преподавателем оценок |
| … | … | |||
| … | … | |||
| … | … | … | ||
| … | … | … | ||
| … | … | … | ||
| … | … | … |
3. Матричный отчет с группировкой по схеме:
| Дисциплина | Дисциплина | |||
| Группа | Студент | Дата Выставления Оценки | Оценка | Оценка |
| … | Оценка | Оценка | ||
| … | Оценка | Оценка | ||
| … | … | … | … | |
| … | … | … | … | … |
| … | … | … | … | … |
4. Отчет с диаграммой по любой группе и дисциплине (например MP50/FISIKA), результатом отчета должны быть данные о числе оценок в указанных ниже диапазонах и диаграмма:
Работа с Oracle Reports Developer
Основные “Быстрые” клавиши:
F2 — Report Editor (Редактор отчета)
F3 — Object Navigator (Навигатор Объектов), в котором отражена структура элементов создаваемого приложения
F4 — Property Palette (Палитра Свойств), окно со списком свойств редактируемого объекта формы
Ctrl-R — Обновить отчет (перечитать данные из БД, на основе которых построен отчет)
Файлы создаваемые Report Builder
В ходе работы Report Builder создает (может создавать) файлы следующих типов:
*.RDF — Файл отчета построенного в Reports Builder 6i
*.REP — Файл отчета, подготовленный для выполнения
Построение отчетов в Reports Builder
Отчет в Reports Builder состоит из описания данных (служащих основой для отчета), правил форматирования отчета на странице, и специальной формы для ввода параметров отчета (для параметризированных отчетов).
Работа с Reports Builder во многом похожа на работу с Forms Builder (см. предыдущую лабораторную работу). Каждый отчет представлен как модуль в дереве объектов (называемый по умолчанию MODULE1, MODULE2, …). В состав отчета входят:
1. Модель Данных (Data Model), которая является описанием выборки данных из БД, на основе которой строится отчет. Модель создается с помощью специального графического редактора, который позволяет конструировать предложения SQL.
2. Модель разметки (Layout Model). Данная модель определяет, каким образом на странице отчета следует разместить данные (поля для вывода значений)
3. Форма параметров (Parameter Form).
Для интерактивного просмотра результатов работы над отчетом существует специальный режим просмотра отчета — LivePreviewer, в котором на экран выводятся отчет в его окончательном виде, так как он будет выглядеть при печати. В таком режиме Reports Builder использует данные из Модели Данных и правила разметки, определенные в Модели разметки, при этом отчет можно не только просматривать, но и редактировать — изменять используемые шрифты, расцветку, расположение блоков отчета на странице.
По окончании проектирования создаются файлы отчетов, подготовленные для выполнения с помощью специальной среды Reports Runtime (*.REP файлов). Конечный пользователь, используя Reports Runtime и .REP файлы отчетов, может выполнять просмотр и печать нужных ему документов.
Пример
В примере описаны типовые последовательности действий для создания простых табличных отчетов, групповых отчетов, матричных отчетов и диаграмм.
В примере отчеты построены на основе данных из БД, схема которой подставлена на рисунке:
База данных предназначена для хранения данных о рейтинге (оценках) студентов по различным дисциплинам. Основная таблица — MARK, в ней указаны оценки и даты их получения, другие таблицы детализируют данные об оценках, вводя дополнительные «измерения», по преподавателям, дисциплинам, студентам, группам, факультетам. SQL сценарий с описанием схемы таблицы и исходные данные приведены в файлах lab7schema.sql и lab7data.sql соответственно.
Создавать отчеты формы в Reports Builder можно либо вручную, либо с помощью Мастеров. Мастер это последовательность вопросов, которые, Reports Builder задает разработчику, и по полученным ответам генерирует форму.
Простой табличный отчет
Создадим простой табличный отчет для вывода информации о среднем рейтинге каждого студента по различным дисциплинам.
1. Запустим программу Report Builder и сразу же выберем режим создания отчета с помощью Мастера:
2. Выберем тип отчета — Табличный (Tabular), также укажем заголовок для отчета:
3. Укажем, что данные для построения отчета будут получены как результат SQL-запроса:
введем SQL-запрос:
SELECT STUDENT.NAME "STUDENT",
COURSE.NAME "COURSE",
AVG(MARK.RATING) "AVG. RATING"
FROM MARK, COURSE, STUDENT, GRP
WHERE (GRP.NAME='MP50')
AND (MARK.COURSEID=COURSE.COURSEID)
AND (MARK.STUDENTID=STUDENT.STUDENTID)
AND (STUDENT.GRPID=GRP.GRPID)
GROUP BY STUDENT.NAME, COURSE.NAME
4. Укажем, что в отчет следует включить все поля возвращаемые SQL запросом
5. Укажем, что в конец отчета следует включить строку, содержащую количество студентов вошедших в отчет:
6. Зададим название колонок отчета:
7. Выберем один из типовых вариантов разметки отчета:
8. На этом работа Мастера завершена, создан отчет следующего вида:
9. Через палитру свойств можно редактировать различные свойства отчета. Например, и выделив мышью строку заголовков можно указать, что эту строку следует выводить только на первой странице документа:
10. Переключимся в режим просмотра Модели данных, для этого выберем пункт меню View\DataModel или на панели инструментов окна редактирования отчетов выберем пиктограмму Модели данных (вторая с правого края):
11. Как видно в модель входит один SQL запрос (с именем Q_1), возвращающий три столбца STUDENT, COURSE, AVG_RATING. Дважды щелкнув на запросе Q_1 откроем его описание:
12. Количество студентов, вошедших в отчет, представляется в Модели данных отдельным элементом:
Отчет с группировкой данных
Создадим отчет для вывода информации о среднем рейтинге в каждой группе по различным дисциплинам, при этом будем группировать выводимые в отчете данные, чтобы избежать повторения одних и тех же строк.
1. Создадим новый отчет (меню File\New\Report) с помощью мастера, выбрав режим группировки по левому краю:
2. Введем SQL запрос для формирования отчета:
3. Укажем, значения в каких столбцах следует группировать. Зададим два уровня группировки — сначала по группам, затем по дисциплинам:
4. Укажем, какие поля включить в отчет:
5. Будем также (дополнительно) вычислять средний рейтинг по каждой группе:
6. Выберем один из стандартных вариантов разметки отчета:
7. В результате работы Мастера получим такой отчет:
8. Зададим маску формата выводимых значений, чтобы исключить слишком большого числа знаков после запятой:
9. Можно также задать цвет фона для различных полей отчета:
Матричный отчет
Матричный отчет позволяет разместить данные на странице документа в виде таблице, по строкам и столбцам которой будет располагаться некоторые категории, а в ячейках — некие величины, соответствующие этим категориям.
1. Данный отчет начнем создавать в “ручном” режиме:
2. Переключимся в режим редактирования Модели данных и добавим новый SQL запрос:
3. Запрос будет выдавать данные об оценках студентов по датам и различным курсам
4. Получим такую модель:
5. В контекстном меню выберем Report Wizard и добавим псевдонимы для столбцов запроса:
6. Укажем вид отчета — Матричный с группировкой:
7. Группировку будем выполнять по студентам:
8. По строкам матрицы расположим даты полученных оценок:
9. По столбцам расположим названия дисциплин
10. В ячейки матрицы поместим оценки (рейтинг):
11. Добавим расчет средних оценок:
12. Зададим имена для строк и столбцов:
13. Выберем типовой вариант форматирования:
14. В итоге получим, отчет следующего вида:
Простой отчет с диаграммой
На основе данных, вошедших в отчет можно строить различные диаграммы, созданная диаграмма является частью отчета и располагается на одной из его страниц. Рассмотрим как на основе отчета построить столбчатую диаграмму.
1. Создадим отчет содержащий средний рейтинг в каждой группе:
2. Показанный запрос является основой для этого отчета:
3. Выберем пункт меню Tools\ChartWizard для вызова Мастера построения диаграмм:
4. Следует выбрать поле, которое будет задавать значения (располагаться по оси X):
5. Аналогично следует выбрать поле, которое будет задавать величину откладываемую по оси Y:
6. Укажем Мастеру, что диаграмму следует расположить в начале отчета:
7. Окончательно получим следующую диаграмму:
