Файл: Проектирование реализации операций бизнес-процесса «Разработка стратегии охраны окружающей среды»..pdf

ВУЗ: Не указан

Категория: Курсовая работа

Дисциплина: Не указана

Добавлен: 26.05.2023

Просмотров: 58

Скачиваний: 2

ВНИМАНИЕ! Если данный файл нарушает Ваши авторские права, то обязательно сообщите нам.

Кнопка «Поиск» - выполняет фильтрацию по полям «Наименование» и «Область», поиск по полю «Код города».

Компоненты «Связи таблиц» содержит группу зависимых переключателей и разработана для связывания таблиц. По умолчанию таблицы не связаны между собой.

При нажатии, например, на переключатель «Города+Предприятия» будут связаны таблица «Города» и таблица «Предприятия» по совпадающим полям, при этом таблица «Города» будет главной, а таблица «Предприятия» подчиненной и соответственно наоборот если будет отмечен переключатель «Предприятия+Города».

Следует отметить, что связать одновременно можно только две таблицы.

Базы данных находятся в папке \DB. Папка \DB должна находиться в одном каталоге с исполняемым файлом программы, потому что без базы данных программа не найдет путь доступа к базам данных и не будет работать.

ЗАКЛЮЧЕНИЕ

Качественный контроль за тем, чтобы все производственные процессы предприятия оставались экологически безопасными, как для производственного персонала, так и для окружающей среды, – задача не из легких, но, как и все процессы на предприятии, подлежит автоматизации. В том числе подлежит автоматизации и контроль за выбросом вредных веществ в окружающую среду.

Поэтому, цель данного курсового проекта - разработка программы для автоматизации работы сотрудника экологической службы, с целью уменьшения загруженности сотрудника, а так же к уменьшению количества ошибок, увеличения скорости работы с информацией. И данная цель была выполнена.

Для решения данной цели было выполнено:

  • Описан документооборот, который имеет место.
  • Описаны бизнес-процессы, которые имеют место.
  • Описана входная и результирующая информация.
  • Выбрана СУБД, для создания базы данных и обоснован выбор среды разработки.
  • В процессе разработки была создана БД, которая состоит из 4 таблиц.
  • Так же было создана схема пакета и дерево функций для данной программы.

В результате можно заключить, что внедрение данной программы поможет упростить работу сотрудника экологической службы.

Разработанное приложение не является итоговым вариантом, ее можно еще дополнять другими функциями.

СПИСОК ЛИТЕРАТУРЫ

  1. Осипов Д. Л. Базы данных и Delphi. Теория и практика. — СПб.: БХВ-Петербург, 2011. - 752 с.
  2. Лекция 5: Модели организации баз данных [онлайн] - URL: http://www.intuit.ru/studies/courses/3439/681/lecture/14023 (дата обращения 11.10.2016)
  3. Реляционная база данных [онлайн] - URL: http://base.mybloge.net/relyacionnaya-baza-dannyx/ (дата обращения 01.11.2016)
  4. Введение в базы данных. Часть 2. Настольные СУБД // А.Федоров, Н. Елманова [онлайн] - URL: http://compress.ru/article.aspx?id=10282 (дата обращения 01.11.2016)).
  5. Субд paradox [онлайн]- URL: http://uchebnik.biz/book/88-kompyuternye-seti/365-subd-paradox.html (дата обращения 01.11.2016)
  6. Обзор языков программирования и средств разработки на их основе [онлайн] - URL: http://bukvi.ru/computer/obzor-yazykov-programmirovaniya-i-sredstv-razrabotki-na-ix-osnove.html (дата обращения 01.11.2016)
  7. Преимущества и особенности Delphi [онлайн] - URL: http://starik2222.narod.ru/trpp/lec/11.htm (дата обращения 01.11.2016)
  8. Преимущества 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);