Файл: Проектирование реализации операций бизнес-процесса "Взаиморасчеты с поставщиками".pdf
Добавлен: 22.05.2023
Просмотров: 322
Скачиваний: 3
СОДЕРЖАНИЕ
1.1. Выбор комплекса задач автоматизации
1.2. Характеристика существующих бизнес – процессов
1.3. Характеристика документооборота, возникающего при решении задачи
1.4. Обоснование проектных решений по информационному обеспечению
2.1. Информационная модель и её описание
2.2. Характеристика нормативно-справочной, входной и оперативной информации
2.3. Характеристика результатной информации
2.4. Общие положения (дерево функций и сценарий диалога)
2.5. Характеристика базы данных
2.6. Структурная схема пакета (дерево вызова программных модулей)
2.7 Описание программных модулей
Рисунок 16 – Структура справочника поставщика
Рисунок 17 - Структура справочника автозапчастей
Рисунок 18 – Структура справочника клиентов
Рисунок 19 – Структура справочника совместимости
автозапчастей
Режим определения надежности поставщиков предлагает пользователю выбрать поставщика из списка значений, после нажатия на кнопку «Поиск заказов» будут сформированы таблица заказов и статистику выполнения заказов с подсчетом их статусов завершения (рис. 20).
Рисунок 20 – Окно режима определения надежности поставщика
Для выполнения оценки надежности выполняется следующая процедура:
- выполняется запрос данных по выборке запчастей согласно выбранному поставщику;
- формируются переменные для накопления int s=0,k1=0,k2=0,k3=0;
// s - общее к-во заказов
// k1 - к-во срывов сроков
// k2 - к-во заказов выполненных в срок
// k3 - к-во досрочно выполненных заказов
- выполняется проход по базе с помощью команды while(!ADOQuery1->Eof), в результате чего формируется накопление переменных:
ddd1=ADOQuery1->FieldByName("Data_form")->AsDateTime;
ddd2=ADOQuery1->FieldByName("Data_wait")->AsDateTime;
ddd3=ADOQuery1->FieldByName("Data_dost")->AsDateTime;
if(ddd3>ddd2) //время превышено
k1++;
if(ddd3==ddd2) //время день в день
k2++;
if(ddd3<ddd2) //досрочное выполнение
k3++;
- выполняется вывод в текстовые метки Label2, Label3, Label4 результатов накопления данных.
Для определения динамики цен пользователь выбирает необходимую запчасть из списка значений и после нажатия кнопки поиска таблица результатов заполняется автоматически.
Для организации выборки предназначен следующий запрос:
select zakaz.kod,zakaz.nomer,zakaz.data_form,avtoz.naimenov,zakaz.cena,
zakaz.data_wait,
zakaz.data_dost,postavch.naimenov, klient.naimenov
FROM zakaz, postavch, klient, avtoz
WHERE zakaz.kod_avtoz=:par1 AND zakaz.kod_klient=klient.kod
AND avtoz.kod=:par2
AND zakaz.kod_post=postavch.kod
В качестве параметра par1 в запрос передается код запчасти, которая была выбрана в выпадающем списке пользователем:
Рисунок 21 – Режим формирования динамики цен на запчасти
Рисунок 22 – Режим формирования и экспорта отчета
Рисунок 23 – Результат экспорта данных в внешнее приложение
Редактирование данных каталога выполняется после перехода нажатия на кнопку «Справочник каталогов», в котором существует возможность редактировать названия, Интернет-ссылки и рейтинги каталогов:
Рисунок 24 – Отображение каталога поставщиков предприятия
ЗАКЛЮЧЕНИЕ
В ходе курсовой работы были разобраны и изучены основные моменты автоматизации учета и обработки информации взаиморасчетов с поставщиками на примере предприятия автосервиса. Были изучены принципы работы станций технического обслуживания, а так же гарантийная политика автосалонов, и на основе этой информации была разработана программа для построения графиков гарантийного обслуживания транспортных средств.
При выполнении данной исследовательской работы была проанализирована деятельность станций технического обслуживания автомобилей и разработана информационная система (база данных).
Были разработаны концептуальная, логическая модели и модель «сущность-связь» на основе рассмотренной предметной области.
Также была разработана реляционная модель данных, на основе которой была спроектирована физическая база данных, в которой были созданы таблицы в соответствии с сущностями описанными в предметной области.
Внедрение компьютерных систем в торговых предприятиях стало необходимым и в связи с возрастающим потоком информации, в котором все сотрудники просто обязаны ориентироваться для того, чтобы качественно выполнять свои обязанности.
В ходе выполнения данной курсовой работы были достигнуты все поставленные цели. Выявлены особенности формирования потоков данных. Выполнено проектирование функциональных особенностей системы. Построены диаграммы взаимодействия, классов, коммуникаций деятельности, программная система обработки данных.
Была проведена автоматизация операций учета товаров посредством внедрения базы данных. Предложенный проект автоматизации помог минимизировать всю рутинную работу, потери информации, скорость решения текущих проблем возросла в несколько раз.
Так как интеграция информационных систем во все сферы жизни увеличивается с каждым днем, то актуально становится разработка подобных баз данных. При этом разработчик должен учитывать то, что наиболее простые БД могут быть подвержены избыточности, но при этом нельзя и увлекаться делением БД на много составных таблиц. Также современные средства дружественного интерфейса позволяют разработать интуитивно понятные приложения, что является одним из основных требований заказчика. При создании БД необходимо принять во внимание область, для которой разрабатывается база данных. Например, при формировании БД для магазина, разработчик должен ориентировать её в первую очередь на продажу.
СПИСОК ЛИТЕРАТУРЫ
- Домнин Л. Н. Элементы теории графов: учебное пособие [Текст] / Jl. Н. Домнин. - Пенза: Пенз. гос. ун-т, 2010. - 144 с.
- Кораблев, В. Самоучитель Visual C++ .NET [Текст] / В. Кораблев. – СПб.: Издательская группа BHV, 2009. – 528 с.
- Кормен Томас Алгоритмы: построение и анализ [Текст]: пер. с англ. / Т. Кормен. - М.: Вильямс, 2015. - 1296 с.
- Корнес, Дж. Глин. – М.: Лори, 2009. – 512 с.
- Леденева Т. М. Алгоритмы теории графов. Кодовые графы: учебное пособие [Текст] / Т. М. Леденева, И. Б. Руссман. – Воронеж: ВГУ, 2002. 85 с.
- Либерти, Д. Программирование на C# [Текст] / Д. Либерти. – СПб.: Символ-Плюс, 2011. – 688 с.
- Майо, Дж. C# Builder. Быстрый старт [Текст] / Майо Дж. – М.: Бином, 2009. – 384 с.
- Мала, С. Вэйвлеты в обработке сигналов [Текст]: пер. с. англ. / С. Малла. – М.: Мир, 2009. – 671 с.
- Местецкий, Л.М. Математические методы распознавания образов [Текст] / Л.М. Местецкий. – М.: Омега, 2009. – 487 с.
- Микелсен К. Язык программирования C#. Лекции и упражнения: учебник [Текст] / К. Микелсен. – Киев: ДиаСофт, 2011. – 656 с.
- Носов В. И. Элементы теории графов: учебное пособие [Текст] / В. И. Носов, Т. В. Бернштейн, Н. В. Носкова, Т. В. Храмова. – Новосибирск: Новосибирское книжное издательство, 2015. - 107 с.
- Петцольд, Ч. Программирование для MS Windows на C# [Текст] / Ч. Петцольд. – М.: Русская Редакция, 2009. – Т.1. – 624 с.
- Петцольд, Ч. Программирование для MS Windows на C# [Текст] / Ч. Петцольд. – М.: Русская Редакция, 2010. – Т.2. – 576 с.
- Секунов, Н. Разработка приложений на C++ и C#. Библиотека программиста [Текст] / Н. Секунов. – СПб.: Питер, 2010. – 608 с.
ПРИЛОЖЕНИЕ 1. ЛИСТИНГ ПРОГРАММНОГО
КОДА ПРОЕКТА
//---------------------------------------------------------------------------
#include <vcl.h>
#pragma hdrstop
#include "Unit8.h"
//#include "Excel_2K_SRVR.h"
#include "utilcls.h"
#include "sysvari.h"
#include "ComObj.hpp"
#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm8 *Form8;
//---------------------------------------------------------------------------
__fastcall TForm8::TForm8(TComponent* Owner)
: TForm(Owner)
{
}
//---------------------------------------------------------------------------
void __fastcall TForm8::BitBtn1Click(TObject *Sender)
{
Variant app = CreateOleObject("Excel.Application");
Variant wbs = app.OlePropertyGet("Workbooks");
//Variant wb = wbs.OleFunction("Open", "E:\\Файлы \\test.xls");
Variant wb = wbs.OleFunction("Open", "test.xls");
Variant wss = wb.OlePropertyGet("Worksheets");
Variant ws = wss.OlePropertyGet("Item", 1);
//выгрузка данных
ADOQuery1->First();
int r,c;
r=1;
c=0;
while(!ADOQuery1->Eof)
{
Variant cell = ws.OlePropertyGet("Cells", r + 1, c + 1);
cell.OlePropertySet("Value",WideString(ADOQuery1->FieldByName("Nomer")->AsString));
cell = ws.OlePropertyGet("Cells", r + 1, c + 2);
cell.OlePropertySet("Value", WideString(ADOQuery1->FieldByName("Data_form")->AsString));
cell = ws.OlePropertyGet("Cells", r + 1, c + 3);
cell.OlePropertySet("Value", WideString(ADOQuery1->FieldByName("Data_wait")->AsString));
cell = ws.OlePropertyGet("Cells", r + 1, c + 4);
cell.OlePropertySet("Value", WideString(ADOQuery1->FieldByName("Data_dost")->AsString));
cell = ws.OlePropertyGet("Cells", r + 1, c + 5);
cell.OlePropertySet("Value", WideString(ADOQuery1->FieldByName("postavch.naimenov")->AsString));
cell = ws.OlePropertyGet("Cells", r + 1, c + 6);
cell.OlePropertySet("Value", WideString(ADOQuery1->FieldByName("klient.naimenov")->AsString));
cell = ws.OlePropertyGet("Cells", r + 1, c + 7);
cell.OlePropertySet("Value", WideString(ADOQuery1->FieldByName("avtoz.naimenov")->AsString));
cell = ws.OlePropertyGet("Cells", r + 1, c + 8);
cell.OlePropertySet("Value", WideString(ADOQuery1->FieldByName("cena")->AsString));
r++;
ADOQuery1->Next();
}
wb.OleProcedure("Save");
app.OleProcedure("Quit");
ShowMessage("Запись в Excel выполнено успешно!");
}
//---------------------------------------------------------------------------
void __fastcall TForm8::FormCreate(TObject *Sender)
{
DBGrid1->Columns->Items[0]->Width=30;
DBGrid1->Columns->Items[1]->Width=40;
DBGrid1->Columns->Items[2]->Width=65;
DBGrid1->Columns->Items[3]->Width=65;
DBGrid1->Columns->Items[4]->Width=65;
DBGrid1->Columns->Items[5]->Width=200;
DBGrid1->Columns->Items[6]->Width=150;
DBGrid1->Columns->Items[7]->Width=200;
DBGrid1->Columns->Items[8]->Width=100;
}
//---------------------------------------------------------------------------
void __fastcall TForm8::Button1Click(TObject *Sender)
{
ADOQuery1->Close();
ADOQuery1->Open();
ADOQuery1->ExecSQL();
DBGrid1->Columns->Items[0]->Width=30;
DBGrid1->Columns->Items[1]->Width=40;
DBGrid1->Columns->Items[2]->Width=65;
DBGrid1->Columns->Items[3]->Width=65;
DBGrid1->Columns->Items[4]->Width=65;
DBGrid1->Columns->Items[5]->Width=200;
DBGrid1->Columns->Items[6]->Width=150;
DBGrid1->Columns->Items[7]->Width=200;
DBGrid1->Columns->Items[8]->Width=100;
}
//---------------------------------------------------------------------------
void __fastcall TForm8::FormShow(TObject *Sender)
{
DBGrid1->DataSource->DataSet->Fields->Fields[0]->Visible=false;
}
//---------------------------------------------------------------------------
void __fastcall TForm10::Button1Click(TObject *Sender)
{
AnsiString str,FIO;
Memo1->Clear();
Form9->ADOTable1->First();
for(int i=1;i<=Form9->ADOTable1->RecordCount;i++)
{
//поиск клиента
FIO="";
Form1->ADOTable3->First();
for(int j=1;j<=Form1->ADOTable3->RecordCount;j++)
{
if(Form1->ADOTable3->FieldByName("Kod")->AsInteger==Form9->ADOTable1->FieldByName("KodKlient")->AsInteger)
FIO=Form1->ADOTable3->FieldByName("Naimenov")->AsString;
Form1->ADOTable3->Next();
}
if(((CheckBox1->Checked)&&(Form9->ADOTable1->FieldByName("Auto")->AsString==ComboBox1->Text))||
((CheckBox2->Checked)&&(FIO==ComboBox2->Text))||
((CheckBox3->Checked)&&(Form9->ADOTable1->FieldByName("Date1")->AsString.Pos(DateTimePicker1->Date.DateString())>0))||
((!CheckBox1->Checked)&&(!CheckBox2->Checked)&&(!CheckBox3->Checked))
)
//главное условие отбора
{
Memo1->Lines->Add("--------------------------------------------------------");
Memo1->Lines->Add("ФИО клиента: "+FIO);
Memo1->Lines->Add("Последнее обращение клиента: "+Form9->ADOTable1->FieldByName("Date1")->AsString);