LEADERSOFT.ru Разработка на заказ программ и сайтов
ЕСЛИ БАЗА ВАМ НУЖНА В ЛИДЕРСОФТ ЗАЙДИ СПЕРВА!
Список всех статей ... Подписка на новости (рассылка через subscribe.ru)




































Выпуск 47. Техника быстрого проектирования. Часть 3

Подписка: "Access 2000 - программирование и готовые решения"
Тема:  "Техника быстрого проектирования"
Часть: 3 шаг. Разработка формы авторизации. 
Дата: 02.11.2004
Сайтhttp://www.leadersoft.ru
Подробное описание и загрузка примеров: Перейти ...
Новости

 Сеть интернет магазинов

ЗагрузитьКупитьОписаниеКатегория
  Вышла новая программа "Сеть интернет магазинов 3.0" Она предназначена для создания сети интернет магазинов. Все магазины создаются из прайс-листов, записанных в формате Excel, используя мастера базы данных. Это позволяет достигнуть очень высокой скорости управления магазинами. Всего несколько минут требуется на загрузку данных. Освобождается много времени для занятием бизнесом, а не изучением интернет технологий. 

 Новый прайс-лист

 
  Вышел новый прайс-лист на готовые базы данных и их разработку. Этот прайс-лист имеет различные категории программного обеспечения. Для тех, кому нужны готовые базы данных смотрите раздел: • Готовые решения, если необходимо заказать новую базу, то смотрите ссылку: Новый проект

3 Шаг. Разработка формы авторизации

 Введение

  На этом этапе проектирования будет рассмотрен вариант построения Форма авторизации в базе данных. Дается подробная методика, что должна делать эта форма. Примеры реализации данного интерфейса можно скачать с сайта: www.leadersoft.ru. Данные примеры используют внешние библиотеки.

 Назначение

  Открывая "профессиональную" базу данных, перед Вами всегда появляется форма авторизации. В этой форме есть два поля для ввода имени пользователя и его пароля. Только после того, когда будет введен правильный 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 минут на изучение построения данной формы, Вы сможете быстро организовать авторизованный вход в базу данных.

Ответы на вопросы
Вопрос 3599 Какую литературу лучше всего приобрести по темам?
1. Создание классов и использование пользовательских событий.
2. Создание ASP(Active Server Page)
  Ответ. Вопрос ясен, но точного ответа дать не могу. Если у кого-нибудь есть предложения на этот счет, то прошу сообщить в конференцию по этой ссылке: Дать ответ .
Вопрос по email. Конечно, это интересно так проектировать, но вот я уже давно пишу программу для нашего отдела, и до сих пор никаких классов и библиотек не потребовалось.
  Ответ. А никто и не заставляет Вас использовать классы и библиотеки. Цель рассылки познакомить разработчиков с различными методами проектирования. С другой стороны, у каждого свои потребности. Если Вам надо "вскопать огород", то и лопаты достаточно. Если же необходимо "вскопать поле в несколько гектар", то без техники не обойтись. 
  P.S. Кстати на базе такой технологии разработано уже несколько программ. Например, база данных "Сеть интернет магазинов". Вот ссылка: Загрузить.
Вопрос 3601  Конкатекция строк в запросе Eсли какой аналог функции concat
  Ответ. В каждом языке программирования существуют функции работы со строками. В современных версиях языков разработчики уже придумали достаточно короткие решения. Например, на c++ (javascript) str3 = str1+str2. Используется обычный знак сложения. В vba и sql запросах применяется знак & (амперсанд). Ответ: str3 = str1 & str2.
Вопрос 3603 Удаление пробелов Как удалить пробелы (все) в столбце (таблицы),
автоматически.
  Ответ. Ответ очевидный, надо использовать запрос на обновление: UPDATE Таблица1 SET Таблица1.Поле1 = Trim([Поле1]); Дополнительный совет - надо такие задачи решать самостоятельно, иначе потом трудно будет научиться программировать.