Файл: Проектирование реализации операций бизнес-процесса «Управление персоналом» в организации.pdf

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

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

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

Добавлен: 25.05.2023

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

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

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

type

TForm2 = class(TForm)

StringGrid1: TStringGrid;

Image1: TImage;

SaveDialog1: TSaveDialog;

OpenDialog1: TOpenDialog;

ImageList1: TImageList;

ToolBar1: TToolBar;

ToolButton1: TToolButton;

ToolButton2: TToolButton;

ToolButton3: TToolButton;

ToolButton4: TToolButton;

ToolButton5: TToolButton;

ToolButton6: TToolButton;

ToolButton7: TToolButton;

ToolButton9: TToolButton;

ToolButton11: TToolButton;

ToolButton12: TToolButton;

ToolButton8: TToolButton;

ToolButton13: TToolButton;

ToolButton10: TToolButton;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

MainMenu1: TMainMenu;

N1: TMenuItem;

N2: TMenuItem;

N3: TMenuItem;

N4: TMenuItem;

N5: TMenuItem;

N6: TMenuItem;

N7: TMenuItem;

N8: TMenuItem;

N9: TMenuItem;

N10: TMenuItem;

N11: TMenuItem;

N12: TMenuItem;

N13: TMenuItem;

N14: TMenuItem;

Label1: TLabel;

Memo1: TMemo;

N15: TMenuItem;

N16: TMenuItem;

procedure BitBtn1Click(Sender: TObject);

procedure N7Click(Sender: TObject);

procedure BitBtn3Click(Sender: TObject);

procedure N11Click(Sender: TObject);

procedure N5Click(Sender: TObject);

procedure ToolButton13Click(Sender: TObject);

procedure N14Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

procedure N10Click(Sender: TObject);

procedure N9Click(Sender: TObject);

procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;

var CanSelect: Boolean);

procedure N8Click(Sender: TObject);

procedure N12Click(Sender: TObject);

procedure N13Click(Sender: TObject);

procedure N16Click(Sender: TObject);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form2: TForm2;

otdel : TDannue ;

curent_row:integer;

change:boolean;

implementation

uses Unit1, Unit3, Unit4, Unit5, Unit6, Unit7;

{$R *.dfm}

procedure TForm2.BitBtn1Click(Sender: TObject); // Хотите сохранить измененные данные?

begin

if change=true then

begin

if MessageDlg('Вы хотите сохранить измененные данные?',

mtInformation, [mbYes, mbNo], 0) = mrYes then

begin

if savedialog1.Execute then

begin

otdel.Save(savedialog1.filename);

end;

end;

end;

form1.show;

form2.Hide;

form2.StringGrid1.RowCount:=2;

form2.StringGrid1.Rows[1].Clear;

form2.Memo1.Lines.Clear;

change:=false;

end;

procedure TForm2.N7Click(Sender: TObject); // редактирование записи

if otdel.kol_vo>1 then

begin

form4.LabeledEdit1.Text:=otdel.otdelkadrov[curent_row].familia;

form4.LabeledEdit2.Text:=otdel.otdelkadrov[curent_row].name;

form4.LabeledEdit3.Text:=otdel.otdelkadrov[curent_row].surname;

form4.LabeledEdit5.Text:=inttostr(otdel.otdelkadrov[curent_row].pasport);

form4.LabeledEdit6.Text:=inttostr(otdel.otdelkadrov[curent_row].zarplata);

form4.LabeledEdit4.Text:=otdel.otdelkadrov[curent_row].dolzhnost;

form4.Memo1.Lines.Text:=otdel.otdelkadrov[curent_row].info;

form4.show;

end else

showmessage('редактирование невожможно')

end;

procedure TForm2.BitBtn3Click(Sender: TObject); //Хотите сохранить измененные данные?

begin

if change=true then

begin

if MessageDlg('Вы хотите сохранить измененные данные?',

mtInformation, [mbYes, mbNo], 0) = mrYes then

begin

if savedialog1.Execute then

begin

otdel.Save(savedialog1.filename);

end;

end;

end;

if MessageDlg('Вы уверены, что хотите выйти?',

mtConfirmation, [mbYes, mbNo], 0) = mrYes then

begin

form7.show;

form2.Hide;

end;

end;

procedure TForm2.N11Click(Sender: TObject); // выходим из прриложения

begin


if change=true then

begin

if MessageDlg('Вы хотите сохранить измененные данные?',

mtInformation, [mbYes, mbNo], 0) = mrYes then

begin

if savedialog1.Execute then

begin

otdel.Save(savedialog1.filename);

end;

end;

end;

if MessageDlg('Вы уверены, что хотите выйти?',

mtConfirmation, [mbYes, mbNo], 0) = mrYes then

begin

form7.show;

form2.Hide;

end;

end;

procedure TForm2.N5Click(Sender: TObject); // создаем базу данных

begin

form3.show;

end;

procedure TForm2.ToolButton13Click(Sender: TObject); // форма поиска

begin

form5.show;

form2.Hide;

end;

procedure TForm2.N14Click(Sender: TObject); // рисуем график, выводим максимальную, минимальную, среднюю

var i:integer; max, min, sum : integer; //суммарную заработную плату

begin

if otdel.kol_vo>1 then

begin

form6.Show;

form2.Hide;

form6.series1.clear;

form6.LabeledEdit1.Clear;

form6.LabeledEdit2.Clear;

form6.LabeledEdit3.Clear;

form6.LabeledEdit4.Clear;

for i:=1 to otdel.kol_vo-1 do

form6.series1.AddY(strtoint(form2.StringGrid1.cells[6,i]),form2.StringGrid1.Cells[1,i]);

max:=strtoint(form2.StringGrid1.Cells[6,1]);

min:=strtoint(form2.StringGrid1.Cells[6,1]);

sum:=0;

for i:=1 to otdel.kol_vo-1 do

begin

sum:=sum + strtoint(form2.StringGrid1.cells[6,i]);

if strtoint(form2.StringGrid1.cells[6,i])>max then

max:=strtoint(form2.StringGrid1.cells[6,i]);

if strtoint(form2.StringGrid1.cells[6,i])<min then

min:=strtoint(form2.StringGrid1.cells[6,i]);

end;

form6.LabeledEdit3.Text:=floattostr(sum/(otdel.kol_vo-1));

form6.LabeledEdit1.Text:=inttostr(max);

form6.LabeledEdit2.Text:=inttostr(min);

form6.LabeledEdit4.Text:=inttostr(sum);

end

else showmessage('Данных в таблице нет');

end;

procedure TForm2.BitBtn2Click(Sender: TObject);// выходим из приложения

begin

if change=true then

begin

if MessageDlg('Вы хотите сохранить измененные данные?',

mtInformation, [mbYes, mbNo], 0) = mrYes then

begin

if savedialog1.Execute then

begin

otdel.Save(savedialog1.filename);

end;

end;

end;

form7.Show;

form2.Hide;

end;

procedure TForm2.FormCreate(Sender: TObject);

begin

otdel := TDannue.Create;

curent_row:=1;

change:=false;

form2.StringGrid1.Cells[0,0]:='№';

form2.StringGrid1.Cells[1,0]:='Фамилия';

form2.StringGrid1.Cells[2,0]:=' Имя ';

form2.StringGrid1.Cells[3,0]:='Отчество';

form2.StringGrid1.Cells[4,0]:='Должность ';

form2.StringGrid1.Cells[5,0]:='Паспорт';

form2.StringGrid1.Cells[6,0]:='Зарплата';

end;

procedure TForm2.N10Click(Sender: TObject); // сохраняем базу

begin

if savedialog1.Execute then

begin

otdel.Save(savedialog1.filename);

end;

end;

procedure TForm2.N9Click(Sender: TObject); // открываем базу

var

i:integer;

begin

for i:=1 to 100 do

form2.StringGrid1.Rows[i].Clear;

if opendialog1.Execute then

begin

otdel.load(opendialog1.filename);

for i:= 1 to (otdel.kol_vo - 1 ) do

begin

stringgrid1.cells[0,i]:=inttostr(i);

stringgrid1.cells[2,i]:= otdel.otdelkadrov[i].name;

stringgrid1.cells[1,i]:= otdel.otdelkadrov[i].familia ;

stringgrid1.cells[3,i]:= otdel.otdelkadrov[i].surname;

stringgrid1.cells[4,i]:= otdel.otdelkadrov[i].dolzhnost;

memo1.Lines[i]:=otdel.otdelkadrov[i].info;

stringgrid1.cells[5,i]:= inttostr(otdel.otdelkadrov[i].pasport);

stringgrid1.cells[6,i]:= inttostr(otdel.otdelkadrov[i].zarplata);

StringGrid1.RowCount := stringgrid1.RowCount + 1;

end;

end;

end;

procedure TForm2.StringGrid1SelectCell(Sender: TObject; ACol,

ARow: Integer; var CanSelect: Boolean);

begin


curent_row:=arow;

memo1.Clear;

memo1.Lines.text:=otdel.otdelkadrov[arow].info;

if form5.StringGrid1.Cells[0, curent_row] <> '' then

begin

form5.Memo1.Clear;

form5.Memo1.Lines.text:=otdel.otdelkadrov[strtoint(stringgrid1.cells[0, curent_row])].info;

end;

end;

procedure TForm2.N8Click(Sender: TObject); //удаляем запись

var i : integer;

begin

if otdel.kol_vo>1 then

begin

//выводим предупреждение

if MessageDlg('Вы уверены, что хотите удалить запись?',

mtWarning, [mbYes, mbNo], 0) = mrYes then

begin

//упертый пользователь -- уверен

otdel.Del_Dannue(curent_row);

//сдвигаем все записи на одну назад

//в таблице

for i := curent_row to (otdel.kol_vo) do

begin

stringgrid1.Cells[1, i] := stringgrid1.Cells[1, i+1];

stringgrid1.Cells[2, i] := stringgrid1.Cells[2, i+1];

stringgrid1.Cells[3, i] := stringgrid1.Cells[3, i+1];

stringgrid1.Cells[4, i] := stringgrid1.Cells[4, i+1];

stringgrid1.Cells[5, i] := stringgrid1.Cells[5, i+1];

stringgrid1.Cells[6, i] := stringgrid1.Cells[6, i+1];

end;

stringgrid1.Rows[otdel.kol_vo].Clear;

//убираем лишнюю строку

stringgrid1.RowCount := stringgrid1.RowCount - 1;

change:=true;

end;

end else

showmessage('невозможно удалить запись');

end;

procedure TForm2.N12Click(Sender: TObject);

var i,j:integer; l : integer;

begin

//сортировка от а до я

otdel.Sort;

stringgrid1.RowCount := 2;

for i := 1 to (otdel.kol_vo - 1) do

begin

stringgrid1.cells[0,i]:=inttostr(i);

stringgrid1.cells[2,i]:= otdel.otdelkadrov[i].name;

stringgrid1.cells[1,i]:= otdel.otdelkadrov[i].familia ;

stringgrid1.cells[3,i]:= otdel.otdelkadrov[i].surname;

stringgrid1.cells[4,i]:= otdel.otdelkadrov[i].dolzhnost;

memo1.Lines[i]:=otdel.otdelkadrov[i].info;

stringgrid1.cells[5,i]:= inttostr(otdel.otdelkadrov[i].pasport);

stringgrid1.cells[6,i]:= inttostr(otdel.otdelkadrov[i].zarplata);

stringgrid1.RowCount := stringgrid1.RowCount + 1;

end;

end;

procedure TForm2.N13Click(Sender: TObject);

var i,j:integer;

begin

//сортировка от я до а

otdel.Sorted;

stringgrid1.RowCount := 2;

for i := 1 to (otdel.kol_vo - 1) do

begin

stringgrid1.cells[0,i]:=inttostr(i);

stringgrid1.cells[2,i]:= otdel.otdelkadrov[i].name;

stringgrid1.cells[1,i]:= otdel.otdelkadrov[i].familia ;

stringgrid1.cells[3,i]:= otdel.otdelkadrov[i].surname;

stringgrid1.cells[4,i]:= otdel.otdelkadrov[i].dolzhnost;

memo1.Lines[i]:=otdel.otdelkadrov[i].info;

stringgrid1.cells[5,i]:= inttostr(otdel.otdelkadrov[i].pasport);

stringgrid1.cells[6,i]:= inttostr(otdel.otdelkadrov[i].zarplata);

stringgrid1.RowCount := stringgrid1.RowCount + 1;

end;

end;

procedure TForm2.N16Click(Sender: TObject);

begin

//показываем окно О программе

ShellAbout(Form2.Handle, 'Автоматизированный отдел кадров',

'(c) Калпащикова Олеся ПИЭ-202д 2007 год', Application.Icon.Handle);

end;

procedure TForm2.FormClose(Sender: TObject; var Action: TCloseAction);

begin

//закрыта главная форма

//закрываем все приложение

application.Terminate;

end;

end.

unit Unit3; // модуль формы создания записи

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, ExtCtrls, Unit2,my_class_methods;

type

TForm3 = class(TForm)

Image1: TImage;

LabeledEdit1: TLabeledEdit;

LabeledEdit2: TLabeledEdit;

LabeledEdit3: TLabeledEdit;

LabeledEdit4: TLabeledEdit;

LabeledEdit5: TLabeledEdit;

LabeledEdit6: TLabeledEdit;

Memo1: TMemo;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Label1: TLabel;

procedure BitBtn1Click(Sender: TObject);


procedure BitBtn2Click(Sender: TObject);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form3: TForm3;

current:integer;

implementation

{$R *.dfm}

procedure TForm3.BitBtn1Click(Sender: TObject);// отмена создания записи/базы

begin

form2.show;

form3.Hide;

end;

procedure TForm3.FormCreate(Sender: TObject);

begin

current:=1;

end;

procedure TForm3.BitBtn2Click(Sender: TObject); // вводим данные, сохраняем их в массив

begin

if (form3.LabeledEdit1.Text<>'') and (form3.LabeledEdit2.Text<>'') and

(form3.LabeledEdit3.Text<>'') and (form3.LabeledEdit4.Text<>'') and

(form3.LabeledEdit5.Text<>'') and (form3.LabeledEdit6.Text<>'') and

(form3.Memo1.Lines.Count<>0)

then

begin

otdel.Dannue_add(form3.LabeledEdit1.Text,form3.LabeledEdit2.Text,form3.LabeledEdit3.Text,

form3.LabeledEdit4.Text,form3.Memo1.Lines.Text,strtoint(form3.LabeledEdit5.Text),

strtoint(form3.LabeledEdit6.Text));

form2.StringGrid1.cells[0, current] := inttostr( current);

form2.stringgrid1.cells[1, current]:= form3.LabeledEdit1.text;

form2.stringgrid1.cells[2, current]:= form3.LabeledEdit2.Text;

form2.stringgrid1.cells[3, current]:= form3.LabeledEdit3.Text;

form2.stringgrid1.cells[4, current]:= form3.LabeledEdit4.Text;

form2.stringgrid1.cells[5, current]:= form3.LabeledEdit5.Text;

form2.stringgrid1.cells[6, current]:= form3.LabeledEdit6.Text;

otdel.otdelkadrov[current].info:=form3.Memo1.lines.Text;

form2.Memo1.Lines.Text:= otdel.otdelkadrov[current].info;

LabeledEdit1.Clear;

LabeledEdit2.Clear;

LabeledEdit3.Clear;

LabeledEdit4.Clear;

LabeledEdit5.Clear;

LabeledEdit6.Clear;

memo1.Clear;

inc(current);

form2.StringGrid1.RowCount:=form2.StringGrid1.RowCount+1;

change:=true;

form3.Close;

end else

begin

showmessage('наобходимо ввести все поля');

end;

end;

End.

unit Unit4; // модуль формы редактирования записи

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons, ExtCtrls, unit2, my_class_methods;

type

TForm4 = class(TForm)

Image1: TImage;

LabeledEdit1: TLabeledEdit;

LabeledEdit2: TLabeledEdit;

LabeledEdit3: TLabeledEdit;

LabeledEdit4: TLabeledEdit;

LabeledEdit5: TLabeledEdit;

LabeledEdit6: TLabeledEdit;

Memo1: TMemo;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Label1: TLabel;

procedure BitBtn1Click(Sender: TObject);

procedure BitBtn2Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form4: TForm4;

implementation

{$R *.dfm}

procedure TForm4.BitBtn1Click(Sender: TObject);//отмена редактирования записи

begin

form2.show;

form4.Hide;

end;

procedure TForm4.BitBtn2Click(Sender: TObject);// редактирование записи

begin

if (form4.LabeledEdit1.Text<>'') and (form4.LabeledEdit2.Text<>'') and

(form4.LabeledEdit3.Text<>'') and (form4.LabeledEdit4.Text<>'') and

(form4.LabeledEdit5.Text<>'') and (form4.LabeledEdit6.Text<>'') and

(form4.Memo1.Lines.Count<>0)

then

begin

otdel.Dannue_update(curent_row,form4.LabeledEdit1.Text,form4.LabeledEdit2.Text,form4.LabeledEdit3.Text, form4.LabeledEdit4.Text,form4.Memo1.Lines.Text,strtoint(form4.LabeledEdit5.Text),strtoint(form4.LabeledEdit6.Text));

form2.StringGrid1.cells[0, curent_row] := inttostr( curent_row);

form2.stringgrid1.cells[1, curent_row]:= form4.LabeledEdit1.text;

form2.stringgrid1.cells[2, curent_row]:= form4.LabeledEdit2.Text;

form2.stringgrid1.cells[3, curent_row]:= form4.LabeledEdit3.Text;

form2.stringgrid1.cells[4, curent_row]:= form4.LabeledEdit4.Text;

form2.stringgrid1.cells[5, curent_row]:= form4.LabeledEdit5.Text;


form2.stringgrid1.cells[6, curent_row]:= form4.LabeledEdit6.Text;

otdel.otdelkadrov[curent_row].info:=form4.Memo1.lines.Text;

form2.Memo1.Lines.Text:= otdel.otdelkadrov[curent_row].info;

LabeledEdit1.Clear;

LabeledEdit2.Clear;

LabeledEdit3.Clear;

LabeledEdit4.Clear;

LabeledEdit5.Clear;

LabeledEdit6.Clear;

memo1.Clear;

change:=true;

form4.Close;

end else

begin

showmessage('наобходимо ввести все поля');

end;

end;

end.

unit Unit5;//модуль формы поиска

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, ExtCtrls, StdCtrls, Grids, Buttons, my_class_methods;

type

TForm5 = class(TForm)

Image1: TImage;

StringGrid1: TStringGrid;

LabeledEdit1: TLabeledEdit;

Bevel1: TBevel;

BitBtn1: TBitBtn;

Label2: TLabel;

Label3: TLabel;

Memo1: TMemo;

Label1: TLabel;

procedure BitBtn1Click(Sender: TObject);

procedure LabeledEdit1Change(Sender: TObject);

procedure StringGrid1SelectCell(Sender: TObject; ACol, ARow: Integer;

var CanSelect: Boolean);

procedure FormClose(Sender: TObject; var Action: TCloseAction);

procedure FormCreate(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form5: TForm5;

implementation

uses Unit2, Unit7;

{$R *.dfm}

procedure TForm5.BitBtn1Click(Sender: TObject); // назад на форму управления

begin

form2.show;

form5.Hide;

end;

procedure TForm5.LabeledEdit1Change(Sender: TObject); // собственно поиск

var

i : integer;

j : integer;

begin

j := 1;

form5.StringGrid1.RowCount := 2;

form5.StringGrid1.Rows[1].Clear;

form5.StringGrid1.Rows[2].Clear;

for i := 1 to otdel.kol_vo do

if pos(labelededit1.Text, otdel.otdelkadrov[i].familia) <> 0 then

begin

form5.StringGrid1.Cells[0, j] := form2.StringGrid1.Cells[0, i];

form5.StringGrid1.Cells[1, j] := form2.StringGrid1.Cells[1, i];

form5.StringGrid1.Cells[2, j] := form2.StringGrid1.Cells[2, i];

form5.StringGrid1.Cells[3, j] := form2.StringGrid1.Cells[3, i];

form5.StringGrid1.Cells[4, j] := form2.StringGrid1.Cells[4, i];

form5.StringGrid1.Cells[5, j] := form2.StringGrid1.Cells[5, i];

form5.StringGrid1.Cells[6, j] := form2.StringGrid1.Cells[6, i];

inc (j);

form5.StringGrid1.RowCount := form5.StringGrid1.RowCount + 1;

end;

end;

procedure TForm5.StringGrid1SelectCell(Sender: TObject; ACol,

ARow: Integer; var CanSelect: Boolean);

begin

form5.Memo1.Clear;

curent_row:=arow;

if form5.StringGrid1.Cells[0, curent_row] <> '' then

begin

form5.Memo1.Clear;

form5.Memo1.Lines.text:=otdel.otdelkadrov[strtoint(stringgrid1.cells[0, curent_row])].info;

end;

end;

procedure TForm5.FormClose(Sender: TObject; var Action: TCloseAction);

begin

//возвращаем пользователя на главную форму

form2.Show;

form5.Hide;

end;

procedure TForm5.FormCreate(Sender: TObject);

begin

//ставим подписи столбцов

form5.StringGrid1.Cells[0,0]:='№';

form5.StringGrid1.Cells[1,0]:='Фамилия';

form5.StringGrid1.Cells[2,0]:=' Имя ';

form5.StringGrid1.Cells[3,0]:='Отчество';

form5.StringGrid1.Cells[4,0]:='Должность ';

form5.StringGrid1.Cells[5,0]:='Паспорт';

form5.StringGrid1.Cells[6,0]:='Зарплата';

end;

end.

unit Unit6; //форма с графиком

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, TeEngine, Series, StdCtrls, Buttons, ExtCtrls, TeeProcs, Chart, my_class_methods;

type

TForm6 = class(TForm)

Chart1: TChart;

LabeledEdit1: TLabeledEdit;

LabeledEdit2: TLabeledEdit;

LabeledEdit3: TLabeledEdit;

LabeledEdit4: TLabeledEdit;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Series1: TBarSeries;