⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 formperson.pas

📁 pasa人力资源考勤管理系统
💻 PAS
📖 第 1 页 / 共 3 页
字号:
begin
  db:=TDBGrid.create(self);
  if dbgrid=1 then
    db:=dbgrid1;
  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 Tformpeople.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 Tformpeople.N2Click(Sender: TObject);
var i:integer;
   db:Tdbgrid;
begin
  if dbgrid=1 then
    db:=dbgrid1
//  else if dbgrid=2 then
//    db:=dbgrid2
  else
    exit;
  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 Tformpeople.N4Click(Sender: TObject);
var i:1..5;
   db:Tdbgrid;
begin
  if dbgrid=1 then
    db:=dbgrid1
//  else if dbgrid=2 then
//    db:=dbgrid2
  else
    exit;
  datamod.ADOpersonal.Sort:='';
  for i:=1 to fcount do
  begin
   if db.Columns[findex[i]].Color=clgray then
    begin
     datamod.ADOpersonal.Sort :=datamod.ADOpersonal.Sort+db.Columns[findex[i]].FieldName+' '+fsort[i];
     if i<fcount then datamod.ADOpersonal.Sort:=datamod.ADOpersonal.Sort+',';
    end;
  end;
end;

procedure Tformpeople.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;
   end;
  fcount:=0;
end;

procedure Tformpeople.DBGrid1Enter(Sender: TObject);
begin
  dbgrid:=1;
end;

procedure Tformpeople.DBGrid2Enter(Sender: TObject);
begin
  dbgrid:=2;
end;

procedure Tformpeople.DBGrid1Exit(Sender: TObject);
begin
  dbgrid:=0;
end;

procedure Tformpeople.DBGrid2Exit(Sender: TObject);
begin
  dbgrid:=0;
end;

procedure Tformpeople.EditworknoExit(Sender: TObject);
begin
    if trim(EDitworkno.Text)='' then
       exit;
    if datamod.ADOpersonal.Locate('workno',editworkno.text,[]) then
      begin
        Editname.text:=datamod.ADOpersonal.fieldbyname('name').asstring;
        edit1.Text:=datamod.ADOpersonal.fieldbyname('cardno').asstring;
      end
    else
      Application.messagebox('没有该员工','Warning',mb_ok+mb_iconwarning);
end;

procedure Tformpeople.EditnameExit(Sender: TObject);
begin
  if trim(Editname.Text)='' then
    exit;
  if datamod.ADOpersonal.Locate('name',Editname.text,[]) then
    Editworkno.text:=datamod.ADOpersonal.fieldbyname('workno').asstring
  else
    Application.messagebox('没有该员工','提示',mb_ok+mb_iconinformation);
end;

procedure Tformpeople.PageControl1Change(Sender: TObject);
begin
//  (sender as Tpagecontrol).activepage.highlighted:=true;
end;

procedure Tformpeople.PageControl1Changing(Sender: TObject;
  var AllowChange: Boolean);
begin
  (sender as Tpagecontrol).activepage.highlighted:=false;
end;

procedure Tformpeople.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_contents0009');
    end;
end;

procedure Tformpeople.Edit1Exit(Sender: TObject);
begin
  if trim(EDit1.Text)='' then
       exit;
    if datamod.ADOpersonal.Locate('cardno',edit1.text,[]) then
      begin
        Editname.text:=datamod.ADOpersonal.fieldbyname('name').asstring;
        editworkno.Text:=datamod.ADOpersonal.fieldbyname('workno').asstring;
      end
    else
      Application.messagebox('没有该员工','Warning',mb_ok+mb_iconwarning);
end;

procedure Tformpeople.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if (datamod.adopersonal.FieldByName('try').AsBoolean) then
    dbgrid1.Canvas.Font.Color :=clRed;           //试用期人员为红色
  if datamod.adopersonal.FieldByName('stoppay').asboolean then
    dbgrid1.Canvas.Font.Color :=clblue;          //停薪留职为蓝色
  dbgrid1.DefaultDrawColumnCell(Rect,Datacol,column,state);
end;

procedure Tformpeople.ToolButton5Click(Sender: TObject);
begin
  ShellExecute(handle,'open',pchar(extractfilepath(application.exename)+'data\sysmsg.log'),nil,nil,SW_SHOW)
end;

procedure Tformpeople.clearClick(Sender: TObject);
begin
if application.messagebox('你确定要将已离职人员的资料彻底删除吗?请在删除前进行离职人员的薪资核算。','重要提示',mb_okcancel+mb_iconinformation)=idok then
begin
  try
    with datamod do
    begin
       adoquery1.close;
       adoquery1.sql.clear;
       adoquery1.sql.add('Insert into atdmasterbk Select a.*,''正常'' from atd25010 a left join per24010 b on a.workno=b.workno where b.leave=1 and b.workno in '+
                      '(select workno from per15010 where agreedate<='''+datetostr(date)+''') ');
       adoquery1.sql.add('Delete from atd25010 from per24010 b where atd25010.workno=b.workno and b.leave=1 and b.workno in '+
                      '(select workno from per15010 where agreedate<='''+datetostr(date)+''') ');
       adoquery1.sql.add('Insert into atdmasterbk Select a.*,''轮班'' from atd28010 a left join per24010 b on a.workno=b.workno where b.leave=1 and b.workno in '+
                      '(select workno from per15010 where agreedate<='''+datetostr(date)+''') ');
       adoquery1.sql.add('Delete from atd28010 from per24010 b where atd28010.workno=b.workno and b.leave=1 and b.workno in '+
                      '(select workno from per15010 where agreedate<='''+datetostr(date)+''') ');
       adoquery1.sql.add('Insert into atdmasterbk Select a.*,''换班'' from atd29010 a left join per24010 b on a.workno=b.workno where b.leave=1 and b.workno in '+
                      '(select workno from per15010 where agreedate<='''+datetostr(date)+''') ');
       adoquery1.sql.add('Delete from atd29010 from per24010 b where atd29010.workno=b.workno and b.leave=1 and b.workno in '+
                      '(select workno from per15010 where agreedate<='''+datetostr(date)+''') ');
       adoquery1.sql.add('delete from per24010 where leave=1 and workno in (select workno from per15010 where  agreedate<='''+datetostr(date)+''') ');
       adoquery1.sql.add('Insert into atd15010bk (macname,cardno,recdate,rectime,state,deldate,recdatetime,readok)'+
                      ' Select a.macname,a.cardno,a.recdate,a.rectime,a.state,a.deldate,a.recdatetime,a.readok from atd15010 a '+
                      ' left join per24010 b on a.cardno=b.cardno where a.readok=1 and b.leave=1 and b.workno in (select workno from per15010 where agreedate<='''+datetostr(date)+''') ');
       adoquery1.sql.add('Delete from atd15010 from per24010 b where atd15010.cardno=b.cardno and b.leave=1 and b.workno in '+
                      '(select workno from per15010 where agreedate<='''+datetostr(date)+''') ');
       adoquery1.sql.savetofile('c:\zuanleave.sql');
       adoquery1.execsql;
    end;
    application.messagebox('已成功将离职人员资料清除,要查看请进入<离职人员资料>中,'+#13#10+'现在你可以将离职人员的卡片给其它人用了.','齐协提示',mb_ok+mb_iconinformation);
  except
  application.messagebox('将离职人员资料清除失败,请重试','齐协提示',mb_ok+mb_iconinformation);
  end;
end;
end;

procedure Tformpeople.ToolButton1Click(Sender: TObject);
begin
  formcreate(Sender);
end;

procedure Tformpeople.ToolButton2Click(Sender: TObject);
begin
  // inherited;
  if not assigned(Formmulchange) then
     Formmulchange:=TFormmulchange.create(self);
     Formmulchange.show;
end;
procedure Tformpeople.PageControl2Changing(Sender: TObject;
  var AllowChange: Boolean);
begin
 (Sender as TPageControl).ActivePage.highlighted:=false;
end;




procedure Tformpeople.PageControl3Change(Sender: TObject);
begin
 fcDBTreeView1DblClick(fcDBTreeView1,fcdbtreeview1.ActiveNode,mbleft,[ssLeft,ssDouble],10,
  10);
end;

procedure Tformpeople.fcDBTreeView1DblClick(TreeView: TfcDBCustomTreeView;
  Node: TfcDBTreeNode; Button: TMouseButton; Shift: TShiftState; X,
  Y: Integer);

begin
    if node.DataSet.Name='ADOdepta' then
     exit;
     adokaoqin.Close;
     adokaoqin.CommandText:='select workno,max(cardno) cardno,max(name) name,max(dept) dept,max(prof) prof,left(monthy,4) years,sum(isnull(musthours,0)) musthours,sum(isnull(facthours,0)) facthours,sum(isnull(factday,0)) factday,'+
'sum(isnull(late,0)) late,sum(isnull(latetimes,0)) latetimes,sum(isnull(early,0)) early,sum(isnull(earlytimes,0)) earlytimes,sum(isnull(kuanggong,0)) kuanggong,sum(isnull(kuanggongtimes,0)) kuanggongtimes,'+
'sum(isnull(kuanggongl,0)) kuanggongL,sum(isnull(kuanggongtimesl,0)) kuanggongtimesL,sum(isnull(leavehave,0)) leavehave,sum(isnull(leavenohave,0)) leavenohave,sum(isnull(mustot,0)) mustot,'+
'sum(isnull(otpingshi,0)) otpingshi,sum(isnull(late,0)) otjieri,sum(isnull(otjiari,0)) otjiari,sum(isnull(lateot,0)) lateOt,sum(isnull(latetimesot,0)) latetimesOt,sum(isnull(earlyot,0)) earlyOt,'+
'sum(isnull(earlytimesot,0)) earlytimesOt,sum(isnull(kuanggongot,0)) kuanggongOt,sum(isnull(kuanggongtimesot,0)) kuanggongtimesOt,sum(isnull(kuanggongotl,0)) kuanggongOtL,sum(isnull(kuanggongtimesOtL,0)) '+
'kuanggongtimesOtL,sum(isnull(leavehaveot,0)) leavehaveOt,sum(isnull(leavenohaveot,0)) leavenohaveOt,sum(isnull(qiankatimes,0)) qiankatimes,sum(isnull(kuanggonge,0)) kuanggonge,sum(isnull(kuanggongtimese,0)) '+
'kuanggongtimese,sum(isnull(kuanggongote,0)) kuanggongote,sum(isnull(kuanggongtimesote,0)) kuanggongtimesote from atd34010 where workno='''+node.DataSet.FieldByName('workno').asstring+''' group by workno,left(monthy,4)';
     adokaoqin.Open;
     adojianchen.Close;
     adojianchen.CommandText:='select workno,min(name) name,min(prof) prof,case when jckind=0 then ''奖历'' else ''处罚'' end jc,left(convert(varchar,jcdate,111),4) years,sum(isnull(jctimes,0)) '+
     'jctimes,sum(isnull(jcmoney,0)) jcmoney From per17010  where workno='''+node.DataSet.FieldByName('workno').asstring+''' group by workno,jckind,left(convert(varchar,jcdate,111),4) ';
     adojianchen.Open;
     adotiaoxing.Close;
     adotiaoxing.CommandText:='select * From per27012  where workno='''+node.DataSet.FieldByName('workno').asstring+''' order by checkdate ';
     adotiaoxing.Open;
     adosjzdiao.Close;
     adosjzdiao.CommandText:='select workno,cardno,name,sexname,dept,prof,ldept,lprof,usefuldate,case when movekind=0 then ''提升'' else ''降职''end  movek,cdate,operator From per21010 where  workno='''+node.DataSet.FieldByName('workno').asstring+''' order by usefuldate ';
     adosjzdiao.Open;
     adojiaoyu.Close;
     adojiaoyu.CommandText:='select rq,workno,cardno,name,dept,course,result,case when pass=1 then ''通过'' else ''不合格'' end pa From edu08010 where workno='''+node.DataSet.FieldByName('workno').asstring+''' order by rq ';
     adojiaoyu.Open;
end;

end.



⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -