access_2010_в_примерах (833831), страница 12
Текст из файла (страница 12)
Поэтомунеобходимо сохранить результаты выполнения второго запроса в новой таблице и на ее основе построить следующий запрос, в котором будет произведенрасчет средней нагрузки преподавателя.Чтобы сохранить полученные результаты, преобразуем второй запрос на выборку в запрос на создание таблицы. Таблице, которая будет создана запросом, присвоим имя "Нагрузка". Запрос сохраним под именем " Нагрузка накафедре" (см.
рис.7.27).94Второй запрос в режиме таблицы приведен на рис. 7.28. Таблица НАГРУЗКА,сохраняемая в базе данных, содержащая результат решения этого запроса,приведена на рис. 7.29.Рис. 7.28. Запрос Нагрузка на кафедре в режиме таблицыРис. 7.29.
Сохраненная таблица НАГРУЗКА с результатами второго запросаТретий запрос. Для окончательного решения задачи расчета средней нагрузки преподавателя кафедры подготовимна базе таблицы НАГРУЗКА третийзапрос на выборку с вычисляемым полем. Для создания вычисляемого поля,расчитывающего среднюю нагрузку преподавателя, в строку Поле пустогостолбца введем выражение [Sum_ЧАСЫ]/[Count_ТАБН].
Третий запрос навыборку с вычисляемым полем представлен на рис. 7.30.95В таблице результата следует изменить заголовок столбца Выражение1, формируемый по умолчанию для вычисляемого поля, и его формат (для получения результата с округлением до целого). Для этого вызовем свойства поля спомощью контекстно-зависимого меню. Зададим в качестве подписи полязначение "Средняя нагрузка преподавателя", формат поля определим как фиксированный, а параметру Число десятичных знаков присвоим значение "0"Рис. 7.30. Запрос, завершающий задачу расчета средней нагрузкиРезультаты выполнения запроса после изменения подписей полей в свойствахприведены на рис. 7.31.Рис.
7.31. Результаты расчета средней нагрузки преподавателей покафедрамПроцесс решения задачи. Для решения поставленной задачи необходимо последовательно выполнить второй запрос - Нагрузка на кафедре (см.рис.7.25), а затем третий запрос - (см. рис. 7.30). Первый запрос Число препо96давателей кафедры выполнится автоматически при выполнении запроса Нагрузка на кафедре. Для того чтобы автоматизировать решение задачи, требующей выполнения нескольких запросов, нужно использовать средства разработки приложения пользователя, например, написать макрос. Технологияподготовки макроса, который позволяет выполнить последовательность запросов, рассмотрена ниже.97Урок 8. Отчет по одной таблицеРассмотрим технологию создания однотабличного отчета на примере получения списков студентов по группам.Пусть в результате проектирования макета отчета СПИСКИ СТУДЕНТОВ определены перечисленные ниже требования.
Макет формируемого отчетадолжен иметь вид в соответствии с рис.8.1. На макете показано оформлениесписка студентов для одной группы. В отчете должны последовательно выводиться со своими заголовками списки студентов для каждой группы. Приформировании отчета необходимо рассчитать средний проходной балл длякаждой группы и отобразить его в отчете. Записи списка группы должны выводиться в порядке возрастания номера студента в группе. Название отчетадолжно выводиться на каждой странице отчета.Рис. 8.1. Проект макета для создания однотабличного отчета со списками студентов по группамСоздание однотабличного отчета в режиме конструктораВ пункте меню Создание нажимаем кнопку Конструктор отчетов. В областиданных вызываем контекстное меню, выбираем пункт Свойства.
В открывшемся окне выбираем вкладку Данные и заполняем соответствующее полеименем таблицы СТУДЕНТ, которая будет служить источником записей длянашего отчета. В пункте меню Конструктор нажимаем кнопку Добавить поля.Если в открывшемся окне конструктора отсутствует раздел Заголовок отчета,то вызываем контекстное меню и выбираем пункт Заголовок/ примечаниеотчета.98Рис.8.2. Окно выбора варианта создания отчета и таблицы-источникаданных отчетаГруппировка и сортировка данных отчетаДля выполнения требования к группировке и сортировке данных, отображаемых в отчете, нажмем кнопку Группировка на панели Группировка и итогиконструктора и зададим необходимые параметры в открывшемся диалоговомокне Группировка, сортировка и итоги (рис.8.3).Рис.8.3.
Окно определения групп записей по полю НГ и сортировке пополю НСГруппировка по полю. Поскольку общий список студентов в соответствии спроектом отчета должен быть разбит по группам, выберем в окне Сортировка и группировка (Sorting and grouping) из списка поле номера группы НГ,зададим группировку по этому полю.
Для этого в области Свойства группыстроках Заголовок группы (НГ Header) и Примечание группы (НГ Footer)надо выбрать значения с разделом заголовка, с разделом примечания. Сортировка для поля устанавливается автоматически.Сортировка по полю. Для вывода отсортированного списка студентов в каждой группе, зададим сортировку по полю номера студента НС. Для этого вдиалоговом окне выберем наряду с полем НГ поле НС. В области Свойствагруппы этого поля в строках Заголовок группы (НГ Header) и Примечаниегруппы (НГ Footer) надо выбрать значения без раздела заголовка, без раздела примечания, что и определяет сортировку только по этому полю.99После определения группировки в окне конструктора отчетов (рис.8.4) появляются дополнительные разделы Заголовок группы НГ (НГ Header), Примечание группы НГ (НГ Footer).Рис.8.4.
Окно конструктора отчетов при разработке отчета для выводаданных из одной таблицы СТУДЕНТРазмещение данных в разделах отчетаДанные в отчете должны быть размещены, как показано на проекте макета отчета (см. рис. 8.1).Размещение полей из таблицРазмещение поля группировки. Значение номера группы должно бытьпредставлено один раз в заголовке группы. Для этого разместим поле НГ вразделе Заголовок группы НГ (НГ Header).Нажмем кнопку панели инструментов конструктора отчетов Добавить поляи перетащим поле НГ в раздел заголовка НГ. Откорректируем подпись поля,изменив ее на “Список студентов группы” (рис.8.4). Установим нужныйшрифт в элементах. Для установки размеров рамки по размеру текста подписи100выполним команду контекстного меню Размер|по размеру данных (Size|SizeTo Fit) или соответствующую кнопку панели инструментов.Форматирование табличной части отчета.
Последовательно разместим поля НС, ФИО, ДАТАР, ПБАЛЛ в области данных, которая определяет содержимое строк табличной части. Поле размещается вместе с подписью, которуюсистема берет из свойств полей таблицы СТУДЕНТ. Подписи полей надо перенести в область заголовка путем вырезания и вставки. Если они не совпадают с названиями столбцов в проекте макета, их надо откорректировать. Заметим, что подписи также можно создать заново, воспользовавшись кнопкой панели элементов Надпись (Lable).Включение вычисляемого поля в отчетДля включения расчетного реквизита Средний проходной балл группы нажмем кнопку Поле (Text Box) на панели элементов и разместим элементыСвободный (Unbound) в раздел Примечание группы НГ (НГ Footer) (см.рис. 8.4). Определим в свойствах этого элемента выражение для расчета среднего значения.
Для этого запишем на вкладке Данные (Data) в строку Данные(Control Source) функцию =Avg ([ПБАЛЛ]), в строку Число десятичных знаков (Decimal Places) – “2”, на вкладке Макет (Format) в строку Формат поля(Format) поместим значение “Фиксированный”(Fixed). Отредактируем подпись поля. Для этого выделим подпись и вызовем ее свойства. В свойствах навкладке Макет (Format) в строке Подпись (Caption) запишем: “Средний проходной балл группы”.
Такие действия, как изменение подписи или ввод выражения в поле можно выполнить, и не обращаясь к свойствам элементов.Добавление текущей даты к страницеДля добавления в отчет текущей даты воспользуемся встроенной функциейNow(). Для этого создадим в заголовке отчета свободный элемент, нажавкнопку Поле (Text Box), и зададим в окне его свойств на вкладке Данные(Data) в строке Данные (Control Source) выражение =Now(). На вкладке Макет (Format) в строке Формат поля (Format) выберем значение Полныйформат даты (General Date).
Подпись этого поля выделим и удалим.Для добавления номера страницы в нижний колонтитул создадим свободныйэлемент и заполним в его свойствах на вкладке Данные (Data) строку Данные(Control Source) выражением =[Page]. Отредактируем подпись этого поля, за101писав в его свойствах на вкладке Макет (Format) в строке Подпись (Caption)значение “Стр”.Рассмотрим другие способы формирования поля даты и номера страницы.Поле текущей даты и времени можно добавить в отчет, выполнив в режимеконструктора команду Дата и время (Date and Time…). Установка в диалоговом окне Дата и время (Date and Time) флажков Формат даты (Include Data)и /или Формат времени (Include Time) позволяет вставить текущую датуи/или текущее время и выбрать нужный формат (рис.8.5).Рис.8.5. Окно выбора формата даты и/или времениВ отчет будет добавлено поле, в свойствах которого на вкладке Данные (Data)в строке Данные (Control Source) будет записано соответствующее выражение.
Если в отчете имеется раздел заголовка, поле добавляется в этот раздел.В противном случае поле вносится в раздел данных. В качестве выражениязаписывается функция Format, которая формирует значение на основе заданных ей аргументов – функции Date(), возвращающей текущую системную дату, и формата, в котором должна выводится дата. Например, при выборе параметров,отображенныхнарис.8.5,функцияприметвид=Format(Date();”Long Date”).Поле нумерации страниц можно добавить в отчет, выполнив в режиме конструктора команду Номера страниц (Insert|Page Number).
В окне диалога Номера страниц (Page Numbers) выбираются параметры, определяющие формат,расположение и выраынивание номеров страниц (рис.8.6). Для печати номера102страницы на первой странице устанавливается флажок Отображать номер напервой странице (Show Number on First Page).Замечание. Выражение, определяющее вывод номеров страниц, записывается в свойствах поля на вкладке Данные (Data) в строке Данные(ControlSource). Выражение может иметь вид: =”Страница”&[Page]или:=”Страница” & [Page] & ”из” & [Pages],что соответствует выбору Страница N (Page N) или Страница N из M (PageN of M).Рис.8.6. Окно выбора параметров номеров страниц.Завершение оформления отчетаДля окончательного оформления введем в раздел Заголовок отчета (ReportHeader), вставить раздел Верхний колонтитул (Page Header) и выбрать нужный шрифт.