access_2010_в_примерах (833831), страница 15
Текст из файла (страница 15)
Этот запрос сохраненпод именем «Ведомость».Формирование записей результатов в запросе.В процессе формирования записей результата из таблицы СТУДЕНТ последовательно выбираются записи с заданным номером группы (НГ).С каждой записью таблицы СТУДЕНТ объединяются связанные по номеругруппы НГ записи из таблицы ИЗУЧЕНИЕ. Из таблицы ИЗУЧЕНИЕ в этомобъединении участвуют только записи с заданным наименованием предмета.Дополнеие формируемых запросом записей полями из таблицы ПРЕДМЕТ иПРЕПОДАВАТЕЛЬ не добавляет новых записей.
Эти таблицы представляютсторону один в отношении один-ко-многим и служат лишь для расшифровкикодов КП и ТАБН из таблицы ИЗУЧЕНИЕ.Если по заданному предмету проводится не одно, а два вида занятий: лекции ипрактика, то число формируемых записей удваивается. В этом случае должныбыть сформированы две ведомостит – одна для сдачи экзамена, другая длясдачи зачета.Заметим, что таблица результатов запроса содержит ненормализованные данные, что проявляется в повторяемости значений в столбцах ГРУППА, НАИМЕНОВАНИЕ ПРЕДМЕТА, ФИО ПРЕПОД., УЧ. ЗВАНИЕ, ВИД ЗАНЯТИЙи ВЫРАЖЕНИЕ1.
Поэтому данная таблица не соответствует проекту макета120отчета Экзамена ведомость не может непосредственно использоваться как выходной документ.Использование средств Access для подготовки отчета обеспечивает преобразование получаемой таблицы результатов запроса в выходной документ нужной формы в соответствии с проектом макета отчета.Рис. 11.3. Результат выполнения запрса с данными для экзаменационной ведомостиКонструирование отчета на основе запросаРассмотрим технологию отчета на основе запроса Ведомость подготовленного выше.
Для конструирования отчета во вкладке Создание в группе Отчетынажмем кнопку Конструктор Отчетов . В окне Новый отчет выберем запросВедомость, который будет источником данных для отчета.Размещение данных в разделах отчетаРезультаты запроса содержат много полей с повторяющимися значениями НГ,НП, ФИО преподавателя, ЗВ, ВИДЗ, Выражение 1: Данные в отчете должныбыть размещены, как показано на макете отчета Экзаменационная ведомость. Значение каждого из этих полей должно быть представлено в отчете взаголовке один раз.Заметим, что результаты для отчета получены по заданной группе и предмету.Поскольку по предмету может быть два вида занятий и для каждого вида занятий предполагается вывод отдельной ведомости, необходимо выполнитьгруппировку по полю ВИДЗ.
Для группировки по виду занятия нажмем кнопку Сортировка и группировка на панели инструментов конструктора отчетов и заполним поля открывшегося окна.121Рис. 11.4. Окно определения групп записей по полю ВИДЗ и сортировки по полю НС.После определения группировки в окне конструктора отчета появятся разделыЗаголовок группы «ВИДЗ» и Примечание группы «ВИДЗ» .Чтобы каждая группировка могла быть оформлена как самостоятельная экзаменационная ведомость, будем формировать шапку макета ведомости в заголовке группы ВИДЗ, а строки о подведении итогов сдачи экзамена (или зачета) в примечании группы ВИДЗ.Рис. 11.5.Офрмление шапки и табличной части отчета.Создание текстовых элементов отчета.Для создания в заголовке и примечании группы ВИДЗ текстовых элементов заисключением названий реквизитов выводимых полей, используем кнопкуНадпись.
Для оформления текста можно воспользоваться кнопками панелиформатирования. Кроме того, можно задавать параметры надписей в окнесвойств этих элементов. Окно свойств элемента открывается кнопками панелиинструментов Свойства. Элемент предварительно должен быть выделен.122При размещении элементов может понадобиться расширить раздел отчета.Для этого установить курсор мыши на его нижнюю границу так, чтобы появилась двунаправленная стрелка, и переместить эту стрелку вниз.Оформление табличной части отчета.Для размещения в отчете полей вызовем окно списка полей запроса Ведомость, нажав на панели конструктора отчетов кнопку Добавить поляРис. 11.6. Список полей запроса ВедомостьВ область данных разместим поля НС и ФИО, на основе содержимого которых будут формироваться строки табличной части отчета в соответствии спроектом макета отчета. Для этого из списка полей перетащим поля НС (номер студента) и СТУДЕНТ.
ФИО в область данных.Каждое поле представляется двумя элементами: собственно полем и его подписью. Например, поле ФИО таблицы СТУДЕНТ представляется элементомСТУДЕНТ. ФИО, отображающим значение поля, и элементом, содержащимподпись этого поля из таблицы базы данных – Фамилия И.О. Установим нужный шрифт в элементах. Используем команду меню Формат |Размер| по размеру данных для установки размеров элемента по размеру текста подписи.Замети, что подпись поля из табличной части должна быть перемещена дляформирования заголовка столбцов в раздел Заголовок группы «ВИДЗ». Дляэтого выделим подпись поля. Затем вырежем его. Активизируем раздел Заголовок группы «ВИДЗ» и вставим подпись в этот раздел.Оформим элементы в соответствии с требованиями проекта макета отчета.
Вчастности, заменим подпись поля «Номер студента на N п/п». Для того чтобыв бланке экзаменационной ведомости были пустые столбцы для оценок и подписи (заполняемые преподавателем вручную на экзамене), добавим в строку сзаголовками столбцов новые текстовые элементы «Отметка о сдаче» и «Подпись преподавателя».123Размещение полей в заголовкеЗначения полей НГ, НП, ФИО преподавателя, ЗВ, Выражение 1 (экзамен, зачет) повторяются во всех записях группировки. Поэтому они должны размещаться в заголовке группы.
Перетащим эти поля из списка полей в раздел Заголовок группы «ВИДЗ».Добавление текущей даты и номера страницыДля добавления в отчет текущей даты воспользуемся встроенной функциейNow (). Для этого создадим несвязанный элемент, нажав кнопку Поле на панели элементов и разместим его в нужном месте. Зададим в окне его свойствна вкладке Данные в строке Данные выражение = Now (), а на вкладке Макет в строке Формат поля выберем значение – Средний формат даты.Для добавления номера страницы в раздел Нижний колонтитул создадимнесвязанный элемент и заполним в его свойствах строку Данные выражением= «Страница» @ [Page].Создадим горизонтальные и вертикальные линии в соответствии с макетом,воспользовавшись кнопкой Линии. Установим нужную толщину линий всвойствах этого элемента.Сохраним отчет под именем «Экзаменационная ведомость».Предварительный просмотр отчета.При подготовке к просмотру отчета, построенного на базе запроса с параметрами, Acceess предварительно выполняет запрос и выводит диалоговые окнаввода параметров отчета.Просмотр отчета.
Для отображения отчета Экзаменационная ведомость наэкране в том виде, в котором он будет напечатан, выйдем из режима конструктора отчетов, нажав кнопку Вид. Последовательно появляются диалоговыеокна для ввода параметров запроса, которые являются в то же время параметрами отчета.Рис.
11.7. Диалоговые окна ввода параметров отчета124Введем значение параметра «Номер группы» – «101» и значение параметра«Наименование предмета» – «Информатика». Для данных значений параметров отчет будет состоять из двух страниц, на первой из которых будет представлена экзаменационная ведомость для экзамена по информатике, на второй– для сдачи зачета. Первая страница отчета Экзаменационная ведомостьприведена ниже.рис. 11.8. Вывод бланка экзаменационной ведомости для лекций напервой странице отсчета125Урок 12.
Управление приложением пользователяВ предыдущих разделах была рассмотрена технология разработки объектовбазы данных Access: таблиц, форм, запросов, отчетов, макросов, модулей каксредств решения задач и разработки интерфейса приложения пользователя.При этом большое количество объектов, не сгруппированных по функциямприложения, затрудняет выполнение пользователем задач обработки данных вавтоматизируемой предметной области.Для организации эффективной работы пользователя нужно создать целостноеприложение данной предметной области, все компоненты которого должныбыть сгруппированы по функциональному назначению. При этом необходимообеспечить удобный графический интерфейс пользователя.Особую роль при создании приложения играют формы, так как они являютсяосновным диалоговым средством работы пользователя.Формы построены таким образом, что любое действие пользователя вызываетреакцию системы, т.е.