Отчет по лабораторной работе Базы данных. 8 Лаба БД. 8 лаб работа Пользовательский интерфейс
Скачать 3.03 Mb.
|
Разработка макросовКоманды СУБД Access называются макрокомандами. Программа, записанная на языке макрокоманд СУБД, называется макросом. Макросы хранятся в базе данных и образуют отдельный класс объектов. Список макрокоманд Access см. в Приложении А. Для перехода в режим создания макроса следует выполнить команду ленты «Создание / Другие / Макрос». Для создания или редактирования макроса, который хранится в форме и связан с каким-то событием формы или ее элемента, нажмите на кнопку с многоточием в свойствах соответствующего элемента и события (рис.9). Окно описания макроса состоит из двух основных частей: верхняя часть содержит текст программы в виде таблицы, в строчках которой записаны макрокоманды. Нижняя половина окна позволяет настроить параметры текущей макрокоманды. В правом нижнем углу выводится краткая подсказка о текущей макрокоманде, более подробные сведения можно получить, нажав клавишу F1/помощь (рисунок 10). Рисунок 10 - окно описания макроса Текст макроса создается путем выбора нужных макрокоманд из выпадающего списка и ввода значений их параметров, которые автоматически отображаются в столбце «Аргументы». Столбец «Примечание» служит для записи комментариев программиста. Для выполнения макроса можно нажать кнопку «Выполнить» на ленте или открыть форму, для которой пишется макрос, и вызвать нужное событие, например, щелкнуть по кнопке. Пример простого макроса. На рисунке 11 показан пример создания на форме текстовой надписи, по щелчку мыши открывающей форму «Справка о программе». 6 5 7 Рисунок 11- создание макроса для обработки события «Нажатие кнопки» Сначала поместим новый элемент «Подпись» на главной форме (1), в строке его свойства «Нажатие кнопки» выберем «…» (2), в окне построителя выберем «Макросы» (3) и нажмем кнопку «ОК» (4). Автоматически откроется окно создания нового макроса, где выберем команду «ОткрытьФорму» (5), введем имя открываемой формы, режим просмотра и окна (6). Сохранив полученный макрос и закрыв его окно, мы увидим в свойстве надписи текст «[Внедренный макрос]». Это означает, что созданный макрос не является автономным объектом, а привязан к надписи на текущей форме и хранится вместе с другими программными объектами этой формы. Для проверки работы макроса откроем форму и щелкнем по надписи «Помощь»: в отдельном всплывающем окне должна открыться форма «Справка о программе» (7). Составные макросы. Иногда группу взаимосвязанных макросов удобно хранить в виде одного составного макроса. Например, если один объект реагирует на несколько разных событий, либо к одной форме относится меню из нескольких пунктов, то вместо создания нескольких макросов для каждого события можно создать группу из этих же макросов. Макросы в группе выполняются независимо друг от друга. Для разработки составного макроса нужно в окне макроса выбрать команду ленты «Показать или скрыть / Имена макросов». В результате в таблице описания макроса появится еще один столбец «Имя макроса». В начале каждого макроса в этом столбце следует ввести уникальное имя данного макроса. Для ссылки на макрос, входящий в группу, указывают составное имя: ИмяГруппы.ИмяМакроса. Пример составного макроса. Макрос будет описывать контекстное меню главной формы приложения, вызываемое нажатием правой кнопки мыши. В этом меню перечислим команды, позволяющие пользователю быстро обратиться к нужному разделу справки, например, вызвать отчет «Руководство пользователя» и форму «Справка о программе». В свойстве главной формы «Другие / Контекстное меню» введем имя макроса «Меню». Затем создадим новый макрос командой ленты «Создание / Другие / Макрос» и введем одну команду «Добавить меню» с параметрами «Название меню» = «Помощь», «Имя макроса» = «менюПомощь» (рисунок 12). Рисунок 12 - описание контекстного меню Сохраним этот простой макрос и создадим новый составной макрос с именем «менюПомощь» (рисунок 13).
В качестве имен макросов, входящих в составной макрос, будем использовать названия разделов справки. Первый раздел реализуется с помощью отчета «Руководство пользователя», а второй – с помощью формы «Справка о программе». Для проверки работы макроса откроем главную форму и щелкнем правой клавишей мыши в любом ее месте (рисунок 14). Контекстное меню Рисунок 14 - пользовательское контекстное меню Если требуется создать многоуровневое меню, то в состав макрокоманд меню первого уровня нужно включить команду «ДобавитьМеню» и указать для нее новый составной макрос, описывающий это подменю. Не рекомендуется создавать более двух уровней меню, так как ими неудобно пользоваться. Условия в макросах и обработка ошибок Обычно макрокоманды выполняются в порядке следования, но в макросе можно описывать и разветвляющиеся процессы, когда одна или несколько команд выполняются, если истинно заданное логическое выражение. Столбец для ввода логических выражений открывается в шаблоне макроса с помощью команды ленты «Показать или скрыть / Условия». Если при заданном условии должны выполниться несколько макрокоманд, то для первой вводится логическое выражение, а для остальных - многоточие в столбце "Условие». Например, рассмотрим встроенный макрос для кнопки «Удалить запись», который генерируется автоматически мастером кнопок (рисунок 15). Рисунок 15- макрос с условиями В 4-ой команде макроса выполняется проверка того, что текущая запись в форме не является новой (новая запись еще не существует в БД и ее нельзя удалить). Если условие выполняется, то команда удаления выполняется. В 5-ой команде проверяется условие: если текущая запись – новая и она не содержит данных, то выдается звуковой сигнал. В 6 команде проверяется условие: если текущая запись – новая и пользователь начал вводить, но не сохранил данные, то выполняется команда «Отменить ввод», которая очищает все введенные значения. В 7-ой команде проверяется значение встроенной переменной [MacroError], которая содержит результат выполнения команд макроса: если какая-либо из них вызвала ошибку в работе БД, то переменная содержит значение, отличное от нуля. В этом случае выполняется макрокоманда «Сообщение», позволяющая вывести окно с информацией о характере ошибки. Первая команда макроса «При ошибке» заставляет СУБД при любой ошибке при работе макроса переходить к следующей команде (параметр = «Далее»). Вторая и третья команды позволяют переключить курсор на предыдущий элемент управления и очистить переменную “MacroError” . Для поиска ошибок в сложных макросах можно использовать пошаговое выполнение (команда ленты «По шагам» в режиме конструктора макросов). Пример применения макроса для отмены печати «пустого» отчета. Если источник записей для отчета не содержит ни одной строки данных, то при выводе отчета в области данных не будет информации. Чтобы сообщить пользователю о такой ситуации, используем макрос, который будет реагировать на событие отчета «Отсутствие данных». Откройте в режиме конструктора отчет, использующий в качестве источника записей запрос с параметром. В окне свойств выберите событие отчета «Отсутствие данных», щелкните мышью по кнопке «…» и выберите построитель макросов. В окне макроса введите следующие команды:
Закройте окно макроса, теперь в свойстве «Отсутствие данных» появится текст «[Встроенный макрос]». Чтобы проверить его работу, откройте отчет в рабочем режиме и введите такое значение параметра, при котором записи не будут найдены. Вместо вывода пустых листов на экране появится сообщение «Документ не содержит данных». |