Лабораторная работа 6. Формы. Специальные меню. Microsoft Office 2003 I. Создание панели инструментов 1. Откройте форму Фрукты в режиме Конструктора. 2. Создайте панель инструментов Фрукты: Вид Панель инструментов Настройка вкладка Панель инструментов кнопка Создать Задать название Фрукты вместо Настраиваемая1 кнопка Свойства выбрать . В результате этих действий должна появиться пустая панель: . 3. Создайте три отдельных запроса для выбора следующих названий фруктов: a. Яблоки b. Груши c. Вишни. Каждый запрос сохраните с одноименными названиями: Яблоки, Груши, Вишни. 4. В окне Конструктора макросов в меню Вид включите флажок у команды Имена макросов. Создайте макрос для фильтрации данных на форме по названию фруктов, в котором в качестве фильтров используются соответствующие запросы: Сохраните макрос с названием Фрукты_назв. 5. Откройте окно редактирования панели: Вид Панель инструментов Настройка. Перейдите на вкладку Команды. В окне Категории выберите строку Все макросы. Поочередно перетащите мышкой созданные макросы (Фрукты_назв.Груша, Фрукты_назв.Яблоко и т.д.) на панель инструментов Фрукты. Не закрывая окно Настройка, щелкните ПКМ на значке макроса, и в контекстном меню и выберите строку соответствующее запросу/макросу изображение. Измените . Нарисуйте значки у всех кнопок: . Затем, выбрав в контекстном меню каждой кнопки строку Свойства, откорректируйте текст всплывающего сообщения, например, : 6. Присоедините панель инструментов Фрукты к форме Фрукты :Свойства (формы)вкладка Другие . II. Создание строки меню 1. Создайте строку меню Главное меню «Фрукты». Последовательность команд - такая же, как в п. 2 раздела I, кроме последнего шага. На последнем шаге выбрать . 2. Для создания пунктов меню необходимо в левом окне Категории выбрать команду Новое меню и перетащить мышкой появившуюся в правом окне Команды надпись Новое меню на строку меню. Затем, пользуясь контекстным меню появившейся надписи, задать нужные названия пунктов меню, напр. . 3. Для формирования подпунктов меню, в окне Категории выбрать нужную категорию, напр. Все таблицы и перетащить мышкой нужные названия таблиц под пункт меню Таблицы и отредактировать их. 4. Присоедините строку меню к форме Фрукты в свойстве Строка меню. 5. Предусмотрев в Главном меню все необходимые команды, можно изменить параметры запуска (меню Сервис Параметры запуска). III. Создание контекстного меню 1. На форме Наборы разместите два пустых поля. В одном будет задаваться скидка в %, а в другом появляться расчетное выражение новой цены со скидкой. 2. Создать макрос Скидка. При выборе элемента и создании выражения воспользоваться построителем Макрокоманда Аргументы макрокоманды ЗадатьЗначение Элемент [Наборы]![Цена_со_скидкой] Выражение [Наборы]![Цена]*(1-[Forms]![Наборы]![Скидка]/100) где [Цена_со_скидкой] и [Скидка] - названия новых полей, заданные в свойстве Имя 3. Создайте контекстное меню Дополнительно (см. п.5 раздела I). На последнем шаге выбрать . 4. В окне Панели инструментов выберите строку Контекстные меню. В верхней части экрана появится панель Контекстные меню. Выберите пункт Настраиваемый и название созданного меню Дополнительно. 5. Перейдите на вкладку Команды. Выберите категорию Все макросы и в пустой прямоугольник справа от названия меню перетащите макрос Скидка. Отредактируйте пункт контекстного меню. 6. Присоедините созданное меню к элементу формы поле Цена_со_скидкой в свойстве Контекстные меню на вкладке Другие. Microsoft Office 2007/10 Лента (панель)– полоса в верхней части окна программы, содержащая группы команд, – является компонентом нового интерфейса Microsoft Office Fluent и является основной заменой меню и панелей инструментов, использовавшихся в предшествующих версиях Access. Во всех приложениях выпуска 2007/10 системы Microsoft Office, где используется интерфейс Office Fluent, для настройки ленты применяется язык XML. Существует насколько мест, где можно хранить XML-код, но один из самых простых способов — это хранить его в системной таблице текущей базы данных. Процесс включает в себя создание системной таблицы с именем USysRibbons, добавление в нее своего XML-кода для ленты и указание необходимости отображения пользовательской ленты для всей базы данных или для конкретной формы или отчета. Можно определить несколько пользовательских лент— одну для всего приложения и дополнительные ленты для отдельных форм и отчетов в данной базе данных. Отображение системных таблиц в области переходов По умолчанию системные таблицы в области переходов не отображаются, поэтому сначала необходимо изменить значение параметра в диалоговом окне «Параметры переходов», чтобы можно было увидеть таблицу USysRibbons после ее создания. Для этого выполните следующие шаги: 1. При открытой в приложении Access базе данных щелкните правой кнопкой мыши панель переходов в верхней части области переходов, а затем выберите в контекстном меню пункт «Параметры переходов». 2. В диалоговом окне «Параметры переходов» в группе «Параметры отображения» установите флажок «Показывать системные объекты», а затем нажмите кнопку ОК. Системные таблицы появятся в области навигации. Включение отображения сообщений об ошибках пользовательского интерфейса надстроек Сообщения об ошибках — это важный источник информации при создании и устранении неполадок в XML-коде настройки ленты. Для их отображения выполните следующие шаги: 1. Нажмите кнопку Microsoft Office 2. Выберите пункт «Дополнительно». 3. В разделе «Общие» , а затем выберите команду «Параметры Access». установите флажок «Показывать ошибки интерфейса пользователя надстроек», а затем нажмите кнопку ОК. Создание системной таблицы USysRibbons для хранения XML-кода настройки ленты 1. На вкладке «Создание» в группе «Таблицы» щелкните «Конструктор таблиц». 2. Добавьте в таблицу следующие поля. Укажите, что поле «ID» является ключевым полем. При сохранении задайте в качестве имени новой таблицы USysRibbons. 3. Открыв или выделив таблицу USysRibbons в области перехода, на вкладке «Создание» нажмите кнопку «Форма». В результате будет создана одноименная форма, которую необходимо сохранить. В форме более удобно корректировать XML код. Подготовка данных для ленты (панели инструментов) 1. Создайте три отдельных запроса для выбора следующих названий фруктов: a. Яблоки b. Груши c. Вишни. Каждый запрос сохраните с одноименными названиями: Яблоки, Груши, Вишни. 2. кнопку В окне Конструктора макросов нажмите «Имена макросов». Создайте макрос для фильтрации данных на форме по названию фруктов, в котором в качестве фильтров используются соответствующие запросы: Сохраните макрос с названием Фрукты_макрос. Добавление xml-кода настройки ленты в таблицу USYSRIBBONS Откройте форму USysRibbons и добавьте одну запись со следующими значениями полей: id RibbonName RibbonXML 1 Фрукты <customUI xmlns="http://schemas.microsoft.com/office/2006/01/customui"> <ribbon startFromScratch="false"> <tabs> <tab id="Custom1" label="Фрукты" visible="true"> <group id="Group1" label="Фильтр по названию"> <button id="b1" label="Яблоки" onAction="Фрукты_макрос.Яблоки"/> <button id="b2" label="Груши" onAction="Фрукты_макрос.Груши"/> <button id="b3" label="Вишни" onAction="Фрукты_макрос.Вишни"/> <button id="b4" label="Все фрукты" onAction="Фрукты_макрос.Все фрукты"/> </group> </tab> </tabs> </ribbon> </customUI> Сохраните форму, закройте базу данных и вновь откройте её. Применение пользовательской ленты к конкретной форме или отчету Откройте форму «Фрукты» в режиме Конструктора и в окне Свойства на вкладке Другие в списке Имя ленты выберите ленту (панель), которая должна отображаться, когда открывается эта форма (в данном случае ленту Фрукты). Перейдите в режим Формы и проверьте работу кнопок на панели. Самостоятельная работа. Добавьте на ленту Фрукты, группу Фильтр по стоимости, кнопки которой осуществляют фильтрацию формы Фрукты по следующим ценовым диапазонам: от 1 до 5 руб; от 5 до 10 руб; от 10 до 15 руб. Результат отбора в ценовой категории от 5 до 10 руб. показан ниже: Создание контекстного меню 1. На форме Наборы разместите два пустых поля. В одном будет задаваться скидка в %, а в другом появляться расчетное выражение новой цены со скидкой. 2. Создать макрос Скидка_макрос. При этом необходимо нажать кнопку макросов». В поле Имя макроса ввести «Имена текст «Вычислить скидку» - это будет надпись на контекстном меню. В поле Макрокоманда выбрать ЗадатьЗначение. Аргументы макрокоманды представлены ниже: где [Цена_со_скидкой] и [Скидка] - названия новых полей, заданные в свойстве Имя. При выборе элемента и создании выражения воспользоваться построителем 3. Создать макрос Меню_скидка, который выполняет команду ДобавитьМеню. Аргументы макрокоманды представлены ниже: 4. Откройте форму Наборы в режиме Конструктора и в свойстве Контекстное меню поля Цена_со_скидкой введите имя макроса Меню_скидка. 5. Перейдите в режим Формы и проверьте работу контекстного меню. 6. Самостоятельно дополните макрос Скидка_макрос, чтобы в контекстном меню появилась команда Очистить поля, в результате которой поля Скидка и становились пустыми. Цена со скидкой Результат работы контекстного меню на этапе вычисления цены со скидкой представлен ниже: