labor.pas
来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 864 行 · 第 1/2 页
PAS
864 行
adolabget.post;
adolabget.append;
end else
if adolabget.State=dsedit then
adolabget.Post;
dbedit1.setfocus;
end;
2:
begin
if adolabset.State=dsinsert then
begin
adolabset.post;
adolabset.append;
end else
if adolabset.State=dsedit then
adolabset.Post;
dbedit5.setfocus;
end;
end;
end;
procedure TFormlabor.ADOlabgetBeforePost(DataSet: TDataSet);
var old,new:real;
begin
Adolabgetcdate.AsDateTime:=Date;
Adolabgetoperator.AsString:=pubworkname;
if adolabset.Locate('labno',adolabgetlabno.asstring,[]) then //修改记录
begin
if adolabget.State=dsedit then
begin
new:=adolabgetnum.NewValue;
old:=adolabgetnum.OldValue;
if (old+adolabsetnum.AsFloat)<new then
begin
Application.MessageBox('当前库存量小于领用量,所以不能领取.','Warning',mb_ok+mb_iconwarning);
adolabget.cancel;
end else
begin
Adolabset.edit;
Adolabsetnum.asfloat:=old+adolabsetnum.AsFloat-new;
Adolabset.post;
end
end else
if adolabget.State=dsinsert then
begin
new:=adolabgetnum.asfloat;
if new>adolabsetnum.asfloat then
begin
Application.MessageBox('当前库存量小于领用量,所以不能领取.','Warning',mb_ok+mb_iconwarning);
adolabget.cancelupdates;
end else
begin
Adolabset.Edit;
Adolabsetnum.AsFloat:=adolabsetnum.AsFloat-new;
Adolabset.post;
end;
end;
end else //新增记录
begin
Application.MessageBox('没有对应的劳保用品代号,所以不能领取.','Error',mb_ok+mb_iconerror);
Adolabget.Cancel;
end;
end;
procedure TFormlabor.ADOlabgetBeforeDelete(DataSet: TDataSet);
begin
if adolabset.Locate('labno',adolabgetlabno.asstring,[]) then
begin
adolabset.edit;
adolabsetnum.asfloat:=adolabsetnum.asfloat+adolabgetnum.asfloat;
adolabset.Post;
end;
end;
procedure TFormlabor.ADOlabgetAfterPost(DataSet: TDataSet);
begin
label18.caption:='';
end;
procedure TFormlabor.DateTimePicker1CloseUp(Sender: TObject);
begin
adolabget.edit;
adolabgetgetdate.AsString:=formatdatetime('yyyy'+dateseparator+'mm'+dateseparator+'dd',Datetimepicker1.date);
end;
procedure TFormlabor.ADOlabsetAfterInsert(DataSet: TDataSet);
begin
Adolabsetcdate.AsDateTime:=Date;
Adolabsetoperator.AsString:=pubworkname;
end;
procedure TFormlabor.tbnsortClick(Sender: TObject);
var i:1..5;
begin
if manyfield then
begin
manyfield:=false;
tbnsort.hint:='设定多字段排序';
popupmenu1.Items[0].Enabled :=false;
popupmenu1.Items[1].Enabled :=false;
popupmenu1.Items[2].Enabled :=false;
popupmenu1.Items[3].Enabled :=false;
end
else begin
manyfield:=true;
tbnsort.hint:='取消多字段排序'; //说明现在dbgrid1正处于多字段排序中
f:='';
popupmenu1.Items[0].Enabled :=true;
popupmenu1.Items[1].Enabled :=true;
popupmenu1.Items[2].Enabled :=true;
popupmenu1.Items[3].Enabled :=true;
fcount:=0;
for i:=1 to 5 do
begin
findex[i]:=0;
fsort[i]:='';
end;
end;
end;
procedure TFormlabor.tbnfindClick(Sender: TObject);
begin
if assigned(formcanfind) then formcanfind.close;
case pagecontrol1.ActivePageIndex of
0:findrecorder(adolabget,'Adolabget','lab02010');
1:findrecorder(ADOgettotal,'Adogettotal','lab03010');
2:findrecorder(adolabset,'Adolabset','lab01010');
end;
end;
procedure TFormlabor.DBGrid1TitleClick(Column: TColumn);
begin
if f='DESC' then
f:='ASC'
else
f:='DESC';
ADOlabget.Sort :=column.FieldName+' '+f;
end;
procedure TFormlabor.DBGrid1KeyPress(Sender: TObject; var Key: Char);
begin
dbgrid_keypress(sender,key);
end;
procedure TFormlabor.DBGrid3TitleClick(Column: TColumn);
begin
if f='DESC' then
f:='ASC'
else
f:='DESC';
ADOlabset.Sort :=column.FieldName+' '+f;
end;
procedure TFormlabor.DBGrid2TitleClick(Column: TColumn);
begin
if f='DESC' then
f:='ASC'
else
f:='DESC';
ADOgettotal.Sort :=column.FieldName+' '+f;
end;
procedure TFormlabor.DBGrid4TitleClick(Column: TColumn);
begin
if f='DESC' then
f:='ASC'
else
f:='DESC';
ADOsubget.Sort :=column.FieldName+' '+f;
end;
procedure TFormlabor.allClick(Sender: TObject);
begin
formlabdefine:=TFormlabdefine.create(self);
formlabdefine.showmodal;
formlabdefine.free;
end;
procedure TFormlabor.N1Click(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]:='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 TFormlabor.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 TFormlabor.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
dbgrid:=tdbgrid(findcomponent('dbgrid'+inttostr(db+1)));
with dbgrid do
begin
if dbgrid.Columns[findex[i]].Color=clgray then
begin
sortexp :=sortexp+dbgrid.Columns[findex[i]].FieldName+' '+fsort[i];
if i<fcount then sortexp:=sortexp+',';
end;
end;
end;
if sortexp<>'' then
case pagecontrol1.ActivePageIndex of
0: ADOlabget.Sort :=sortexp;
1: ADOgettotal.sort:=sortexp;
2: Adolabset.sort:=sortexp;
end;
end;
procedure TFormlabor.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 TFormlabor.FormKeyUp(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if key=VK_F1 then
begin
//showmessage('ok!')
//MessageDlg(Key + ' has been pressed', mtInformation, [mbOK], 0);
Application.HelpFile :=Extractfilepath(application.ExeName)+ 'help\pasahelp.hlp';
application.HelpJump('SHM_CONTENTS0042');
end;
end;
procedure TFormlabor.DateTimePicker2CloseUp(Sender: TObject);
begin
maskedit1.text:=formatdatetime('yyyy'+dateseparator+'mm'+dateseparator+'dd',Datetimepicker2.date);
end;
procedure TFormlabor.DateTimePicker3CloseUp(Sender: TObject);
begin
maskedit2.text:=formatdatetime('yyyy'+dateseparator+'mm'+dateseparator+'dd',Datetimepicker3.date);
end;
procedure TFormlabor.Edit1Exit(Sender: TObject);
begin
if trim(edit1.text)<>'' then
begin
adolabget.Filtered :=false;
adolabget.Filter :='workno='''+edit1.text+'''';
adolabget.Filtered :=true;
end;
end;
procedure TFormlabor.ppReport1BeforePrint(Sender: TObject);
var fmat1:string;
begin
if fmat='/' then
fmat1:=' / / ';
if fmat='-' then
fmat1:=' - - ';
pplabel31.caption:=companyname1;
if (maskedit1.Text<>fmat1) and (maskedit2.Text<>fmat1) then
pplabel32.caption:=maskedit1.text+'~'+maskedit2.text
else
pplabel32.Caption:='';
pplabel29.caption:='制表人:'+pubworkname;
end;
procedure TFormlabor.MaskEdit2Exit(Sender: TObject);
var fmat1:string;
begin
if fmat='/' then
fmat1:=' / / ';
if fmat='-' then
fmat1:=' - - ';
if 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;
end
else
begin
adolabget.Filtered :=false;
adolabget.Filter :='getdate<='''+maskedit2.Text+''' and getdate>='''+maskedit1.Text+''' ';
adolabget.Filtered :=true;
end;
end;
procedure TFormlabor.ppReport2BeforePrint(Sender: TObject);
begin
pplabel21.caption:=companyname1;
pplabel29.caption:='制表人:'+pubworkname;
end;
procedure TFormlabor.ppReport3BeforePrint(Sender: TObject);
begin
pplabel43.caption:=companyname1;
pplabel29.caption:='制表人:'+pubworkname;
end;
procedure TFormlabor.tbnprintClick(Sender: TObject);
begin
case pagecontrol1.activepageindex of
0:
begin
ppreport1.devicetype:='Screen';
ppreport1.print;
end;
1:
begin
ppreport2.devicetype:='Screen';
ppreport2.print;
end;
2:
begin
ppreport3.devicetype:='Screen';
ppreport3.print;
end;
end;
end;
procedure TFormlabor.ppReport1PreviewFormCreate(Sender: TObject);
begin
tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
end;
procedure TFormlabor.ppReport2PreviewFormCreate(Sender: TObject);
begin
tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
end;
procedure TFormlabor.ppReport3PreviewFormCreate(Sender: TObject);
begin
tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
end;
procedure TFormlabor.ToolButton6Click(Sender: TObject);
var fmat1:string;
begin
if fmat='/' then
fmat1:=' / / ';
if fmat='-' then
fmat1:=' - - ';
adolabget.Filtered :=false;
adolabget.Filter :='';
adolabget.Filtered :=true;
maskedit1.Text:=fmat1;
maskedit2.Text:=fmat1;
end;
end.
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?