Файл: Проектирование реализации операций бизнес-процесса (Анализ и изучение конкуренции).pdf
Добавлен: 14.03.2024
Просмотров: 48
Скачиваний: 0
СОДЕРЖАНИЕ
1.1. Выбор комплекса задач автоматизации.
1.2. Характеристика существующих бизнес-процессов.
1.3. Характеристика документооборота, возникающего при решении задачи.
1.4. Обоснование проектных решений по информационному обеспечению.
1.5. Обоснование проектных решений по программному обеспечению.
2.1. Информационная модель и её описание.
2.2. Характеристика нормативно-справочной, входной и оперативной информации.
2.3. Характеристика результатной информации.
OLE DB по сути представляет собой набор специализированных объектов СОМ, инкапсулирующих стандартные функции обработки данных, и специализированные функции конкретных источников данных и интерфейсов, обеспечивающих передачу данных между объектами.
Согласно терминологии ADO, любой источник данных (база данных, электронная таблица, файл) называется хранилищем данных, с которым при помощи провайдера данных взаимодействует приложение. Минимальный набор компонентов приложения может включать объект соединения, объект набора данных, объект процессора запросов.
В результате приложение обращается не прямо к источнику данных, а к объекту OLE DB, который "умеет" представить данные (например, из файла электронной почты) в виде таблицы БД или результата выполнения запроса SQL.
Технология ADO в целом включает в себя не только сами объекты OLE DB, но и механизмы, обеспечивающие взаимодействие объектов с данными и приложениями. На этом уровне важнейшую роль играют провайдеры ADO, координирующие работу приложений с хранилищами данных различных типов.
Такая архитектура позволяет сделать набор объектов и интерфейсов открытым и расширяемым. Набор объектов и соответствующий провайдер может быть создан для любого хранилища данных без внесения изменений в исходную структуру ADO. При этом существенно расширяется само понятие данных – ведь можно разработать набор объектов и интерфейсов и для нетрадиционных табличных данных. Например, это могут быть графические данные геоинформационных систем, древовидные структуры из системных реестров, данные CASE-инструментов и т. д.
Так как технология ADO основана на стандартных интерфейсах СОМ, которые являются системным механизмом Windows, это сокращает общий объем работающего программного кода и позволяет распространять приложения БД без вспомогательных программ и библиотек.
Таблицы, расположенные на формах работы со справочниками системы работают напрямую с таблицами базы данных, поэтому для их работы используется компонент Adotable. Данный компонент представляет собой виртуальную копию таблицы базы данных, изменения в которой сразу передаются в связанную таблицу БД.
Для формирования отчета и выходных документов, а также ввода данных о конкурентах и их акциях используется компонент AdoQuery. Данный компонент предназначен для отправки запросов к базе данных и обработки ответов на них. В приложении используются 3 вида запросов:
- Запросы на выборку;
- Запросы на добавление данных;
- Запросы на обновление данных.
Для получения практически любых данных любого количества таблиц базы данных используется оператор запроса SELECT.
Этот оператор выбирает записи из базы данных и имеет самую сложную структуру, по сравнению с другими операторами языка SQL. Данный оператор позволяет не только выбирать записи из базы данных, удовлетворяющие заданному условию, но также и настраивать параметры отображения этих записей, таких как сортировка и группировка. А использование агрегатных функций позволяет подсчитывать необходимые данные.
Для обновления данных, хранящихся в базе данных используется оператор UPDATE, для добавления новых – оператор INSERT.
Следует отметить, что технология ADO позволяет писать запрос в объекте AdoQuery на классическом языке SQL, без учета особенностей СУБД, используемой в качестве хранилища данных. Это является значимым преимуществом, т.к. позволяет легко переводить программные средства с одной СУБД на другую, в зависимости от условий эксплуатации и требований к ней.
Программные модули состоят из процедур, которые обрабатывают различные действия пользователя (нажатия на кнопки, ввод текста в поля и т.д.) нужным образом. На рисунке 15 представлена блок-схема алгоритма авторизации пользователей в системе.
Рисунок 15 – Блок-схема алгоритма авторизации пользователя
Остальные процедуры в программном коде имеют аналогичную простую структуру, поэтому подробно они рассмотрены не будут. Исходный код всех процедур с комментариями представлен в приложении.
2.8. Контрольный пример реализации проекта и его описание.
После запуска программы открывается форма авторизации (Рисунок 16).
Рисунок 16. Форма авторизации
В окне пользователю необходимо выбрать свои ФИО в выпадающем списке, а затем ввести пароль. Если пароль указан верно, то откроется главное окно программы. Единственным активным элементом главного окна является меню, расположенное в верхней части окна. С помощью данного меню осуществляется доступ к формам, предназначенным для выполнения тех или иных функций (Рисунок 17).
Рисунок 17. Главное меню
При выборе пункта меню конкуренты открывается список конкурентов в виде таблицы (Рисунок 18).
Рисунок 18. Список конкурентов
Добавление нового конкурента осуществляется с помощью формы, вызываемой нажатием на соответствующую кнопку. Форма добавления конкурента изображена на рисунке 19.
Рисунок 19. Форма добавления конкурента
Работа с данными конкурента осуществляется с помощью другой формы, которая открывается при нажатии на кнопку «Изменить» на форме со списком конкурентов. Форма работы с конкурентом состоит из трех разделов: общие данные, список акций, список возможностей конкурента (Рисунок 20).
Рисунок 20. Форма работы с конкурентом
Работа со всеми справочниками строится по одинаковому типу: при переходе в раздел работы со справочником открывается список записей справочника, с данной страницы можно открыть форму добавления новой записи, либо редактирования добавленной ранее.
ЗАКЛЮЧЕНИЕ
В ходе проделанной работы были решены следующие задачи:
- Была проанализирована текущая организация бизнес-процесса анализа и изучения конкуренции в компании «Пицца-LIVE», были выделены основные этапы выполнения бизнес-процесса, изучен возникающий документооборот;
- Были выбраны и обоснованы проектные решения по информационному и программному обеспечению;
- Была составлена информационная модель информационной системы;
- Была разработана база данных и программные модули, реализующие работу ИС.
- Был описан контрольный пример реализации проекта.
Таким образом, все задачи, поставленные перед данным курсовым проектом выполнены, а значит и основная цель достигнута.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
- ГОСТ 2.105 – 95. Общие требования к текстовым документам.
- ГОСТ 7.32 – 2001. Отчет по научно-исследовательской работе. Структура и правила оформления.
- ГОСТ 7.82-2001. Библиографическое описание электронных ресурсов.
- ГОСТ 24.702-85 Эффективность автоматизированных систем управления.
- ГОСТ Р 7.0.5-2008. Библиографическая запись. Библиографическое описание.
- Агальцов В.П. Базы данных. В 2-х т. Т. 2. Распределенные и удаленные базы данных: Учебник. М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2013. 272 с.
- Гагарина Л.Г. Разработка и эксплуатация автоматизированных информационных систем: учебное пособие. М.: ИД «ФОРУМ»: ИНФРА-М, 2013. 384 с.
- Горбаченко В.И., Убиенных Г.Ф. Бобрышева Г.В. Проектирование информационных систем с СА Erwin Modeling Suite 7.3. Пенза: Изд-во ПГУ, 2012, 154 c.
- Зуев Е.А. Программирование на языке Delphi 6.0,7.0. – М.: Радио и связь, Веста, 2016. - 186 с.
- Калмыков Ю.В. Учебно-методичское пособие по обучению программированию на языке Delphi для школ, 2014. – 100 с.
- Карпова И.П. Базы данных: Учебное пособие. – Спб.: Питер, 2013. – 240 с.
- Кузин А.В., Левонисова С.В. Базы данных: Учебное пособие для студ. высш. учеб. заведений. – М.: ИЦ Академия, 2012. – 320с.
- Культин Никита – Основы программирования в Delphi, 2015 – 232 с.
- Маклаков С. В. Моделирование бизнес-процессов с AllFusion Process Modeler (BPwin 4.1) / С.В. Маклаков. – М. : ДИАЛОГ-МИФИ, 2013. – 340 c.
- Маклаков С.В. Создание информационных систем с AllFusion Modeling Suite / С.В. Маклаков. – М. : ДИАЛОГ-МИФИ, 2015. – 512 c.
- Тельнова, Ю.Ф. Проектирование экономических информационных систем: учеб. / под ред. Ю. Ф. Тельнова. М. : Горячая линия, 2015 — 345 c.
- Фуфаев Д.Э. Фуфаев Э.В. Разработка и эксплуатация автоматизированных информационных систем: учебник дя студ. М.: Издательский центр «Академия», 2013. 304 с.
- Шаньгин В.Ф. Информационная безопасность компьютерных системы и сетей: Учебное пособие. М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2013. 416 с.
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;
N1: TMenuItem;
N2: TMenuItem;
N3: 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;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
PopupMenu2: TPopupMenu;
N8: TMenuItem;
ADOQuery1: TADOQuery;
N9: TMenuItem;
N10: TMenuItem;
BitBtn3: TBitBtn;
Panel1: TPanel;
Panel2: TPanel;
Panel3: TPanel;
Panel4: TPanel;
Panel5: TPanel;
Panel6: TPanel;
Panel7: TPanel;
produre N3Click(Send: TObject);
produre BitBtn1Click(Send: TObject);
produre BitBtn2Click(Send: TObject);
produre FrmShow(Send: TObject);
produre Edt1Change(Send: TObject);
produre N7Click(Send: TObject);
produre N8Click(Send: TObject);
produre N5Click(Send: TObject);
produre N6Click(Send: TObject);
produre N4Click(Send: TObject);
produre N2Click(Send: TObject);
produre FrmResize(Send: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm1: TFrm1;
implementation
uses shabl;
{$R *.dfm}
produre TFrm1.N3Click(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:='FIO ASC';
DbGrid1.Collums[0].Width:=ROUND(DbGrid1.Width*0.65);
DbGrid1.Collums[1].Width:=ROUND(DbGrid1.Width*0.25);
Adotbl2.open;
Adotbl2.Sort:='caption ASC';
DbGrid2.Collums[0].Width:=ROUND(DbGrid2.Width*0.65);
DbGrid2.Collums[1].Width:=ROUND(DbGrid2.Width*0.28);
end;
produre TFrm1.Edt1Change(Send: TObject);
begin
if Edt1.text<>'' then
begin
DbGrid1.DataSource.DataSet.Filtered:=false;
DbGrid1.DataSource.DataSet.Filter:='FIO like %'+Edt1.Text+'%';
DbGrid1.DataSource.DataSet.Filtered:=true;
end
else
begin
DbGrid1.DataSource.DataSet.Filtered:=false;
DbGrid1.DataSource.DataSet.Filter:='';
end;
end;
produre TFrm1.N7Click(Send: TObject);
begin
Dbgrid2.DataSource.DataSet.Close;
DbGrid2.DataSource.DataSet.open;
Adotbl2.Sort:='caption ASC';
DbGrid2.Collums[0].Width:=ROUND(DbGrid2.Width*0.65);
DbGrid2.Collums[1].Width:=ROUND(DbGrid2.Width*0.28);
end;
produre TFrm1.N8Click(Send: TObject);
begin
Dbgrid1.DataSource.DataSet.Close;
DbGrid1.DataSource.DataSet.open;
Adotbl1.Sort:='FIO ASC';
DbGrid1.Collums[0].Width:=ROUND(DbGrid1.Width*0.65);
DbGrid1.Collums[1].Width:=ROUND(DbGrid1.Width*0.25);
end;
produre TFrm1.N5Click(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;
Frm2.show;
end;
end;
produre TFrm1.N6Click(Send: TObject);
var
s: string;
begin
s := InputBox('Ввод данных','Необходимо указать название нового шаблона','');
if s<>'' then
begin
With AdoQuery1 do
begin
close;
SQL.Clear;
SQl.add('INSERT INTO shablon (caption) VALUES ( :caption )');
Parameters.ParamByName('caption').Value:=s;
EXECSQL;
end;
n7.Click;
end;
end;
produre TFrm1.N4Click(Send: TObject);
var
Word:Variant;
begin
if not DBGrid1.DataSource.DataSet.FieldByName('id').IsNull then
begin
if fileExists(ExtractFilePath(ParamStr(0))+'shablon\'+DbGrid2.DataSource.DataSet.FieldByName('path').AsString) then
begin
Word := CreateOleObject('Word.Application');
Word.Documents.Add(ExtractFilePath(ParamStr(0))+'shablon\'+DbGrid2.DataSource.DataSet.FieldByName('path').AsString);
Word.visible:=true;
end
else
begin
Showmessage(' Файл '+DbGrid2.DataSource.DataSet.FieldByName('path').AsString+' не найден в папке shablon.'+#10+#13+'Проверьте правильность названия файла и его наличие в указанной папке.');
end;
end;
end;
produre TFrm1.N2Click(Send: TObject);
begin
n7.Click;
n8.Click;
end;
produre TFrm1.FrmResize(Send: TObject);
begin
panel1.Width:=Round((frm1.Width-50)*0.5);
panel2.Width:=Round((frm1.Width-50)*0.5);
panel1.Width:=Round(frm1.Width*0.5);
BitBtn3.Left:=Round(panel5.Width*0.5)-Round(Bitbtn3.Width*0.5);
DbGrid2.Collums[0].Width:=ROUND(DbGrid2.Width*0.65);
DbGrid2.Collums[1].Width:=ROUND(DbGrid2.Width*0.26);
DbGrid1.Collums[0].Width:=ROUND(DbGrid1.Width*0.65);
DbGrid1.Collums[1].Width:=ROUND(DbGrid1.Width*0.26);
end;
end.
unit shabl;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Frms,
Dialogs, StdCtrls, Buttons, DB, ADODB, comobj;
type
TFrm2 = class(TFrm)
Label1: TLabel;
Label2: TLabel;
Edt1: TEdt;
BitBtn1: TBitBtn;
Edt2: TEdt;
BitBtn2: TBitBtn;
BitBtn3: TBitBtn;
BitBtn4: TBitBtn;
BitBtn5: TBitBtn;
OpenDialog1: TOpenDialog;
Label3: TLabel;
ADOQuery1: TADOQuery;
produre BitBtn3Click(Send: TObject);
produre Edt1Change(Send: TObject);
produre Edt2Change(Send: TObject);
produre BitBtn1Click(Send: TObject);
produre BitBtn2Click(Send: TObject);
produre FrmClose(Send: TObject; var Action: TCloseAction);
produre BitBtn4Click(Send: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Frm2: TFrm2;
implementation
Uses main;
{$R *.dfm}
produre TFrm2.BitBtn3Click(Send: TObject);
begin
Frm2.Close;
end;
produre TFrm2.Edt1Change(Send: TObject);
begin
if not (copy(caption,length(caption)-1,1) = '*') then caption:=caption+'*';
end;
produre TFrm2.Edt2Change(Send: TObject);
begin
if not (copy(caption,length(caption)-1,1) = '*') then caption:=caption+'*';
end;
produre TFrm2.BitBtn1Click(Send: TObject);
begin
openDialog1.InitialDir := GetCurrentDir;
if opendialog1.Execute then
begin
if FileExists(opendialog1.FileName) then
begin
Edt2.Text:=Opendialog1.FileName;
end;
end;
end;
produre TFrm2.BitBtn2Click(Send: TObject);
begin
if Edt1.text='' then begin showmessage('Имя шаблона не может быть пустым'); Edt1.SetFocus; exit; end;
if Edt2.text='' then begin showmessage('Необходимо выбрать файл'); BitBtn1.SetFocus; exit; end;
if not (FileExists(ExtractFilePath(ParamStr(0))+'shablon\'+Edt2.Text)) or (FileExists(Edt2.Text)) then begin showmessage('Указанный файл шаблона не найден'); BitBtn1.SetFocus; exit; end;
if OpenDialog1.filename='' then OpenDialog1.filename:=ExtractFilePath(ParamStr(0))+'shablon\'+Edt2.Text;
With AdoQuery1 do
begin
close;
SQl.clear;
SQL.add('UPDATE shablon SET caption = :caption, path = :path WHERE id = :id');