Файл: Проектирование реализации операций бизнес-процесса «Запасы-склад (приходование товара)»(Выбор комплекса задач автоматизации.).pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 01.04.2023

Просмотров: 53

Скачиваний: 1

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

2.6. Структурная схема пакета (дерево вызова программных модулей).

Рабочая версия программы включает в себя четыре модуля:

  • модуль Main.pas (главное окно программы);
  • модуль Order.pas (взаимодействие с заказами);
  • модуль Connect.pas (взаимодействие с базой данных);
  • модуль Refbook.pas (взаимодействие со справочниками).

Подробное описание модулей представлено в виде таблицы 11.

Таблица 11

Описание модулей системы

№ п/п

Наименование модуля

Функции модуля

1.

модуль Main.pas

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

2.

модуль Order.pas

в данном модуле выполняются процедуры для работы заказами (создание нового, редактирование созданного ранее, закрытие заказа, подготовка входных документов)

3.

модуль Connect.pas

модуль содержит процедуры и компоненты для инициализации подключения и осуществления всех операций взаимодействия с базой данных (отправки SQL-запросов и обработка результатов их выполнения)

4

модуль Refbook.pas

модуль выполняет процедуры и компоненты для взаимодействия со справочниками информационной системы (просмотр, добавление, изменение, удаление записей)

Дерево вызова программных модулей приведено на рисунке 14.

Рисунок 14. Дерево вызова программных модулей

2.7 Описание программных модулей.

После запуска программы создается подключения к базе данных. Взаимодействие с базой данных построено при помощи технологии ActiveX Data Objects, разработанной компанией Microsoft.

Используемая технология связи с хранилищами данных достаточно популярна у разработчиков, благодаря своей универсальности – базовый набор интерфейсов OLE DB реализован во всех актуальных на сегодняшний день операционных системах семейства Windows. Как следствие, после корректного указания провайдера соединения ADO, приложению будет обеспечен доступ к данным. Этим также достигается гибкость данного программного решения – его можно перенести на любое рабочее место, где обеспечен доступ к указанной базе данных и установленна ADO.


В рабочей области Delphi создана отдельная вкладка ADO, в которой находится набор компонентов, при помощи которых можно создать полноценные приложения БД, обращающиеся к данным через данную технологию.

Технология ADO обеспечивает универсальный доступ к хранилищам (источникам) данных из приложений БД. Такую возможность предоставляют функции набора интерфейсов, созданные на основе общей модели объектов СОМ и описанные в спецификации OLE DB.

Технология ADO и интерфейсы OLE DB обеспечивают для приложений единый способ доступа к хранилищам (источникам) данных разных типов. То есть, приложение, использующее в своей работе ADO может использовать в качестве источника любое хранилище, поддерживающее ADO, будь это локальная СУБД или серверная, или даже электронные таблицы. Запрос SQL, направленный любому источнику данных через ADO, будет выполнен.

OLE DB по сути представляет собой набор специализированных объектов СОМ, инкапсулирующих стандартные функции обработки данных, и специализированные функции конкретных источников данных и интерфейсов, обеспечивающих передачу данных между объектами.

Согласно терминологии ADO, любой источник данных (база данных, электронная таблица, файл) называется хранилищем данных, с которым при помощи провайдера данных взаимодействует приложение. Минимальный набор компонентов приложения может включать объект соединения, объект набора данных, объект процессора запросов.

В результате приложение обращается не прямо к источнику данных, а к объекту OLE DB, который "умеет" представить данные (например, из файла электронной почты) в виде таблицы БД или результата выполнения запроса SQL.

Технология ADO в целом включает в себя не только сами объекты OLE DB, но и механизмы, обеспечивающие взаимодействие объектов с данными и приложениями. На этом уровне важнейшую роль играют провайдеры ADO, координирующие работу приложений с хранилищами данных различных типов.

Такая архитектура позволяет сделать набор объектов и интерфейсов открытым и расширяемым. Набор объектов и соответствующий провайдер может быть создан для любого хранилища данных без внесения изменений в исходную структуру ADO. При этом существенно расширяется само понятие данных – ведь можно разработать набор объектов и интерфейсов и для нетрадиционных табличных данных. Например, это могут быть графические данные геоинформационных систем, древовидные структуры из системных реестров, данные CASE-инструментов и т. д.

Так как технология ADO основана на стандартных интерфейсах СОМ, которые являются системным механизмом Windows, это сокращает общий объем работающего программного кода и позволяет распространять приложения БД без вспомогательных программ и библиотек.


Форма работы со справочниками системы работают напрямую с таблицами базы данных, поэтому для их работы используется компонент Adotable. Данный компонент представляет собой виртуальную копию таблицы базы данных, изменения в которой сразу передаются в связанную таблицу БД.

Для работы с заказами, а также их изменения используется компонент AdoQuery. Данный компонент предназначен для отправки запросов к базе данных и обработки ответов на них. В приложении используются 3 вида запросов:

  • запросы на выборку;
  • запросы на добавление данных;
  • запросы на обновление данных.

Для получения практически любых данных любого количества таблиц базы данных используется оператор запроса SELECT.

Этот оператор выбирает записи из базы данных и имеет самую сложную структуру, по сравнению с другими операторами языка SQL. Данный оператор позволяет не только выбирать записи из базы данных, удовлетворяющие заданному условию, но также и настраивать параметры отображения этих записей, таких как сортировка и группировка. А использование агрегатных функций позволяет подсчитывать необходимые данные.

Для обновления данных, хранящихся в базе данных используется оператор UPDATE, для добавления новых – оператор INSERT.

Следует отметить, что технология ADO позволяет писать запрос в объекте AdoQuery на классическом языке SQL, без учета особенностей СУБД, используемой в качестве хранилища данных. Это является значимым преимуществом, т.к. позволяет легко переводить программные средства с одной СУБД на другую, в зависимости от условий эксплуатации и требований к ней.

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

Исходный код всех процедур с комментариями представлен в приложении.

2.8. Контрольный пример реализации проекта и его описание.

При запуске программы происходит открытие формы авторизации, в которую пользователь должен ввести свои логин и пароль (Рисунок 15).

Рисунок 15. Форма авторизации

Если авторизация пройдена успешно, будет отрыто главное окно программы, в котором в виде таблицы представлены все добавленные заказы поставщиков (Рисунок 16).


Рисунок 16. Главная форма со списком заказов

Доступность всех функций программы достигается при помощи главного меню (Рисунок 17).

Рисунок 17. Главное меню

Для добавления нового заказа пользователь должен выбрать пункт меню «Новый заказ», после чего откроется форма добавления заказа (Рисунок 18).

Рисунок 18. Форма добавления заказа

Для открытия формы работы с заказом необходимо дважды щелкнуть по нему в списке заказов на главной форме. Откроется форма работы с заказом, на которой напротив всех товаров нужно проставить фактически принятое количество заказа. Если это количество отличается от заказанного у поставщика, то необходимо вписать комментарий. После того, как по каждому товару будет прописано количество фактически принятого, нужно нажать на кнопку «Принять заказ», станут активными кнопки формирования акта приемки и акта о расхождении.

Рисунок 19. Форма работы с заказом

Форма работы со всеми справочниками имеет общий вид: большую часть формы занимает таблица с записями справочника, а над ней расположены кнопки для открытия формы добавления или изменения записи, либо удаления записи их справочника (Рисунок 20).

Рисунок 20. Форма работы со справочником

ЗАКЛЮЧЕНИЕ

В ходе проделанной работы были решены следующие задачи:

  • выполнен анализ текущей организации бизнес-процесса приходования товаров на складе компании «АвтоVIPЦентр», были выделены основные этапы выполнения бизнес-процесса, изучен возникающий документооборот;
  • выбрано проектное решение по информационному и программному обеспечению, средой разработки являлась Delphi 7, в роли СУБД выступил Microsoft SQL Server;
  • построена информационная модель информационной системы, отображающая пути преобразования входной информации в выходную;
  • выполнено построение базы данных и программных модулей, осуществляющих функционирование ИС;
  • произведение описание контрольного примера реализации проекта.

СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ

  • Туманов В.Е. Основы проектирования реляционных баз данных. М.: Бином, 2016. – 420 с.
  • Белов В.В. Проектирование информационных систем: учебник для студентов учреждений высшего профессионального образования. – М.: Издательский центр «Академия», 2013. – 352 с.
  • Грекул В.И., Коровкина Н.Л., Левочкина Г.А. Проектирование информационных систем: учебник и практикум для академического бакалавриата. – М: Издательство Юрайт, 2012. – 154 c.
  • Кузан Д. Я. Программирование Win32 API в Delphi. – СПб.: BHV, 2013 – 368 с.
  • Понамарев В.А. Базы данных в Delphi 7. Самоучитель. – СПб.: Питер – М., 2015 – 224 с.
  • Карпова И.П. Базы данных: Учебное пособие. – Спб.: Питер, 2013. – 240 с.
  • Кузин А.В., Левонисова С.В. Базы данных: Учебное пособие для студ. высш. учеб. заведений. – М.: ИЦ Академия, 2012. – 320с.
  • Бобровский С.И. Delphi 7. Учебный курс. – СПб.: Питер – М., 2018 – 736 с.
  • Чистов Д.В., Мельников П.П., Золотарюк А.В., Ничепорук Н.Б. Проектирование информационных систем: учебник и практикум для академического бакалавриата / под общ. ред. Д.В. Чистова. – М: Издательство Юрайт, 2018. – 258 c.

ПРИЛОЖЕНИЯ

unit Main;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Frms,

Dialogs, Menus, DB, ADODB, StdCtrls, Buttons, Grids, DBGrids, comobj,

ExtCtrls;

type

TFrm1 = class(TFrm)

MainMenu1: TMainMenu;

W1: TMenuItem;

W2: TMenuItem;

W3: TMenuItem;

ADOConnection1: TADOConnection;

DBGrid1: TDBGrid;

Label1: TLabel;

Edt1: TEdt;

BitBtn1: TBitBtn;

GroupBox1: TGroupBox;

GroupBox2: TGroupBox;

DBGrid2: TDBGrid;

Label2: TLabel;

Edt2: TEdt;

BitBtn2: TBitBtn;

Adotbl1: TAdotbl;

Adotbl1Id: TAutoIncField;

Adotbl1FIO: TWideStringField;

Adotbl1Phone: TWideStringField;

Adotbl1Address: TWideStringField;

Adotbl1Passport: TWideStringField;

DataSource1: TDataSource;

DataSource2: TDataSource;

Adotbl2: TAdotbl;

Adotbl2id: TAutoIncField;

Adotbl2caption: TWideStringField;

Adotbl2path: TWideStringField;

PopupMenu1: TPopupMenu;

W4: TMenuItem;

W5: TMenuItem;

W6: TMenuItem;

W7: TMenuItem;

PopupMenu2: TPopupMenu;

W8: TMenuItem;

ADOQuery1: TADOQuery;

W9: TMenuItem;

W10: TMenuItem;

BitBtn3: TBitBtn;

Panel1: TPanel;

Panel2: TPanel;

Panel3: TPanel;

Panel4: TPanel;

Panel5: TPanel;

Panel6: TPanel;

Panel7: TPanel;

produre W3Click(Send: TObject);

produre BitBtn1Click(Send: TObject);

produre BitBtn2Click(Send: TObject);

produre FrmShow(Send: TObject);

produre Edt1Change(Send: TObject);

produre W7Click(Send: TObject);

produre W8Click(Send: TObject);

produre W5Click(Send: TObject);

produre W6Click(Send: TObject);

produre W4Click(Send: TObject);

produre W2Click(Send: TObject);

produre FrmResize(Send: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Frm1: TFrm1;

implementation

uses shabl;

{$R *.dfm}

produre TFrm1.W3Click(Send: TObject);

begin

frm1.Close;

end;

produre TFrm1.BitBtn1Click(Send: TObject);

begin

Edt1.Clear;

Edt1.SetFocus;

end;

produre TFrm1.BitBtn2Click(Send: TObject);

begin

Edt2.Clear;

Edt2.SetFocus;

end;

produre TFrm1.FrmShow(Send: TObject);

begin

Adotbl1.open;

Adotbl1.Sort:='NAME ASC';

DbGrid1.Collums[0].Width:=ROUND(DbGrid1.Width*0.75);

DbGrid1.Collums[1].Width:=ROUND(DbGrid1.Width*0.35);

Adotbl2.open;

Adotbl2.Sort:='caption ASC';

DbGrid2.Collums[0].Width:=ROUND(DbGrid2.Width*0.75);

DbGrid2.Collums[1].Width:=ROUND(DbGrid2.Width*0.35);

end;

produre TFrm1.Edt1Change(Send: TObject);

begin

if Edt1.text<>'' then

begin

DbGrid1.DataSource.DataSet.Filtered:=false;

DbGrid1.DataSource.DataSet.Filter:='NAME like %'+Edt1.Text+'%';

DbGrid1.DataSource.DataSet.Filtered:=true;

end

else

begin

DbGrid1.DataSource.DataSet.Filtered:=false;

DbGrid1.DataSource.DataSet.Filter:='';

end;

end;

produre TFrm1.W7Click(Send: TObject);

begin

Dbgrid2.DataSource.DataSet.Close;

DbGrid2.DataSource.DataSet.open;

Adotbl2.Sort:='caption ASC';

DbGrid2.Collums[0].Width:=ROUND(DbGrid2.Width*0.75);

DbGrid2.Collums[1].Width:=ROUND(DbGrid2.Width*0.35);

end;

produre TFrm1.W8Click(Send: TObject);

begin

Dbgrid1.DataSource.DataSet.Close;

DbGrid1.DataSource.DataSet.open;

Adotbl1.Sort:='NAME ASC';

DbGrid1.Collums[0].Width:=ROUND(DbGrid1.Width*0.75);

DbGrid1.Collums[1].Width:=ROUND(DbGrid1.Width*0.35);

end;

produre TFrm1.W5Click(Send: TObject);

begin

if not DbGrid1.DataSource.DataSet.FieldByName('id').IsNull then

begin

Frm2.Edt1.Text:=DbGrid2.DataSource.DataSet.FieldByName('caption').AsString;

Frm2.Edt2.Text:=DbGrid2.DataSource.DataSet.FieldByName('path').AsString;

Frm2.Caption:='Редактирование шаблона';

Frm2.Label3.Caption:= DbGrid2.DataSource.DataSet.FieldByName('id').AsString;