📄 employee.pas
字号:
parameters.ParamValues['v_oldempid']:=ADOQ_employee.FieldValues['empid'];
try
execsql;
except
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
MsgErr(handle,'人员离职处理失败3.3!');
emp_BLflag:=false; exit;
end;
end;
//3.4处理表ck_material
with ADOQtmp_emp do
begin
close;sql.clear;
sql.Add('update ck_material set empid=:v_empid where empid=:v_oldempid');
parameters.ParamValues['v_empid']:=maxid;
parameters.ParamValues['v_oldempid']:=ADOQ_employee.FieldValues['empid'];
try
execsql;
except
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
MsgErr(handle,'人员离职处理失败3.4!');
emp_BLflag:=false; exit;
end;
end;
//3.5处理表earn_abs
with ADOQtmp_emp do
begin
close;sql.clear;
sql.Add('update earn_abs set empid=:v_empid where empid=:v_oldempid');
parameters.ParamValues['v_empid']:=maxid;
parameters.ParamValues['v_oldempid']:=ADOQ_employee.FieldValues['empid'];
try
execsql;
except
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
MsgErr(handle,'人员离职处理失败3.5!');
emp_BLflag:=false; exit;
end;
end;
//3.6处理表personshouzhi
with ADOQtmp_emp do
begin
close;sql.clear;
sql.Add('update personshouzhi set empid=:v_empid where empid=:v_oldempid');
parameters.ParamValues['v_empid']:=maxid;
parameters.ParamValues['v_oldempid']:=ADOQ_employee.FieldValues['empid'];
try
execsql;
except
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
MsgErr(handle,'人员离职处理失败3.6!');
emp_BLflag:=false; exit;
end;
end;
//3.7处理表emp_pay
with ADOQtmp_emp do
begin
close;sql.clear;
sql.Add('update emp_pay set empid=:v_empid where empid=:v_oldempid');
parameters.ParamValues['v_empid']:=maxid;
parameters.ParamValues['v_oldempid']:=ADOQ_employee.FieldValues['empid'];
try
execsql;
except
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
MsgErr(handle,'人员离职处理失败3.7!');
emp_BLflag:=false; exit;
end;
end;
//3.8处理表Emp_Payout
with ADOQtmp_emp do
begin
close;sql.clear;
sql.Add('update Emp_Payout set empid=:v_empid where empid=:v_oldempid');
parameters.ParamValues['v_empid']:=maxid;
parameters.ParamValues['v_oldempid']:=ADOQ_employee.FieldValues['empid'];
try
execsql;
except
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
MsgErr(handle,'人员离职处理失败3.8!');
emp_BLflag:=false; exit;
end;
end;
//3.9人员离职对应表新增一条记录
with ADOQtmp_emp do
begin
close; sql.clear;
sql.Add('insert into employee_Backup (id, zz_empid, lz_empid, empname, sex, depname, dutyname,tmp_id)');
sql.add('values(:id, :zz_empid, :lz_empid, :empname, :sex, :depname, :dutyname, :tmp_id)');
parameters.ParamValues['id']:=tmp_empid;
parameters.ParamValues['zz_empid']:=empid_int;
parameters.ParamValues['lz_empid']:=maxid;
parameters.ParamValues['empname']:=ADOQ_employee.FieldValues['empname'];
parameters.ParamValues['sex']:=ADOQ_employee.FieldValues['sex'];
parameters.ParamValues['depname']:=ADOQ_employee.FieldValues['depname'];
parameters.ParamValues['dutyname']:=ADOQ_employee.FieldValues['dutyname'];
parameters.ParamValues['tmp_id']:=tmp_id;
try
execsql;
except
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
MsgErr(handle,'人员离职处理失败3.9!');
emp_BLflag:=false; exit;
end;
end;
empid:=inttostr(ADOQ_employee.FieldValues['empid']);
empname:=ADOQ_employee.FieldValues['empname'];
//4.删除原有编码记录
try
if ADOQ_employee.FieldValues['empid']<>empid_int then ADOQ_employee.Locate('empid',empid_int,[]);
ADOQ_employee.Delete;
except
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
MsgErr(handle,'人员离职处理失败4!');
emp_BLflag:=false; exit;
end;
//提交数据库
if not emp_BLflag then
begin
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
MsgErr(handle,'人员离职处理失败--All!');
exit;
end;
if emp_BLflag then
if datamod.ADOCon.InTransaction then
begin
try
datamod.ADOCon.CommitTrans;
except
MsgErr(handle,'人员离职处理失败--All!');
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
exit;
end;
with ADOQ_employee do
begin
close; open;
Locate('empid',maxid,[]);
end;
msgOk(handle,'编号为 ['+empid+'] 的员工 ['+empname+'] 离职成功!');
end;
end;
procedure TForm_employee.DBE_SexKeyPress(Sender: TObject; var Key: Char);
begin
abort;
end;
procedure TForm_employee.DBE_SexDblClick(Sender: TObject);
begin
if not (ADOQ_employee.State in [dsedit,dsinsert]) then exit;
if DBE_Sex.ItemIndex=0 then
begin
ADOQ_employee.FieldValues['sex']:='女';
DBE_Sex.ItemIndex:=1;
end
else
begin
ADOQ_employee.FieldValues['sex']:='男';
DBE_Sex.ItemIndex:=0;
end;
end;
procedure TForm_employee.DBGrid1DblClick(Sender: TObject);
begin
PageControl1.ActivePageIndex:=1;
end;
procedure TForm_employee.PageControl1Change(Sender: TObject);
begin
if PageControl1.ActivePageIndex=2 then
begin
AddBtn.Enabled:=false; EdtBtn.Enabled:=false;
DelBtn.Enabled:=false; SaveBtn.Enabled:=false;
CancelBtn.Enabled:=false;
if BitBtn1.Visible then
BitBtn1.Enabled:=false;
end
else
begin
AddBtn.Enabled:=true; EdtBtn.Enabled:=true;
DelBtn.Enabled:=true; SaveBtn.Enabled:=true;
CancelBtn.Enabled:=true;
if curAdmin.team_power[0][7]='1' then
BitBtn1.Enabled:=true;
end;
end;
procedure TForm_employee.ADOQ_employeeAfterInsert(DataSet: TDataSet);
var
WKtime:Tdatetime;
begin
GetHostDateTime(datamod.ADOCon,WKtime);
DataSet.FieldValues['worktime'] :=strtodate(formatdatetime('yyyy-mm-dd',WKtime));
DataSet.FieldValues['state'] :=1;
DBComboBox_grade.ItemIndex:=0;
dataset.FieldValues['grade']:=DBComboBox_grade.Text;
end;
procedure TForm_employee.ADOQ_employeeBeforePost(DataSet: TDataSet);
var
wktime:Tdatetime;
begin
wktime:=DataSet.FieldValues['worktime'];
DataSet.FieldValues['worktime']:=strtodate(formatdatetime('yyyy-mm-dd',WKtime));
if not ADOQ_employee.FieldValues['state'] then
begin
MsgErr(handle,'该员工已离职致员工信息不能更改!');
CancelBtnClick(self); abort; exit;
end;
if DataSet.State in [dsedit] then
begin
if Msgqst(handle,'确定要保存当前人员信息的修改吗?')=idno then
begin
CancelBtnClick(self);
abort; exit;
end;
end;
end;
procedure TForm_employee.DS_employee_QDataChange(Sender: TObject; Field: TField);
var F: TextFile;
begin
// exit; //////////////////////////////////////////////////////////
{ if not ADOQ_employee.Active then exit;
if ADOQ_employee.RecordCount =0 then exit;
if ADOQ_employee.State in [dsbrowse] then
begin
TblobField(ADOQ_employee.FieldByName('photo')).SaveToFile(apppath+'\temp.jpg');
AssignFile(F,apppath+'\temp.jpg');
Reset(F);
if filesize(F)>0 then
begin
DBImage1.Picture.LoadFromFile(apppath+'\temp.jpg'); // DBImage2.show;
end
else
DBImage1.Picture.Graphic.Free ;
CloseFile(f);
end; }
end;
procedure TForm_employee.BitBtn_idClick(Sender: TObject);
begin
ADOQ_employee.FieldValues['empid']:=Get_empid('empid','employee');
dbe_name.SetFocus;
end;
procedure TForm_employee.BitBtn_ExcelClick(Sender: TObject);
begin
Form_main.WriteIntoExcel(DBGrid1,datetostr(date),'员工编号对照表');
end;
procedure TForm_employee.ADOQ_employeeAfterScroll(DataSet: TDataSet);
begin
BitBtn_Excel.Enabled:=DataSet.FieldCount>0;
BitBtn1.Enabled:=BitBtn_Excel.Enabled;
end;
//人员相片编辑
procedure TForm_employee.DBImage1DblClick(Sender: TObject);
var tmpstr,S,str_filename,str_bh,str_name,str_dep,str_duty:string;
F: TextFile;
i:integer;
b:tbitmap;
j:tjpegimage;
begin
if not ADOQ_employee.Active then exit; //没有打开表
if ADOQ_employee.IsEmpty then exit; //为空时
if not OpenPictureDialog1.Execute then exit;
if not( ADOQ_employee.State in [dsedit,dsinsert]) then ADOQ_employee.Edit;
//判断当前文件是JPG,bmp格式的文件
if uppercase(Right_str(OpenPictureDialog1.filename,3))='JPG' then
begin
b:=tbitmap.Create;
j:=tjpegimage.Create;
try
j.LoadFromFile(OpenPictureDialog1.filename);
b.Assign(j); //将JPG格式转换成BMP格式
//Image1.Picture.Bitmap.Assign(b); //file://·?????image1?a?t
//Image1.Picture.SaveToFile('c:\123.bmp');
b.SaveToFile(AppPath+'\tmp.bmp');
(ADOQ_employee.FieldByName('photo') as Tblobfield).LoadFromFile(AppPath+'\tmp.bmp');
finally //file://ò????a??3y1¤×÷
b.free;
j.free;
end;
end
else //bmp格式
(ADOQ_employee.FieldByName('photo') as Tblobfield).LoadFromFile(OpenPictureDialog1.filename);
// ADOQ_employee.Post;
end;
procedure TForm_employee.DS_employee_QStateChange(Sender: TObject);
begin
if ADOQ_employee.State in [dsinsert] then
begin
DBE_ID.ReadOnly:=false;
DBE_ID.ParentColor:=false;
DBE_ID.Color:=clWindow;
BitBtn_id.Enabled:=true;
end;
if ADOQ_employee.State in [dsedit] then
begin
DBE_ID.ReadOnly:=true;
DBE_ID.ParentColor:=true;
BitBtn_id.Enabled:=false;
end;
if (sender as Tdatasource).DataSet.State in [dsinsert,dsedit] then
begin
DBGrid1.Enabled:=false;
AddBtn.Enabled:=false;
EdtBtn.Enabled:=false;
DelBtn.Enabled:=false;
LocateBtn.Enabled:=false;
if BitBtn1.Visible then
BitBtn1.Enabled:=false;
BitBtn_Excel.Enabled:=false;
DBNavigator1.Enabled:=false;
end;
if (sender as Tdatasource).DataSet.State in [dsbrowse] then
begin
DBE_ID.ReadOnly:=true;
DBE_ID.ParentColor:=true;
BitBtn_id.Enabled:=false;
DBGrid1.Enabled:=true;
AddBtn.Enabled:=true;
EdtBtn.Enabled:=true;
DelBtn.Enabled:=true;
LocateBtn.Enabled:=true;
DBNavigator1.Enabled:=true;
if (sender as Tdatasource).DataSet.recordcount>0 then
begin
if curAdmin.team_power[0][7]='1' then
BitBtn1.Enabled:=true;
BitBtn_Excel.Enabled:=true;
end;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -