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

  • docx
  • 28.11.2021
Публикация на сайте для учителей

Публикация педагогических разработок

Бесплатное участие. Свидетельство автора сразу.
Мгновенные 10 документов в портфолио.

Иконка файла материала Л2-003209.docx

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

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

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

Проект макета отчета. Бланк “ Экзаменационная ведомость”, которая  долж- на выводиться из базы данных в режиме просмотра и печати отчета.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Рис. 11.1. Проект макета отчета Экзаменационная ведомость. Создание запроса для подготовки данных в отчет

Для вывода в отчет реквизитов, указанных в проекте макета нужно опреде- лить таблицы – источники и их взаимосвязи.

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


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

Для вывода в табличную часть бланка экзаменационной ведомости значений реквизитов N п/п, Фамилия И.О. необходимы данные из полей НС, ФИО таблицы СТУДЕНТ.

Таким образом, запрос для выборки этих взаимосвязанных данных должен быть построен на основе таблицы ИЗУЧЕНИЕ, ПРЕПОДАВАТЕЛЬ, ПРЕД- МЕТ, СТУДЕНТ.

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

При создании запроса между таблицами СТУДЕНТ и ИЗУЧЕНИЕ автомати- чески установится также связь по одноименному полю НГ (номер группы). Эта связь является связью – объединением, которой нет в схеме данных базы. Заметим, что эти таблицы находятся в отношениях многие-ко-многим, по- скольку один студент изучает много предметов, и один предмет изучается многими студентами. Связь, установленная между таблицами СТУДЕНТ и ИЗУЧЕНИЕ, определяет операцию симметричного объединения. При этом за- писи из этих таблиц объединяются и добавляются в результат только в том случае, если связанные поля содержат одинаковые значения.

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

главе 5. В строке бланка запроса Условие отбора определим параметры за-


проса |Номер группы| и |Наименование предмета| для аналогового ввода их значений при выполнении запроса. Это позволяет получить данные для кон- кретной ведомости.

Рис. 11.2. Запрос на выборку в режиме конструктора для формирова- ния отчета-бланка экзаменационной ведомости


В отчете необходимо выводить значения реквизита Вид сдачи: Экзамен, За- чет, которых нет непосредственно в таблицах БД, но они могут быть получе- ны на основе значений поля ВИДЗ таблицы ИЗУЧЕНИЕ. Два значения рекви- зита Вид сдачи: ”Экзамен” и ”Зачет” соответствуют двум возможным значе- ниям поля ВИДЗ: ”лек” и ”np”. Фактически нужно вместо значения ”лек” формировать слово ”Экзамен”, а вместо ”пр” – слово “Зачет”. Для этого надо  в запрос ввести новое поле, которое формируется как вычисляемое. Это поле должно содержать встроенную функцию управления.

 

Выражение 1 : Iif ( [ВИДЗ] = «лек»; «Экзамен»; «Зачет»)

 

Именно этого вычисляемого поля по умолчанию является ”Выражение 1:” Функция Iif (”immediate if” – мгновенное условие) аналогична  инструкции if… Then… Else и имеет следующий формат:

Iif (условие; если Истина; если Ложь)

В соответствии с форматом этой функции, если выполнится условие (ВИД)=

«лек» (т.е. в поле ВИДЗ находится значение «лек»), ТО РЕЗУЛЬТАТОМ ФУНКЦИИ БУДЕТ «Экзамен». В противном случае, т.е. если (ВИДЗ) = «пр» результатом функции будет слово «Зачет».

В предыдущем рисунке приведен в окончательном виде запрос для подготов- ки данных отчета-бланка экзаменационной ведомости. Этот запрос сохранен под именем «Ведомость».

Формирование записей результатов в запросе.

В процессе формирования записей результата из таблицы СТУДЕНТ последо- вательно выбираются записи с заданным номером группы (НГ).

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

Если по заданному предмету проводится не одно, а два вида занятий: лекции и практика, то число формируемых записей удваивается. В этом случае должны быть сформированы две ведомостит – одна для сдачи экзамена, другая для сдачи зачета.

Заметим, что таблица результатов запроса содержит ненормализованные дан- ные, что проявляется в повторяемости значений в столбцах ГРУППА, НА- ИМЕНОВАНИЕ ПРЕДМЕТА, ФИО ПРЕПОД., УЧ. ЗВАНИЕ, ВИД ЗАНЯТИЙ

и ВЫРАЖЕНИЕ1. Поэтому данная таблица не соответствует проекту макета


отчета Экзамена ведомость не может непосредственно использоваться как вы- ходной документ.

Использование средств Access для подготовки отчета обеспечивает преобра- зование получаемой таблицы результатов запроса в выходной документ нуж- ной формы в соответствии с проектом макета отчета.

Рис. 11.3. Результат выполнения запрса с данными для экзаменацион- ной ведомости

 

 

Конструирование отчета на основе запроса

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

 

Размещение данных в разделах отчета

Результаты запроса содержат много полей с повторяющимися значениями НГ, НП, ФИО преподавателя, ЗВ, ВИДЗ, Выражение 1: Данные в отчете должны быть размещены, как показано на макете отчета Экзаменационная ведо- мость. Значение каждого из этих полей должно быть представлено в отчете в заголовке один раз.

Заметим, что результаты для отчета получены по заданной группе и предмету. Поскольку по предмету может быть два вида занятий и для каждого вида за- нятий предполагается вывод отдельной ведомости, необходимо выполнить группировку по полю ВИДЗ. Для группировки по виду занятия нажмем кноп- ку Сортировка и группировка на панели инструментов конструктора отче- тов и заполним поля открывшегося окна.


Рис. 11.4. Окно определения групп записей по полю ВИДЗ и сортиров- ки по полю НС.

 

После определения группировки в окне конструктора отчета появятся разделы

Заголовок группы «ВИДЗ» и Примечание группы «ВИДЗ» .

Чтобы каждая группировка могла быть оформлена как самостоятельная экза- менационная ведомость, будем формировать шапку макета ведомости в заго- ловке группы ВИДЗ, а строки о подведении итогов сдачи экзамена (или заче- та) в примечании группы ВИДЗ.

Рис. 11.5.Офрмление шапки и табличной части отчета.

Создание текстовых элементов отчета.

Для создания в заголовке и примечании группы ВИДЗ текстовых элементов за исключением названий реквизитов выводимых полей, используем кнопку Надпись. Для оформления текста можно воспользоваться кнопками панели форматирования. Кроме того, можно задавать параметры надписей в окне свойств этих элементов. Окно свойств элемента открывается кнопками панели инструментов Свойства. Элемент предварительно должен быть выделен.


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

 

Оформление табличной части отчета.

Для размещения в отчете полей вызовем окно списка полей запроса Ведо- мость, нажав на панели конструктора отчетов кнопку Добавить поля

Рис. 11.6. Список полей запроса Ведомость

 

В область данных разместим поля НС и ФИО, на основе содержимого кото- рых будут формироваться строки табличной части отчета в соответствии с проектом макета отчета. Для этого из списка полей перетащим поля НС (но- мер студента) и СТУДЕНТ. ФИО в область данных.

Каждое поле представляется двумя элементами: собственно полем и его под- писью. Например, поле ФИО таблицы СТУДЕНТ представляется элементом СТУДЕНТ. ФИО, отображающим значение поля, и элементом, содержащим подпись этого поля из таблицы базы данных – Фамилия И.О. Установим нуж- ный шрифт в элементах. Используем команду меню Формат |Размер| по раз- меру данных для установки размеров элемента по размеру текста подписи.

Замети, что подпись поля из табличной части должна быть перемещена для формирования заголовка столбцов в раздел Заголовок группы «ВИДЗ». Для этого выделим подпись поля. Затем вырежем его. Активизируем раздел Заго- ловок группы «ВИДЗ» и вставим подпись в этот раздел.

Оформим элементы в соответствии с требованиями проекта макета отчета. В частности, заменим подпись поля «Номер студента на N п/п». Для того чтобы в бланке экзаменационной ведомости были пустые столбцы для оценок и под- писи (заполняемые преподавателем вручную на экзамене), добавим в строку с заголовками столбцов новые текстовые элементы «Отметка о сдаче» и «Под- пись преподавателя».


Размещение полей в заголовке

Значения полей НГ, НП, ФИО преподавателя, ЗВ, Выражение 1 (экзамен, за- чет) повторяются во всех записях группировки. Поэтому они должны разме- щаться в заголовке группы. Перетащим эти поля из списка полей в раздел За- головок группы «ВИДЗ».

 

Добавление текущей даты и номера страницы

Для добавления в отчет текущей даты воспользуемся встроенной функцией Now (). Для этого создадим несвязанный элемент, нажав кнопку Поле на па- нели элементов и разместим его в нужном месте. Зададим в окне его свойств на вкладке Данные в строке Данные выражение = Now (), а на вкладке Ма- кет в строке Формат поля выберем значение – Средний формат даты.

Для добавления номера страницы в раздел Нижний колонтитул создадим несвязанный элемент и заполним в его свойствах строку Данные выражением

= «Страница» @ [Page].

Создадим горизонтальные и вертикальные линии в соответствии с макетом, воспользовавшись кнопкой Линии. Установим нужную толщину линий в свойствах этого элемента.

Сохраним отчет под именем «Экзаменационная ведомость».

 

Предварительный просмотр отчета.

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

Просмотр отчета. Для отображения отчета Экзаменационная ведомость на экране в том виде, в котором он будет напечатан, выйдем из режима конст- руктора отчетов, нажав кнопку Вид. Последовательно появляются диалоговые окна для ввода параметров запроса, которые являются в то же время парамет- рами отчета.


Рис. 11.7. Диалоговые окна ввода параметров отчета


Введем значение параметра «Номер группы» «101» и значение параметра

«Наименование предмета» – «Информатика». Для данных значений парамет- ров отчет будет состоять из двух страниц, на первой из которых будет пред- ставлена экзаменационная ведомость для экзамена по информатике, на второй

     для сдачи зачета. Первая страница отчета Экзаменационная ведомость

приведена ниже.


рис. 11.8. Вывод бланка экзаменационной ведомости для лекций на первой странице отсчета


 

Скачано с www.znanio.ru