📄 employee_backup.pas
字号:
//3.6处理表personshouzhi
with ADOQtmp 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_search.FieldValues['empid'];
try
execsql;
except
if i>1 then tmpstr:=tmpstr+#13+#13+' 截止到编号为:['+ListEditor1.Cells[0,i-1]+'] 人员离职成功,剩下其它失败3.6!'
else tmpstr:='员工离职失败,请重试--3.6!';
MsgErr(handle,tmpstr);
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
inc(emp_num_e);
MsgErr(handle,tmpstr);
emp_BLflag:=false; break; exit;
end;
end;
//3.7处理表emp_pay
with ADOQtmp 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_search.FieldValues['empid'];
try
execsql;
except
if i>1 then tmpstr:=tmpstr+#13+#13+' 截止到编号为:['+ListEditor1.Cells[0,i-1]+'] 人员离职成功,剩下其它失败3.7!'
else tmpstr:='员工离职失败,请重试--3.7!';
MsgErr(handle,tmpstr);
inc(emp_num_e);
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
emp_BLflag:=false; break; exit;
end;
end;
//3.8处理表Emp_Payout
with ADOQtmp 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_search.FieldValues['empid'];
try
execsql;
except
if i>1 then tmpstr:=tmpstr+#13+#13+' 截止到编号为:['+ListEditor1.Cells[0,i-1]+'] 人员离职成功,剩下其它失败3.8!'
else tmpstr:='员工离职失败,请重试--3.8!';
MsgErr(handle,tmpstr);
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
inc(emp_num_e);
emp_BLflag:=false; break; exit;
end;
end;
// empid:=inttostr(ADOQ_search.FieldValues['empid']);
// empname:=ADOQ_search.FieldValues['empname'];
//3.9人员离职对应表新增一条记录
with ADOQtmp 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_search.FieldValues['empname'];
parameters.ParamValues['sex']:=ADOQ_search.FieldValues['sex'];
parameters.ParamValues['depname']:=ADOQ_search.FieldValues['depname'];
parameters.ParamValues['dutyname']:=ADOQ_search.FieldValues['dutyname'];
parameters.ParamValues['tmp_id']:=tmp_id;
try
execsql;
except
if i>1 then tmpstr:=tmpstr+#13+#13+' 截止到编号为:['+ListEditor1.Cells[0,i-1]+'] 人员离职成功,剩下其它失败3.9!'
else tmpstr:='员工离职失败,请重试--3.9!';
MsgErr(handle,tmpstr);
inc(emp_num_e);
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
emp_BLflag:=false; break; exit;
end;
end;
//4.删除原有编码记录
with ADOQtmp do
begin
close; sql.Clear;
sql.Add('delete from employee where empid=:V_empid');
parameters.ParamValues['v_empid']:=empid_int;
try
execsql;
except
if i>1 then tmpstr:=tmpstr+#13+#13+' 截止到编号为:['+ListEditor1.Cells[0,i-1]+'] 人员离职成功,剩下其它失败4.0!'
else tmpstr:='员工离职失败,请重试--4.0!';
MsgErr(handle,tmpstr);
inc(emp_num_e);
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
emp_BLflag:=false; break; exit;
end;
end;
//提交数据库
if not emp_BLflag then
begin
if datamod.ADOCon.InTransaction then datamod.ADOCon.RollbackTrans;
MsgErr(handle,'人员离职处理失败--All!');
emp_BLflag:=false; break; 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;
emp_BLflag:=false; break; exit;
end;
end;
end; //利用循环人员离职.End
///////////////////////////////////////////////////////////////////////////////////
///////////////////////////////////////////////////////////////////////////////////
if emp_num_e>0 then
begin
if emp_num_s=emp_num_e then
begin
tmpstr:='当前所选择的:['+inttostr(emp_num_s)+']位员工的 [';
tmpstr:=tmpstr+'离职均失效!';
end
else
begin
tmpstr:='当前所选择的:['+inttostr(emp_num_s)+']位员工中, 其中有 ['+inttostr(emp_num_s-emp_num_e)+'] 位离职成功';
tmpstr:=tmpstr+#13+#13+' 其他 ['+inttostr(emp_num_e)+'] 位人员离职均失败!';
end;
end
else
begin
tmpstr:='当前所选择的:['+inttostr(emp_num_s)+']位员工';
tmpstr:=tmpstr+'全部离职成功!';
end;
msgok(handle,tmpstr);
ProgressBar1.Position:=0;
Label_Display.Visible:=false;
application.ProcessMessages;
if not emp_BLflag then exit;
ListEditor1.Strings.Clear;
end;
procedure TForm_employee_Backup.FormShow(Sender: TObject);
begin
//添加部门信息
with ADOQtmp do
begin
close; sql.Clear;
sql.Add('select depname from department');
open;
combobox_dep.Items.Clear;
first;
while not eof do
begin
combobox_dep.Items.Add(fieldvalues['depname']);
next;
end;
end;
//添加职务信息
with adoqtmp do
begin
close; sql.Clear;
sql.Add('select dutyname from duty');
open;
combobox_duty.Items.Clear;
first;
while not eof do
begin
combobox_duty.Items.Add(fieldvalues['dutyname']);
next;
end;
close;
end;
end;
//查找对应待发工资的人员
procedure TForm_employee_Backup.SearchBtnClick(Sender: TObject);
var
empid:integer;
begin
with ADOQ_employee do
begin
close; sql.Clear;
sql.Add('select a.id, a.empid,a.empname,a.sex,b.depname,c.dutyname from employee a,department b, duty c');
sql.Add('where a.depid=b.depid and a.dutyid=c.dutyid and a.state=1 ');
case RadioGroup1.ItemIndex of
0:
begin
sql.add('and b.depname=:depname');
parameters.ParamValues['depname']:=trim(combobox_dep.Text);
end;
1:
begin
sql.Add('and c.dutyname=:dutyname');
parameters.ParamValues['dutyname']:=trim(combobox_duty.Text);
end;
2:
if trim(edit1.Text)<>'' then
begin
try
empid:=strtoint(trim(edit1.Text));
except
Msgerr(handle,'请输入正确的人员编码!');
exit;
end;
sql.Add('and a.empid=:empid');
parameters.ParamValues['empid']:=empid;
end;
3:
if trim(edit1.Text)<>'' then
begin
sql.Add('and a.empname=:empname');
parameters.ParamValues['empname']:=trim(edit1.Text);
end;
end;
try
execsql; open;
except
MsgErr(handle,'查找数据出错,请重试!');
end;
end;
end;
procedure TForm_employee_Backup.BitBtn1Click(Sender: TObject);
begin
with ADOQ_employee do
begin
close; sql.Clear;
sql.Add('select a.id, a.empid,a.empname,a.sex,b.depname,c.dutyname from employee a,department b, duty c');
sql.Add('where a.state=1 and a.depid=b.depid and a.dutyid=c.dutyid');
open;
end;
end;
procedure TForm_employee_Backup.RadioGroup1Click(Sender: TObject);
begin
case RadioGroup1.ItemIndex of
0:
begin
combobox_dep.Visible:=true;
combobox_duty.Visible:=false;
edit1.Visible:=false;
end;
1:
begin
combobox_duty.Visible:=true;
combobox_dep.Visible:=false;
edit1.visible:=false;
end;
2,3:
begin
combobox_dep.Visible:=false;
combobox_duty.Visible:=false;
edit1.Visible:=true;
end;
end;
end;
procedure TForm_employee_Backup.ListEditor1StringsChange(Sender: TObject);
begin
emp_num.Caption:='待离职的人员数是:'+inttostr(ListEditor1.Strings.Count)+' 个';
SaveBtn.Enabled:=ListEditor1.Strings.Count>0;
end;
//人员月薪工资发放查询开始
procedure TForm_employee_Backup.PageControl1Change(Sender: TObject);
var tmpdatetime:Tdatetime;
begin
if PageControl1.ActivePageIndex=0 then
begin
ADOQ_Emp_Backup.Close;
ADOQ_employee.Close;
exit;
end;
if PageControl1.ActivePageIndex=1 then
begin
GetHostDateTime(datamod.ADOCon,tmpdatetime);
edate.DateTime:=tmpdatetime;
if ComboBox_ID.Items.Count=0 then
//添加离职人员编码
with ADOQ_ADDEmp_LZ do
begin
close;sql.clear;
sql.add('select empid from employee');
sql.Add('where state=0');
try
execsql; open;
except
MsgErr(handle,'添加离职人员信息失败!'); exit;
end;
if recordcount =0 then
begin
MsgErr(handle,'无离职人员信息!');
exit;
end;
first;
ComboBox_ID.Items.Clear;
while not eof do
begin
ComboBox_ID.Items.Add(fieldvalues['empid']);
next;
end;
end; //添加离职人员编码.End
end;//PageControl1.ActivePageIndex=1.end
end;
procedure TForm_employee_Backup.BitBtn_locateClick(Sender: TObject);
var
lzempid, empname, ZZempid:string;
begin
// 检测时间的合法性
if sdate.datetime>edate.DateTime then
begin
msgerr(handle,'结束时间不能小于起始时间!');
edate.SetFocus;
abort; exit;
end;
lzempid:=trim(combobox_id.Text);
empname:=trim(edtname.Text);
ZZempid:=trim(Edt_ZZempid.Text);
with ADOQ_Emp_Backup do
begin
sql.Strings[1]:='and (LZ_date between :v_sd and :v_ed)';
if (lzempid<>'') and (empname='') then
sql.Strings[1]:=sql.Strings[1] + 'and (a.lz_empid=:V_lz_empid)';
if (lzempid='') and (empname<>'') then
sql.Strings[1]:=sql.Strings[1] + 'and (a.empname=:V_empname)';
if (lzempid<>'') and (empname<>'') then
sql.Strings[1]:=sql.Strings[1] + 'and (a.lz_empid=:V_lz_empid) and (a.empname=:V_empname)';
if zzempid<>'' then
begin
sql.Strings[2]:='and a.zz_empid=:V_zzempid';
parameters.ParamValues['V_zzempid']:=zzempid;
end;
if lzempid<>'' then
parameters.ParamValues['V_lz_empid']:=lzempid;
if empname<>'' then
parameters.Paramvalues['V_empname']:=empname;
parameters.ParamValues['v_sd']:=strtodatetime(formatdatetime('yyyy-mm-dd',sdate.Date));
parameters.ParamValues['v_ed']:=strtodatetime(formatdatetime('yyyy-mm-dd',edate.Date));
open;
if recordcount=0 then MsgOK(handle,'当前条件下没找到数据!');
prtbtn.Enabled:=recordcount>0;
//传递打印参数
if recordcount>0 then
begin
s_date:=formatdatetime('yyyy-mm-dd',sdate.Date);
e_date:=formatdatetime('yyyy-mm-dd',edate.Date);
end;
end;
end;
//人员月薪工资发放查询结束
procedure TForm_employee_Backup.PrtBtnClick(Sender: TObject);
begin
InitPage(RvProject1,RvSystem1,apppath+'\'+ReportName,apppath+'\'+ReportNdrName,0);
SelectPage(RvProject1,'Report1',10);
//传递参数
AddParameter(RvProject1,'sdate',s_date);
AddParameter(RvProject1,'edate',e_date);
AddParameter(RvProject1,'UserName',curAdmin.user_name);
AddParameter(RvProject1,'companyname',sysconfig.COMPANYANME);
//显示页
PageShow(RvProject1);
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -