Главная страница
Навигация по странице:

  • Рисунок 21 – структура таблиц users, userType

  • Рисунок 22 – содержание таблиц

  • Шаг 2.

  • Рисунок 24 – конструирование запроса – источника данных для формы

  • Рисунок 25 – установка источника данных для Поля8

  • Рисунок 26 – создание макроса «Авторизация»

  • Рисунок 27 – примеры авторизации пользователя

  • Рисунок Б.1 - реализация меню в виде кнопок, таблицы и гиперссылок

  • Пример 2. Реализация меню 2 и 3 уровня.

  • Рисунок 18 – главная форма с горизонтальным кнопочным меню и вкладками

  • Отчет по лабораторной работе Базы данных. 8 Лаба БД. 8 лаб работа Пользовательский интерфейс


    Скачать 3.03 Mb.
    Название8 лаб работа Пользовательский интерфейс
    АнкорОтчет по лабораторной работе Базы данных
    Дата15.12.2022
    Размер3.03 Mb.
    Формат файлаdocx
    Имя файла8 Лаба БД.docx
    ТипЛабораторная работа
    #847631
    страница6 из 6
    1   2   3   4   5   6

    Авторизация пользователя


    Если приложением пользуется несколько пользователей, причем они имеют разные права доступа к содержимому БД и разные функции, то нужно разработать форму авторизации, которая позволит после ввода логина и пароля открыть разные главные формы для разных типов пользователей. Если введенного сочетания нет в списке пользователей, то выдается сообщение об ошибке и/или меню не выводится. Рассмотрим один из вариантов авторизации пользователя, требующий минимального программирования.

    Шаг 1. Сначала необходимо создать 2 таблицы, в которых хранятся данные о пользователях и их типах (рисунок 21):





    Рисунок 21 – структура таблиц users, userType

    Пример содержания таблиц показан на рисунке 22.

    userType

    type

    frm

    0

    users

    1

    Главная форма продавца

    2

    Главная форма менеджера







    users

    login

    parol

    type

    админ

    0

    0

    маша

    123

    1

    саша

    456

    2

    паша

    123

    1

    Рисунок 22 – содержание таблиц

    Типы пользователей кодируются числами: администратор БД имеет тип 0, продавцы – тип 1, менеджер - тип 2. Внесите в таблицу хотя бы одного пользователя с типом 0, который сможет зарегистрировать всех остальных. Только пользователь «админ» имеет доступ к списку пользователей и может добавлять или редактировать в нем данные. Обратите внимание, что в поле frm указаны названия форм и таблицы, которые должны быть открыты после успешной авторизации пользователя. Указанные формы реализуют главное меню для продавцов, менеджеров и администратора БД. При вводе названия объекта БД в поле типа «Гиперссылка» Access автоматически связывает этот объект с содержимым поля. Поэтому при заполнении таблицы UserType Вы уже должны знать имена главных форм для разных типов пользователей.

    Шаг 2. Создадим пустую форму frmAutor для авторизации пользователя (рисунок 23).



    Рисунок 23 - форма авторизации frmAutor

    Действие кнопки «Вход» опишем на следующем шаге настройки формы. Действие кнопки «Закрыть приложение» выбирается с помощью мастера (макрокоманда «Выйти из Access»).

    Поле0 и Поле2 служат для ввода логина и пароля. Поле2 должно иметь маску ввода «Пароль», чтобы вводимые символы не отображались.

    Поле8 предназначено для вывода гиперссылки на меню пользователя, его данные мы определим на следующем шаге, а пока установим свойство «Блокировка» = «Да», чтобы пользователь не мог внести изменения в это поле.

    Уберем лишние элементы оформления формы. На вкладке «Макет» в окне свойств формы установите значения свойств:

    • Область Выделения - «Нет»,

    • Кнопки навигации - «Нет»,

    • Полосы прокрутки – отсутствуют,

    • Подпись - Авторизация.


    Шаг 3. Настройка формы и ее элементов.

    Создадим источник записей для формы: запрос, который связывает обе таблицы, выводит все их поля и отбирает записи в соответствии с введенными логином и паролем. Для этого найдем свойство формы «Источник записей» и перейдем по кнопке с многоточием в построитель запросов (рисунок 24).



    Рисунок 24 – конструирование запроса – источника данных для формы frmAutor

    После закрытия построителя в свойстве «источник записей» формы окажется SQL-запрос:

    SELECT users.login, users.parol, userType.frm AS [Открыть меню] FROM userType INNER JOIN users ON userType.type = users.type WHERE (((users.login)=[Формы]![frmAutor]![Поле0]) AND ((users.parol)=[Формы]![frmAutor]![Поле2]));

    Поле frm переименовано для удобства пользователя.

    Далее выберите на макете формы элемент Поле8 и в окне свойств определите свойство «Данные» (рисунок 25).



    Рисунок 25 – установка источника данных для Поля8

    Поскольку при открытии формы в поля логина и пароля пустые, то результат запроса будет NULL, а в Поле 8 также ничего не будет выведено.

    Шаг 4. Создание макроса «Авторизация» для кнопки «Вход».

    На ленте Access выберите кнопку Создание / Макрос. Добавьте макрокоманды «Применить фильтр», условную конструкцию «Если» и «Окно сообщения» (рисунок 26). Приведен пример для Access 2016, в более ранних версиях условие макроса определяется в отдельном столбце.



    Рисунок 26 – создание макроса «Авторизация»

    Здесь поля формы сравниваются с полями источника записей формы, эта команда заставит форму еще раз пересчитать условия отбора данных после изменения введенных логина и пароля. Если пользователь ввел корректные данные, то будет обновлено значение Поля8 (ссылка на меню). В противном случае это поле останется пустым, в результате будет выведено окно сообщения об ошибке и звуковой сигнал. Макрос сохраним под именем «Авторизация».

    Выберите в режиме конструктора на форме авторизации кнопку «Вход», найдите в окне свойств События / Нажатие кнопки, выберите из списка макрос «Авторизация». Теперь кнопка будет запускать этот макрос.

    Примеры ввода данных приведены на рис.27.



    а) форма авторизации после открытия



    Б) введены правильные значения



    В) введены неправильные значения

    Рисунок 27 – примеры авторизации пользователя

    В заключение можно поработать над дизайном:

    - для поля8 сделать прозрачной заливку и контур, как на рис.27-б и в,

    - создать главную форму для администратора БД и заменить ею вывод таблицы users,

    - в настройках свойств базы данных указать форму авторизации как первую загружаемую форму приложения и т.д.


    Контрольные вопросы


    1. Какие элементы управления можно использовать для организации пользовательского меню программы?

    2. Что такое «событие» в программе? Какие события вы использовали для управления логикой программы?

    3. Какие события обрабатываются формой?

    4. Каков алгоритм работы событийно-управляемой программы?

    5. Как программируются реакции программы на действия пользователя с элементами экранной формы?

    6. Поясните понятие «актер», «прецедент» на use-case-диаграмме.

    7. Какие типы связей допускаются на use-case-диаграмме?

    8. Почему use-case-диаграмму можно использовать в качестве модели пользовательского интерфейса программы?

    9. Сравните модель пользовательского интерфейса в виде иерархической диаграммы с диаграммой прецедентов: найдите их сходства и отличия.

    10. Какие существуют способы реализации помощи пользователю?

    11. Что такое макрос и чем он отличается от процедуры обработки событий?



    Приложение А. Макрокоманды Access


    Таблица А1 - перечень макрокоманд

    Тип

    Макрокоманда

    Примечание

    Работа с данными в формах и отчетах

    ПрименитьФильтр

    ПоказатьВсеЗаписи


    Отбор, сортировка данных с помощью запроса, фильтра или SQL-команды

    СледующаяЗапись, Перейти,

    НайтиЗапись

    Переходы к записям таблицы, запроса, формы


    Работа с БД

    Выход

    ЗакрытьБазуДанных


    Выход из Access или из БД

    Работа с объектами

    ЗадатьСвойство

    Задать значение свойства элемента на открытой форме или отчете

    КЭлементуУправления

    Переместить фокус к заданному элементу формы

    Обновление

    ОбновитьОбъект

    Обновить объект, элемент управление, данные или экран

    Закрыть

    ОткрытьФорму (Запрос, Отчет, Таблиц)

    Закрыть или открыть объект БД

    ВывестиВФормате

    Вывод данных из объекта в указанном формате (Excel, RTF,HTML, PDF, XPS, TXT)

    Разное

    ПесочныеЧасы

    Сообщение

    Сигнал

    Изменить форму курсора

    Вывод сообщения на экран

    Подать звуковой сигнал




    ДобавитьМеню

    Создать пользовательское меню или контекстное меню

    Обработка ошибок и отладка

    ПриОшибке
    УстранитьОшибкуМакроса

    Шаг
    ОстановитьМакрос

    ОстановитьВсеМакросы

    ОтменитьСобытие

    Описание способа обработки ошибки

    Очистить свойство «MacroError» Переход в пошаговое выполнение макроса

    Остановка макроса или всех макросов

    Отмена события, приведшего к запуску макроса

    Программи-рование

    ЗапускПрограммы

    ЗапускМакроса

    ЗадатьВременнуюПеременную

    УдалитьВременнуюПеременную

    УдалитьВсеВременныеПеременные

    Выполнить макрос или функцию VBA (в том числе циклически)

    Установка и очистка значений временных переменных (до 255)



    Приложение Б
    Примеры оформления пользовательского меню


    Пример 1. На рисунке Б.1 представлена главная форма программы, в которой меню реализовано с помощью кнопок и гиперссылок.



    Рисунок Б.1 - реализация меню в виде кнопок, таблицы и гиперссылок

    Горизонтальное меню образуют две кнопки: «Новый заказ клиента» и «Новый заказ на приобретение», которые используются чаще всего. Кнопки оформлены с прозрачной заливкой и контуром, поэтому выглядят как надписи.

    Меню «Быстрые ссылки» для выбора остальных представлений данных представлено в виде набора прозрачных кнопок с правой стороны формы. Кнопки также прозрачные и размещены на фоне белого прямоугольника, который зрительно выделяет это меню.

    В центре формы расположена подчиненная форма в режиме «таблица», которая содержит список товаров. В первом столбце каждый товар является гиперссылкой на форму «Товар», которая открывается при выборе любого товара, причем в этой форме используется фильтр, позволяющий редактировать данные только выбранного товара.
    Пример 2. Реализация меню 2 и 3 уровня.

    На рисунке Б.2 показана форма «Новый заказ», которая содержит меню 2 и 3 уровня: в горизонтальное кнопочное меню (2 уровень) вынесены функции, связанные с обработкой нового заказа: создать счет, завершить заказ, удалить заказ. Третий уровень образуют вкладки: на первой вкладке – ввод заказа, на других – ввод вспомогательных данных, связанных с текущим заказом. Таким образом, на этой форме сгруппированы все объекты базы данных, связанные с бизнес-процессом пользователя «Прием заказа», включая как ввод всех данных, так и распечатку документов заказа.



    Рисунок 18 – главная форма с горизонтальным кнопочным меню и вкладками

    Приложение В. Типовые ошибки при выполнении работы


    1. все функции для всех пользователей сведены в общее меню (нужны отдельные интерфейсы для разных типов пользователя и форма авторизации);

    2. функции приложения группированы по типу объектов Access (таблицы/ запросы / формы / отчеты) вместо группировки по объектам предметной области или бизнес-задачам пользователя;

    3. диаграммы не соответствуют программной реализации пользовательского интерфейса;

    4. на use-case диаграмме не показаны функции 2 и 3 уровня, неправильно используются стрелки «include», «extends»,

    5. на иерархической диаграмме не определены типы объектов (форма, запрос, кнопка и т.п.),

    6. ошибки в отчете о работе: представлены только скриншоты в рабочем режиме, но не описаны свойства разработанных объектов (нет таблиц).




    1 См. примеры на сайте uml3.ru, например, в статье http://uml3.ru/library/uml_for_developers/03.Usage_modeling.pdf

    1   2   3   4   5   6


    написать администратору сайта