Урок 10. Многотабличные отчеты
Рассмотрим технологию разработки отчета, основным источником которого является подчиненная таблица, когда данные главных таблиц относительно этого источника тоже включаются в ответ. Мастер отчетов позволяет постро- ить многотабличный отчет для взаимосвязанных таблиц, выбрать из них нуж- ные поля в заданной последовательности и указать, какая таблица из участ- вующих в отчете, будет записеобразующей, т.е. основным источником дан- ных. Кроме того, мастер предоставляет возможность определить группировку и сортировку записей отчета по различным полям, подсчитать итоговые зна- чения.
Пусть необходимо получить отчет, в котором выводятся в виде списка данные о занятиях, проводимых в каждой группе. Строки отчета должны быть упоря- дочены по коду предмета. При выводе данных в отчете должны также форми- роваться расчетные суммарные часы по занятиям для каждой группы.
![]() |
Рис. 10.1. Проект макета отчета о занятиях, прово- димых в группах
Выбор таблиц для отчета и варианта его создания.
Основные сведения о занятиях, проводимых в группах, содержит подчиненная таблица ИЗУЧЕНИЕ. Из таблицы ИЗУЧЕНИЕ можно получить перечень
идентификаторов занятий, проводимых в каждой группе, с указанием часов по занятию. Эта таблица является основным источником записей для создавае- мого отчета. Наименования предметов содержит таблица ПРЕДМЕТ, а фами- лии преподавателей – таблица ПРЕПОДАВАТЕЛЬ. Обе эти таблицы являются главными по отношению к таблице ИЗУЧЕНИЕ. Одно-многозначные связи между этими таблицами и подчиненной таблицей ИЗУЧЕНИЕ установлены в схеме данных базы по соответствующим идентификаторам занятия: коду предмета и табельному номеру преподавателя.
Начиная создание отчета во вкладке Создание, выберем Мастер отчетов.
![]() |
Рис. 10.2. Окно для формирования пользователем списка полей, вклю- чаемых в отчет
Из таблицы ПРЕДМЕТ выберем поле с наименованием предмета НП, а из таблицы ПРЕПОДАВАТЕЛЬ поле ФИО.
Замечание. Для того чтобы включать поля в нужной последовательности, следует иметь в виду, что поле вставляется в след за выделенным в списке по- лей уже включенных в ответ. Например, для включения поля НП сразу за по- лем НГ последнее должно быть предварительно выделено.
На рис. 10.2. представлено окно Создание отчета после выбора всех полей, используемых в отчете.
В следующем сеансе окна мастера в строке Выберите тип представления данных. Далее задаются уровни группировки, которые позволяют вывести
записи, объединенные по разным полям. Зададим один уровень группировки по полю НГ. При этом в окне отображается общая структура формируемого макета отчета.
![]() |
Рис. 10.3. Окно мастера отчетов при выборе порядка сортировки строк
Мастер позволяет производить сортировку по четырем полям в порядке воз- растания или убывания значений поля. Выберем поле НП (Название предме- та), по которому нужно произвести сортировку по возрастанию. Чтобы произ- вести подсчет итоговых значений, нажмем кнопку Итоги. Для числовых по- лей в открывшемся окне Итоги будут выведены строки, в которых можно выбрать статистическую функцию (Sum, Avg, Min, Max) для подсчета значе- ний в итоговой строке группы. В соответствии с проектом макета отчета (см. рис. 10.1) должно быть выведено суммарное число часов в поле отчета Итого по группе. Поэтому выберем для поля ЧАСЫ функцию Sum.
Замечание. Если необходимо подсчитать долю суммарных часов группы от общих часов всех групп, нужно отметить флажок Вычислить проценты.
Далее в следующем сеансе окна мастера (рис. 10.4) выберем из шести предла- гаемых видов макета отчета Ступенчатый с Книжной ориентацией. Отме- тим флажок Настроить ширину полей для размещения на одной странице.
Потом зададим имя отчета – «Изучение предметов в группах», которое также отобразиться в заголовке отчета. Под этим именем мастер автоматически со- храняет отчет в базе данных. Для того чтобы сразу доработать отчет, выберем дальнейшие действия – Изменить макет отчета. Отчет отобразиться на экра- не в режиме конструктора (рис. 10.5).
Рис. 10.4. Окно мастера отчетов при задании вида макета отчета
![]() |
Рис. 10.5. Макет отчета о занятиях, проводимых в группах, построен- ный мастером и отображенный в режиме конструктора
Отметим, что на основе информации, сохраняемой в схеме данных, и задан- ных пользователем полей при создании макета отчета, мастер сам строит не- обходимый запрос. По этому запросу формируются записи из полей несколь- ких взаимосвязанных таблиц. В свойствах отчета (рис. 10.6) в качестве источ-
![]() |
Рис. 10.6. Окно свойств многотабличного отчета Изучение предме- тов в группах
![]() |
Рис. 10.7. Запрос, подготовленный мастером отчетов при создании ма- кета отчета
Редактирование макета отчета в режиме конструктора. В отчет, построен- ный мастером (см. рис. 10.5), в заголовок группы автоматически было вклю-
чено поле номера группы НГ. В примечание группы мастером включены ито- ги по группе: поле для подсчета числа записей в группе и поле для подсчета суммы часов по группам. Отредактируем надписи этих полей.
Поместим поле с выражением =Date(), определяющим текущую дату, в заго- ловок отчета.
Элементы заголовков столбцов размещены в верхнем колонтитуле отчета и, следовательно, будут печататься на каждой странице отчета. Чтобы заголовки печатались в каждой группе, как предусмотрено в проекте макета отчета на рис. 10.1, переместим их в заголовок группы.
Если необходимо, чтобы сведения о каждой группе печатались на отдельной странице, вставьте в примечание группы разрыв страницы. Для этого восполь- зуйтесь кнопкой Разрыв страницы на панели Конструктора отчетов.
Отредактируем текст заголовков в соответствии с проектом макета. Отчет в режиме просмотра после доработки представлен на рис. 6.25.
![]() |
Рис. 6.25. Многотабличный отчет (начало) об изучении предметов в группах
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.