Файл: Проектирование реализации операций бизнес-процесса «Управление персоналом» в организации.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;