Дипломная работа: Автоматизация учета рабочего времени и расчета заработной платы на предприятии ОАО "Пелла"

Внимание! Если размещение файла нарушает Ваши авторские права, то обязательно сообщите нам
107
begin
run_procedure := False;
form_sotrudnik.Label26.Caption := 'Не введен логин';
end
else
if form_sotrudnik.Button_add.Caption = 'Добавить' then
begin
buf_zapros := 'SELECT login FROM login_password WHERE login =
'+buf_kav+form_sotrudnik.Edit_login.Text+buf_kav+';';
datamodule1.Query_buf.Close; datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros; datamodule1.Query_buf.Open;
if datamodule1.Query_buf.RecordCount <> 0 then begin
run_procedure := False;
form_sotrudnik.Label26.Caption := 'Такой логин есть в БД';
end;
end;
if length(form_sotrudnik.Edit_password.Text) < 8 then
begin
run_procedure := False; form_sotrudnik.Label27.Caption := 'Пароль меньше 8 символов';
end; end;
if form_sotrudnik.DBGrid_dolgnost.DataSource.DataSet.RecordCount = 0 then
begin
run_procedure := False; form_sotrudnik.Label10.Caption := 'Не выбрана должность';
end;
//проверка закнчена
if run_procedure then
begin
if form_sotrudnik.Button_add.Caption = 'Добавить' then
add_sotrudnik;
if form_sotrudnik.Button_add.Caption = 'Исправить' then
update_sotrudnik;
end;
end;
procedure TForm_sotrudnik.update_sotrudnik;
var buf_kav, buf_zapros : string;
begin
buf_kav := '''';
if (length(Form_sotrudnik.Edit_login.Text) <> 0) AND (length(form_sotrudnik.Edit_password.Text) <> 0) then
begin
buf_zapros := 'UPDATE login_password SET login = '+buf_kav+form_sotrudnik.Edit_login.Text+buf_kav+','
108
+'password_user= '+buf_kav+form_sotrudnik.Edit_password.Text+buf_kav
+' WHERE login = '+buf_kav+form_sotrudnik.Label_login.Caption+buf_kav+';';
datamodule1.Query_buf.Close; datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros; datamodule1.Query_buf.ExecSQL;
buf_zapros :='UPDATE sotrudnik SET tabel_nomer = '+buf_kav+form_sotrudnik.Edit_tabel.Text+buf_kav+','
+'Family = '+buf_kav+form_sotrudnik.Edit_family.Text+buf_kav+','
+'First_name ='+buf_kav+form_sotrudnik.Edit_name.Text+buf_kav+','
+'second_name = '+buf_kav+form_sotrudnik.Edit_secondname.Text+buf_kav+','
+'id_dolgnost =
'+form_sotrudnik.DBGrid_dolgnost.DataSource.DataSet.FieldByName('id_dolgnost').AsString+','
+'phone = '+buf_kav+form_sotrudnik.Edit_phone.Text+buf_kav+','
+'login = '+buf_kav+form_sotrudnik.Edit_login.Text+buf_kav+','
+'dostup = ' +form_sotrudnik.DBGrid_dostup.DataSource.DataSet.FieldByName('id_dostup').AsString
+' WHERE tabel_nomer = '+buf_kav+form_sotrudnik.Label_tabel.Caption+buf_kav+';';
end
else
buf_zapros :='UPDATE sotrudnik SET tabel_nomer = '+buf_kav+form_sotrudnik.Edit_tabel.Text+buf_kav+','
+'Family = '+buf_kav+form_sotrudnik.Edit_family.Text+buf_kav+','
+'First_name ='+buf_kav+form_sotrudnik.Edit_name.Text+buf_kav+','
+'second_name = '+buf_kav+form_sotrudnik.Edit_secondname.Text+buf_kav+','
+'id_dolgnost =
'+form_sotrudnik.DBGrid_dolgnost.DataSource.DataSet.FieldByName('id_dolgnost').AsString+','
+'phone = '+buf_kav+form_sotrudnik.Edit_phone.Text+buf_kav
+' WHERE tabel_nomer = '+buf_kav+form_sotrudnik.Label_tabel.Caption+buf_kav+';';
datamodule1.Query_buf.Close; datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros; datamodule1.Query_buf.ExecSQL;
//чищу поля ввода
form_sotrudnik.Edit_tabel.Text := ''; form_sotrudnik.Edit_family.Text := '';
form_sotrudnik.Edit_name.Text := ''; form_sotrudnik.Edit_secondname.Text := '';
form_sotrudnik.Edit_phone.Text := ''; form_sotrudnik.Edit_login.Text := '';
form_sotrudnik.Edit_password.Text := ''; //обновляю данные на фоме
datamodule1.Query_view_sotrudnik.Active := False; datamodule1.Query_view_sotrudnik.Active := True;
view_dbgrid;
//переименовываю кнопку
form_sotrudnik.Button_add.Caption := 'Добавить';
end;
procedure TForm_sotrudnik.add_sotrudnik;
var buf_kav, buf_zapros : string;
begin
buf_kav := '''';
109
if (length(Form_sotrudnik.Edit_login.Text) <> 0) AND (length(form_sotrudnik.Edit_password.Text) <> 0) then
begin
buf_zapros := 'INSERT INTO login_password (login,password_user) VALUES ('
+buf_kav+form_sotrudnik.Edit_login.Text+buf_kav+','
+buf_kav+form_sotrudnik.Edit_password.Text+buf_kav+');';
datamodule1.Query_buf.Close; datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros; datamodule1.Query_buf.ExecSQL;
buf_zapros :='INSERT INTO sotrudnik (tabel_nomer,Family,First_name,second_name, id_dolgnost, phone,
login,dostup) VALUES ('
+buf_kav+form_sotrudnik.Edit_tabel.Text+buf_kav+','
+buf_kav+form_sotrudnik.Edit_family.Text+buf_kav+','
+buf_kav+form_sotrudnik.Edit_name.Text+buf_kav+','
+buf_kav+form_sotrudnik.Edit_secondname.Text+buf_kav+','
+form_sotrudnik.DBGrid_dolgnost.DataSource.DataSet.FieldByName('id_dolgnost').AsString+','
+buf_kav+form_sotrudnik.Edit_phone.Text+buf_kav+','
+buf_kav+form_sotrudnik.Edit_login.Text+buf_kav+','
+form_sotrudnik.DBGrid_dostup.DataSource.DataSet.FieldByName('id_dostup').AsString+');';
end
else
buf_zapros :='INSERT INTO sotrudnik (tabel_nomer,Family,First_name,second_name, id_dolgnost, phone)
VALUES ('
+buf_kav+form_sotrudnik.Edit_tabel.Text+buf_kav+','
+buf_kav+form_sotrudnik.Edit_family.Text+buf_kav+','
+buf_kav+form_sotrudnik.Edit_name.Text+buf_kav+','
+buf_kav+form_sotrudnik.Edit_secondname.Text+buf_kav+','
+form_sotrudnik.DBGrid_dolgnost.DataSource.DataSet.FieldByName('id_dolgnost').AsString+','
+buf_kav+form_sotrudnik.Edit_phone.Text+buf_kav
+');';
datamodule1.Query_buf.Close; datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros; datamodule1.Query_buf.ExecSQL;
//чищу поля ввода
form_sotrudnik.Edit_tabel.Text := ''; form_sotrudnik.Edit_family.Text := '';
form_sotrudnik.Edit_name.Text := ''; form_sotrudnik.Edit_secondname.Text := '';
form_sotrudnik.Edit_phone.Text := ''; form_sotrudnik.Edit_login.Text := '';
form_sotrudnik.Edit_password.Text := '';
//обновляю данные на фоме
datamodule1.Query_view_sotrudnik.Active := False; datamodule1.Query_view_sotrudnik.Active := True;
view_dbgrid;
end;
procedure TForm_sotrudnik.Button_deleteClick(Sender: TObject);
110
var buf_zapros, buf_kav, buf_login : string;
begin
buf_kav := '''';
if form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.RecordCount <> 0 then
begin
buf_login := form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Логин').AsString;
buf_zapros := 'DELETE FROM sotrudnik WHERE tabel_nomer
='+buf_kav+form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Табель_номер').AsString+buf_
kav+';';
datamodule1.Query_buf.Close; datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros; datamodule1.Query_buf.ExecSQL;
datamodule1.Query_buf.Close;
buf_zapros := 'DELETE FROM login_password WHERE login = '+buf_kav+buf_login+buf_kav+';';
datamodule1.Query_buf.Close; datamodule1.Query_buf.SQL.Clear;
datamodule1.Query_buf.SQL.Text := buf_zapros; datamodule1.Query_buf.ExecSQL;
datamodule1.Query_buf.Close;
datamodule1.Query_view_sotrudnik.Active := False; datamodule1.Query_view_sotrudnik.Active := True;
view_dbgrid;
end;
end;
procedure TForm_sotrudnik.Button_updateClick(Sender: TObject);
begin
form_sotrudnik.Edit_tabel.Text :=
form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Табель_номер').AsString;
form_sotrudnik.Label_tabel.Caption :=
form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Табель_номер').AsString;
form_sotrudnik.Edit_family.Text :=
form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Фамилия').AsString;
form_sotrudnik.Edit_name.Text :=
form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Имя').AsString;
form_sotrudnik.Edit_secondname.Text :=
form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Отчество').AsString;
form_sotrudnik.Edit_phone.Text :=
form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Телефон').AsString;
//вывожу предприятие
form_sotrudnik.DBGrid_zavod.DataSource.DataSet.Locate('name_zavod',form_sotrudnik.DBGrid_sotrudnik.DataS
ource.DataSet.FieldByName('Предприятие').AsString,[]);
//вывожу должность
form_sotrudnik.DBGrid_otdel.DataSource.DataSet.Locate('Название_отдела',form_sotrudnik.DBGrid_sotrudnik.D
ataSource.DataSet.FieldByName('Отдел').AsString,[]);
111
view_dolgnost;
datamodule1.Query_view_dolgnost.Locate('Должность',form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.Fi
eldByName('Должность').AsString,[]);
form_sotrudnik.Edit_login.Text :=
form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Логин').AsString;
datamodule1.Table_dostup.Locate('name_dostup',form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByN
ame('Уровень_доступа').AsString,[]);
form_sotrudnik.Label_login.Caption :=
form_sotrudnik.DBGrid_sotrudnik.DataSource.DataSet.FieldByName('Логин').AsString;
form_sotrudnik.Button_add.Caption := 'Исправить';
end;
procedure TForm_sotrudnik.CheckBox_loginClick(Sender: TObject);
begin
if form_sotrudnik.CheckBox_login.Checked = True then
form_sotrudnik.GroupBox_login.Visible := False
else
form_sotrudnik.GroupBox_login.Visible := True;
end;
procedure TForm_sotrudnik.FormCreate(Sender: TObject);
var buf_zapros : string;
begin clear_label;end;
procedure TForm_sotrudnik.FormShow(Sender: TObject);
begin
datamodule1.Table_zavod.active := False; datamodule1.Table_zavod.active := True;
datamodule1.Table_zavod_view.Active := False; datamodule1.Table_zavod_view.Active := True;
view_sotrudnik; view_otdel; view_dolgnost;
end;
procedure TForm_sotrudnik.view_sotrudnik;
var buf_kav, buf_zapros : string;
begin
buf_zapros := 'SELECT sotrudnik.tabel_nomer as Табель_номер, sotrudnik.family as Фамилия,
sotrudnik.first_name as Имя, '
+' sotrudnik.second_name as Отчество, sotrudnik.phone as Телефон, zavod.name_zavod as Предприятие,
otdel.name_otdel as'
+' Отдел, dolgnost.name_dolgnost as Должность, dolgnost.oklad as Оклад, login_password.login as Логин,
dostup.name_dostup as Уровень_доступа '
+' FROM dostup RIGHT JOIN (login_password RIGHT JOIN ((zavod INNER JOIN (otdel INNER JOIN
dolgnost ON otdel.id_otdel = dolgnost.id_otdel) ON '
+' zavod.id_zavod = otdel.id_zavod) INNER JOIN sotrudnik ON dolgnost.id_dolgnost = sotrudnik.id_dolgnost)
ON login_password.login = sotrudnik.login) ON dostup.id_dostup = sotrudnik.dostup '
Источник: https://baza.diplomsite.ru/previewfile/2418