Файл: Проектирование информационной системы по взаимодействию с поставщиками.pdf
Добавлен: 28.03.2023
Просмотров: 238
Скачиваний: 6
Работа в системе начинается с главного окна, которое содержит таблицу заказов и таблицу заказанного МТО. На рисунке 10 представлено окно работы со справочником статусов заказов. Для открытия данного окна в главном меню требуется выбрать пункт справочники и выбрать тип – «статусы». Для редактирования записи в справочнике требуется вызвать контекстное меню таблицы статусов и выбрать один из пунктов. Данные можно сохранить или отменить изменения в базе.
Рисунок 10 – Окно справочника категорий
Далее, добавим данные о поставщиках. В главном меню выбираем пункт «поставщики и МТО». Выбираем подпункт «поставщики». Откроется окно таблицы поставщиков – рисунок 11.
Рисунок 11 – Окно таблицы поставщиков
Можно вызвать окно редактирования записи о поставщике через контекстное меню таблицы поставщиков – рисунок 12.
Рисунок 12 – Окна редактирования записи о поставщике
Для работы с МТО, требуется в главном меню выбрать пункт «поставщики и МТО» и выбрать «МТО». Откроется окно таблицы МТО, которое представлено на рисунке 13. Для редактирования записи об МТО, требуется вызвать контекстное меню таблицы МТО.
Рисунок 13 – Окно таблицы МТО
Для редактирования данных о поставляемом МТО требуется в контекстном окне таблицы МТО выбрать пункт «поставляемое МТО». Окно представлено на рисунке 14.
Рисунок 14 – Окно поставляемого МТО
Для редактирования данных о требованиях на МТО требуется в контекстном окне таблицы МТО выбрать пункт «требования МТО». Окно представлено на рисунке 15.
Рисунок 15 – Окно требований на МТО
На рисунке 16 представлено главное окно системы. Откуда доступно ведение заказов. На рисунке 17 представлено окно редактирования записи о заказе. На рисунке 18 представлено окно редактирования записи о заказанном МТО.
Рисунок 16 – Главное окно
Рисунок 17 – Окно работы о записи заказа
Рисунок 18 – Окно работы о записи заказанного МТО
Специалисту по снабжению доступно формирование отчётов:
- отчёт о требованиях МТО
- отчёт о заказах по статусу за период;
- отчёт о поставщике.
На рисунках 19 – 21 представлены примеры сформированных отчётов.
Рисунок 19 – Приме отчёта о требованиях МТО
Рисунок 20 – Пример отчёта о заказах по статусу за период
Рисунок 21 – Пример отчёта о поставщике
Разработанное приложение позволяет управлять данными в базе и выводить отчёты, необходимые в работе. В приложении представлен текст программы.
Заключение
В работе стояла задача автоматизации управления закупками и поставщиками. Была составлена SADT-модель процесса управления поставками и поставщиками. Выявлены проблемы в данном процессе в базовом варианте:
- долгий поиск информации о заказах и поставщиках;
- сложность отслеживания требований на МТО;
- сложность ведения списков поставляемого МТО;
- сложность определения надёжности заказчика.
В ходе работы с темой были изучены следующие системы: «ЛотЭксперт SRM»; «iTender SRM»; «APS SMART».
Выявлены следующие функциональные требования:
- учёт МТО;
- учёт поставщиков;
- учёт требований на МТО;
- учёт поставляемого МТО;
- ведение заказов и заказанного МТО;
- ведение справочной информации;
- формирование отчётов.
Определено информационное обеспечение задачи. Построена логическая модель БД. Спроектирована физическая модель БД, определены таблицы БД:
- поставщик;
- МТО;
- требование;
- поставляемое;
- заказ;
- заказанное;
- категория;
- бренд;
- статус.
Был спроектирован сценарий диалога. Определены программные модули ИС.
Проведено тестирования ИС. Составлен контрольный пример работы в ИС. Система соответствует поставленным требованиям.
Список использованной литературы
- Амбалова З.А. Сравнение методологий разработки интеллектуальных систем в сфере управления комплексными проектами // В сб.: Инно-вационные механизмы решения проблем научного развития сборник статей по итогам Международной научно-практической конференции. 2017. С. 139-141.
- Буренин А.Н., Легков К.Е., Нестеренко О.Е. Методический подход к организации обработки оперативной информации распределенными вычислительными комплексами специального назначения // Наукоемкие технологии в космических исследованиях Земли. 2016. Т. 8. № 6. С. 18-30.
- Вендров А.М. CASE – технологии. Современные методы и средства проектирования информационных систем – М.: Финансы и статистика, 2017 г. - 230 с.
- Галас В.П. Вычислительные системы, сети и телекоммуникации. Часть 2. Сети и телекоммуникации. Учебник. В 2 ч. – Владимир: Изд-во ВлГУ, 2017. – 284 с.
- Грекул В.И. Проектирование информационных систем / Грекул В.И., Денищенко Г.Н., Коровкина Н.Л. – М.: Интернет-университет информационных технологий, 2018 г. - 321 с.
- Добжинская М.А. Обзор существующих систем электронного документооборота // Научное сообщество студентов XXI столетия. Технические науки: сб. ст. по мат. XLIII междунар. студ. науч.-практ. конф. № 6(42). [Электронный ресурс]. – URL: https://sibac.info/archive/technic/6(42).pdf (дата обращения: 04.06.2020)
- Дубейковский В.И. Эффективное моделирование с CA ErwinProcessModeler (BPwin; AllfusionProcessModeler). 2-е изд., исправлен-ное и дополненное / В.И. Дубейковский. – М.: Диалог-МИФИ, 2015. – 384 с.
- Дунаев В.В. Базы данных. Язык SQL для студента – М.: БХВ, 2015. – 196 с.
- Иришкова К.Д., Найдис О.А. Исследование вариантов разработки и дальнейшей поддержки автоматизированных систем обработки информации // АНИ: экономика и управление. 2018. №1 (22). URL: https://cyberleninka.ru/article/n/issledovanie-variantov-razrabotki-i-dalneyshey-podderzhki-avtomatizirovannyh-sistem-obrabotki-informatsii (дата обращения: 03.06.2020).
- Кириллов В.В. Введение в реляционные базы данных. Введение в реляционные базы данных / В.В. Кириллов, Г.Ю. Громов - СПб.: БХВ-Петербург, 2015 г. - 464 c.
- Коваленко В. Проектирование информационных систем. - М.: Форум, 2018. - 320с.
- Культин Н.Б. Основы программирования в Embarcadero / Н.Б. Культин - СПб.:БХВ-Петербург, 2015. - 416с.
- Култыгин О.П. Администрирование баз данных. СУБД MS SQL Server – М: Московская финансово-промышленная академия, 2016. – 232 с.
- Липин Ю.Н. Разработка ПО (Delphi) – М.: LAP Publishing, 2017. – 300 с.
- Пирогов В.Ю. Некоторые особенности преподавания языка управления базами данных // Мир науки. – 2018. Т.6. №6. С.55.
- Стафиевская М.В., Петрова В.О. Моделирование бизнес-процессов как инструмент повышения эффективности деятельности организаций // Вестник Марийского государственного университета. Серия: Сельскохозяйственные науки. Экономические науки. 2018. № 2 (14). С. 126-134.
Исходный код приложения
unit uMain;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Data.DB, Vcl.StdCtrls, Vcl.Buttons,
Vcl.Menus, Vcl.DBCtrls, Vcl.Grids, Vcl.DBGrids, Vcl.ExtCtrls;
type
TfrmMain = class(TForm)
mm: TMainMenu;
miMain: TMenuItem;
miLibrary: TMenuItem;
miReport: TMenuItem;
miSettings: TMenuItem;
miPostavshiki: TMenuItem;
miMTO: TMenuItem;
miClose: TMenuItem;
miBlank: TMenuItem;
miCategory: TMenuItem;
miBrand: TMenuItem;
miStatus: TMenuItem;
miReport0: TMenuItem;
miReport1: TMenuItem;
miReport2: TMenuItem;
miLinking: TMenuItem;
pnlFilter: TPanel;
pnlMain: TPanel;
pnlSub: TPanel;
grdMain: TDBGrid;
grdSub: TDBGrid;
cbStatus: TDBLookupComboBox;
cbPostavshik: TDBLookupComboBox;
Label1: TLabel;
Label2: TLabel;
pmMain: TPopupMenu;
pmSub: TPopupMenu;
btnSearch: TBitBtn;
btnCancel: TBitBtn;
miAddMain: TMenuItem;
miEditMain: TMenuItem;
miDeleteMain: TMenuItem;
miAddSub: TMenuItem;
miEditSub: TMenuItem;
miDeleteSub: TMenuItem;
procedure miLinkingClick(Sender: TObject);
procedure miCloseClick(Sender: TObject);
procedure miAddSubClick(Sender: TObject);
procedure miEditSubClick(Sender: TObject);
procedure miDeleteSubClick(Sender: TObject);
procedure pmSubPopup(Sender: TObject);
procedure pmMainPopup(Sender: TObject);
procedure miReportClick(Sender: TObject);
procedure miMTOClick(Sender: TObject);
procedure miDeleteMainClick(Sender: TObject);
procedure btnSearchClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure miAddMainClick(Sender: TObject);
procedure miEditMainClick(Sender: TObject);
procedure miPostavshikiClick(Sender: TObject);
procedure miStatusClick(Sender: TObject);
procedure miBrandClick(Sender: TObject);
procedure miCategoryClick(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmMain: TfrmMain;
implementation
{$R *.dfm}
uses
uDM, uZakazano, uMTO, uReport, uZakaz, uPostavshik, uStatus, uBrand, uCategory;
procedure TfrmMain.btnCancelClick(Sender: TObject);
begin
DM.tblStatus.First;
DM.tblStatus.Last;
DM.tblPostavshik.First;
DM.tblPostavshik.Last;
grdMain.DataSource.DataSet.Filtered:=false;
grdMain.DataSource.DataSet.Filter:='';
grdMain.DataSource.DataSet.Filtered:=true;
end;
procedure TfrmMain.btnSearchClick(Sender: TObject);
var
str: string;
begin
str:='';
if cbStatus.Text<>'' then
str:='([Код_статуса]='+DM.tblStatus.FieldByName('Код_статуса').AsString+')';
if cbPostavshik.Text<>'' then
if str<>'' then str:='('+str+') and ([Код_поставщика]='+DM.tblPostavshik.FieldByName('Код_поставщика').AsString+')'
else str:='([Код_поставщика]='+DM.tblPostavshik.FieldByName('Код_поставщика').AsString+')';
grdMain.DataSource.DataSet.Filtered:=false;
grdMain.DataSource.DataSet.Filter:=str;
grdMain.DataSource.DataSet.Filtered:=true;
end;
procedure TfrmMain.FormShow(Sender: TObject);
begin
btnCancel.Click;
end;
procedure TfrmMain.miAddMainClick(Sender: TObject);
var
frm: TfrmZakaz;
begin
Application.CreateForm(TfrmZakaz,frm);
frm.Tag:=0;
DM.tblZakaz.Append;
frm.ShowModal;
frm.Free;
end;
procedure TfrmMain.miAddSubClick(Sender: TObject);
var
frm: TfrmZakazano;
begin
Application.CreateForm(TfrmZakazano, frm);
frm.Tag:=0;
DM.tblZakazano.Append;
frm.ShowModal;
if frm.ModalResult=mrOk then DM.CalcSum;
frm.Free;
end;
procedure TfrmMain.miBrandClick(Sender: TObject);
var
frm: TfrmBrand;
begin
Application.CreateForm(TfrmBrand, frm);
frm.ShowModal;
frm.Free;
end;
procedure TfrmMain.miCategoryClick(Sender: TObject);
var
frm: TfrmCategory;
begin
Application.CreateForm(TfrmCategory, frm);
frm.ShowModal;
frm.Free;
end;
procedure TfrmMain.miCloseClick(Sender: TObject);
begin
Application.Terminate;
end;
procedure TfrmMain.miDeleteMainClick(Sender: TObject);
begin
if MessageDlg('Вы действительно хотите удалить запись?',mtWarning,mbOkCancel,0)=mrOk then
grdMain.DataSource.DataSet.Delete;
end;
procedure TfrmMain.miDeleteSubClick(Sender: TObject);
begin
if MessageDlg('Вы действительно хотите удалить запись?',mtWarning,mbOkCancel,0)=mrOk then
begin
grdSub.DataSource.DataSet.Delete;
DM.CalcSum;
end;
end;
procedure TfrmMain.miEditMainClick(Sender: TObject);
var
frm: TfrmZakaz;
begin
Application.CreateForm(TfrmZakaz,frm);
frm.Tag:=1;
DM.tblZakaz.Edit;
frm.ShowModal;
frm.Free;
end;
procedure TfrmMain.miEditSubClick(Sender: TObject);
var
frm: TfrmZakazano;
begin
Application.CreateForm(TfrmZakazano, frm);
frm.Tag:=1;
DM.tblZakazano.Edit;
frm.ShowModal;
if frm.ModalResult=mrOk then DM.CalcSum;
frm.Free;
end;
procedure TfrmMain.miLinkingClick(Sender: TObject);
begin
DM.LinkedBase;
end;
procedure TfrmMain.miMTOClick(Sender: TObject);
var
frm: TfrmMTO;
begin
Application.CreateForm(TfrmMTO, frm);
frm.ShowModal;
frm.Free;
end;
procedure TfrmMain.miPostavshikiClick(Sender: TObject);
var
frm: TfrmPostavshik;
begin
Application.CreateForm(TfrmPostavshik, frm);
frm.ShowModal;
frm.Free;
end;
procedure TfrmMain.miReportClick(Sender: TObject);
var
frm: TfrmReport;
begin
Application.CreateForm(TfrmReport, frm);
frm.Tag:=(Sender as TMenuItem).Tag;
frm.ShowModal;
frm.Free;
end;
procedure TfrmMain.miStatusClick(Sender: TObject);
var
frm: TfrmStatus;
begin
Application.CreateForm(TfrmStatus, frm);
frm.ShowModal;
frm.Free;
end;
procedure TfrmMain.pmMainPopup(Sender: TObject);
begin
miEditMain.Visible:=grdMain.DataSource.DataSet.RecordCount>0;
miDeleteMain.Visible:=grdMain.DataSource.DataSet.RecordCount>0;
end;
procedure TfrmMain.pmSubPopup(Sender: TObject);
begin
miAddSub.Visible:=grdMain.DataSource.DataSet.RecordCount>0;
miEditSub.Visible:=grdSub.DataSource.DataSet.RecordCount>0;
miDeleteSub.Visible:=grdSub.DataSource.DataSet.RecordCount>0;
end;
end.
unit uZakazano;
interface
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Mask, Vcl.DBCtrls,
Vcl.Buttons, Vcl.ExtCtrls;
type
TfrmZakazano = class(TForm)
pnlMain: TPanel;
pnlButton: TPanel;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
btnSave: TBitBtn;
btnCancel: TBitBtn;
btnSelect: TBitBtn;
txtNameMTO: TDBText;
edtPrice: TDBEdit;
edtCnt: TDBEdit;
procedure btnSelectClick(Sender: TObject);
procedure btnSaveClick(Sender: TObject);
procedure btnCancelClick(Sender: TObject);
procedure FormShow(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmZakazano: TfrmZakazano;
implementation
{$R *.dfm}
uses
uDM, uSelectMTO;
procedure TfrmZakazano.btnCancelClick(Sender: TObject);
begin
DM.tblZakazano.Cancel;
ModalResult:=mrCancel;
end;
procedure TfrmZakazano.btnSaveClick(Sender: TObject);
begin
DM.tblZakazano.Post;
ModalResult:=mrOk;
end;
procedure TfrmZakazano.btnSelectClick(Sender: TObject);
var
frm: TfrmSelectMTO;
begin
Application.CreateForm(TfrmSelectMTO, frm);