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

📄 formdorset.pas

📁 pasa人力资源考勤管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
          end;
        end;
      end
      else
      msg.Caption:='没有刷卡';
end;
end;
function Tformdoorset.OpenPort(pclk: PClockInfo): Boolean;
var
  i: Integer;
  R: Boolean;
  SaveCursor: TCursor;
begin
  Result:=False;
  SaveCursor := Screen.Cursor;
  Screen.Cursor := crHourGlass;
  try
    msg.Caption := Format(SOyOUAOSS, [pclk.Port, pclk.clock_id]);
    msg.Update;
    if not CheckHandle(pclk.hPort) then
    begin
      pclk.Connected := False;
      pclk.hPort := OpenCommPort(pclk.Port, pclk.BaudRate);
      if CheckHandle(pclk.hPort) then
      begin
        if pclk.clock_type<>0 then
          SetClockModel(pclk.hPort, pclk.Model, pclk.Fireware, pclk.cls)
        else
        begin
          SetCmdVerify(False);
        end;
        if not CallClock(pclk.hPort, pclk.clock_id) then
        begin
          CloseHandle(pclk.hPort);
          pclk.hPort:=0;
          Result:=False;
        end else
        begin
          Result:=True;
        end;
      end;
      if Result and CheckHandle(pclk.hPort) then
      begin
//        edInspector.Caption := SAU;
        msg.Caption := SAOE;
        if pclk.clock_type<>0 then
        begin
          SetClockModel(pclk.hPort, pclk.Model, pclk.Fireware, pclk.cls);//自动识别
//          SetCmdVerify(pclk.CmdVerify);
        end else
        begin
          GetClockModel(pclk.hPort, pclk.Model, pclk.Fireware, pclk.cls);
          pclk.VerOrd:=GetClockVersionOrd(pclk.hPort);
        end;
      end
      else if pclk.hPort=INVALID_HANDLE_VALUE then//端口无效或正在使用
      begin
        Result:=False;
        pclk.hPort := 0;
//        edInspector.Caption := SINU;
        msg.Caption := format(SISSOEUCOMD, [pclk.Port]);
      end
      else
      begin
//        edInspector.Caption := SINU;
        msg.Caption := format(SISSAOEeSS, [pclk.Port, pclk.clock_id]);
      end;
    end
    else{ if CheckConnectClock(hPort, pclk.clock_id) then}
    begin
      msg.Caption := SAOOK;
      Result := True;
    end;
    pclk.Connected := CheckHandle(pclk.hPort);
    i:=0;
    if i<>-1 then
    begin
      if Result then
      begin
        if pclk.Model=0 then
        else
     end
      else

    end;
    if Is780(pclk.Model) then
    begin

    end else
    begin
    end;
    if Is880(pclk.Model) then
    begin
    end else
    begin
    end;

    R:=GetClockSupports(pclk.hPort, fiConsumption);
  finally
    Screen.Cursor := SaveCursor;
    msg.Update;
  end;
end;
procedure Tformdoorset.ClosePort(pclk: PClockInfo);
begin
  if Assigned(pclk) then
  begin
    if (pclk.hPort<>0)and(pclk.hPort<>INVALID_HANDLE_VALUE) then
      EastRiver.DisConnectClock(pclk.hPort);
    pclk.hPort := 0;
    pclk.Connected:=False;
  end;
end;

procedure Tformdoorset.ToolButton11Click(Sender: TObject);
var cardno1: array[0..17] of char;
begin
  if GetCardOnReader(clk.hport,clk.clock_id,@cardinfo) then
  begin
    showmessage(cardinfo.CardNo);
  end;
end;

procedure Tformdoorset.ToolButton4Click(Sender: TObject);
begin
  close;
end;

procedure Tformdoorset.ToolButton5Click(Sender: TObject);
begin
  case pagecontrol1.ActivePageIndex of
  2:
  begin
    ADorInit.close;
    ADorInit.Filtered:=false;
    ADorInit.commandtext:='select * from dor01 order by times,reReader,dept ';
    ADorInit.open;
  end;
  3:
  begin
    ADorday.Close;
    ADorday.Filtered:=false;
    ADorday.CommandText:='select * from dor02 order by dept,rq';
    ADorday.Open;
    adorday1.Close;
    adorday1.Open;

  end;
  4:
  begin
    Adormonthy.Close;
    Adormonthy.Open;
    Adormonthy1.close;
    Adormonthy1.Open;
  end;
end;
end;
procedure Tformdoorset.tbnfindClick(Sender: TObject);
begin
if assigned(formcanfind) then  formcanfind.close;
begin
  case pagecontrol1.ActivePageIndex of
  2:
   findrecorder(ADorInit,'ADorInit','dor01');   //调用publicfuction中的查询功能
  3:findrecorder(ADorday,'ADorday','dor02');
  4:findrecorder(ADormonthy,'ADormonthy','dor03');
end;
end;
end;
procedure Tformdoorset.DBGrid4TitleClick(Column: TColumn);
begin
    if s='ASC' then
    s:='DESC'
    else
    s:='ASC';
  ADorday.Sort:=column.FieldName+ ' '+s;
  Adorday1.Sort:=column.FieldName+' '+s;
end;
procedure Tformdoorset.ComboBox6Change(Sender: TObject);
begin
  ADorday.Close;
  if combobox6.Text='全部' then
    ADorday.CommandText:='select * from dor02 '
  else
    ADorday.CommandText:='select * from dor02 where dept='''+combobox6.Text+'''';
  ADorday.Open;
end;

procedure Tformdoorset.Edit3Exit(Sender: TObject);
begin
  if (MaskEdit4.Text<>'    /  /  ')and (MaskEdit5.Text<>'    /  /  ')and (Edit3.Text='')then
  begin
    ADorday.Close;
    ADorday.CommandText:='select * from dor02 where convert(varchar,rq,111)  between '''+MaskEdit4.Text+''' and '''+MaskEdit5.Text+''' group by  workno,rq order by  rq,workno  desc';
    ADorday.Open;
  end;
  ///////////////////
  if (MaskEdit4.Text<>'    /  /  ')and(MaskEdit5.Text<>'    /  /  ')and(Edit3.Text<>'')then
  begin
    ADorday.Close;
    ADorday.CommandText:='Select * from dor02 where convert(varchar,rq,111)  between '''+MaskEdit4.Text+''' and '''+MaskEdit5.Text+''' and (cardno='''+Edit3.Text+''' or workno='''+Edit3.Text+''' or name='''+Edit3.Text+''' or dept='''+Edit3.Text+''')  order by  rq desc';
    ADorday.Open;
  end
  else
  if (Edit3.Text<>'')and (MaskEdit4.Text='    /  /  ') and (MaskEdit5.Text='    /  /  ')then
  begin
    ADorday.Close;
    ADorday.CommandText:='Select * from dor02 where cardno='''+Edit3.Text+''' or workno='''+Edit3.Text+''' or name='''+Edit3.Text+''' or dept='''+Edit3.Text+'''  order by dept,workno,rq';
    ADorday.open;
  end;
end;

procedure Tformdoorset.ToolButton6Click(Sender: TObject);
begin
with Datamod do
    begin
  case pagecontrol1.ActivePageIndex of
  3:begin
      if (maskedit4.text<>'    /  /  ') and (maskedit5.text<>'    /  /  ') then
      begin
        ADOQuery1.Close;
        ADOQuery1.SQL.Clear;
        AdoQuery1.SQL.Add('Delete dor02 where convert(varchar,rq,111) between'''+MaskEdit4.Text+''' and '''+MaskEdit5.Text+''' ');
        AdoQuery1.sql.add('insert into dor02(workno,cardno,name,dept,rq,daytimes)' );
        AdoQuery1.sql.add(' select  workno,cardno,max(name) name ,max(dept) dept,max(convert(varchar,times,111)) rq   , count(times) times  from dor01 ');
        AdoQuery1.sql.add(' where convert(varchar,times,111)  between '''+maskedit4.Text+''' and '''+maskedit5.text+''' group by workno,cardno ');
        try
          ADOQuery1.ExecSQL;
          Adorday.Close;
          Adorday.Open;
          Adorday1.Close;
          Adorday1.Open;
          showmessage('汇总成功!!!');
        except
        begin
          messagedlg('日汇总失败!!!',mtinformation,[mbOK],0);
          exit;
        end;
      end;
      end
      else
        showmessage('请输入要汇总的开始日期,与结束日期!!!,谢谢');
    end;
  4:
    begin
      if maskedit3.Text<>'    /  /  ' then
      begin
        Adoquery1.Close;
        Adoquery1.SQL.Clear;
        Adoquery1.SQL.Add('delete dor03 where monthy='''+maskedit3.Text+''' ');
        Adoquery1.SQL.Add('insert into dor03(workno,cardno,dept,name,monthycount,monthy)');
        Adoquery1.SQL.Add('select workno,cardno,max(dept),max(name),sum(daytimes),max(left(rq,7))  from dor02 where left(rq,7)='''+maskedit3.text+''' group by workno,cardno ');
        try
          Adoquery1.ExecSQL;
          Adormonthy.Close;
          Adormonthy.Open;
          Adormonthy1.Close;
          Adormonthy1.Open;
          showmessage('月汇总成功!!!');
          Adoquery1.Close;
        except
        begin
          messagedlg('月汇总失败!!!',mtinformation,[mbOK],0);
          exit;
        end;
        end;
      end;
        end
      else
      begin
        showmessage('请输入汇总的月份,谢谢');
        exit;
      end;
  end;

end;
end;
procedure Tformdoorset.DateTimePicker1Exit(Sender: TObject);
begin
   maskedit4.text:=formatdatetime('yyyy/mm/dd',datetimepicker1.date);
end;

procedure Tformdoorset.DateTimePicker2Exit(Sender: TObject);
begin
  maskedit5.text:=formatdatetime('yyyy/mm/dd',datetimepicker2.date);
end;

procedure Tformdoorset.Label28Click(Sender: TObject);
begin
  shellexecute(handle,'open',pchar('mailto:dyh@chinapasa.com'),nil,nil,SW_SHOWNORMAL);
  msg.caption:='联系我们';
end;

procedure Tformdoorset.FormKeyPress(Sender: TObject; var Key: Char);
begin
  if key=#13 then
  begin
    key:=#0;
    selectnext(activecontrol,true,true);
  end;
end;
procedure Tformdoorset.toolbutton(sender: tobject);
var
  a:integer;
begin
  for a:=0 to self.ComponentCount-1 do
  begin
    if components[a].ClassType=TToolbutton then
       TToolbutton(Self.Components[a]).enabled:=false;
  end;
   ToolButton4.Enabled:=true; //退出
   ToolButton1.Enabled:=true;//资料维护
end;

procedure Tformdoorset.ADorInitBeforeScroll(DataSet: TDataSet);
begin
  if Adorinitphoto.AsString<>'' then
  begin
    image3.Picture.LoadFromFile(Adorinitphoto.asstring);
    label38.Visible:=false;
  end
  else
  label38.Visible:=true;
end;
procedure Tformdoorset.ToolButton2Click(Sender: TObject);
begin
  if panel6.Visible=false then
    panel6.Visible:=true
  else
    panel6.Visible:=false;
end;
procedure Tformdoorset.DBGrid1TitleClick(Column: TColumn);
begin
  if s='ASC' then
    s:='DESC'
    else
    s:='ASC';
  Adorinit.Sort:=column.FieldName+ ' '+s;
end;
procedure Tformdoorset.DBGrid1DrawColumnCell(Sender: TObject;
  const Rect: TRect; DataCol: Integer; Column: TColumn;
  State: TGridDrawState);
begin
  if ADorInitreReader.AsInteger=1 then
     dbgrid1.Canvas.Font.Color:=clNavy  //读头1
  else
  if ADorInitreReader.AsInteger=2 then
     dbgrid1.Canvas.Font.Color:=clred;
  dbgrid1.DefaultDrawColumnCell(rect,DataCol,column,state);
end;
procedure Tformdoorset.tbnprintClick(Sender: TObject);
begin
if  not assigned(doorprint) then
  doorprint:=Tdoorprint.create(self);
  doorprint.ShowModal;
end;
procedure Tformdoorset.BitBtn2Click(Sender: TObject);
var i:string;
begin
  if messagedlg('注意:移除前,请确认为已无效的数据'+#13+'是否要进行移除',mtinformation,[mbyes,mbno],0)=mryes then
  begin
    Animate2.Active:=true;
    adoquery1.Close;
    adoquery1.SQL.Clear;
    label41.Caption:='正在移除资料,请稍後........';
    label41.Visible:=true;
    label41.Update;
    adoquery1.SQL.text:='exec bkdoor ''1'','''+formatdatetime('yyyy/mm/dd',DateTimePicker5.DateTime)+''','''+formatdatetime('yyyy/mm/dd',DateTimePicker6.datetime)+'''';
    try
    adoquery1.ExecSQL;
    except
      ;
    end;
    label41.Caption:='移除完毕';
    label41.Update;
    ADorInit.close;
    ADorInit.commandtext:='select * from dor01 order by dept,workno ';
    ADorInit.Open;
    messagedlg('移除成功,谢谢使用!!!!',mtinformation,[mbok],0);
    Animate2.Active:=false;
    label41.Visible:=false;
  end;
end;

procedure Tformdoorset.BitBtn3Click(Sender: TObject);
var i:string;
begin
  if messagedlg('注意:是否进行还原!!!!',mtinformation,[mbyes,mbno],0)=mryes then
  begin
    Animate2.Active:=true;
    adoquery1.Close;
    adoquery1.SQL.Clear;
    label41.Caption:='正在还原资料,请稍後........';
    label41.Visible:=true;
    label41.Update;
    adoquery1.SQL.text:='exec bkdoor ''0'','''+formatdatetime('yyyy/mm/dd',DateTimePicker5.DateTime)+''','''+formatdatetime('yyyy/mm/dd',DateTimePicker6.datetime)+'''';
    try
    adoquery1.ExecSQL;
    except
      ;
    end;
    label41.Caption:='还原完毕';
    label41.Update;
    ADorInit.close;
    ADorInit.commandtext:='select * from dor01 order by dept,workno ';
    ADorInit.Open;
    messagedlg('还原成功,谢谢使用!!!!',mtinformation,[mbok],0);
    Animate2.Active:=false;
    label41.Visible:=false;
  end;
end;
procedure Tformdoorset.ToolButton1Click(Sender: TObject);
begin
  panel10.Visible:=true;
  datetimepicker5.SetFocus;
end;

procedure Tformdoorset.BitBtn1Click(Sender: TObject);
begin
  panel10.visible:=false;
end;
end.



















⌨️ 快捷键说明

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