Техника ускоренного проектирования: разработка формы авторизации часть 3

Источник: Leadersoft

Загрузка примеров

Для того, чтобы разобраться в данной технологии необходимо загрузить из файла la_step02.zip пример: "Шаг 4 - вход в базу.mdb".

Назначение

Открывая "профессиональную" базу данных, перед Вами всегда появляется форма авторизации. В этой форме есть два поля для ввода имени пользователя и его пароля. Только после того, когда будет введен правильный login (имя) и password (пароль), можно будет работать с данными.
  В основном это связано с тем, что каждая база данных должна иметь ограниченный доступ к своей информации. Необходимо сохранить ранее введенною информацию, чтобы "случайные люди" не могли ее прочитать, удалить или использовать в своих целях. Это первое назначение формы. На самом деле на нее можно возложить еще ряд функций, о которых не догадывается пользователь и даже некоторые разработчики. Вот они.
 - 1. Модификация структуры базы данных.
 - 2. Автоприсоединение.
 - 3. Вывод логотипа программы.
 - 4. Загрузка словаря
 - 5. Определение главного меню
Дадим более подробное описание этих свойств в следующем разделе описания.

Методика проектирования формы

 1. Модификация структуры базы данных - это свойство должно применяться в том случае, если в структуре таблиц базы данных произошли изменения. Например, Вы добавили новые поля и таблицы в базу данных и в связи с этим изменили ее интерфейс и передали пользователю. Так как он работает с таблицами еще старой версии базы данных, то при запуске новой программы произойдут ошибки. Чтобы этого не случилось, до этапа открытия новых таблиц, необходимо проверить структуру таблиц. Желательно сделать это достаточно быстро. В данной технологии применяется следующая идея. Существует файл: шаблон.mdb. Он содержит таблицы и запросы, некоторые из таблиц - пустые, другие заполнены данными (если предполагается использовать и их данные). При открытии базы данных из этого шаблона читается таблица AdmVersion, которая содержит номер новой версии базы данных. Если в присоединяемой базе данных, такая же таблица отсутствует или содержит другую версию базы, то начинается модификация базы и в этот файл будут добавлены новые поля и таблицы из шаблона. При этом, на заключительном этапе в таблице AdmVersion будет изменено поле, отвечающее за номер версии. Оно станет равным значению поля аналогичной таблицы в шаблоне.

   2. Автоприсоединение. Часто открыв "любительскую" базу данных, которая состоит из интерфейса и таблиц оказывается, что для ее запуска нужно проделать ряд непростых действий, которые создают негативное впечатление о разработчике. Например, Вы должны ее разархивировать в каталог с:\programs\??? или открыть диспетчер связанных таблиц и с помощью него указать какой-то файл с данными и потом обновить связь с таблицами через меню Access. Для обычного пользователя это кажется ненормальным. Для профессионала - это указатель того, что база - любительская, и интерфейс ее не до конца продуман и, наверное, будут и другие проблемы при использовании. В данной методике применяется следующая идеология. На этапе авторизации, происходит проверка присоединения одной связанной таблицы. Если при этом окажется, что связи с ней нет, то в каталоге ../data выбирается файл с данными и автоматически привязывается к интерфейсу. После обновления связей база данных открывается. Небольшое замечание. Таблицы, которые необходимо привязывать указываются в таблице: AdmServerTables вашей новой базы.

 3. Вывод логотипа программы.
  
Эта функция не является обязательной для базы данных, но с другой стороны, если Вы желаете "отметить" чем-то свою разработку, то неплохо при открытии базы данных дать графическое изображение программы. Это позволяет пользователю быстро понять, для чего нужна база данных. По данной методике, графический файл не хранится в базе данных, а размещается в каталоге images\logo. Он имеет название LogoServerData.bmp. Прежде, чем форма авторизации появится перед пользователем, она считывает файл из указанной выше папки и загружает его в форму. С другой стороны, она может и менять общий вид от подключенных данных. Например, если в папке ../data, есть файлы: A.mdb (B.mdb ...)в папке ../images есть файлы: LogoА.mdb (LogoB.mdb ...), то при подключении к файлам с данными вид формы авторизации будет изменяться на нужный в зависимости от названия файла данных. Это позволяет пользователю графически контролировать подключение нужных данных.

 4. Загрузка словаря.
  
Эта функция также не является обязательной для базы данных, но с другой стороны она может иметь существенное значение при разработке интерфейса, имеющего несколько разных языков управления. Сущность методики заключается в следующем. В базе данных есть таблица: AdmTransDictionary c полем key (название объекта формы) и полями rus, eng и т.п., которые содержат нужный перевод объекта. Достаточно при загрузке формы вставить нужный флаг для перевода (rus или eng) и форма будет представлена в русском или английском варианте.

5. Определение главного меню
  
В зависимости от того, кто открыл базу данных, администратор, директор или рядовой пользователь, то можно специально настроить панель меню. Это требуется также для того, чтобы с базой данных могли работать несколько человек, имеющих разные привилегии доступа к меню программы.

Описание интерфейса

После описания методики построения формы авторизации дадим описание формы, применяемой в этом описании и примере. Интерфейс формы достаточно простой. Посмотрите на ее общий вид. Она имеет всего 3 поля. 1 поле - это ввод пользователя (login). 2 поле - ввод пароля (password). 3 поле (database) - выбор данных базы данных.  Запускается форма через макрос AutoExec или в поле "Вывод формы/страницы" или необходимо указать ее имя (см. пункт меню Сервис-Параметры запуска). В примере откройте папку: project и запустите файл: "Шаг 4 - вход в базу.mdb". 
  

Примечание. Для того, чтобы форма авторизации не открывалась, надо держать ключ Shift.

Программирование формы

Много было сказано слов о назначении формы авторизации, которая имеет малые размеры. Но для того, чтобы все это реализовать и запрограммировать потребуется еще меньше времени, чем при ее создании. Для этого создайте ссылку на библиотеки интерфейса: libcommon, libadmin.mdа, libforms.mda. Они находятся в папке library и необходимы для работы этой формы. После этого в форме авторизации надо написать указанный ниже код.

------- начало --------
'Private mfrm As clsAdmFormPassword
' Открытие формы
Private Sub Form_Open(Cancel As Integer)
Set mfrm = fcClassCreateAdmFormPassword(Me.Form)
' Me.strUser = "Администратор"
End Sub
------- конец --------
Конечно, создание этой библиотеки потребовало немного времени, но зачем об этом думать, если нужный результат достигается за несколько минут.

  3. Компилируем базу данных. Если будет ошибка, то проверяем привязку библиотек. Привязка к эти библиотекам ведется автоматически при открытии формы. Если это не произошло при первом открытии, сделайте это через пункт в редакторе VBA: Tools-Referenses ...

Проверка интерфейса

 После создания формы, проведем проверку ее свойств. 
1. Модификация структуры базы данных.  
   Для этого откройте в папке templates\шаблон.mdb. Добавьте в него новую таблицу: test1 и в таблице AdmVersion измените версию базы данных.
2. Автоприсоединение.
   Переименуйте папку базы с примером на другое имя. После открытия файла: Шаг 4 - вход в базу.mdb, таблица AdmHelp будет привязана к новому источнику данных. 
3. Изменение логотипа. 
   Откройте файл с логотипом базы LogoServerData.bmp и напишите на нем текст. Далее откройте файл с примером и посмотрите на внешний вид формы авторизации

Заключение

Потратив 15-20 минут на изучение построения данной формы, Вы сможете быстро организовать авторизованный вход в базу данных.


Страница сайта http://test.interface.ru
Оригинал находится по адресу http://test.interface.ru/home.asp?artId=9558