Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
БД_Поясн_записка_пример.doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
2 Мб
Скачать
☆

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 выполняется:

  1. Установка режима «Не показывать удаленные записи»;

  2. Открытие базы данных;

  3. Открытие меню;

  4. Открытие формы MainForm со значениями по умолчанию.