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