Разработка многотабличного отчета на основе подчиненной таблицы с помощью мастера

Рассмотрим технологию разработки отчета, основным источником которого является подчиненная таблица, когда данные главных таблиц относительно этого источника тоже включаются в отчет. Мастер отчетов позволяет построить многотабличный отчет для взаимосвязанных таблиц, выбрать из них нужные поля в заданной последовательности и указать, какая таблица из участвующих в отчете, будет записеобразующей, т. е. основным источником данных. Кроме того, мастер предоставляет возможность определить группировку и сортировку записей отчета по различным полям, подсчитать итоговые значения.

Пусть необходимо получить отчет, в котором выводятся в виде списка данные о занятиях, проводимых в каждой группе. Строки отчета должны быть упорядочены по коду предмета. При выводе данных в отчете должны также формироваться расчетные суммарные часы по занятиям для каждой группы.

Проект макета отчета, который должен быть создан для вывода данных о занятиях, проводимых в каждой группе, приведен на рис. 11.

Рисунок 11

Выбор таблиц для отчета и варианта его создания. Основные сведения о занятиях, проводимых в группах, содержит подчиненная таблица ИЗУЧЕНИЕ. Из таблицы ИЗУЧЕНИЕ можно получить перечень идентификаторов занятий, проводимых в каждой группе, с указанием часов по занятию. Эта таблица является основным источником записей для создаваемого отчета. На именования предметов содержит таблица ПРЕДМЕТ, а фамилии преподавателей — таблица ПРЕПОДАВАТЕЛЬ. Обе эти таблицы являются главными по отношению к таблице ИЗУЧЕНИЕ. Одно-многозначные связи между этими таблицами и подчиненной таблицей ИЗУЧЕНИЕ установлены в схеме данных базы по соответствующим идентификаторам занятия: коду предмета и табельному номеру преподавателя.

Начиная создание отчета, нажмем на вкладке Создание в группе Отчёты кнопку Мастер отчётов и в открывшемся окне Создание отчётов (Рис. 6.18.) выберем подчиненную таблицу ИЗУЧЕНИЕ в качестве записеобразующей таблицы для отчета. Этот выбор определит тип представления данных в отчете, а также имя и заголовок отчета по умолчанию.

В окне Мастера отчетов выберем из таблицы ИЗУЧЕНИЕ поля, включаемые в отчет: НГ, ВИДЗ, ЧАСЫ.

Рисунок 12

Из таблицы ПРЕДМЕТ выберем поле с наименованием предмета НП, а из таблицы ПРЕПОДАВАТЕЛЬ поле ФИО.

 

Замечание

Для того чтобы включать поля в нужной последовательности, следует иметь в виду, что поле вставляется вслед за выделенным в списке полей уже включенных в отчет. Например, для включения поля НП сразу за полем НГ последнее должно быть предварительно выделено.

 На рис. 12 представлено окно Создание отчета после выбора всех полей, используемых в отчете.

В следующем сеансе окна мастера в строке Выберите тип представления данных по умолчанию выделена таблица ИЗУЧЕНИЕ. Далее задаются уровни группировки, которые позволяют вывести записи, объединенные по разным полям. Зададим один уровень группировки по полю НГ (Рисунок 13). При этом в окне отображается общая структура формируемого макета отчета.

В следующем сеансе диалогового окна мастера Создание отчета (Report Wizard) задается порядок сортировки записей.

Рисунок 13

Рисунок 14

Мастер позволяет производить сортировку по четырем полям в порядке возрастания или убывания значений поля. Выберем поле НП, по которому нужно произвести сортировку по возрастанию в группе (А-Я) ¯(Рисунок 14). Порядок сортировки определяется надписью на кнопке, которая меняется при нажатии. Чтобы произвести подсчет итоговых значений, нажмем кнопку Итоги (Summary Options). Для числовых полей в открывшемся окне Итоги будут выведены строки, в которых можно выбрать статистическую функцию (Sum, аvg, min, Мах) для подсчета значений в итоговой строке группы. В соответствии с проектом макета отчета должно быть выведено суммарное число часов в поле отчета Итого по группе. Поэтому выберем для поля ЧАСЫ функцию sum.

 

Замечание

Если необходимо подсчитать долю суммарных часов группы от общих часов всех групп, нужно отметить флажок Вычислить проценты/

Далее в следующем сеансе окна мастера выберем из шести предлагаемых видов макета отчета Ступенчатый с Книжной ориентацией. Отметим флажок Настроить ширину полей для размещения на одной странице.

Рисунок 15

 

Этот отчет по основным параметрам соответствует проекту макета отчета. В него включены поля из трех взаимосвязанных таблиц. Причем пользователю не потребовалось задавать связи между таблицами и включать в отчет поля КП (код предмета) и ТАБН (номер преподавателя), являющиеся полями связи.

Рисунок 16

 

Заметим, что на основе информации, сохраняемой в схеме данных, и заданных пользователем полей при создании макета отчета, мастер сам строит необходимый запрос. По этому запросу формируются записи из полей нескольких взаимосвязанных таблиц. В свойствах отчета в качестве источника записей мастер записывает инструкцию SQL, реализующую запрос и определяющую выборку заданных полей из различных таблиц.

Рисунок 17

 Запрос, созданный мастером при подготовке макета отчета, можно просмотреть и при необходимости откорректировать. Чтобы отобразить запрос на экране, нужно в диалоговом окне свойств отчета в строке Источник записей нажать кнопку Построитель, которая вызовет построитель запросов. Открывающееся окно построителя запросов представлено на рис. 18.

Рисунок 18

 

Редактировавние макета отчета в режиме конструктора. В отчет, построенный мастером, в заголовок группы автоматически было включено поле номера группы НГ. В примечание группы мастером включены итоги по группе: поле для подсчета числа записей в группе и поле для подсчета суммы часов по группам. Отредактируем -надписи этих полей.

В нижний колонтитул мастер включил поля с выражениями, определяющими текущую дату и нумерацию страниц отчета. Переместим поле с выражением =Now(), определяющим текущую дату, в заголовок отчета.

Элементы заголовков столбцов размещены в верхнем колонтитуле отчета и, следовательно, будут печататься на каждой странице отчета. Чтобы заголовки печатались в каждой группе, как предусмотрено в проекте макета отчета, переместим их в заголовок группы.

Если необходимо, чтобы сведения о каждой группе печатались на отдельной странице, вставьте в примечание группы разрыв страницы. Для этого воспользуйтесь кнопкой Разрыв страницы в группе Элементы управления на панели Конструктора отчетов.

Отредактируем текст заголовков в соответствии с проектом макета. Отчет в режиме просмотра после доработки представлен на рис. 19.

 

Внимание

В отчетах можно вывести значения некоторого поля записи или итогового поля группировки нарастающим итогом. Например, можно накапливать сумму часов от группы к группе. Так, если в первой группе суммарное число часов равно 262, во второй — 150, а в третьей — 130, то, задав свойство поля Сумма с накоплением = Для всего, можно получить значения: для первой группы 262, для второй 412, для третьей 542. Чтобы накапливать сумму значений поля для записей в группе, нужно установить свойство Сумма с накоплением  = Для группы. Это свойство размещено на вкладке Данные.

Рисунок 19

  Разработка отчета на основе запроса

Запрос является мощным и удобным средством выборки взаимосвязанных данных. Поэтому с помощью запроса можно подготовить данные для сложного отчета.

Рассмотрим технологию создания сложного отчета с использованием запроса на примере формирования бланка "Экзаменационная ведомость" для группы студентов по заданному предмету. Бланк должен иметь форму документа, используемого для ввода данных после внесения оценок преподавателем в этот бланк.

Проект макета отчета. На рис. 20 показан бланк "Экзаменационная ведомость", который должен выводиться из базы данных в режиме просмотра и печати отчета.

Рисунок 20

 

  Рассмотрим подготовку запроса, обеспечивающего выборку информации, необходимой для формирования бланка экзаменационной ведомости.


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: