- •1 Теория и практическая реализация систем управления базами данных
- •2 Разработка базы данных
- •2.2 Процедура нормализации
- •2.3 Разработка логической модели данных
- •2.4 Разработка физической модели данных
- •2.5 Разработка программы автогенерации
- •3 Разработка программного приложения
- •3.2 Разработка форм
- •3.4 Разработка меню
- •3.5 Обеспечение многопользовательской работы
- •3.3 Разработка отчетов
- •3.6 Результаты тестирования приложения
3.2 Разработка форм
Работу с данными на уровне пользовательского интерфейса можно разделить на два уровня:
Работа со списком записей одной таблицы;
Работа с одной записью таблицы.
Каждый из указанных уровней реализован отдельной формой. Одна форма служит для редактирования, добавления, удаления, поиска записи (одна или несколько форм с разными режимами работы). Другая форма – для просмотра всех записей, поиска записей, перехода к форме редактирования, добавления, удаления, поиска записи.
С целью унификации, для разных таблиц и представлений, по возможности, используются одни и те же формы. С целью унификации программного кода, для решения однотипных задач используются одни те же процедуры и функции, которые вынесены в отдельный модуль Guide (Приложение В.)
Набор форм для таблиц и представлений базы данных приведен в таблице 3.1.
Таблица 3.1 – Формы работы с данными
Таблица или представление |
Форма работы со списком записей |
Добавление |
Редактирование |
Удаление |
Поиск |
Faculty |
FacultyForm |
MainEditForm |
MainEditForm |
MainEditForm |
MainEditForm |
vSpeciality |
FacultyForm |
MainEditForm |
MainEditForm |
MainEditForm |
MainEditForm |
Enterprise |
MainForm |
EnterEditForm |
EnterEditForm |
EnterEditForm |
MainEditForm |
Registrar |
MainForm |
MainEditForm |
MainEditForm |
MainEditForm |
MainEditForm |
Lesson |
MainForm |
MainEditForm |
MainEditForm |
MainEditForm |
MainEditForm |
Types |
MainForm |
TypesEditForm |
TypesEditForm |
TypesEditForm |
MainEditForm |
vEnrollee |
MainForm |
StudentEditForm |
StudentEditForm |
StudentEditForm |
StudentSearchForm |
vEnrolleeEGE |
MainForm |
|
EgeEditForm |
EgeEditForm |
MainEditForm |
На рисунке 3.4 представлена форма EgeEditForm в режиме конструктора.
Рисунок 3.4 – Форма EgeEditForm в режиме конструктора
На рисунке 3.5 представлена форма EnterEditForm в режиме конструктора.
Рисунок 3.5 – Форма EnterEditForm в режиме конструктора
На рисунке 3.6 представлена форма FacultyForm в режиме конструктора.
Рисунок 3.6 – Форма FacultyForm в режиме конструктора
На рисунке 3.7 представлена форма MainEditForm в режиме конструктора.
Рисунок 3.7 – Форма MainEditForm в режиме конструктора
На рисунке 3.8 представлена форма MainForm в режиме конструктора.
Рисунок 3.8 – Форма MainForm в режиме конструктора
На рисунке 3.9 представлена форма StudentEditForm в режиме конструктора.
Рисунок 3.9 – Форма StudentEditForm в режиме конструктора
На рисунке 3.10 представлена форма StudentSearchForm в режиме конструктора.
Рисунок 3.10 – Форма StudentSearchForm в режиме конструктора
На рисунке 3.11 представлена форма TypeEditForm в режиме конструктора.
Рисунок 3.11 – Форма TypesEditForm в режиме конструктора
В своей работе все формы используют процедуры и функции из модуля Guide (Приложение В.). Процедуры и функции из модуля Guide представлены в таблице 3.2.
Таблица 3.2 – Процедуры и функции модуля Guide
Процедура или функция |
Назначение |
1 |
2 |
CalcType |
Определение основания поступления абитуриента |
xCTOD |
Преобразование строки в дату с контролем типа |
CIIF |
Перевод из числового типа в логический тип |
FIIC |
Перевод из логического типа в числовой тип |
TestId |
Проверка идентификатора записи |
ResId |
Вычисление результата операции |
xGoRec |
Открытие таблицы, установка индекса, переход к записи |
ExecGuide |
Открытие таблицы или представления на просмотр записей |
ExecEditGuide |
Добавление, удаление, редактирование, поиск записи |
Продолжение таблицы 3.2
1 |
2 |
AddColumn |
Добавление колонки к сетке (grid) |
CreateColumns |
Формирование колонок в сетке (grid) |
TestForm |
Проверка поддерживаемой формы при вызове команды меню |
AddGuide |
Выполнение команды «Добавление» |
EditGuide |
Выполнение команды «Редактирование» |
DeleteGuide |
Выполнение команды «Удаление» |
SearchGuide |
Выполнение команды «Поиск» |
InitGuide |
Инициализация формы просмотра записей при открытии |
OkGuide |
Выход из формы просмотра записей по нажатию на кнопку «OK» |
InitEditGuide |
Инициализация формы добавления / редактирования / удаления / поиска записей при открытии |
OkEditGuide |
Выход из формы добавления / редактирования / удаления / поиска записей по нажатию на кнопку «OK» |
ShowErrorRef |
Вывод сообщения об ошибке при попытке удаления записи |
ShowErrorField |
Вывод сообщения об ошибке при попытке редактирования / добавления записи |
RepoA1 |
Формирование отчета «Среднее число баллов абитуриентов 10 наиболее встречающихся школ» |
RepoA2 |
Формирование отчета «Наиболее успешные школы» |
RepoB |
Формирование отчета «Средний балл поступивших абитуриентов» |
Рассмотрим работу форм на примере MainForm и MainEditForm.
При открытии формы MainForm выполняется обработка события Init (рисунок 3.12).
LPARAMETERS _Name, _Caption, _Id, _Modal
IF VARTYPE(_Name) != 'C'
_Name = "vEnrollee"
_Caption = "Приёмная комиссия университета"
_Id = -1
_Modal = 2
ENDIF
DO Guide
RETURN InitGuide(THISFORM, _Name, _Caption, _Id, _Modal)
Рисунок 3.12 – Обработка события Init формы MainForm
Процедура обработки события имеет 4-е необязательных параметра:
Имя таблицы или представления;
Заголовок формы,
Идентификатор записи, на которую будет выполнен переход;
Режим открытия – просмотр или выбор записи.
Если параметры не заданы, значению устанавливаются по умолчанию. Далее выполняется вызов функции из модуля Guide.
При нажатии на кнопку «OK» на форме выполняется обработчик события кнопки (рисунок 3.13).
DO Guide
OkGuide(THISFORM)
Рисунок 3.13 – Обработка события нажатия кнопки «OK» формы MainForm
При открытии формы MainEditForm выполняется обработка события Init (рисунок 3.14).
LPARAMETERS _Name, _Caption, _Id, _Mode
DO Guide
RETURN InitEditGuide(THISFORM, _Name, _Caption, _Id, _Mode)
Рисунок 3.14 – Обработка события Init формы MainEditForm
Процедура обработки события имеет 4-е параметра:
Имя таблицы или представления;
Заголовок формы,
Идентификатор записи;
Режим открытия – Добавление / Редактирование / Удаление / Поиск
В процедуре выполняется вызов функции из модуля Guide.
При нажатии на кнопку «OK» на форме выполняется обработчик события кнопки (рисунок 3.15).
DO Guide
OkEditGuide(THISFORM)
Рисунок 3.15 – Обработка события нажатия кнопки «OK» формы MainEditForm
Программный код всех форм приведен в приложении Г.
Открытие приложения должно выполняться посредством вызова модуля _Curs. Программный код приложения приведен на рисунке 3.16.
SET DELETED ON
OPEN DATABASE "Selection"
DO "Menu.mpr"
DO FORM "MainForm.scx"
Рисунок 3.16 – Программный код приложения _Curs
В приложении _Curs выполняется:
Установка режима «Не показывать удаленные записи»;
Открытие базы данных;
Открытие меню;
Открытие формы MainForm со значениями по умолчанию.
