Файл: Проектирование реализации операций бизнес-процесса «Разработка стратегии охраны окружающей среды»..pdf
Добавлен: 26.05.2023
Просмотров: 60
Скачиваний: 2
Кнопка «Поиск» - выполняет фильтрацию по полям «Наименование» и «Область», поиск по полю «Код города».
Компоненты «Связи таблиц» содержит группу зависимых переключателей и разработана для связывания таблиц. По умолчанию таблицы не связаны между собой.
При нажатии, например, на переключатель «Города+Предприятия» будут связаны таблица «Города» и таблица «Предприятия» по совпадающим полям, при этом таблица «Города» будет главной, а таблица «Предприятия» подчиненной и соответственно наоборот если будет отмечен переключатель «Предприятия+Города».
Следует отметить, что связать одновременно можно только две таблицы.
Базы данных находятся в папке \DB. Папка \DB должна находиться в одном каталоге с исполняемым файлом программы, потому что без базы данных программа не найдет путь доступа к базам данных и не будет работать.
ЗАКЛЮЧЕНИЕ
Качественный контроль за тем, чтобы все производственные процессы предприятия оставались экологически безопасными, как для производственного персонала, так и для окружающей среды, – задача не из легких, но, как и все процессы на предприятии, подлежит автоматизации. В том числе подлежит автоматизации и контроль за выбросом вредных веществ в окружающую среду.
Поэтому, цель данного курсового проекта - разработка программы для автоматизации работы сотрудника экологической службы, с целью уменьшения загруженности сотрудника, а так же к уменьшению количества ошибок, увеличения скорости работы с информацией. И данная цель была выполнена.
Для решения данной цели было выполнено:
- Описан документооборот, который имеет место.
- Описаны бизнес-процессы, которые имеют место.
- Описана входная и результирующая информация.
- Выбрана СУБД, для создания базы данных и обоснован выбор среды разработки.
- В процессе разработки была создана БД, которая состоит из 4 таблиц.
- Так же было создана схема пакета и дерево функций для данной программы.
В результате можно заключить, что внедрение данной программы поможет упростить работу сотрудника экологической службы.
Разработанное приложение не является итоговым вариантом, ее можно еще дополнять другими функциями.
СПИСОК ЛИТЕРАТУРЫ
- Осипов Д. Л. Базы данных и Delphi. Теория и практика. — СПб.: БХВ-Петербург, 2011. - 752 с.
- Лекция 5: Модели организации баз данных [онлайн] - URL: http://www.intuit.ru/studies/courses/3439/681/lecture/14023 (дата обращения 11.10.2016)
- Реляционная база данных [онлайн] - URL: http://base.mybloge.net/relyacionnaya-baza-dannyx/ (дата обращения 01.11.2016)
- Введение в базы данных. Часть 2. Настольные СУБД // А.Федоров, Н. Елманова [онлайн] - URL: http://compress.ru/article.aspx?id=10282 (дата обращения 01.11.2016)).
- Субд paradox [онлайн]- URL: http://uchebnik.biz/book/88-kompyuternye-seti/365-subd-paradox.html (дата обращения 01.11.2016)
- Обзор языков программирования и средств разработки на их основе [онлайн] - URL: http://bukvi.ru/computer/obzor-yazykov-programmirovaniya-i-sredstv-razrabotki-na-ix-osnove.html (дата обращения 01.11.2016)
- Преимущества и особенности Delphi [онлайн] - URL: http://starik2222.narod.ru/trpp/lec/11.htm (дата обращения 01.11.2016)
- Преимущества Delphi и напутствие начинающему программисту [онлайн] - URL: http://pisali.ru/raferti/41237/ (дата обращения 01.11.2016)
ПРИЛОЖЕНИЕ 1
Листинг программы
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, ExtCtrls, DBCtrls, Grids, DBGrids, DB, DBTables, StdCtrls, Mask,
ComCtrls, Menus,ShellAPI,DateUtils,IniFiles;
type
TForm1 = class(TForm)
Edit2: TEdit;
Edit3: TEdit;
Button3: TButton;
Button4: TButton;
Button5: TButton;
DataSource2: TDataSource;
Table2: TTable;
DBGrid2: TDBGrid;
MaskEdit3: TMaskEdit;
MaskEdit4: TMaskEdit;
DataSource3: TDataSource;
Table3: TTable;
Label1: TLabel;
Label2: TLabel;
Label3: TLabel;
Label4: TLabel;
Label5: TLabel;
DBGrid3: TDBGrid;
MaskEdit1: TMaskEdit;
GroupBox1: TGroupBox;
GroupBox2: TGroupBox;
Edit4: TEdit;
Label6: TLabel;
Edit5: TEdit;
Label7: TLabel;
Label8: TLabel;
Button10: TButton;
Button11: TButton;
Label10: TLabel;
MaskEdit5: TMaskEdit;
Label13: TLabel;
Button1: TButton;
Edit8: TEdit;
Label14: TLabel;
Edit1: TEdit;
Edit12: TEdit;
Label17: TLabel;
Button6: TButton;
Button7: TButton;
Button8: TButton;
Button9: TButton;
Button12: TButton;
GroupBox3: TGroupBox;
Label11: TLabel;
Label16: TLabel;
Edit6: TEdit;
Button13: TButton;
Button14: TButton;
DBGrid1: TDBGrid;
MaskEdit2: TMaskEdit;
Button15: TButton;
DataSource1: TDataSource;
Table1: TTable;
Table4: TTable;
DataSource4: TDataSource;
RadioButton1: TRadioButton;
RadioButton2: TRadioButton;
RadioButton3: TRadioButton;
RadioButton4: TRadioButton;
RadioButton5: TRadioButton;
GroupBox4: TGroupBox;
RadioButton6: TRadioButton;
RadioButton7: TRadioButton;
procedure Button4Click(Sender: TObject);
procedure Button3Click(Sender: TObject);
procedure Button5Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure Button10Click(Sender: TObject);
procedure Button11Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure DBGrid3DblClick(Sender: TObject);
procedure Button6Click(Sender: TObject);
procedure Button7Click(Sender: TObject);
procedure DBGrid2DblClick(Sender: TObject);
procedure Button8Click(Sender: TObject);
procedure Button9Click(Sender: TObject);
procedure Button12Click(Sender: TObject);
procedure Button13Click(Sender: TObject);
procedure Button15Click(Sender: TObject);
procedure Button14Click(Sender: TObject);
procedure DBGrid1DblClick(Sender: TObject);
procedure RadioButton1Click(Sender: TObject);
procedure RadioButton2Click(Sender: TObject);
procedure RadioButton3Click(Sender: TObject);
procedure RadioButton4Click(Sender: TObject);
procedure RadioButton5Click(Sender: TObject);
procedure RadioButton7Click(Sender: TObject);
procedure RadioButton6Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
i,i2:integer;
implementation
uses Unit3, Unit4, Unit5, Unit6;
{$R *.dfm}
procedure form; //Установки для отображения таблиц
begin
Form1.DBGrid2.Columns.Items[1].Width:=150;
Form1.DBGrid2.Columns.Items[2].Width:=70;
Form1.DBGrid2.Columns.Items[3].Width:=150;
Form1.DBGrid2.Columns.Items[4].Width:=150;
Form1.DBGrid2.Columns.Items[5].Width:=150;
Form1.DBGrid2.Columns.Items[6].Width:=150;
Form1.DBGrid2.Columns[1].Title.Caption:='Код предприятия';
Form1.DBGrid2.Columns[2].Title.Caption:='Дата сброса';
Form1.DBGrid2.Columns[3].Title.Caption:='Концентрация';
Form1.DBGrid2.Columns[4].Title.Caption:='Размер сброса';
Form1.DBGrid2.Columns[5].Title.Caption:='Код ед. измерения';
Form1.DBGrid2.Columns[6].Title.Caption:='Сумма ущерба';
Form1.DBGrid3.Columns.Items[0].Width:=90;
Form1.DBGrid3.Columns.Items[1].Width:=170;
Form1.DBGrid3.Columns.Items[2].Width:=170;
Form1.DBGrid3.Columns.Items[3].Width:=90;
Form1.DBGrid3.Columns.Items[4].Width:=90;
Form1.DBGrid3.Columns[0].Title.Caption:='Код предприятия';
Form1.DBGrid3.Columns[1].Title.Caption:='Наименование';
Form1.DBGrid3.Columns[2].Title.Caption:='Адрес';
Form1.DBGrid3.Columns[3].Title.Caption:='Телефон';
Form1.DBGrid3.Columns[4].Title.Caption:='Код города';
Form1.DBGrid1.Columns.Items[0].Width:=90;
Form1.DBGrid1.Columns.Items[1].Width:=180;
Form1.DBGrid1.Columns[0].Title.Caption:='Код';
Form1.DBGrid1.Columns[1].Title.Caption:='Наименование';
end;
procedure TForm1.FormCreate(Sender: TObject);
begin
RadioButton7.Checked:=true;
//Подключение таблиц и их активизация
Table3.DatabaseName:=ExtractFileDir(Application.ExeName)+'\DB\';
Table3.TableName:='pred.db';
Table2.DatabaseName:=ExtractFileDir(Application.ExeName)+'\DB\';
Table2.TableName:='sov.db';
Table1.DatabaseName:=ExtractFileDir(Application.ExeName)+'\DB\';
Table1.TableName:='ediz.db';
Table4.DatabaseName:=ExtractFileDir(Application.ExeName)+'\DB\';
Table4.TableName:='gorod.db';
Table4.Active:=true;
Table3.Active:=true;
Table1.Active:=true;
Table2.Active:=true;
form;
end;
procedure TForm1.Button4Click(Sender: TObject);
begin //Дабавление данных о новом сбросе
if (trim(MaskEdit3.Text)<>'') and (trim(Edit2.Text)<>'') and (trim(MaskEdit1.Text)<>'. .') then
begin
Form1.Table2.Insert;
Form1.Table2.FieldByName('kod_ps').AsInteger:=strtoint(trim(MaskEdit3.Text));
try
Form1.Table2.FieldByName('data_s').AsString:=trim(MaskEdit1.Text);
except
Form1.Table2.Post;
Abort;
end;
Form1.Table2.FieldByName('kon').AsString:=trim(Edit2.Text);
Form1.Table2.FieldByName('raz').AsString:=trim(Edit3.Text);
Form1.Table2.FieldByName('kod_ed_izs').AsString:=trim(Edit8.Text);
Form1.Table2.FieldByName('summa').AsString:=trim(MaskEdit4.Text);
Form1.Table2.Post;
end
else MessageDlg('Заполните необходимые поля!',mtInformation,[mbOK],0);
end;
procedure TForm1.Button3Click(Sender: TObject);
begin //Поиск данных о сбросе по введенным параметрам
if trim(MaskEdit3.Text)<>'' then
begin
Form1.Table2.Locate('kod_ps',trim(MaskEdit3.Text),[]);
Abort;
end;
if (trim(Edit2.Text)<>'') then
begin
Form1.Table2.FilterOptions:=[foCaseInsensitive];
Form1.Table2.Filter:='kon = '''+trim(Edit2.Text)+'*''';
Form1.Table2.Filtered:=true;
end;
if trim(Edit2.Text)='' then Form1.Table2.Filtered:=false;
if (trim(Edit8.Text)<>'') then
begin
Form1.Table2.FilterOptions:=[foCaseInsensitive];
Form1.Table2.Filter:='kod_ed_izs ='''+trim(Edit8.Text)+'*''';
Form1.Table2.Filtered:=true;
end;
if (trim(Edit8.Text)='') and (trim(Edit2.Text)='') then Form1.Table2.Filtered:=false;
if trim(MaskEdit4.Text)<>'' then
begin
Form1.Table2.Locate('summa',trim(MaskEdit4.Text),[loPartialKey]);
Abort;
end;
if trim(MaskEdit1.Text)<>'. .' then
begin
{Form1.Table2.Locate('Data_s',trim(MaskEdit1.Text),[]);
Abort; }
Form1.Table2.FilterOptions:=[foCaseInsensitive];
Form1.Table2.Filter:='Data_s='''+trim(MaskEdit1.Text)+'''';
Form1.Table2.Filtered:=true;
end;
if trim(MaskEdit1.Text)='. .' then Form1.Table2.Filtered:=false;
end;
procedure TForm1.Button5Click(Sender: TObject);
begin //Удаление записи о сбросе (Table2)
if (Table2.RecordCount>0) then
begin
if MessageDlg('Удалить запись о данном сбросе?',mtWarning,[mbYes,mbNo],0)= mrYes then
Table2.Delete
else Abort;
end;
end;
procedure TForm1.Button10Click(Sender: TObject);
//добавление данных в таблицу pred.db (сведения о предприятиях)
begin
if (trim(Edit4.Text)<>'') and (trim(MaskEdit5.Text)<>'') then
begin
if Form1.Table3.Locate('kod_p',trim(MaskEdit5.Text),[])=true then
begin
{MessageDlg('Запись с таким номером уже существует!',mtError,[mbOK],0);
Abort;}
if MessageDlg('Запись с таким номером уже существует! Изменить?',mtWarning,[mbYes,mbNo],0)= mrYes then
begin
Form1.Table3.Edit;
{Form1.Table3.FieldByName('kod_p').AsInteger:=strtoint(trim(MaskEdit5.Text)); }
Form1.Table3.FieldByName('naim_p').AsString:=trim(Edit4.Text);
Form1.Table3.FieldByName('Adres').AsString:=trim(Edit5.Text);
Form1.Table3.FieldByName('Tel').AsString:=trim(Edit1.Text);
Form1.Table3.FieldByName('kod_gp').AsString:=trim(Edit12.Text);
Form1.Table3.Post;
end;
Abort;
end;
Form1.Table3.Insert;
Form1.Table3.FieldByName('kod_p').AsInteger:=strtoint(trim(MaskEdit5.Text));
Form1.Table3.FieldByName('naim_p').AsString:=trim(Edit4.Text);
Form1.Table3.FieldByName('Adres').AsString:=trim(Edit5.Text);
Form1.Table3.FieldByName('Tel').AsString:=trim(Edit1.Text);
Form1.Table3.FieldByName('kod_gp').AsString:=trim(Edit12.Text);
Form1.Table3.Post;
end
else MessageDlg('Заполните необходимые поля!',mtInformation,[mbOK],0);
end;
procedure TForm1.Button11Click(Sender: TObject);
begin //удаление данных о предприятии
if (Table3.RecordCount>0) then
begin
if MessageDlg('Удалить запись о данном предприятии?',mtWarning,[mbYes,mbNo],0)= mrYes then
Table3.Delete
else Abort;
end;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
//Поиск предприятия по введенным параметрам
if trim(MaskEdit5.Text)<>'' then
begin
Form1.Table3.Locate('kod_p',trim(MaskEdit5.Text),[loPartialKey]);
Abort;
end;
if (trim(Edit4.Text)<>'') then
begin
Form1.Table3.FilterOptions:=[foCaseInsensitive];
Form1.Table3.Filter:='naim_p= '''+trim(Edit4.Text)+'*''';
Form1.Table3.Filtered:=true;
end;
if trim(Edit4.Text)='' then Form1.Table3.Filtered:=false;
if trim(Edit5.Text)<>'' then
begin
Form1.Table3.FilterOptions:=[foCaseInsensitive];
Form1.Table3.Filter:='Adres = '''+trim(Edit5.Text)+'*''';
Form1.Table3.Filtered:=true;
end;
if (trim(Edit5.Text)='') and (trim(Edit4.Text)='') then Form1.Table3.Filtered:=false;
end;
procedure TForm1.Button6Click(Sender: TObject);
begin
Form3.Show;
end;
procedure TForm1.Button7Click(Sender: TObject);
//кнопка "Редактировать информацию"
begin
MaskEdit5.Text:=DBGrid3.Fields[0].AsString;
Edit4.Text:=DBGrid3.Fields[1].AsString;
Edit5.Text:=DBGrid3.Fields[2].AsString;
Edit1.Text:=DBGrid3.Fields[3].AsString;
Edit12.Text:=DBGrid3.Fields[4].AsString;
end;
procedure TForm1.DBGrid3DblClick(Sender: TObject);
begin
Form1.MaskEdit3.Text:=DBGrid3.Fields[0].AsString;
{ Form3.Edit1.Text:=DBGrid3.Fields[2].AsString;
Form3.Show; }
end;
procedure TForm1.DBGrid2DblClick(Sender: TObject);
begin
{Form3.Edit2.Text:=DBGrid2.Fields[1].AsString;
Form3.Edit4.Text:=DBGrid2.Fields[2{1}{].AsString;
Form3.Show; }
end;
procedure TForm1.Button8Click(Sender: TObject);
begin
Form4.QuickRep1.DataSet:=Form1.Table2;
Form4.QRDBText1.DataSet:=Form1.Table2;
Form4.QRDBText1.DataField:='kod_ps';
Form4.QRDBText2.DataSet:=Form1.Table2;
Form4.QRDBText2.DataField:='data_s';
Form4.QRDBText3.DataSet:=Form1.Table2;
Form4.QRDBText3.DataField:='kon';
Form4.QRDBText4.DataSet:=Form1.Table2;
Form4.QRDBText4.DataField:='raz';
Form4.QRDBText5.DataSet:=Form1.Table2;
Form4.QRDBText5.DataField:='kod_ed_izs';
Form4.QRDBText6.DataSet:=Form1.Table2;
Form4.QRDBText6.DataField:='summa';
Form4.QuickRep1.Preview;
end;
procedure TForm1.Button9Click(Sender: TObject);
begin
Form5.QuickRep1.DataSet:=Form1.Table3;
Form5.QRDBText1.DataSet:=Form1.Table3;
Form5.QRDBText1.DataField:='kod_p';
Form5.QRDBText2.DataSet:=Form1.Table3;
Form5.QRDBText2.DataField:='naim_p';
Form5.QRDBText3.DataSet:=Form1.Table3;
Form5.QRDBText3.DataField:='adres';
Form5.QRDBText4.DataSet:=Form1.Table3;
Form5.QRDBText4.DataField:='tel';
Form5.QRDBText5.DataSet:=Form1.Table3;
Form5.QRDBText5.DataField:='kod_gp';
Form5.QuickRep1.Preview;
end;
procedure TForm1.Button12Click(Sender: TObject);
begin
Form6.QuickRep1.DataSet:=Form1.Table4;
Form6.QRDBText1.DataSet:=Form1.Table4;
Form6.QRDBText1.DataField:='kod_g';
Form6.QRDBText2.DataSet:=Form1.Table4;
Form6.QRDBText2.DataField:='naim_g';
Form6.QRDBText3.DataSet:=Form1.Table4;
Form6.QRDBText3.DataField:='obl';
Form6.QuickRep1.Preview;
end;
procedure TForm1.Button13Click(Sender: TObject);
begin
if (trim(MaskEdit2.Text)<>'') and (trim(Edit6.Text)<>'') then
begin
if Form1.Table1.Locate('kod_ed_iz',trim(MaskEdit2.Text),[])=true then
begin
MessageDlg('Запись с таким номером уже существует!',mtError,[mbOK],0);
Abort;
end;
Form1.Table1.Insert;
Form1.Table1.FieldByName('kod_ed_iz').AsInteger:=strtoint(trim(MaskEdit2.Text));
Form1.Table1.FieldByName('naim_ed').AsString:=trim(Edit6.Text);
Form1.Table1.Post;
end
else MessageDlg('Заполните необходимые поля!',mtInformation,[mbOK],0);
end;
procedure TForm1.Button15Click(Sender: TObject);
begin
//Поиск единицы измерения по введенным параметрам
if trim(MaskEdit2.Text)<>'' then
begin
Form1.Table1.Locate('kod_ed_iz',trim(MaskEdit2.Text),[loPartialKey]);
Abort;
end;
if (trim(Edit6.Text)<>'') then
begin
Form1.Table1.FilterOptions:=[foCaseInsensitive];
Form1.Table1.Filter:='naim_ed= '''+trim(Edit6.Text)+'*''';
Form1.Table1.Filtered:=true;
end;
if trim(Edit6.Text)='' then Form1.Table1.Filtered:=false;
end;
procedure TForm1.Button14Click(Sender: TObject);
begin
//удаление данных о единице измерения
if (Table1.RecordCount>0) then
begin
if MessageDlg('Удалить запись о данной единице?',mtWarning,[mbYes,mbNo],0)= mrYes then
Table1.Delete
else Abort;
end;
end;
procedure TForm1.DBGrid1DblClick(Sender: TObject);
begin
Form1.Edit8.Text:=DBGrid1.Fields[0].AsString;
end;
procedure ns;
begin
Form1.Table2.MasterFields:='';
Form1.Table2.IndexName:='';
Form1.Table2.MasterSource:=nil;
Form1.Table3.MasterFields:='';
Form1.Table3.IndexName:='';
Form1.Table3.MasterSource:=nil;
Form1.Table1.MasterFields:='';
Form1.Table1.IndexName:='';
Form1.Table1.MasterSource:=nil;
Form1.Table4.MasterFields:='';
Form1.Table4.IndexName:='';
Form1.Table4.MasterSource:=nil;
end;
procedure TForm1.RadioButton1Click(Sender: TObject);
begin
ns;
Table2.MasterSource:=DataSource3;
Table2.MasterFields:='kod_p';
Table2.IndexName:='ps';
end;
procedure TForm1.RadioButton2Click(Sender: TObject);
begin
ns;
Table3.MasterSource:=DataSource2;
Table3.MasterFields:='kod_ps';
Table3.IndexName:='sp';
end;
procedure TForm1.RadioButton3Click(Sender: TObject);
begin
ns;
Table2.MasterSource:=DataSource1;
Table2.MasterFields:='kod_ed_iz';
Table2.IndexName:='es';
end;
procedure TForm1.RadioButton4Click(Sender: TObject);
begin
ns;
Table1.MasterSource:=DataSource2;
Table1.MasterFields:='kod_ed_izs';
Table1.IndexName:='se';
end;
procedure TForm1.RadioButton5Click(Sender: TObject);
begin
Form3.Show;
ns;
Table3.MasterSource:=DataSource4;
Table3.MasterFields:='kod_g';
Table3.IndexName:='gp';
end;
procedure TForm1.RadioButton6Click(Sender: TObject);
begin
Form3.Show;
ns;
Table4.MasterSource:=DataSource3;
Table4.MasterFields:='kod_gp';
Table4.IndexName:='pg';
end;
procedure TForm1.RadioButton7Click(Sender: TObject);