Смекни!
smekni.com

Программный комплекс учёта работы предприятия по озеленению (стр. 2 из 3)

Рисунок 2.4 – Диаграмма ER-екземпляров для связи «Мероприятие – Работник»

По данным диаграммам и с учётом правил составления таблиц можно сделать вывод, что для разрабатываемого приложения нужны следующие таблицы.

Заказчик (Id_заказчика, Наименование, Адрес, Телефон, ФИО директора).

Проект (Id_проекта, Id_заказчика, Название, Дата начала работ, Дата окончания, Статус, Дата поступления заказа).

Мероприятия (Id_мероприятия, Id_проекта, Наименование, Вид работы).

Участие (№ наряда, Id_мероприятия, Id_работника, Дата, Количество отработанных часов).

Работник (Id_работника, Фамилия, Имя, Отчество, Вид деятельности, Стаж, Домашний адрес, Телефон).

После составления таблиц следует определить какого типа будут поля в данных таблицах. Данная процедура рассмотрена в табл.2.1.

Таблица 2.1

Типы полей таблиц разрабатываемого приложения.

Заказчик Проект
Название поля Тип поля Название поля Тип поля
Id_заказчика Числовой (ключ) Id_проекта Числовой (ключ)
Наименование Текстовый Id_заказчика Числовой
Адрес Текстовый Название Текстовый
Телефон Текстовый Дата начала работ Дата/время
ФИО директора Текстовый Дата окончания Дата/время
Мероприятия Статус Текстовый
Id_мероприятия Числовой (ключ) Дата поступления заказа Дата/время
Id_проекта Числовой Участие
Наименование Текстовый (№ наряда Числовой (ключ)
Вид работы Текстовый Id_мероприятия Числовой
Id_работника Числовой
Дата Дата/время
Работник
Название поля Тип поля
Id_работника Числовой (ключ)
Фамилия Текстовый
Имя Текстовый
Отчество Текстовый
Вид деятельности Текстовый
Стаж Числовой
Домашний адрес Текстовый
Телефон Текстовый

2.2 Концептуальное моделирование

Объектно-ориентированное проектирование программной системы выполнялось в виде построения UML-диаграмм [10]. Унифицированный язык моделирования UML (UnifiedModelingLanguage) предназначен для описания, визуализации и документирования объектно-ориентированных программных систем и бизнес-процессов с ориентацией на их последующую реализацию в виде программного обеспечения. Проектирование системы на языке UML выполнялось с использованием CASE-средств IBMRationalRose.

Для спецификации, визуализации, проектирования и документирования компонентов программного обеспечения была разработана диаграмма вариантов использования, представленная на рис. 2.5.

Рисунок 2.5 – Диаграмма вариантов использования

На данной диаграмме показано, что основной задачей пользователя разрабатываемой системы является приём заявок, работа с базами данных и получение результатов по этим данным. В работу с БД входит работа с данными и обработка заявок. Под обработкой заявок подразумевается возможность их создания, редактирования и удаления. В работу с данными входит возможность создания записей, запросов к системе и отчётов по ним.


3. РЕАЛИЗАЦИЯ АВТОМАТИЗИРОВАННОЙ ИНФОРМАЦИОННОЙ СИСТЕМЫ

3.1 Разработка интерфейса приложения

Создание таблиц для АИС. Для этого шага использовался такой пакет как MicrosoftAccess. Таблицы создавать в этом приложении удобней, чем в Database Desktop, приложении на базе платформы для создания программ Delphi. Таблицы хранятся не отдельно каждая в своём файле, а сразу в одном, что обеспечивает целостность базы, поскольку для этого файла не нужны дополнительные компоненты.

Наряду с традиционными инструментами доступа к данным Borland Database Engine и ODBC в приложениях Delphi можно применять технологию Microsoft ActiveX Data Objects (ADO), которая основана на возможностяхСОМ, а именно интерфейсов OLE DB. OLE DB представляет собой набор специализированных объектов СОМ, инкапсулирующих стандартные функции обработки данных, и специализированные функции конкретных источников данных и интерфейсов, обеспечивающих передачу данных между объектами. Технология ADO в целом включает в себя не только сами объекты OLE DB, но и механизмы, обеспечивающие взаимодействие объектов с данными и приложениями. На этом уровне важнейшую роль играют провайдеры ADO, координирующие работу приложений с хранилищами данных различных типов. Так как технология ADO основана на стандартных интерфейсах СОМ, которые являются системным механизмом Windows, это сокращает общий объем работающего программного кода и позволяет распространять приложения БД без вспомогательных программ и библиотек. Данная АИС сделана с помощью ADO-технологии, что позволяет данным динамически обновляться во время работы приложения. База данных подключена через системный драйвер Microsoft.Jet.OLEDB.4.0.В данном ПП при разработке использовался компонент ADOConnection. К его классу относятся также используемые компоненты: ADOQuery и ADOTable.

Таблицы, созданные в MicrosoftAccess 2007, представлены на рис.3.1-3.5.

Рисунок 3.1 – Структура таблицы «Заказчик»

Рисунок 3.2 – Структура таблицы «Проект»

Рисунок 3.3 – Структура таблицы «Мероприятия»

Рисунок 3.4 – Структура таблицы «Участие»

Рисунок 3.5 – Структура таблицы «Работник»

Данные таблицы соответствуют таблицам, полученным при проектировании данной автоматизированной информационной системы. Таблицы могут связываться в Access.

Ниже на рисунке 3.6 приведена логическая связь таблиц, спроектированных в Access.

Рисунок 3.6 – Связи между таблицами

На данном рисунке (см.рис.3.6) детально показаны все таблицы, созданные для данного ПП. Связи в таблицах осуществляются через ключи в одних таблицах и идентичным им записям в других.

Создание интерфейса. В данном программном продукте разрабатывался интерфейс, который будет ориентирован на неопытного пользователя. Выбор нужной формы осуществляется с помощью контекстного меню (рис.3.7).

На главной форме предоставлены 2 таблицы: Проект и Мероприятия. Предусмотрена сортировка кликом мышки по на званию какого-либо столбца таблиц. Также система содержит справку пользователя.


Рисунок 3.7 – Главная форма ПП

3.2 Создание SQL-запросов

В данном проекте были использованы различные SQL-запросы, для оптимизации работы и увеличения эффективности. Список этих запросов предоставлен ниже.

1) Сортировка

При нажатии на заголовок поля производится сортировка по этому полю, обработчики событий предоставлены ниже. Пример предоставлен на рис.3.8.

procedure TForm1.DBGid1TitleClick(Column: TColumn);

var s:string;

begin

s:=Column.Title.Caption;

ADOQuery1.SQL.Clear;

ADOQuery1.SQL.Add('select * from проект order by '+s);

ADOQuery1.Active:=false;

ADOQuery1.Active:=true;

end;

procedure TForm1.DBGrid2TitleClick(Column: TColumn);

var s:string;

begin

s:=Column.Title.Caption;

ADOQuery2.SQL.Clear;

ADOQuery2.SQL.Add('select * from Мероприятия order by '+s);

ADOQuery2.Active:=false;

ADOQuery2.Active:=true;

end;

Рисунок 3.8 – Пример сортировки

2) Выбор завершённых проектов за период, определяемый пользователем.

procedure TForm7.Button1Click(Sender: TObject);

function DateConv(date: tdate):string;

var i: integer;

begin

result:=datetostr(date);

for i:=1 to length(result) do if result[i]='.' then result[i]:='/';

end;

begin

adoquery1.SQL.Clear;

OutputQuery:='SELECT * FROM Проект WHERE ([Дата_начала_работ] Between #'+

DateConv(DateTimePicker1.Date)+'# And #'+DateConv(DateTimePicker2.Date)+

'#) And (статус='+#39+'завершен'+#39+')';

adoquery1.SQL.add(OutputQuery);

adoquery1.Active:=false;

adoquery1.Active:=true;

end;

Пример запроса приведен на рис.3.9.

Рисунок 3.9 – Запрос по проектам

3) Создание заявки на новый проект в пустой таблице «Заявки»

Данный шаг сделан потому, что для разработки проекта требуется определённое время. Так как задача администратора заключается в том, чтобы принять заявку, то таким способом она регистрируется в базе данных. Поскольку специалисту необходимо просчитать время, за которое проект будет закончен, какие работники будут выполнять мероприятия по данному проекту, то есть разработать проект.

procedure TForm8.Button1Click(Sender: TObject);

var s:string;

function DateConv(date: tdate):string;

var i: integer;

begin

result:=datetostr(date);

for i:=1 to length(result) do if result[i]='.' then result[i]:='/';

end;

begin

s:='INSERT into Заявки values ('+#39+combobox1.text+#39+', '+#39+edit1.text+#39+','+#39+combobox2.text+#39+', #'+dateConv(DateTimePicker1.Date)+'#)';

form1.ExecSQL(s);

Form9.ShowModal;

Form8.Close;

end;

Пример регистрации заявки предоставлен на рис 3.10-3.11.

Рисунок 3.10 – Регистрация заявки

Рисунок 3.11 – Заполнение формы заявок


4) запрос, показывающий сколько часов и по какому проекту отработал определённый работник

procedure TForm10.Button1Click(Sender: TObject);

var s: string;

begin

adoquery1.SQL.Clear;

s:='SELECT Работник.Фамилия, Работник.Имя, Проект.Название, Участие.[Кол-во_отработ_часов] FROM '+

Работник INNER JOIN (Проект INNER JOIN (Мероприятия INNER JOIN Участие ON Мероприятия.Id_мероприятия '+