📄 atddata.pas
字号:
procedure TFormatddata.originalClick(Sender: TObject);
begin
//cardno,rq 是Formatddata中定义的用来查找某人的打卡记录
workno:=datamod.adoatddataworkno.AsString;
cardno:=datamod.adoatddatacardno.asstring;
rq:=datamod.adoatddatarq.asdatetime;
if not assigned(formoriginal) then
formoriginal:=TFormoriginal.create(application);
formoriginal.show;
end;
procedure TFormatddata.ToolButton7Click(Sender: TObject);
var fmat1:string;
begin
if fmat='/' then
fmat1:=' / / ';
if fmat='-' then
fmat1:=' - - ';
case pagecontrol1.activepageindex of
0:begin
datamod.adodaytotal.filter:='';
datamod.adodaytotal.close;
if toolbutton8.down then
datamod.adodaytotal.commandtext:='select * from atd32010bk '
else datamod.adodaytotal.CommandText:=' Select * from atd32010 ';
datamod.adodaytotal.open;
maskedit1.Text:=fmat1;
maskedit2.Text:=fmat1;
edit1.text:='';
end;
1:begin
adoatdmonth.filter:='';
adoatdmonth.close;
if toolbutton8.down then
adoatdmonth.CommandText:='Select * from atd34010bk'
else adoatdmonth.commandtext:='Select * from atd34010';
adoatdmonth.open;
Adoatdmonthsun.close;
if toolbutton8.down then
Adoatdmonthsun.commandtext:= 'Select * from atd32010bk where workno=:workno and '+
' (convert(varchar,year(rq))+''/''+case when len(convert(varchar,month(rq)))=1 then ''0''+ '+
' convert(varchar,month(rq)) else convert(varchar,month(rq)) end)=:monthy '
else
Adoatdmonthsun.commandtext:='Select * from atd32010 where workno=:workno and '+
' (convert(varchar,year(rq))+''/''+case when len(convert(varchar,month(rq)))=1 then ''0''+ '+
' convert(varchar,month(rq)) else convert(varchar,month(rq)) end)=:monthy ';
adoatdmonthsun.open;
if fmat='/' then
maskedit3.Text:=' / ';
if fmat='-' then
maskedit3.Text:=' - ';
edit4.text:='';
end;
end;
end;
procedure TFormatddata.ToolButton10Click(Sender: TObject);
begin
close;
end;
procedure TFormatddata.DBGrid2TitleClick(Column: TColumn);
begin
if f='DESC' then
f:='ASC'
else
f:='DESC';
Adoatdmonth.Sort :=column.FieldName+' '+f;
end;
procedure TFormatddata.dbgrid1TitleClick(Column: TColumn);
begin
if f='DESC' then
f:='ASC'
else
f:='DESC';
datamod.adodaytotal.Sort :=column.FieldName+' '+f;
end;
procedure TFormatddata.DBGrid3TitleClick(Column: TColumn);
begin
if f='DESC' then
f:='ASC'
else
f:='DESC';
Adoatdmonthsun.Sort :=column.FieldName+' '+f;
end;
procedure TFormatddata.N1Click(Sender: TObject);
var i:integer;
db:Tdbgrid;
begin
if dbgrid=0 then exit;
case dbgrid of
1:db:=dbgrid1;
2:db:=dbgrid2;
3:db:=dbgrid3;
end;
for i:=1 to fcount do
if db.SelectedIndex =findex[i] then
begin
fsort[i]:='ASC';
exit;
end;
if fcount<5 then
begin
fcount:=fcount+1;
findex[fcount]:=db.selectedindex;
fsort[fcount]:='ASC';
db.Columns[db.selectedindex].Color :=clgray;
end;
end;
procedure TFormatddata.N2Click(Sender: TObject);
var i:integer;
db:Tdbgrid;
begin
if dbgrid=0 then exit;
case dbgrid of
1:db:=dbgrid1;
2:db:=dbgrid2;
3:db:=dbgrid3;
end;
for i:=1 to fcount do
if db.SelectedIndex =findex[i] then
begin
fsort[i]:='DESC';
exit;
end;
if fcount<5 then
begin
fcount:=fcount+1;
findex[fcount]:=db.selectedindex;
fsort[fcount]:='DESC';
db.Columns[db.selectedindex].Color :=clgray;
end;
end;
procedure TFormatddata.N4Click(Sender: TObject);
var i:1..5;
db:Tdbgrid;
begin
if dbgrid=0 then
exit;
case dbgrid of
1:begin
db:=dbgrid1;
datamod.ADOdaytotal.Sort :='';
end;
2:begin
db:=dbgrid2;
ADOatdmonth.Sort :='';
end;
3:begin
db:=dbgrid3;
ADOatdmonthsun.Sort :='';
end;
end;
for i:=1 to fcount do
if db.Columns[findex[i]].Color=clgray then
case dbgrid of
1:begin
datamod.ADOdaytotal.Sort :=datamod.ADOdaytotal.Sort+db.Columns[findex[i]].FieldName+' '+fsort[i];
if i<fcount then datamod.ADOdaytotal.Sort:=datamod.ADOdaytotal.Sort+',';
end;
2:begin
ADOatdmonth.Sort :=ADOatdmonth.Sort+db.Columns[findex[i]].FieldName+' '+fsort[i];
if i<fcount then ADOatdmonth.Sort:=ADOatdmonth.Sort+',';
end;
3:begin
ADOatdmonthsun.Sort :=ADOatdmonthsun.Sort+db.Columns[findex[i]].FieldName+' '+fsort[i];
if i<fcount then ADOatdmonthsun.Sort:=ADOatdmonthsun.Sort+',';
end;
end;
end;
procedure TFormatddata.N3Click(Sender: TObject);
var i:1..5;
begin
for i:=1 to fcount do
begin
dbgrid1.Columns[findex[i]].Color :=clwindow;
dbgrid2.Columns[findex[i]].Color :=clwindow;
dbgrid3.Columns[findex[i]].Color :=clwindow;
end;
fcount:=0;
end;
procedure TFormatddata.PopupMenu2Popup(Sender: TObject);
begin
if datamod.ADOatddata.RecordCount=0 then
begin
modify.Enabled:=false;
sche.Enabled:=false;
original.Enabled:=false;
end else
begin
modify.Enabled:=true;
sche.Enabled:=true;
original.Enabled:=true;
end;
end;
procedure TFormatddata.PageControl1Change(Sender: TObject);
begin
Adoatdmonth.Close ;
Adoatdmonth.open ;
adoatdmonth.Filtered:=false;
adoatdmonth.Filter:='monthy='''+maskedit3.text+'''';
adoatdmonth.Filtered:=true;
Adoatdmonthsun.Close ;
Adoatdmonthsun.open ;
end;
procedure TFormatddata.MaskEdit3Exit(Sender: TObject);
var s1,s2,s:string;
begin
s1:=''; s2:=''; s:='';
if trim(edit4.text)<>'' then
s1:='(workno='''+edit4.text+''' or cardno='''+edit4.text+''' or name='''+edit4.text+''') ';
if trim(maskedit3.text)<>fmat then
s2:='(monthy='''+maskedit3.text+''') ';
if s1<>'' then
if s2<>'' then s:=s1+' and '+s2
else s:=s1
else if s2<>'' then s:=s2;
if s<>'' then
begin
adoatdmonth.close;
adoatdmonth.filter:='';
adoatdmonth.filtered:=false;
if toolbutton8.down then
adoatdmonth.CommandText:='Select * from atd34010bk where '+s+' '
else adoatdmonth.commandtext:='Select * from atd34010 where '+s+' ';
adoatdmonth.open;
end;
end;
procedure TFormatddata.MaskEdit2Exit(Sender: TObject);
var s1,s2,str,s3,s4,fmat1:string;
begin
if fmat='/' then
fmat1:='/ /';
if fmat='-' then
fmat1:='- -';
s1:='';s2:='';s3:='';s4:='';
if trim(edit1.text)<>'' then
s1:=' (workno='''+edit1.text+''' or cardno='''+edit1.text+''' or name='''+edit1.text+''') ';
if trim(maskedit2.text)<>fmat1 then
if (not isdate(maskedit1.Text)) or (not isdate(maskedit2.text)) then
begin
Application.MessageBox('对不起,您输入的不是有效日期','Warning',mb_ok+mb_iconwarning);
maskedit1.SetFocus;
exit;
end
else s2:=' and (rq<='''+maskedit2.text+''' and rq>='''+maskedit1.text+''')';
if trim(combobox2.text)='' then
combobox2.Text:='全部';
if combobox2.Text<>'全部' then
s3:=' and dept='''+combobox2.text+'''';
if trim(combobox1.text)='' then
combobox1.Text:='全部';
if combobox1.Text<>'全部' then
begin
case Combobox1.ItemIndex of
1:
s4:=' and kuanggong<>0';
2:
s4:=' and leavehave<>0';
3:
s4:=' and late<>0';
4:
s4:=' and early<>0';
end;
end;
str:=s1+s2+s3+s4;
if trim(str)<>'' then
if s1<>'' then
str:=copy(str,1,length(str))
else
str:=copy(str,pos(' and',str)+5,length(str));
datamod.adodaytotal.close;
datamod.adodaytotal.filter:='';
datamod.adodaytotal.filtered:=false;
if trim(str)<>'' then
if toolbutton8.down then
datamod.adodaytotal.CommandText:='Select * from atd32010bk where '+str+' '
else
datamod.adodaytotal.commandtext:='Select * from atd32010 where '+str+' '
else
if toolbutton8.down then
datamod.adodaytotal.CommandText:='Select * from atd32010bk'
else
datamod.adodaytotal.commandtext:='Select * from atd32010';
datamod.adodaytotal.open;
end;
procedure TFormatddata.DBGrid1DrawColumnCell(Sender: TObject;
const Rect: TRect; DataCol: Integer; Column: TColumn;
State: TGridDrawState);
begin
if datamod.adodaytotal.FieldByName('late').value>0 then
dbgrid1.Canvas.Font.Color :=clFuchsia;
if datamod.ADOdaytotal.FieldByName('early').value>0 then
dbgrid1.Canvas.Font.Color :=clFuchsia;
if datamod.ADOdaytotal.FieldByName('Kuanggong').value>0 then
dbgrid1.Canvas.Font.Color :=clblue;
if datamod.ADOdaytotal.fieldbyname('leavehave').value>0 then
dbgrid1.Canvas.Font.Color :=clred;
dbgrid1.DefaultDrawColumnCell(Rect,Datacol,column,state);
end;
procedure TFormatddata.FormKeyPress(Sender: TObject; var Key: Char);
begin
if key=#13 then
begin
selectnext(activecontrol,true,true);
key:=#0;
end;
end;
procedure TFormatddata.tbnfindClick(Sender: TObject);
begin
adoatdmonth.close;
adoatdmonth.open;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -