Реляционной базой данных называется набор отношений.
Схемой реляционной базы данных называется набор заголовков входящих в неё отношений.
3.2 Объектно-ориентированный анализ
Основным классом, использующемся в проекте, будет класс TForm. Данный класс будет использоваться для размещения на нем компонентов – элементов создаваемого приложения. Класс TForm будет включать следующие классы, предназначенные для создания интерфейса в программе: TLabel, TEdit, TMemo, TButton, TStringGrid и другие. Класс используется для обозначения множества объектов, которые обладают одинаковой структурой, поведением и отношениями с объектами из других классов.
Диаграмма классов служит для представления статической структуры модели системы в терминологии классов объектно-ориентированного программирования. Диаграмма может отражать различные взаимосвязи между отдельными сущностями предметной области, такими как объекты и подсистемы, а также описывать их внутреннюю структуру и типы отношений. На данной диаграмме не указывается информация о временных аспектах функционирования системы. Диаграмма классов представлена в графической части на листе 2.
Для моделирования процесса выполнения операций используются диаграмма деятельности. Каждое состояние на диаграмме деятельности соответствует выполнению некоторой элементарной операции, переход в следующее состояние срабатывает только при завершении этой операции. Диаграмма деятельности представлена в графической части на листе 4.
Для описания реальных сущностей предназначена диаграмма компонентов. Диаграмма компонентов описывает объекты реального мира – компоненты программного обеспечения. Эта диаграмма позволяет определить архитектуру разрабатываемой системы, установив зависимости между программными компонентами, в роли которых может выступать исходный, бинарный и исполняемый код.
На главной форме имеется три вкладки:
на первой компонент DataSource1 типа TDataSource является промежуточным звеном между компонентом ADOQuery1 типа ADOQuery, соединенным с таблицей БД сотрудников Аппарата УВД, и визуальным компонентом DBGrid1, с помощью которого пользователь взаимодействует с этой таблицей; на второй компонент DataSource2 типа TDataSource является промежуточным звеном между компонентом ADOQuery2 типа ADOQuery, соединенным с таблицей БД сотрудников всех областей УВД и визуальным компонентом DBGrid2, с помощью которого пользователь взаимодействует с этой таблицей; на третьей компонент DataSource3 типа TDataSource является промежуточным звеном между компонентом ADOTable2 типа ADOTable, соединенным с таблицей БД сотрудников Аппарата УВД, и визуальным компонентом DBGrid3, с помощью которого пользователь взаимодействует с этой таблицей;
Компоненты DBGrid1, DBGrid2, DBGrid3 отображает содержимое таблицы БД в виде сетки, в которой столбцы соответствуют полям, а строки – записям таблицы. Эти компоненты связываются со своим источниками данных через свойство DataSource. Аналогично взаимодействует DBGrid1 формы поиска данных с компонентом ADOQuery3 через DataSource4.
Для компонента ADOConnection1 также с помощью свойства ConnectionString нужно установить соединение с хранилищем данных.
В таблице 3.2 приведены компоненты, используемые для работы с таблицами и запросами БД, их основные свойства и значения этих свойств.
Таблица 3.2 - Значения свойств компонентов
Компонент | Свойства | Значения | ||
ADOConnection1 | ConnectionString | Pr.mdb | ||
ADOQuery1 | Connection | ADOConnection1 | ||
ADOQuery2 | Connection | ADOConnection1 | ||
ADOQuery3 | Connection | ADOConnection1 | ||
ADOTable2 | Connection | ADOConnection1 | ||
ADOTable1 | Connection | ADOConnection1 | ||
DataSource1 | DataSet | ADOQuery1 | ||
DataSource2 | DataSet | ADOQuery2 | ||
DataSource3 | DataSet | ADOTable2 | ||
DataSource4 | DataSet | ADOQuery3 | ||
DBGrid1(Главная форма) | DataSource | DataSource1 | ||
DBGrid2 (Главная форма) | DataSource | DataSource2 | ||
DBGrid3 (Главная форма) | DataSource | DataSource3 | ||
DBGrid1(Форма поиска данных) | DataSource | dsrType |
Диаграмма компонентов представлена в графической части на листе 3.
3.3 Концептуальный прототип
Разработанный программный продукт “Учет дисциплинарной практики в УВД Миноблисполкома” представляет собой файл “DisPract.exe”.
При двойном нажатии кнопки мыши на файл запускается файл, состоящий из главного окна, изображенного на рисунке 3.1
Рисунок 3.1 – Главное окно программы
На главном окне есть три вкладки с тремя таблицами: информация о сотрудниках УВД, областных сотрудниках и сотрудниках снятых с учета. В зависимости от того, на какой вы вкладке в данный момент находитесь, с той вы будите и работать, а именно редактировать запись, удалять ее, добавлять новый, осуществлять поиски и выводить данные на печать.
Для добавления нового сотрудника нужно нажать кнопку “Добавление новой записи”, находящуюся в нижней части главного окна, после чего откроется новое окно “Добавление записи”, изображенное на рисунке 3.2.
Для редактирования сотрудника нужно нажать кнопку “Редактирование записи”, после чего на экране появится окно “Редактирование записи” аналогичное окну представленному на рисунке 3.2.
Рисунок 3.2 – Окно “Добавление записи”
Для удаления записи нажмите кнопку “Удаление записи”, после чего программа спросит о том, действительно ли вы хотите удалить запись, если вы нажмите “Ok”, то запись будет удалена.
В данном программном продукте предусмотрена такая возможность как досрочное снятие. Оно предназначено для того, чтобы раньше установленного срока (равняется одному году с даты подписания приказа) снять запись с учета, после чего она будет автоматически занесена в Базу данных сотрудников снятых с учета. Если сотрудника не снимать досрочно, он будет снят через год после того, как его поставили на учет.
Досрочное снятие сотрудника осуществляется двумя способами:
– выбрать необходимую запись на нужной вкладке и нажать “Файл-Досрочное снятие”;
– выбрать “Поиск-по фамилии”, затем ввести фамилию сотрудника, которого необходимо снять с учета и нажать кнопку “Выбрать”, после чего в новом окне нажать на кнопку “Досрочное снятие”.
Далее программа откроет новое окно, где можно ввести новую дату и номер снятия приказа (рисунок 3.3). После внесения изменений нажмите на кнопку “Записать” и внесенные изменения применятся к записи и вы можете это увидеть, перейдя на третью вкладку главного окна.
Рисунок 3.3 – Окно “Досрочное снятие”
Данный программный продукт осуществляет поиск по фамилии, по званию, по области, по службе, по подразделения, по должности и по месту приказа. Для выполнения поиска по фамилии следует выбрать “Поиск-по фамилии”, после выбора откроется окно ( рисунок 3.4), где необходимо ввести фамилию или выбрать ее из списка.
После выбора фамилии программа выдаст результата поиска в новом окне (рис. 3.5) Если ни одной записи не найдено, то программа выдаст сообщение, в котором будет сказано, что в Базе данных нет сотрудников, удовлетворяющих критерию запроса. Аналогично действуют и выше перечисленные запросы.
Рис. 3.3.4 Окно “Выбор фамилии для поиска”
Рис. 3.3.5 Окно “Выбор фамилии для поиска”
3.4 Функции: логическая и физическая организация и элементы управления
При исследовании диаграммы вариантов использования были выявлены основные функциональные требования поставленной задачи, которые нужно было реализовать в проекте. Для реализации требований, поставленных перед автором проекта, в программе был создан ряд процедур, которые обеспечивают их корректное выполнение. Процедуры, используемые в программе, не являются встроенными в язык программирования, а реализованы автором.
Многие процедуры в программе взаимосвязаны между собой. Взаимосвязь процедур используется как для возможности дальнейшей обработки уже обработанной информации другими процедурами, так и для возможности существования некоторых процедур по средствам других. Исходя из диаграммы вариантов использования, самой главной функцией в программе является ввод информации, поиск и контроль снятия взыскания.
Для реализации данной функции было создано ряд процедур, которые представлены ниже:
· процедура сортировки информации областников или аппарата управления и автоматическое снятие взыскания
procedure TForm2.FormActivate(Sender: TObject);
var k:integer;
begin
with datamodule4.ADOQuery1 do begin
Close;
SQL.Clear;
SQL.Add('select * from Pract');
sql.Add('where Rugo="АппаратУВД"');
Open;
if RecordCount <> 0 then
begin
datamodule4.DataSource1.DataSet :=datamodule4.adoquery1;
end
else
begin
end;
end;
with datamodule4.ADOQuery2 do begin
Close;
SQL.Clear;
SQL.Add('select * from Pract');
sql.Add('where Rugo<>"АппаратУВД"');
Open;