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

📄 qianka.pas

📁 pasa人力资源考勤管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
      open;
      first;
   end;
   change:=false;
   itemtime:=0;
end;

procedure TFormqianka.Button5Click(Sender: TObject);
begin
   close;
end;

procedure TFormqianka.ADODataSet1factgo1Change(Sender: TField);
begin
   change:=true;

end;

procedure TFormqianka.SpeedButton3Click(Sender: TObject);
var i:integer;
    list:TStringList;
begin
  list:=TStringList.Create;
  for i:=0 to listbox2.items.count-1 do
    list.add(listbox2.items[i]);
  for i:=0 to listbox2.items.count-1 do
    if listbox2.Selected[i] then
      list.delete(i);
  listbox2.items.clear;
  for i:=0 to list.Count-1 do
    listbox2.Items.Add(list.Strings[i]);
    label14.caption:=inttostr(listbox2.items.count);
    label14.update;
end;

procedure TFormqianka.DBNavigator1Click(Sender: TObject;
  Button: TNavigateBtn);
begin
   formqianka.OnCreate(self);
end;

procedure TFormqianka.FormKeyPress(Sender: TObject; var Key: Char);
begin
     if (activecontrol=edit1) or (activecontrol=combobox1) then exit;
     if key=#13 then
     begin
          key:=#0;
          selectnext(activecontrol,true,true);
     end;
end;

procedure TFormqianka.ComboBox1KeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
   begin
     listbox1.Items.Clear;
     Qry1.close;
     Qry1.SQL.Text:='select * from pub05010 where dno='''+trim(copy(combobox1.text,1,8))+''' ';
     Qry1.Open;
     if Qry1.eof then
       Application.MessageBox('没有该部门,部门编号有误','Error',mb_ok+mb_iconerror)
     else begin
       Qry1.close;  //选出该部门所有的员工
       Qry1.SQL.Clear;
       Qry1.SQL.Text:='select workno,name,sexname from per24010 where deptno='''+trim(copy(combobox1.text,1,8))+''' and leave=0 order by workno';
       Qry1.Open;
       if Qry1.Eof then    //如果为空,提示user信息
         Application.MessageBox('该部门没有员工','Error',mb_ok+mb_iconerror)
       else
         while not Qry1.Eof do  //不为空,就把它加入listbox1(工号,姓名,性别)中,等待user选择
         begin
           listbox1.Items.Add(Qry1.fieldbyname('workno').asstring+copychar(' ',Qry1.fieldbyname('workno').size-length(Qry1.fieldbyname('workno').asstring))+'   '+
                              Qry1.fieldbyname('name').asstring);
           Qry1.Next;
         end;
     end;
     Qry1.Close;
   end;
end;

procedure TFormqianka.ComboBox1Change(Sender: TObject);
begin
  if length(combobox1.text)>8 then
  begin
     listbox1.Items.Clear;
     Qry1.close;
     Qry1.SQL.Text:='select * from pub05010 where dno='''+trim(copy(combobox1.text,1,8))+''' ';
     Qry1.Open;
     if Qry1.eof then
       Application.MessageBox('没有该部门,部门编号有误','Error',mb_ok+mb_iconerror)
     else begin
       Qry1.close;  //选出该部门所有的员工
       Qry1.SQL.Clear;
       Qry1.SQL.Text:='select workno,name,sexname from per24010 where deptno='''+trim(copy(combobox1.text,1,8))+''' and leave=0 order by workno';
       Qry1.Open;
       if not Qry1.Eof then    //如果为空,提示user信息
         while not Qry1.Eof do  //不为空,就把它加入listbox1(工号,姓名,性别)中,等待user选择
         begin
           listbox1.Items.Add(Qry1.fieldbyname('workno').asstring+copychar(' ',Qry1.fieldbyname('workno').size-length(Qry1.fieldbyname('workno').asstring))+'   '+
                              Qry1.fieldbyname('name').asstring);
           Qry1.Next;
         end;
     end;
     Qry1.Close;
  end;

end;

procedure TFormqianka.SpeedButton4Click(Sender: TObject);
var i:integer;
begin
    for i:=0 to listbox1.items.count-1 do
      if listbox2.items.indexof(listbox1.items[i])<0 then
        listbox2.items.add(listbox1.items[i]);
    label14.caption:=inttostr(listbox2.items.count);
    label14.update;
end;


procedure TFormqianka.SpeedButton6Click(Sender: TObject);
begin
  listbox2.clear;
  label14.caption:=inttostr(listbox2.items.count);
  label14.update;
end;

procedure TFormqianka.BitBtn1Click(Sender: TObject);
var book2:Tbookmark;
    monthy,workno:string;
begin
   adoquery1.close;
   adoquery1.sql.clear;
   adoquery1.sql.add('delete atd25011 from tempatd where atd25011.workno=tempatd.workno and atd25011.rq=tempatd.rq');
   adoquery1.execsql;
   adoquery1.close;
   with datamod do
   begin
     try
     if adodataset1.state=dsedit then adodataset1.post;
     query1.close;
     query1.sql.clear;
     Query1.Sql.add('insert into atd25011 select workno,cardno,name,rq,scheno,schename,comcode,gotime1,fgotime1,outtime1,fouttime1,add1,decrease1,daytime1,gotime2,fgotime2,outtime2,fouttime2,add2,decrease2,daytime2,'+
         'gotime3,fgotime3,outtime3,fouttime3,add3,decrease3,daytime3,gotime4,fgotime4,outtime4,fouttime4,add4,decrease4,daytime4,gotime5,fgotime5,outtime5,fouttime5,add5,decrease5,daytime5,dayhours,unatd,ot,notgive,'+
         'otkind,'''+pubworkname+''','''+formatdatetime('yyyy/mm/dd hh:mm:ss',now)+''','''+memo1.text+''',unatdxia,mankind from tempatd ');
     query1.sql.add('Exec kaoqin_qianka_process '''+dbedit1.Text+'''');
     Query1.ExecSQL;
    //用书签保证其不错位
     book2:=adodaytotal.getbookmark;
     adodaytotal.GotoBookmark(book2);
     adoatddata.Close;
     adodaytotal.Close;
     adoatddata.open;
     adodaytotal.open;
     adodaytotal.GotoBookmark(book2);
     formatddata.Adoatdmonth.Close;
     formatddata.Adoatdmonthsun.Close;
     formatddata.Adoatdmonth.open;
     formatddata.Adoatdmonthsun.Open;
     adodaytotal.FreeBookmark(book2);
//用书签保证其不错位
     application.messagebox('恭喜!签卡成功!','成功',mb_ok+mb_iconinformation);
     except
        application.messagebox('对不起!签卡失败!','失败',mb_ok+mb_iconinformation);
     end;
   end;

end;

procedure TFormqianka.Button1Click(Sender: TObject);
var book2:Tbookmark;
    i:integer;
begin
   if listbox2.Items.Count=0 then
   begin
     application.messagebox('您没有选择鉴卡人员,不能进行鉴卡!','齐协提示',mb_ok+mb_iconinformation);
     exit;
   end;
   adoquery1.Close;
   adoquery1.SQL.Clear;
   adoquery1.SQL.Add('delete qiankaworkno' );
   adoquery1.ExecSQL;
   for i:=0 to listbox2.Items.Count-1 do
   begin
     adoquery1.close;
     adoquery1.sql.clear;
     adoquery1.sql.add('insert into qiankaworkno (workno) values('''+copy(listbox2.items[i],1,pos('   ',listbox2.items[i]))+''')');
     adoquery1.sql.add('update qiankaworkno set cardno=a.cardno from per24010 a where qiankaworkno.workno=a.workno');
     adoquery1.execsql;
   end;
   with datamod do
   begin
     try
         adoquery1.close;
         adoquery1.sql.clear;
         adoquery1.sql.add('delete atd25011 from qiankaworkno where atd25011.workno=qiankaworkno.workno and atd25011.rq='''+dbedit1.Text+'''');
         adoquery1.execsql;
         if adodataset1.state=dsedit then adodataset1.post;
         query1.close;
         query1.sql.clear;
         Query1.Sql.add('insert into atd25011 select b.workno,b.cardno,a.name,a.rq,a.scheno,a.schename,a.comcode,a.gotime1,a.fgotime1,a.outtime1,a.fouttime1,a.add1,a.decrease1,a.daytime1,a.gotime2,a.fgotime2,a.outtime2,a.fouttime2,a.add2,a.decrease2,a.daytime2,'+
         'a.gotime3,a.fgotime3,a.outtime3,a.fouttime3,a.add3,a.decrease3,a.daytime3,a.gotime4,a.fgotime4,a.outtime4,a.fouttime4,a.add4,a.decrease4,a.daytime4,a.gotime5,a.fgotime5,a.outtime5,a.fouttime5,a.add5,a.decrease5,a.daytime5,a.dayhours,a.unatd,a.ot,'+
         'a.notgive,a.otkind,'''+pubworkname+''','''+formatdatetime('yyyy/mm/dd hh:mm:ss',now)+''','''+memo1.text+''',a.unatdxia,a.mankind from qiankaworkno b,tempatd a where NOT EXISTS (select workno from atd25011 where rq=a.rq and workno=a.workno)');
     query1.sql.add('Exec kaoqin_qianka_process '''+dbedit1.Text+'''');
     query1.sql.savetofile('c:\qianka.sql');
     query1.execsql;
//用书签保证其不错位
     book2:=adodaytotal.getbookmark;
     adodaytotal.GotoBookmark(book2);
     adoatddata.Close;
     adodaytotal.Close;
     adoatddata.open;
     adodaytotal.open;
     adodaytotal.GotoBookmark(book2);
     formatddata.Adoatdmonth.Close;
     formatddata.Adoatdmonthsun.Close;
     formatddata.Adoatdmonth.open;
     formatddata.Adoatdmonthsun.Open;
     adodaytotal.FreeBookmark(book2);
//用书签保证其不错位
     application.messagebox('恭喜!签卡成功!','成功',mb_ok+mb_iconinformation);
     except
        application.messagebox('对不起!签卡失败!','失败',mb_ok+mb_iconinformation);
     end;
   end;
end;

procedure TFormqianka.SpeedButton2Click(Sender: TObject);
var i:integer;
begin
    for i:=0 to listbox1.items.count-1 do
    begin
       if listbox1.Selected[i] then
         if listbox2.items.indexof(listbox1.items[i])<0 then
         listbox2.Items.add(listbox1.items[i]);
    end;
    label14.caption:=inttostr(listbox2.items.count);
    label14.update;
end;

procedure TFormqianka.SpeedButton1Click(Sender: TObject);
var rq,rq1:string;
begin
  with adodataset1 do
  begin
    edit;
    if not (fieldbyname('gotime1').isnull) then
    begin
      fieldbyname('fgotime1').asstring:=fieldbyname('gotime1').asstring;
      fieldbyname('fouttime1').asstring:=fieldbyname('outtime1').asstring;
    end;
    if not (fieldbyname('gotime2').isnull) then
    begin
      fieldbyname('fouttime2').asstring:=fieldbyname('outtime2').asstring;
      fieldbyname('fouttime2').asstring:=fieldbyname('outtime2').asstring;
    end;
    if not (fieldbyname('gotime3').isnull) then
    begin
      fieldbyname('fouttime3').asstring:=fieldbyname('outtime3').asstring;
      fieldbyname('fouttime3').asstring:=fieldbyname('outtime3').asstring;
    end;
    if not (fieldbyname('gotime4').isnull) then
    begin
      fieldbyname('fouttime4').asstring:=fieldbyname('outtime4').asstring;
      fieldbyname('fouttime4').asstring:=fieldbyname('outtime4').asstring;
    end;
    if not (fieldbyname('gotime5').isnull) then
    begin
      fieldbyname('fouttime5').asstring:=fieldbyname('outtime5').asstring;
      fieldbyname('fouttime5').asstring:=fieldbyname('outtime5').asstring;
    end;
    post;
  end;
end;

procedure TFormqianka.Edit1KeyPress(Sender: TObject; var Key: Char);
var
   i,p:integer;
   have:boolean;
begin
  if key=#13 then
  begin
    have:=false;
    p:=-1;
    for i:=0 to Listbox2.Items.Count-1 do
    begin
      if ansicomparetext(trim(copy(listbox2.items[i],1,10)),Edit1.text)=0 then
      begin
         have:=true;
         p:=i;
      end;
    end;
    if not have then
    begin
      Qry1.Close;
      Qry1.sql.text:='Select * from per24010 where workno='''+Edit1.text+''' and leave=0 ';
      Qry1.open;
      if not Qry1.eof then
      begin
           listbox2.Items.Add(Qry1.fieldbyname('workno').asstring+'   '+
                              Qry1.fieldbyname('name').asstring+'  '+
                              Qry1.fieldbyname('sexname').asstring);
           listbox2.ItemIndex:=Listbox2.Items.count-1;
      end else
         Application.MessageBox('没有该工号的员工','Error',mb_ok+mb_iconerror);
    end;
    listbox2.ItemIndex:=p;
    edit1.Clear;
end;
end;
procedure TFormqianka.RG1Click(Sender: TObject);
begin
    if rg1.ItemIndex=0 then  //全厂
    begin
       combobox1.enabled:=false;
       listbox1.enabled:=false;
       speedbutton4.enabled:=false;
       speedbutton2.enabled:=false;
       Listbox2.clear;
       Qry1.close;
       Qry1.sql.text:='Select * from per24010 where  stoppay=0 and leave=0 ';
       //Qry1.sql.text:='Select * from per24010 where brushcard=1 and stoppay=0 and leave=0 ';
       Qry1.open;
       while not Qry1.eof do
       begin
           listbox2.Items.Add(Qry1.fieldbyname('workno').asstring+'   '+
                              Qry1.fieldbyname('name').asstring+'   '+
                              Qry1.fieldbyname('sexname').asstring);
           Qry1.next;
       end;
    label14.caption:=inttostr(listbox2.items.count);
    label14.update;
    end else                //部分
    begin
       combobox1.enabled:=true;
       listbox1.enabled:=true;
       speedbutton4.enabled:=true;
       speedbutton2.enabled:=true;
    end;
    end;
end.

⌨️ 快捷键说明

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