Диплом: Автоматизация процесса ведения документации и отчетности в ИП Черкашин

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
88
16. Маклаков С. В. Моделирование бизнес-процессов с AllFusion Process
Modeler (BPwin 4.1) / С.В. Маклаков. – М. : ДИАЛОГ-МИФИ, 2013. 340 c.
17. Маклаков С.В. Создание информационных систем с AllFusion
Modeling Suite / С.В. Маклаков. – М. : ДИАЛОГ-МИФИ, 2015. 512 c.
18. Партыка, Т.Л., Попов И.И. Информационная безопасность: учебное
пособие. / Т.Л. Партыка. – М.: Форум, 2012. – 432 с.
19. Петров, С.В., Слинькова И.П., Гафнер В.В. Информационная
безопасность: Учебное пособие. / С.В. Петров. – М.: АРТА, 2012. – 296 с.
20. Сергеева, И.В. Экономика организаций (предприятий): Учебник/ Под
ред. И.В. Сергеева./ - 3-е изд., перераб. и доп. – М.: Проспект, 2010 – 560 с.
21. Туккель И.Л., Сурина А.В., Культин Н.Б. Управление
инновационными проектами: учебник / Под ред. И.Л. Туккеля. – Спб.: БХВ-
Петербург, 2016. – 542 с Фуфаев Д.Э. Фуфаев Э.В. Разработка и эксплуатация
автоматизированных информационных систем: учебник дя студ. М.:
Издательский центр «Академия», 2013. 304 с.
22. Шаньгин В.Ф. Информационная безопасность компьютерных
системы и сетей: Учебное пособие. М.: ИД ФОРУМ, НИЦ ИНФРА-М, 2013. 416
с.
23. Описание программы КРАФТ [Электронный ресурс] URL:
http://www.crafterp.ru/CRAFT-enterprise/modules-CRAFT/module-production
24. Описание программы ТоргСофт [Электронный ресурс] URL:
https://torgsoft.ua/
25. Описание программы «Производства» [Электронный ресурс] URL:
http://www.prostoysoft.ru/Production.htm
89
ПРИЛОЖЕНИЕ
Приложение 1 Скрипт создания базы данных
CREATE TABLE Users
( id INTEGER AUTO_INCREMENT NOT NULL,
fio VARCHAR(255) NOT NULL,
password VARCHAR(255) NOT NULL,
roleid INTEGER NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE type
( id INTEGER AUTO_INCREMENT NOT NULL,
caption VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE role
( id INTEGER AUTO_INCREMENT NOT NULL,
caption VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE status
( id INTEGER AUTO_INCREMENT NOT NULL,
caption VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE client
( id INTEGER AUTO_INCREMENT NOT NULL,
caption VARCHAR(255) NOT NULL,
phone VARCHAR(255) NOT NULL,
createdat DATETIME NOT NULL,
coment VARCHAR(255) NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE Service
( id INTEGER AUTO_INCREMENT NOT NULL,
caption VARCHAR(255) NOT NULL,
price DECIMAL(10,2) NOT NULL,
typeid INTEGER NOT NULL,
PRIMARY KEY (id)
);
CREATE TABLE Serviceorder
( id INTEGER AUTO_INCREMENT NOT NULL,
serviceid INTEGER NOT NULL,
orderid INTEGER NOT NULL,
price DECIMAL(10,2) NOT NULL,
quantity INTEGER NOT NULL,
90
PRIMARY KEY (id)
);
CREATE TABLE orders
( id INTEGER AUTO_INCREMENT NOT NULL,
statusid INTEGER NOT NULL,
createdat DATETIME NOT NULL,
endat DATETIME NULL,
comment VARCHAR(255) NOT NULL,
amount DECIMAL(10,2) NOT NULL,
clientid INTEGER NOT NULL,
userid INTEGER NOT NULL,
PRIMARY KEY (id)
);
91
Приложение 2 Исходный код программных модулей
unit Main;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics,
Controls, Forms,
Dialogs, ADODB, Menus, DB, StdCtrls, Comobj;
type
TForm1 = class(TForm)
ADOConnection1: TADOConnection;
client: TADOTable;
oborudovanie: TADOTable;
remont: TADOTable;
status: TADOTable;
typeob: TADOTable;
users: TADOTable;
vendor: TADOTable;
viewteh: TADOTable;
MainMenu1: TMainMenu;
C1: TMenuItem;
N1: TMenuItem;
N2: TMenuItem;
N3: TMenuItem;
ADOQuery1: TADOQuery;
N4: TMenuItem;
N5: TMenuItem;
N6: TMenuItem;
N7: TMenuItem;
userid: TLabel;
typeobid: TAutoIncField;
typeobcaption: TWideStringField;
usersid: TAutoIncField;
usersusername: TWideStringField;
userspassword: TWideStringField;
usersrole: TWideStringField;
viewtehid: TAutoIncField;
viewtehcaption: TWideStringField;
viewtehcomment: TWideStringField;
vendorid: TAutoIncField;
vendorcaption: TWideStringField;
vendorcomment: TWideStringField;
N8: TMenuItem;
N9: TMenuItem;
N10: TMenuItem;
N11: TMenuItem;
ADOQuery2: TADOQuery;
viewtehprice: TIntegerField;
92
procedure CreateSpravForm(const childName, id: string;
table: TDataset;
p: integer);
procedure N5Click(Sender: TObject);
procedure N4Click(Sender: TObject);
procedure N6Click(Sender: TObject);
procedure N7Click(Sender: TObject);
procedure N3Click(Sender: TObject);
procedure N8Click(Sender: TObject);
procedure CreateOtchetForm(const childName: String; p:
integer);
procedure Othet(const Data: TADOQUERY; Otchetname: string);
procedure N9Click(Sender: TObject);
procedure CreateClientForm(id: string);
procedure N10Click(Sender: TObject);
procedure CreateOrderForm(id: string; clientid: integer);
procedure N11Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
Uses Login, Sprav, Otchet, List, Client, Order;
{$R *.dfm}
//создание формы для работы со справочником
procedure TForm1.CreateSpravForm(const childName, id : string;
table: TDataset; p: integer);
var
Child: TForm3;
i,k :integer;
f : boolean;
begin
f:=False; //флаг-ложь
k:=0;
for i:=0 to Form1.MDIChildCount-1 do //проверяем
создан ли экземнляр такого окна
if (Form1.MDIChildren[i] is TForm3) and
(Form1.MDIChildren[i].caption=childName) then
begin
f:=True;
k:=i;
end;
if (f) and (Form1.MDIChildren[k].Caption=childName) then begin
//если создан, то
93
Form1.MDIChildren[k].bringToFront;
//переносим его вперед
if Form1.MDIChildren[k].WindowState=wsMinimized then
Form1.MDIChildren[k].WindowState:=wsNormal;
end
else
begin //иначе - создаем форму
Child := TForm3.Create(Application);
Child.Caption := childName; //задаем название
Child.DBGrid1.DataSource.DataSet:=table; //задаем
таблицу справочник, с которой будем работать
table.active:=true; //делаем таблицу
активной
Child.Setgridcolumnwidths; //выравниваем
ширину столбцов
Child.Label1.Caption:=id; //передаем ид
Case p of
1: Child.n1.visible:=true; //отображаем первый пункт
сонтекстного меню
2: Child.n2.visible:=true; //отображаем второй пункт
контекстрого меню
{3: Child.n3.visible:=true; //отображаем третий пункт
контекстного меню
4: Child.n4.visible:=true; //отображаем четвертый пункт
контекстного меню
5: begin Child.n5.visible:=true; //отображаем четвертый
пункт контекстного меню
Child.Panel2.visible:=false; }
end;
end;
end;
procedure TForm1.N5Click(Sender: TObject);
begin
CreateSpravForm('Услуги','',Form1.viewteh,0); //Вызов
процедуры для работы со Справочником Внешний вид
end;
procedure TForm1.N4Click(Sender: TObject);
begin
CreateSpravForm('Виды услуг','',Form1.typeob,0); //Вызов
процедуры для работы со Справочником виды оборудования
end;
procedure TForm1.N7Click(Sender: TObject);
begin
CreateSpravForm('Пользователи','',Form1.users,0); //Вызов
процедуры для работы со Справочником Пользователи
end;
94
Function IndToCol(const ind:integer):String; //функция для
перевода номер столбца Excel в его текстовой индекс
begin
case ind of
0: result:='A';
1: result:='B';
2: result:='C';
3: result:='D';
4: result:='E';
5: result:='F';
6: result:='G';
7: result:='H';
8: result:='J';
9: result:='K';
10: result:='L';
11: result:='M';
12: result:='N';
13: result:='O';
14: result:='P';
15: result:='Q';
16: result:='R';
17: result:='S';
18: result:='T';
19: result:='U';
end;
end;
Procedure TForm1.Othet(const Data: TADOQUERY; Otchetname:
string); //процедура для выгрузки отчета в Excel на основании
запроса к БД
var
Excel:Variant;
i,j,k:integer;
begin
//Обновляем данные
Data.close;
Data.open;
Excel := CreateOleObject('Excel.Application');
//Открываем его для работы
Excel.Workbooks.Add;
//задаем имя отчета
Excel.Range['A1']:=OtchetName;
//Задаем шапку таблицы
For j:=0 to Data.FieldCount-1 do
begin
Excel.Range[IndToCol(j+1)+'2']:=Data.Fields[j].FullName;
end;
//передаем результаты запроса в виде таблицы
if Data.RecordCount<>0 then
begin
k:=1;
95
For j:=0 to Data.FieldCount-1 do
begin
Data.First;
for i:=1 to Data.RecordCount do
begin
Excel.range['A'+IntTOStr(i+2)]:=IntTOStr(i);
Excel.Range[indToCol(j+1)+IntToStr(i+2)
]:=Data.Fields[j].Value;
Data.Next;
end;
end;
//задаем границы таблицы
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[5].LineSt
yle:= 0;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[6].LineSt
yle:= 0;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[7].LineSt
yle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[8].LineSt
yle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[9].LineSt
yle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[10].LineS
tyle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[11].LineS
tyle:= 1;
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+1)].Borders[12].LineS
tyle:= 1;
//строка итого
Excel.Range[indToCol(j-1)+IntTOStr(i+2)]:='ИТОГО';
Excel.Range[indToCol(j)+IntTOStr(i+2)]:='=СУММ('+indToCol(j)+'
3:'+indToCol(j)+IntTOStr(i+1)+')';
if j<2 then j:=2;
//Задаем дату формирования отчета
Excel.Range[indToCol(j-1)+IntTOStr(i+4)].Value:='Отчет
сформирован:';
Excel.Range[indToCol(j)+IntTOStr(i+4)].Value:=dateToStr(Now);
Excel.Range['A2:'+indToCol(j)+IntTOStr(i+4)].Columns.AutoFit;
end;
//отображаем отчет
Excel.visible:=true;
96
end;
//процедура для создания формы для ввода параметров отчета
procedure TForm1.CreateOtchetForm(const childName:String; p:
integer); //параметры - название формы и индекс отчета
var
Child: TForm9;
i,k :integer;
f : boolean;
begin
f:=False; //флаг-ложь
k:=0;
for i:=0 to Form1.MDIChildCount-1 do //проверяем
создан ли экземнляр такого окна
if (Form1.MDIChildren[i] is TForm9) then
begin
f:=True;
k:=i;
end;
if (f) then //если создан, то
Form1.MDIChildren[k].Close; //закрываем
Child := TForm9.Create(Application);
Child.Caption := childName; //задаем название
формы
Child.DateTimePicker1.DateTime:=now-30; //устанавливаем
дату на 30 дней меньше текущей
Child.DateTimePicker2.datetime:=now; //устанавливаем
текущую дату
Child.Label3.Caption:=IntTOStr(p); //индекс отчета
end;
procedure TForm1.N3Click(Sender: TObject);
begin
CreateOtchetForm('Задайте интервал',1);
end;
//процедура создания формы списка клиентов
procedure TForm1.N8Click(Sender: TObject);
var
Child: TForm4;
i,k :integer;
f : boolean;
begin
f:=False; //флаг-ложь
k:=0;
for i:=0 to Form1.MDIChildCount-1 do //проверяем
создан ли экземнляр такого окна
if (Form1.MDIChildren[i] is TForm4) then
begin
f:=True;
97
k:=i;
end;
if (f) then //если создан, то
Form1.MDIChildren[k].Close; //закрываем
Child := TForm4.Create(Application);
//Обновляем отображаемые данные в списке
Child.ADOQuery1.Open;
//выравниваем ширину
Child.Setgridcolumnwidths;
end;
//создание формы для работы с клиентом
procedure TForm1.CreateClientForm(id : string);
var
Child: TForm5;
i,k :integer;
f : boolean;
begin
f:=False; //флаг-ложь
k:=0;
for i:=0 to Form1.MDIChildCount-1 do //проверяем
создан ли экземнляр такого окна
if (Form1.MDIChildren[i] is TForm5) then
begin
f:=True;
k:=i;
end;
if (f) then begin //если создан, то
Form1.MDIChildren[k].close; //закрываем
end;
//создаем форму
Child := TForm5.Create(Application);
Child.id.Caption:=id;
Child.Setgridcolumnwidths;
//если режим создания
if id='0' then
begin
Child.Edit1.Text:='';
Child.Edit2.Text:='';
Child.Edit3.Text:='';
Child.BitBtn3.Enabled:=false;
Child.BitBtn4.Enabled:=false;
end
else
begin
Child.Caption := 'Редактирование данных клиента';
//задаем название
With AdoQuery1 do
begin
close;
SQL.clear;
SQL.Add('SELECT * FROM client WHERE id='+id);

Смотрите также:

"Автоматизация обработки заявок ООО "Проектно-Строительная Компания"
"Автоматизация процесса аттестации персонала для ООО "Нэт Бай Нэт Холдинг"
"Анализ интернет-активности конкурентов ( на примере конкурентов "Газпром нефть")
"Бухгалтерский учёт и аудит расчётов с подотчётними лицами в организации на примере ООО "ЛОЦ 10""
«Психологическое сопровождение персонала в организации на примере ООО «Крокус»
Cовершенствование деловой оценки персонала в организации (на примере ООО "Даймонд кейтеринг развитие")
IPO - инструмент финансирования деятельности организации. На примере ПАО «Нефтяная компания «Лукойл»
PR как средство продвижения организации (на примере ПАО "Тамбовский завод "Комсомолец им. Н.С. Артемова")
PR-коммуникации в сфере общественного питания (на примере кафе-кондитерской «Cream Cheese»)
SMM как средство повышения эффективности работы учреждений социокультурной сферы (на примере Малого театра)