formdismiss1.pas
来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 799 行 · 第 1/2 页
PAS
799 行
with dbgrid do
begin
for i:=1 to fcount do
dbgrid.Columns[findex[i]].Color :=clwindow;
end;
fcount:=0;
end;
db:=pagecontrol1.ActivePageIndex;
dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
with dbgrid do
begin
for i:=1 to fcount do
if dbgrid.SelectedIndex =findex[i] then
begin
fsort[i]:='ASC';
exit;
end;
if fcount<5 then
begin
fcount:=fcount+1;
findex[fcount]:=dbgrid.selectedindex;
fsort[fcount]:='ASC';
dbgrid.Columns[dbgrid.selectedindex].Color :=clgray;
end;
end;
end;
procedure Tformdismiss.N2Click(Sender: TObject);
var i:integer;
dbgrid:Tdbgrid;
begin
if fcount>0 then
if db<>pagecontrol1.ActivePageIndex then
begin
dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
with dbgrid do
begin
for i:=1 to fcount do
dbgrid.Columns[findex[i]].Color :=clwindow;
end;
fcount:=0;
end;
db:=pagecontrol1.ActivePageIndex;
dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
with dbgrid do
begin
for i:=1 to fcount do
if dbgrid.SelectedIndex =findex[i] then
begin
fsort[i]:='DESC';
exit;
end;
if fcount<5 then
begin
fcount:=fcount+1;
findex[fcount]:=dbgrid.selectedindex;
fsort[fcount]:='DESC';
dbgrid.Columns[dbgrid.selectedindex].Color :=clgray;
end;
end;
end;
procedure Tformdismiss.N4Click(Sender: TObject);
var i:1..5;
sortexp:string;
dbgrid:Tdbgrid;
begin
if db<>pagecontrol1.ActivePageIndex then
begin
dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
with dbgrid do
begin
for i:=1 to fcount do
dbgrid.Columns[findex[i]].Color :=clwindow;
end;
fcount:=0;
exit;
end;
sortexp:='';
for i:=1 to fcount do
begin
if dbgrid1.Columns[findex[i]].Color=clgray then
begin
sortexp :=sortexp+dbgrid1.Columns[findex[i]].FieldName+' '+fsort[i];
if i<fcount then sortexp:=sortexp+',';
end;
end;
if sortexp<>'' then
case pagecontrol1.ActivePageIndex of
0: datamod.ADOdismiss.Sort :=sortexp;
1: datamod.ADOdismiss1.sort:=sortexp;
end;
end;
procedure Tformdismiss.N3Click(Sender: TObject);
var i:1..5;
dbgrid:Tdbgrid;
begin
dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(pagecontrol1.ActivePageIndex+1)));
with dbgrid do
begin
for i:=1 to fcount do
dbgrid.Columns[findex[i]].Color :=clwindow;
end;
fcount:=0;
end;
procedure Tformdismiss.PageControl1Changing(Sender: TObject;
var AllowChange: Boolean);
begin
(sender as Tpagecontrol).activepage.highlighted:=false;
end;
procedure Tformdismiss.DBEdit12KeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
if datamod.ADOdismiss.Modified then
datamod.adodismiss.post;
wwDBLookupCombo3.setfocus;
key:=#0;
end;
end;
procedure Tformdismiss.FormCreate(Sender: TObject);
begin
datetimepicker1.Date:=date;
datetimepicker2.Date:=date;
datetimepicker3.Date:=date;
datetimepicker4.Date:=date;
datetimepicker5.Date:=date;
datetimepicker6.Date:=date;
datetimepicker7.Date:=date;
pagecontrol1.activepageindex:=0;
datamod.Adodismiss.Active:=true;
datamod.ADOpersonal.Active:=true;
end;
procedure Tformdismiss.DateTimePicker1CloseUp(Sender: TObject);
var dtpname:string;
dtp:Tdatetimepicker;
begin
if (datamod.Adodismiss.State =dsinsert) or (datamod.Adodismiss.State =dsedit) then
begin
dtpname:=(sender as Tdatetimepicker).name;
dtp:=Tdatetimepicker(findcomponent('datetimepicker'+copy(dtpname,15,1)));
with dtp do
begin
case strtoint(copy(dtpname,15,1)) of
1:begin
datamod.Adodismiss.FieldByName('Dplan').asstring :=datetostr(dtp.date);
dbcombobox1.setfocus;
end;
{2:begin
datamod.Adodismiss.FieldByName('Dfact').asstring :=datetostr(dtp.date);
dbcombobox1.setfocus;
end; }
3:begin
datamod.Adodismiss.FieldByName('agreedate').asstring :=datetostr(dtp.date);
dbedit11.setfocus;
end;
4:begin
datamod.Adodismiss.FieldByName('checkdate').asstring :=datetostr(dtp.date);
dbedit12.SetFocus;
end;
end;
end;
end;
end;
procedure Tformdismiss.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_F1 then
begin
Application.HelpFile :=Extractfilepath(application.ExeName)+ 'help\pasahelp.hlp';
application.HelpJump('SHM_contents0014');
end;
end;
procedure Tformdismiss.tbnprintClick(Sender: TObject);
begin
if not assigned(reportleave) then
reportleave:=Treportleave.create(self);
reportleave.show;
end;
procedure Tformdismiss.N6Click(Sender: TObject);
var workno,cardno:string;
qry:tadoquery;
begin
workno:=datamod.Adodismiss1.fieldbyname('workno').asstring;
cardno:=datamod.Adodismiss1.fieldbyname('cardno').asstring;
qry:=tadoquery.Create(self);
qry.Connection:=datamod.Database1;
qry.sql.clear;
qry.sql.add('If exists (select workno from per24010 where workno='''+workno+''' and cardno='''+cardno+''') delete per24010 where workno='''+workno+''' and cardno='''+cardno+''' ');
qry.SQL.add('insert into per24010 (workno,cardno,name,deptno,dept,prof,gradename,sexname,blood,birthday,age,marry,peopleID,provname,people,homeadd,'+
'reladd,reltel1,reltel2,reltel3,reltel4,degreename,coursename,university,visa,foreignlan,indate,leave,years,specname1,specname2,'+
'specname3,specname4,experince,introduce1,relation1,introduce2,relation2,memo,try,brushcard,scheno,dothing,factorykind,dayormon,'+
'basepay,profmoney,techmoney,deptmoney,money1,money2,add1,add2,present,fixot,otkind,manage,clearpay,templive,staymoney,meatmoney,'+
'other1,other2,decrease1,decrease2,insurance,cdate,operator,usefuldate,unusedate,photo,stoppay,ruleno,mankind,eightornine)'+
' select workno,cardno,name,deptno,dept,prof,gradename,sexname,blood,birthday,age,marry,peopleID,provname,people,homeadd,'+
'reladd,reltel1,reltel2,reltel3,reltel4,degreename,coursename,university,visa,foreignlan,indate,leave,years,specname1,specname2,'+
'specname3,specname4,experince,introduce1,relation1,introduce2,relation2,memo,try,brushcard,scheno,dothing,factorykind,dayormon,'+
'basepay,profmoney,techmoney,deptmoney,money1,money2,add1,add2,present,fixot,otkind,manage,clearpay,templive,staymoney,meatmoney,'+
'other1,other2,decrease1,decrease2,insurance,cdate,operator,usefuldate,unusedate,photo,stoppay,ruleno,mankind,eightornine from per16010 where workno='''+workno+''' ');
qry.sql.add('Delete per16010 where workno='''+workno+''' ');
qry.sql.add('Update per24010 set leave=0 where workno='''+workno+''' ');
qry.SQL.add('delete from per15010 where workno='''+workno+''' ');
qry.sql.savetofile('c:\dismiss.sql');
qry.ExecSQL;
datamod.adodismiss1.close;
datamod.adodismiss1.open;
datamod.adodismiss.close;
datamod.adodismiss.open;
end;
procedure Tformdismiss.Edit1Exit(Sender: TObject);
begin
datamod.Adodismiss.close;
if trim(edit1.text)<>'' then
datamod.Adodismiss.commandtext:='Select * from per15010 where workno='''+edit1.text+''' or cardno='''+edit1.text+''' or name='''+edit1.text+''' ';
datamod.Adodismiss.open;
end;
procedure Tformdismiss.Edit2Exit(Sender: TObject);
begin
datamod.Adodismiss1.close;
if trim(edit2.text)<>'' then
datamod.Adodismiss1.commandtext:='select * from per16010 where workno='''+edit2.text+''' or cardno='''+edit2.text+''' or name='''+edit2.text+''' ';
datamod.Adodismiss1.open;
end;
procedure Tformdismiss.MaskEdit2Exit(Sender: TObject);
var fmat1:string;
begin
if fmat='/' then
fmat1:=' / / ';
if fmat='-' then
fmat1:=' - - ';
if maskedit2.text<>fmat then
if (not isdate(maskedit1.Text)) or (not isdate(maskedit2.text)) then
begin
Application.MessageBox('对不起,您输入的不是有效日期','Warning',mb_ok+mb_iconwarning);
maskedit1.SetFocus;
end
else begin
Datamod.Adodismiss.close;
Datamod.Adodismiss.commandtext:='Select * from per15010 where agreedate<='''+maskedit2.text+''' and agreedate>='''+maskedit1.text+''' ';
Datamod.Adodismiss.open;
end;
end;
procedure Tformdismiss.MaskEdit4Exit(Sender: TObject);
var fmat1:string;
begin
if fmat='/' then
fmat1:=' / / ';
if fmat='-' then
fmat1:=' - - ';
if maskedit4.text<>fmat1 then
if (not isdate(maskedit3.Text)) or (not isdate(maskedit4.text)) then
begin
Application.MessageBox('对不起,您输入的不是有效日期','Warning',mb_ok+mb_iconwarning);
maskedit3.SetFocus;
end
else begin
Datamod.Adodismiss1.close;
Datamod.Adodismiss1.commandtext:='select * from per16010 where leavedate<='''+maskedit4.text+''' and leavedate>='''+maskedit3.text+''' ';
Datamod.Adodismiss1.open;
end;
end;
procedure Tformdismiss.ToolButton1Click(Sender: TObject);
begin
with datamod.adoquery1 do
begin
close;
sql.clear;
sql.Add('update per24010 set leave=1 where workno in (select workno from per15010 where agreedate<='''+datetostr(date)+''') ');
sql.Add('insert per16010 (workno,cardno,name,deptno,dept,prof,gradename,sexname,blood,birthday,age,marry,peopleID,provname,people,homeadd,reladd,reltel1,reltel2,reltel3,reltel4,degreename,coursename,university,visa,'+
'foreignlan,indate,leave,years,specname1,specname2,specname3,specname4,experince,introduce1,relation1,introduce2,relation2,memo,try,brushcard,scheno,dothing,factorykind,dayormon,basepay,profmoney,techmoney,deptmoney,money1,'+
'money2,add1,add2,present,fixot,otkind,manage,clearpay,templive,staymoney,meatmoney,other1,other2,decrease1,decrease2,insurance,cdate,operator,usefuldate,unusedate,photo,stoppay,ruleno,mankind,eightornine,operatorL,cdateL,reason,leavekind,leavedate) '+
' select a.workno,a.cardno,a.name,a.deptno,a.dept,a.prof,a.gradename,a.sexname,a.blood,a.birthday,a.age,a.marry,a.peopleID,a.provname,a.people,a.homeadd,a.reladd,a.reltel1,a.reltel2,a.reltel3,a.reltel4,a.degreename,a.coursename,a.university,a.visa,'+
'a.foreignlan,a.indate,a.leave,a.years,a.specname1,a.specname2,a.specname3,a.specname4,a.experince,a.introduce1,a.relation1,a.introduce2,a.relation2,a.memo,a.try,a.brushcard,a.scheno,a.dothing,a.factorykind,a.dayormon,a.basepay,a.profmoney,a.techmoney,'+
'a.deptmoney,a.money1,a.money2,a.add1,a.add2,a.present,a.fixot,a.otkind,a.manage,a.clearpay,a.templive,a.staymoney,a.meatmoney,a.other1,a.other2,a.decrease1,a.decrease2,a.insurance,a.cdate,a.operator,a.usefuldate,a.unusedate,a.photo,a.stoppay,a.ruleno,'+
'a.mankind,a.eightornine,'''+pubworkname+''','''+datetostr(date)+''',b.reason,b.leavekind,b.agreedate from per24010 a,per15010 b where a.workno=b.workno and leave=1 and a.workno not in (select workno from per16010)');
execsql;
end;
case pagecontrol1.activepageindex of
0:begin
Datamod.Adodismiss.close;
Datamod.Adodismiss.filtered:=false;
Datamod.Adodismiss.filter:='';
Datamod.Adodismiss.commandtext:='Select * from per15010';
Datamod.Adodismiss.open;
end;
1:begin
Datamod.Adodismiss1.close;
Datamod.Adodismiss1.commandtext:='Select * from per16010';
Datamod.Adodismiss1.open;
end;
end;
end;
procedure Tformdismiss.DateTimePicker2CloseUp(Sender: TObject);
begin
maskedit1.text:=datetostr(datetimepicker2.date);
end;
procedure Tformdismiss.DateTimePicker5CloseUp(Sender: TObject);
begin
maskedit2.text:=datetostr(datetimepicker5.date);
end;
procedure Tformdismiss.DateTimePicker6CloseUp(Sender: TObject);
begin
maskedit3.text:=datetostr(datetimepicker6.date);
end;
procedure Tformdismiss.DateTimePicker7CloseUp(Sender: TObject);
begin
maskedit4.text:=datetostr(datetimepicker7.date);
end;
procedure Tformdismiss.DBEdit12Exit(Sender: TObject);
begin
with datamod.adoquery1 do
begin
//sql.close;
sql.clear;
sql.Add('update per24010 set leave=1 where workno in (select workno from per15010 where agreedate<='''+datetostr(date)+''') ');
sql.Add('insert per16010 (workno,cardno,name,deptno,dept,prof,gradename,sexname,blood,birthday,age,marry,peopleID,provname,people,homeadd,reladd,reltel1,reltel2,reltel3,reltel4,degreename,coursename,university,visa,'+
'foreignlan,indate,leave,years,specname1,specname2,specname3,specname4,experince,introduce1,relation1,introduce2,relation2,memo,try,brushcard,scheno,dothing,factorykind,dayormon,basepay,profmoney,techmoney,deptmoney,money1,'+
'money2,add1,add2,present,fixot,otkind,manage,clearpay,templive,staymoney,meatmoney,other1,other2,decrease1,decrease2,insurance,cdate,operator,usefuldate,unusedate,photo,stoppay,ruleno,mankind,eightornine,operatorL,cdateL,reason,leavekind,leavedate) '+
' select a.workno,a.cardno,a.name,a.deptno,a.dept,a.prof,a.gradename,a.sexname,a.blood,a.birthday,a.age,a.marry,a.peopleID,a.provname,a.people,a.homeadd,a.reladd,a.reltel1,a.reltel2,a.reltel3,a.reltel4,a.degreename,a.coursename,a.university,a.visa,'+
'a.foreignlan,a.indate,a.leave,a.years,a.specname1,a.specname2,a.specname3,a.specname4,a.experince,a.introduce1,a.relation1,a.introduce2,a.relation2,a.memo,a.try,a.brushcard,a.scheno,a.dothing,a.factorykind,a.dayormon,a.basepay,a.profmoney,a.techmoney,'+
'a.deptmoney,a.money1,a.money2,a.add1,a.add2,a.present,a.fixot,a.otkind,a.manage,a.clearpay,a.templive,a.staymoney,a.meatmoney,a.other1,a.other2,a.decrease1,a.decrease2,a.insurance,a.cdate,a.operator,a.usefuldate,a.unusedate,a.photo,a.stoppay,a.ruleno,'+
'a.mankind,a.eightornine,'''+pubworkname+''','''+datetostr(date)+''',b.reason,b.leavekind,b.agreedate from per24010 a,per15010 b where a.workno=b.workno and leave=1 and a.workno not in (select workno from per16010)');
execsql;
end;
end;
procedure Tformdismiss.ToolButton2Click(Sender: TObject);
begin
datamod.ADOQuery1.Close;
datamod.ADOQuery1.SQL.Clear;
datamod.ADOQuery1.SQL.Add('select count(*) count1 from per24010 where leaveworkmoney=1 and leave<>0 ');
datamod.ADOQuery1.Open;
if messagedlg('注意:请确保删除的资料在员工薪资档中设定离职已付!!!!推荐先备份数据库资料,共:'+inttostr(datamod.ADOQuery1.FieldByName('count1').AsInteger)+'笔记录',mtinformation,[mbyes,mbno],0)=mryes then
begin
datamod.ADOQuery1.Close;
datamod.ADOQuery1.SQL.Clear;
datamod.ADOQuery1.SQL.Add('delete per24010 where leaveworkmoney=1 and leave<>0 ');
datamod.ADOQuery1.ExecSQL;
datamod.ADOQuery1.Close;
end;
end;
procedure Tformdismiss.ToolButton3Click(Sender: TObject);
begin
panel4.Visible:=true;
datetimepicker8.Date:=date;
datetimepicker9.Date:=date;
end;
procedure Tformdismiss.BitBtn1Click(Sender: TObject);
begin
panel4.Visible:=false;
Animate1.Active:=false;
end;
procedure Tformdismiss.BitBtn3Click(Sender: TObject);
begin
if messagedlg('注意:还原资料,将删除现有的资料',mtinformation,[mbyes,mbno],0)=mryes then
begin
Animate1.Active:=true;
label20.Caption:='正在还原资料,请稍後.......';
label20.Visible:=true;
label20.Update;
adoquery1.Close;
adoquery1.SQL.Clear;
adoquery1.SQL.text:='exec leave ''0'','''+formatdatetime('yyyy/mm/dd',DateTimePicker8.DateTime)+''','''+formatdatetime('yyyy/mm/dd',DateTimePicker9.datetime)+'''';
try
adoquery1.ExecSQL;
except
;
end;
label20.Caption:='还原完毕';
label20.Update;
Datamod.AdoDismiss1.close;
Datamod.AdoDismiss1.commandtext:='Select * From per16010 order by dept,workno,cardno';
Datamod.AdoDismiss1.Open;
messagedlg('还原成功,谢谢使用!!!!',mtinformation,[mbok],0);
Animate1.Active:=false;
label20.Visible:=false;
label20.Update;
end;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?