original.pas

来自「pasa人力资源考勤管理系统」· PAS 代码 · 共 608 行 · 第 1/2 页

PAS
608
字号
  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 datamod.ADOoriginal.Sort :=sortexp;
end;

procedure TFormoriginal.N3Click(Sender: TObject);
var i:1..5;
begin
  for i:=1 to fcount do
    dbgrid1.Columns[findex[i]].Color :=clwindow;
  fcount:=0;
end;

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

procedure TFormoriginal.Edit1Exit(Sender: TObject);
var s,fmat1:string;
begin
  if fmat='/' then
    fmat1:='    /  /  ';
  if fmat='-' then
    fmat1:='    -  -  ';
  s:='';
  if trim(edit1.text)<>'' then
  begin
    s:='(workno='''+edit1.text+''' or cardno='''+edit1.text+''' or name='''+edit1.text+''') ';
    if ((maskedit1.text<>fmat1) and (isdate(maskedit1.text))) and
       ((maskedit2.text<>fmat1) and (isdate(maskedit2.text))) then
       s:=s+' and recdate>='''+Maskedit1.text+''' and recdate<='''+Maskedit2.text+''' ';
  end else
    if ((maskedit1.text<>fmat1) and (isdate(maskedit1.text))) and ((maskedit2.text<>fmat1) and (isdate(maskedit2.text))) then
       s:='recdate>='''+Maskedit1.text+''' and recdate<='''+Maskedit2.text+''' ';
  if s<>'' then
  begin
     DataMod.AdoOriginal.close;
     datamod.ADOoriginal.commandtext:='select * from atd15010 where '+s+' order by recdate,cardno,rectime';
     datamod.ADOoriginal.open;
  end;
end;

procedure TFormoriginal.DateTimePicker1CloseUp(Sender: TObject);
begin
  maskedit1.Text :=datetostr(datetimepicker1.Date);
end;

procedure TFormoriginal.ToolButton6Click(Sender: TObject);
begin
  datamod.ADOoriginal.filter:='';
  datamod.ADOoriginal.close;
  if toolbutton8.down then
     datamod.ADOoriginal.commandtext:='Select * from atd15010bk order by recdate,cardno,rectime'
  else datamod.ADOoriginal.commandtext:='Select * from atd15010 order by recdate,cardno,rectime';
  datamod.ADOoriginal.open;
  if fmat='/' then
   maskedit1.Text:='    /  /  ';
  if fmat='-' then
   maskedit1.Text:='    -  -  ';
  maskedit2.text:=maskedit1.text;
  edit1.text:='';
end;

procedure TFormoriginal.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_contents0027');
  end;
end;
procedure TFormoriginal.ppDBText6GetText(Sender: TObject;
  var Text: String);
begin
  if text='0' then
     text:='未处理'
  else
     text:='已处理';
end;

procedure TFormoriginal.ppReport1BeforePrint(Sender: TObject);
begin
  pplabel21.caption:=companyname1;
  pplabel25.Caption:=pubworkname;
end;

procedure TFormoriginal.tbnprintClick(Sender: TObject);
var startrq,endrq:string;
    rq,cardno,workno:string;
    fmat1,fmat2:string;
begin
 if fmat='/' then
   fmat1:='    /  /  ';
 if fmat='-' then
   fmat1:='    -  -  ';
 adodataset1.close;
 with datamod do
 begin
   Query1.close;
   Query1.sql.text:='Delete from report_original';
   Query1.execsql;
   Query1.close;
   if (combobox1.text<>'全部')and (edit1.text='') and (maskedit1.text=fmat1) and (maskedit2.text=fmat1)then
     Query1.sql.Text:='Select recdate,cardno,workno,dept from atd15010 where dept='''+combobox1.text+''' group by cardno,recdate,workno,dept order by recdate,cardno ';

   if (maskedit1.text=fmat1) and (maskedit2.text=fmat1) and (combobox1.text='全部') then  //全部
   begin
      if trim(edit1.text)<>'' then
         Query1.sql.text:='Select recdate,cardno,workno from atd15010 where cardno='''+edit1.text+''' group by cardno,recdate,workno order by recdate,cardno'
      else
         Query1.sql.text:='Select recdate,cardno,workno from atd15010 group by cardno,recdate,workno order by recdate,cardno';
   end else  if (trim(maskedit1.text)<>fmat)and(maskedit2.text<>fmat1) and ( combobox1.text='全部') then   //日期区间
   begin
      if isdate(maskedit1.text) and isdate(maskedit2.text) then
      begin
         startrq:=maskedit1.text;
         endrq:=maskedit2.text;
      end else
      begin
         application.messagebox('你输入的日期不对,请按正确的格式录入!','Warning',mb_ok+mb_iconwarning);
         maskedit1.setfocus;
         exit;
      end;
      if trim(edit1.text)<>'' then
         Query1.sql.text:='Select recdate,cardno,workno from atd15010 where recdate between '''+startrq+''' and '''+endrq+''' and ( cardno='''+edit1.text+''' or workno='''+edit1.text+''' or name='''+edit1.text+''' ) group by cardno,recdate,workno order by recdate,cardno'
      else
         Query1.sql.text:='Select recdate,cardno,workno from atd15010 where recdate between '''+startrq+''' and '''+endrq+''' group by cardno,recdate,workno order by recdate,cardno';
   end;
   Query1.sql.savetofile('c:\aaa.sql');
   Query1.open;
   panel1.visible:=true;
   panel1.update;



   while not Query1.eof do
   begin
      rq:=Query1.fieldbyname('recdate').asstring;
      cardno:=Query1.fieldbyname('cardno').asstring;
      workno:=Query1.fieldbyname('workno').asstring;
      Query2.close;
      Query2.sql.text:='Select rectime from atd15010 where recdate='''+rq+''' and cardno='''+cardno+''' order by rectime ';
      Query2.open;
      if not Query2.Eof then
      begin
         Query3.close;
         Query3.sql.text:='Select * from report_original where recdate='''+rq+''' and cardno='''+cardno+''' ';
         Query3.open;
         if Query3.eof then
         begin
            Query3.close;
            Query3.sql.text:='Insert into report_original (recdate,cardno,workno) values('''+rq+''','''+cardno+''','''+workno+''') ';
            Query3.execsql;
         end;
      end else break;
      Query3.close;
      Query3.sql.clear;
      while not Query2.Eof do
      begin
          Query3.sql.add('Update report_original set rectime=isnull(rectime,'''')+''  ''+'''+Query2.fieldbyname('rectime').asstring+''' where cardno='''+cardno+''' and recdate='''+rq+''' ');
          Query2.next;
      end;
      Query3.ExecSQL;
      Query1.next;
   end;  //while
   Query1.close;
   Query2.close;
   Query3.close;
  adodataset1.open;
 panel1.visible:=false;
 ppreport1.Print;
end; //with end;
end;

procedure TFormoriginal.ppReport1AfterPrint(Sender: TObject);
begin
  datamod.ADOoriginal.Close;
end;

procedure TFormoriginal.ppReport1PreviewFormCreate(Sender: TObject);
begin
  tppReport(Sender).PreviewForm.WindowState:=wsMaximized;
end;

procedure TFormoriginal.DateTimePicker2CloseUp(Sender: TObject);
begin
  maskedit2.Text :=datetostr(datetimepicker2.Date);
end;

procedure TFormoriginal.BitBtn1Click(Sender: TObject);
begin
  panel3.Visible:=false;
  label6.Visible:=false;
  datetimepicker3.Date :=now;
  datetimepicker4.Date :=now;
  Animate1.Active:=false;
end;

procedure TFormoriginal.ToolButton1Click(Sender: TObject);
begin
  panel3.Visible:=true;
  datetimepicker3.SetFocus;
end;

procedure TFormoriginal.BitBtn2Click(Sender: TObject);
var i:string;
begin
if messagedlg('注意:移除前,请确认为已处理考勤的数据'+#13+'是否要进行移除',mtinformation,[mbyes,mbno],0)=mryes then
begin
  Animate1.Active:=true;
  adoquery1.Close;
  adoquery1.SQL.Clear;
  label6.Caption:='正在移除资料,请稍後........';
  label6.Visible:=true;
  label6.Update;
  adoquery1.SQL.text:='exec bkdata ''atd15010'',''1'','''+formatdatetime('yyyy/mm/dd',DateTimePicker3.DateTime)+''','''+formatdatetime('yyyy/mm/dd',DateTimePicker4.datetime)+'''';
  try
  adoquery1.ExecSQL;
  except
    ;
  end;
  label6.Caption:='移除完毕';
  label6.Update;
  Datamod.ADOoriginal.close;
  Datamod.ADOoriginal.commandtext:='Select * From atd15010  order by recdate,cardno,rectime';
  Datamod.ADOoriginal.Open;
  messagedlg('移除成功,谢谢使用!!!!',mtinformation,[mbok],0);
  Animate1.Active:=false;
  label6.Visible:=false;
end;
end;
procedure TFormoriginal.BitBtn3Click(Sender: TObject);
begin
  if messagedlg('注意:还原资料,将删除现有的资料',mtinformation,[mbyes,mbno],0)=mryes then
  begin
    Animate1.Active:=true;
    label6.Caption:='正在还原资料,请稍後.......';
    label6.Visible:=true;
    label6.Update;
    adoquery1.Close;
    adoquery1.SQL.Clear;
    adoquery1.SQL.text:='exec bkdata ''atd15010'',''0'','''+formatdatetime('yyyy/mm/dd',DateTimePicker3.DateTime)+''','''+formatdatetime('yyyy/mm/dd',DateTimePicker4.datetime)+'''';
    try
      adoquery1.ExecSQL;
    except
      ;
    end;
    label6.Caption:='还原完毕';
    label6.Update;
    Datamod.ADOoriginal.close;
    Datamod.ADOoriginal.commandtext:='Select * From atd15010  order by recdate,cardno,rectime';
    Datamod.ADOoriginal.Open;
    messagedlg('还原成功,谢谢使用!!!!',mtinformation,[mbok],0);
    Animate1.Active:=false;
    label6.Visible:=false;
    label6.Update;
  end;
end;
procedure TFormoriginal.ToolButton8Click(Sender: TObject);
begin
  datamod.ADOoriginal.Close;
  if toolbutton8.Down then
    datamod.ADOoriginal.CommandText:='Select * From atd15010bk  order by recdate,cardno,rectime'
  else
    datamod.ADOoriginal.CommandText:='Select * From atd15010  order by recdate,cardno,rectime';
  datamod.ADOoriginal.Open;
end;
procedure TFormoriginal.ComboBox1Change(Sender: TObject);
var fmat1:string;
begin
  if fmat='/' then
    fmat1:='    /  /  ';
  if fmat='-' then
    fmat1:='    -  -  ';
  edit1.Text:='';
  maskedit1.Text:=fmat1;
  maskedit2.Text:=fmat1;
  with datamod do
  begin
    ADOoriginal.Close;
    if combobox1.Text='全部' then
      ADOoriginal.CommandText:='Select * From atd15010  order by recdate,cardno,rectime'
    else
      ADOoriginal.CommandText:='select * from atd15010 where dept='''+combobox1.text+''' ';
    ADOoriginal.Open;
  end;
end;
end.

⌨️ 快捷键说明

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