Лабораторная работа (раздел отчёта) № 2. Разработка интерфейса пользователя: построение экранных форм
Цель. Второй этап реализации приложений – компоновка форм из полей таблиц, запросов и элементов управления, добавление реакций на действия пользователей (подключение макросов обработки событий).
Для уменьшения размера файла БД в разделе меню Сервис выполните команду Параметры, на закладке Общие установите флажок Сжимать при закрытии. Сохраните установку, нажав кнопку ОК.
Внимание! Периодически сохраняйте базу данных на дискетах и других носителях информации. Это позволит снизить опасность потери данных или сведёт потери к минимуму при сбоях в сети, при активизации вирусов и в других случаях, которые могут привести к повреждению файла базы данных.
Форма – это объект, который отображает данные на экране в рамках некоторого окна. Если форма отображает одну запись в области данных, то она называется простой или одиночной. Если отображаются одновременно данные из нескольких записей, то форма называется ленточной. Могут использоваться следующие области формы: Заголовок/примечание формы, Колонтитулы (верхний и нижний), Область данных. Для их отображения используйте команды контекстного меню, либо раздела Вид основного меню.
Источник данных для формы – это таблица или запрос. Данные из источника данных обычно размещаются в области данных формы – в полях и элементах управления. Назначение отдельных элементов ввода/вывода данных формы обычно поясняется текстовым полем – меткой.
Порядок выполнения работы
1. Используя режим Мастер форм и в качестве источников данных таблицы Города, Марки автомобилей постройте одноимённые ленточные формы. В конструкторе формы откройте окно свойств формы, дважды щёлкнув ниже области Примечание формы. Просмотрите свойства на закладках окна Макет, Данные, События, Другие, Все. Можно дополнить Подпись на закладке Макет поясняющим выражением «: просмотр, ввод, изменение».
Рис. 2. Ленточные формы Города и Марки автомобилей
2. Разработка формы Журнал поставок. Создайте запрос с именем Записи журнала поставок. Базовой для него будет таблица Поставки, а справочником – таблица Марки автомобилей.
В окне базы данных, выбрав объект Запросы и вариант Создать запрос в режиме конструктора, откройте окно построителя запросов. Добавьте в запрос таблицы Поставки и Марки автомобилей, щёлкнув мышью дважды на их имени в окне Добавление таблиц. На панели инструментов «Связь» есть специальная кнопка Отобразить таблицу для вызова этого окна. Перетащите в табличную часть запроса из таблиц имена полей (столбцов) №, Дата, Город, Марка автомобиля, Тариф поставки, Цена поставки, Количество, Сумма. Это можно сделать также, щёлкнув дважды мышью на именах полей. Выбранные поля и будут содержаться в итоговой таблице. Установите сортировку по возрастанию по полю Дата. Закройте окно построителя и сохраните запрос. Выполните его. Вы увидите данные из 2-х таблиц в виде одной таблицы с выбранными столбцами.
Используя Мастер форм и разместив в Области данных все поля запроса Записи журнала поставок, создайте ленточную форму Журнал поставок.
Рис. 3. Ленточная форма Журнал поставок
3. Создадим макросы, выполняемые по нажатию кнопок с надписями Города, Марки автомобилей и др.
Макрос Access служит для автоматизации часто выполняемых задач, т.е. используется для записи некоторой последовательности действий, выполняемой в ответ на заданное событие. Например, для события Нажатие клавиши кнопки можно задать макрокоманду ОткрытьФорму, для события После обновления некоторого поля – макрокоманду ЗадатьЗначение для другого поля.
Для создания группы макросов с именем «Обработчики» выбрать закладку Макросы в окне БД и нажать кнопку Создать. В окне Конструктора макросов на Панели инструментов при необходимости нажать кнопки Имена макросов и Условия для появления соответствующих колонок окна.
В отдельной строке введите макрос с именем Города. Для этого используйте следующий порядок действий: 1) Выбрать макрокоманду Открыть Форму. В нижней части окна высвечиваются Аргументы макрокоманды. 2) В качестве аргумента Режим оставить Форма. В качестве аргумента Имя формы выбрать из списка имя Города. 3) Это имя скопировать в колонку Имя макроса.
Макросы для открытия других форм легко получаются путём копирования созданной строки макроса Города и повторения пунктов 2) и 3) для формы с другим именем. Закрывая окно конструктора, сохраните макросы под общим групповым именем Обработчики.
4. Кнопки обычно размещаются в области Примечание формы. Одну кнопку создайте с использованием мастера, остальные – копированием. Для создания новых кнопок используйте копирование уже имеющихся кнопок из текущей или из других форм. После вставки кнопки из буфера памяти можно подключить к ней путём выбора из списка (окно Свойства, закладка События, событие Нажатие кнопки) один из созданных ранее макросов Access – Обработчики.Города , Обработчики.Марки автомобилей и т.д. Используя возможности копирования текста из строки с именем макроса, поменяйте Подпись на кнопке (закладка Макет) и Имя кнопки (закладка Другие). Например, кнопку с подписью Города можно назвать Города или Кнопка Города.
5. Используя режим конструктора, создайте форму Главная кнопочная форма, кнопки которой вызывают формы, соответствующие надписям, или выполняют действия. Возможный вид формы показан на рис. 4.
Рис. 4. Главная кнопочная форма ИС «Поставки автомобилей»
6. Создайте макрос с именем Выход для кнопки выхода из системы. Для этого выберите макрокоманду Выход с единственным аргументом Параметры, равным Сохранить все. В свойство кнопки Нажатие кнопки путём выбора из списка введите имя созданного макроса Обработчики.Выход. Можно дополнить форму поясняющими надписями, рисунками и другими элементами. Например, на кнопку Выход наложите рисунок с названием Выход. На закладке Макет формы отключите Кнопки перехода и Область выделения.
7. При работе в режиме Конструктора формы в меню Вид имеется пункт Последовательность перехода, позволяющий изменить порядок перехода в форме при нажатии клавиш ввода (Enter) и табуляции (Tab). Установите необходимый порядок перехода.
8. (Не обязательный пункт). Подключение к форме поля со списком вручную можно рассмотреть на примере поля Марка автомобиля в форме Журнал поставок. Удалите поле со списком и воспользуйтесь мастером создания элемента. Используя кнопки Панели инструментов, отобразите на экране Список полей и Панель элементов (формы). Для подключения Мастера кнопка с изображением волшебной палочки на панели элементов должна быть в нажатом состоянии.
Нажав на кнопку Поле со списком на Панели элементов и сразу же щёлкнув по полю Марка автомобиля в Списке полей, нажмите левую кнопку мыши в нужном месте формы и растяните изображение списка до нужных размеров. Мастер в диалоговом окне предложит уточнить источник строк для поля. Следует выбрать пункт «Поле со списком использует значение из таблицы или запроса», затем в следующем окне выбрать таблицу Марки автомобилей. Далее уточняются поля, которые следует выводить в списке; добавьте в перечень поля Код, Название, Тариф поставки, это можно сделать, нажав на кнопку с изображением двух знаков «больше» (>>). На запрос, куда будет запоминаться выбираемое из списка значение, следует выбрать вариант Сохранить в поле и выбрать из предложенного списка поле Марка автомобиля. В качестве метки к полю со списком можно ввести любую подпись, т. к. в области заголовка метка к полю со списком уже имеется, а созданную присоединённую к полю метку следует выделить мышью и удалить нажатием клавиши Del. На закладке Другие свойств поля со списком задайте Марка автомобиля для свойства Имя, а на закладке Макет выберите значение Да для свойства Заглавия столбцов. Сохранив форму Журнал поставок, проверьте работу созданного элемента – поля со списком Марка автомобиля. В Источнике строк на закладке Данные элемента установите сортировку по полю Название. Проверьте работу элемента.
Далее пункты работы служат доработке формы Журнал поставок.
9. Автоматическое заполнение даты. В конструкторе формы для поля Дата на закладке Данные подокна Свойства найдите свойство Значение по умолчанию и введите выражение Date(). Эта функция при вводе нового заказа будет автоматически присваивать полю Дата значение текущей системной даты.
10. Автоматическое заполнение полей Цена поставки и Сумма. В режиме конструктора откройте группу макросов Обработчики. Сформируйте 2 макроса, используя данные из таб. 2. Для получения 2-й макрокоманды 2-го макроса используйте копирование 1-го макроса.
Таблица 2
Макросы вычислений
Имя макроса |
Макрокоманда |
Аргументы макрокоманды |
|
|
|
Элемент |
Выражение |
Сумма |
ЗадатьЗначение |
[Сумма] |
[Цена поставки]*[Количество] |
Цена поставки |
ЗадатьЗначение |
[Цена поставки] |
[Тариф поставки] |
|
ЗадатьЗначение |
[Сумма] |
[Цена поставки]*[Количество] |
Теперь необходимо обеспечить вызов созданных макросов в форме Журнал поставок: 1-й макрос должен выполняться по событию После обновления каждого из полей Цена поставки и Количество, 2-й – по событию После обновления каждого из полей Марка автомобиля и Тариф поставки. При указании имён макросов надо выбрать из списка (а можно вводить и вручную) полные имена макросов, соответственно Обработчики.Сумма и Обработчики.Цена продажи .
11. Для быстрого ввода новых городов и марок автомобилей, которых ещё нет в базе данных, в разделе Примечание формы формы Журнал поставок добавлены кнопки Города и Марки автомобилей.
Создайте логическую функцию Загружена. Она проверяет, загружена ли форма с заданным именем. В Access-97/2000 в имени функции используйте только латинские буквы, например: IsLoaded. Для определения функции создайте новый модуль общего доступа и дополните его следующим текстом (содержимое строк после апострофа – это комментарии, которые можно не вводить), обязательно используя позиционный вывод начала строк (Tab – табуляция вперёд, Shift-Tab – табуляция назад):
Для того, чтобы после вызова формы Города или Марки автомобилей обновить список городов или марок автомобилей в форме Журнал поставок, создайте, а затем присвойте свойству Включение (оно соответствует активизации формы) макрос Обновить журнал с макрокомандами, представленными в таб. 3.
В первых двух командах макроса функция Загружена проверяет, загружена ли одна из двух форм. Если «да», то макрокоманда Закрыть закрывает форму. Если «нет», то во избежание ошибки закрытия не открытой формы макрокоманда Закрыть не выполняется.
Таблица 3
Макрос обновления формы «Журнал поставок»
Имя макроса |
Условие |
Макрокоманда |
Аргументы макрокоманды |
|
Тип объекта |
Имя объекта |
|||
Обновить журнал |
Загружена ("Марки автомобилей") |
Закрыть |
Форма |
Марки автомобилей |
|
Загружена("Города") |
Закрыть |
Форма |
Города |
|
|
ОбновитьОбъект |
Форма |
Журнал поставок |
Проверьте работу формы Журнал поставок совместно с формами Города и Марки автомобилей. Добавляемые новые города и марки автомобилей будут присутствовать в списках формы Журнал поставок, а при её активизации две другие формы будут закрываться автоматически.
Материалы на данной страницы взяты из открытых источников либо размещены пользователем в соответствии с договором-офертой сайта. Вы можете сообщить о нарушении.