Файл: Проектирование реализации операций бизнес-процесса «Совершенствование существующих продуктов» (Обоснование проектных решений по программному обеспечению).pdf
Добавлен: 26.05.2023
Просмотров: 366
Скачиваний: 2
СОДЕРЖАНИЕ
1.1. Выбор комплекса задач автоматизации
1.2. Характеристика существующих бизнес – процессов
1.3. Характеристика документооборота, возникающего при решении задачи
1.4. Обоснование проектных решений по информационному обеспечению
1.5. Обоснование проектных решений по программному обеспечению
2.1. Информационная модель и её описание
2.2. Характеристика нормативно-справочной, входной и оперативной информации
2.3. Характеристика результатной информации
2.5. Характеристика базы данных
2.6. Структурная схема пакета (дерево вызова программных модулей)
2.7 Описание программных модулей
2.8. Контрольный пример реализации проекта и его описание
Для работы формирования выходного документа используется компонент AdoQuery. Данный компонент предназначен для отправки запросов к базе данных и обработки ответов на них. Для формирования запросов используются только запросы на выборку данных из БД с помощью оператора запроса SELECT.
Этот оператор выбирает записи из базы данных и имеет самую сложную структуру, по сравнению с другими операторами языка SQL. Данный оператор позволяет не только выбирать записи из базы данных, удовлетворяющие заданному условию, но также и настраивать параметры отображения этих записей, таких как сортировка и группировка. А использование агрегатных функций позволяет подсчитывать необходимые данные.
Программные модули состоят из процедур, которые обрабатывают различные действия пользователя (нажатия на кнопки, ввод текста в поля и т.д.) нужным образом.
На рисунке 14 приведен алгоритм процедуры формирования плана в формате Microsoft Excel.
Рисунок 14. Алгоритм формирования плана
Исходный код всех процедур с комментариями представлен в приложении.
2.8. Контрольный пример реализации проекта и его описание
После запуска программы пользователю отображается главная форма программы, с помощью главного меню которой выполняется доступ к основным функциям программы (Рисунок 15).
Рисунок 15. Главная форма
Форма работы со всеми справочниками имеет общий вид: большую часть формы занимает таблица с записями справочника, а над ней расположены кнопки для открытия формы добавления или изменения записи, либо удаления записи их справочника (Рисунок 16).
Рисунок 16. Форма работы со справочником
Аналогичный вид имеют и формы для работы с планами и сообщениями, только на них также добавлены элементы для поиска и фильтрации необходимых данных. На рисунке 17 представлена форма работы с планами, а на рисунке 18 – с сообщениями.
Рисунок 17. Форма работы с планами совершенствования
Рисунок 18. Форма работы с сообщениями покупателей
Для добавления нового сообщения необходимо выбрать данный пункт в главном меню программы, откроется форма, представленная на рисунке 19.
Рисунок 19. Форма для добавления сообщения
Форма для работы с планом совершенствования представлена на рисунке 20.
Рисунок 20. Форма для работы с планом совершенствования
При нажатии на кнопку «Excel» выводится план в программу Microsoft Excel (Рисунок 21).
Рисунок 21. Выгруженный план совершенствования
ЗАКЛЮЧЕНИЕ
В ходе проделанной работы были решены следующие задачи:
- была проанализирована текущая организация бизнес-процесса совершенствования существующих продуктов в компании «ПолимерПласт», были выделены основные этапы выполнения бизнес-процесса, изучен возникающий документооборот;
- были выбран проектные решения по информационному обеспечению и программному, в качестве среды разработки была выбрана Delphi7, а в качестве СУБД – Microsoft Access;
- была составлена информационная модель информационной системы, которая отражает пути преобразования входной информации в выходную;
- была разработана база данных и программные модули, реализующие работу ИС.
- был описан контрольный пример реализации проекта.
Таким образом, все задачи, поставленные перед данным курсовым проектом выполнены, а значит и основная цель достигнута.
СПИСОК ИСПОЛЬЗОВАННОЙ ЛИТЕРАТУРЫ
- ГОСТ 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;