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 + -
显示快捷键?