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

📄 userver.~pas

📁 delphi简单的考勤系统 使用tcp ip 协议 包括服务器端和客户端 使用了 ClientSocket和ServerSocket组件
💻 ~PAS
📖 第 1 页 / 共 2 页
字号:
         begin
           Close;
           SQL.Clear;
           SQL.Add('select * from Employee');
           SQL.Add('where 员工口令='+''''+tempPwd+'''');
           SQL.Add('and 员工编号='+''''+tempID+'''');
           Open;
         end;
       if MADOQuery.RecordCount>0 then result:=True
       else Result:=False;
    finally
      MADOQuery.Free;
    end;
end;
Function Temptime(TempID:string):String;
var MADOQuery:TADOQuery;
begin
    MADOQuery:=TADOQuery.Create(Application);
    MADOQuery.Connection:=Fr_Server.ADOConnection1;
    try
       with MADOQuery do
         begin
           Close;
           SQL.Clear;
           SQL.Add('select * from Server');
           SQL.Add('where 上班状态='+'"正在上班"');
           SQL.Add('and 员工编号='+''''+tempID+'''');
           Open;
         end;
       if MADOQuery.RecordCount>0 then result:=MADOQuery.fieldbyname('上班时间').AsString
       else Exit;
    finally
      MADOQuery.Free;
    end;
end;
procedure TFr_Server.Btn_SetPortClick(Sender: TObject);
begin
    MiniFile:=Tinifile.Create(extractfilepath(application.exename)+'Server.ini');
      MiniFile.WriteString('SET','port',Ed_port.Text);
    MiniFile.Free;
    showmessage('完成设置!');
    listbox1.Items.Insert(0,'修改了端口'+datetimetostr(now));
end;

procedure TFr_Server.Btn_ServerClick(Sender: TObject);
var MADOQuery:TADOQuery;
begin
    MADOQuery:=TADOQuery.Create(Application);
    MADOQuery.Connection:=Fr_Server.ADOConnection1;
    try
       with MADOQuery do
         begin
           Close;
           SQL.Clear;
           SQL.Add('select * from Employee');
           SQL.Add('where 员工口令='+''''+Ed_manapwd.Text+'''');
           SQL.Add('and 员工姓名='+''''+Ed_manaName.Text+'''');
           SQL.Add('and 员工身份='+'"系统管理"');
           Open;
         end;
       if MADOQuery.RecordCount>0 then
         begin
          Btn_setport.Enabled:=True;
          Btn_control.Enabled:=True;
          Btn_user.Enabled:=True;
          Btn_search.Enabled:=True;
          Btn_clear.Enabled:=True;
          Btn_del.Enabled:=True;
          Btn_Server.Enabled:=False;
          showmessage('登录成功!');
          Listbox1.Items.Insert(0,'管理员:'+Ed_manaName.Text+'登录成功'+datetimetostr(now));
          Ed_manapwd.Text:='';
          working;
          worked;
          Memo1.Lines.LoadFromFile(ReadLog(date));
         end
       else
         begin
          Btn_setport.Enabled:=False;
          Btn_control.Enabled:=False;
          Btn_user.Enabled:=False;
          Btn_search.Enabled:=False;
          Btn_clear.Enabled:=False;
          Btn_del.Enabled:=False;
          Btn_Server.Enabled:=True;
          showmessage('登录失败!');
          Ed_manapwd.Text:='';
          Listbox1.Items.Insert(0,'管理员:'+Ed_manaName.Text+'登录失败'+datetimetostr(now));
         end;
    finally
      MADOQuery.Free;
    end;
end;

procedure TFr_Server.Btn_clearClick(Sender: TObject);
begin
  Btn_setport.Enabled:=False;
  Btn_control.Enabled:=False;
  Btn_user.Enabled:=False;
  Btn_search.Enabled:=False;
  Btn_clear.Enabled:=False;
  Btn_del.Enabled:=False;
  Btn_Server.Enabled:=True;
  showmessage('注销成功!');
  Listbox1.Items.Insert(0,'管理员已注销'+datetimetostr(now));
end;

procedure TFr_Server.Btn_userClick(Sender: TObject);
var temp:string;
begin
  if Ed_ID.Text='' then Exit;
  if Ed_pwd.Text='' then Exit;
  if CheckBox1.Checked then temp:='系统管理'
  else temp:='普通用户';
  with ADOQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select * from Employee');
      SQL.Add('where 员工编号='+''''+Ed_ID.Text+'''');
      Open;
    end;
    if ADOQuery1.RecordCount>0 then
       begin
         Showmessage('该员工编号已经存在!');
         Exit;
       end
    else with ADOQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('insert into Employee(员工编号,员工姓名,员工口令,员工身份)');
      SQL.Add('values('+''''+Ed_ID.Text+''''+','+''''+Ed_name.Text+''''+','+''''+Ed_pwd.Text+''''+','+''''+temp+''''+')');
      ExecSQL;
      Showmessage('添加成功');
      Listbox1.Items.Insert(0,'添加了编号为:<'+Ed_ID.Text+'>的员工'+datetimetostr(now));
    end;
end;

procedure TFr_Server.Btn_delClick(Sender: TObject);
var tempID:string;
begin
  inputQuery('请输入要删除的员工编号:','确认删除',tempID);
  if tempID<>'' then
  with ADOQuery1 do
    begin
      Close;
      SQL.Clear;
      SQL.Add('select * from Employee');
      SQL.Add('where 员工编号='+''''+tempID+'''');
      Open;
    end;
    if ADOQuery1.RecordCount<0 then
       begin
         Showmessage('该员工编号不存在!');
         Exit;
       end
    else
      if ADOQuery1.FieldByName('员工身份').AsString='系统管理' then
         if MessageBox(handle,'该员工是管理员,真的删除吗?','删除确认',Mb_iconQuestion or Mb_YESNO)=IDNo then Exit;
      With ADOQuery1 do
         begin
          Close;
          SQL.Clear;
          SQL.Add('update Employee set 删除标志='+'"是"');
          SQL.Add('where 员工编号='+''''+tempID+'''');
          ExecSQL;
          Showmessage('删除成功!');
          listbox1.Items.Insert(0,'删除了员工:'+tempID+datetimetostr(now));
         end;
end;

procedure TFr_Server.FormCloseQuery(Sender: TObject;
  var CanClose: Boolean);
var TempMemo:Tmemo;
    i:integer;
begin
   if trim(Stringgrid1.Cells[1,1])<>'' then
     if MessageBox(handle,'还有员工未下班,你确认退出吗?','退出确认',Mb_iconQuestion or Mb_YESNO)=IDNO then
        begin
           CanClose:=False;
           exit;
        end;
   TempMemo:=TMemo.Create(Application);
   TempMemo.Parent:=Fr_server;
   TempMemo.Clear;
   if Btn_control.Enabled then listbox1.Items.insert(0,'系统已经关闭'+datetimetostr(now));
   try
   try
   TempMemo.Lines.LoadFromFile(ReadLog(date));
     for i:=0 to listbox1.Items.Count-1 do
       begin
          TempMemo.Lines.Add(listbox1.Items.Strings[i]);
          TempMemo.Lines.SaveToFile(ReadLog(date));
       end;
   except
   CanClose:=True;
   end;
   finally
     tempmemo.Free;
   end;

end;

procedure TFr_Server.Ed_manaNameKeyPress(Sender: TObject; var Key: Char);
begin
  if key=chr(13) then
    postmessage(handle,wm_keydown,vk_Tab,0);
end;

procedure TFr_Server.Ed_manaPwdKeyPress(Sender: TObject; var Key: Char);
begin
  if key=chr(13) then Btn_server.Click;
end;

procedure TFr_Server.Ed_IDKeyPress(Sender: TObject; var Key: Char);
begin
  if key=chr(13) then
    postmessage(handle,wm_keydown,vk_Tab,0);
end;

procedure TFr_Server.Ed_pwdKeyPress(Sender: TObject; var Key: Char);
begin
if key=chr(13) then
    postmessage(handle,wm_keydown,vk_Tab,0);
end;

procedure TFr_Server.Ed_nameKeyPress(Sender: TObject; var Key: Char);
begin
if key=chr(13) then
    postmessage(handle,wm_keydown,vk_Tab,0);
end;
Function ReadLog(tempdate:Tdate):string;
var i:integer;
begin
  for i:=1 to 10 do
      if not fileexists(Extractfilepath(Application.ExeName)+'Log\'+datetostr(tempdate)+'.Txt') then
         tempdate:=date-i
      else break;
  if i<10 then result:=Extractfilepath(Application.ExeName)+'Log\'+datetostr(tempdate)+'.Txt'
  else
     try
     begin
       filecreate(Extractfilepath(Application.ExeName)+'Log\'+datetostr(date)+'.Txt');
       result:=Extractfilepath(Application.ExeName)+'Log\'+datetostr(date)+'.Txt';
     end;
     except
     end;
end;
procedure TFr_Server.Btn_SearchClick(Sender: TObject);
var tempY,tempM,tempD:word;
    temp:string;
    i,j:integer;
begin
   decodedate(datetimepicker1.Date,tempY,tempM,tempD);
   temp:=inttostr(tempY)+'-'+inttostr(tempM)+'-'+inttostr(tempD);
   delete(temp,1,2);
    With Fr_server.ADOQuery1 do
     begin
       Close;
       SQL.Clear;
       SQL.Add('select Server.员工编号,Employee.员工姓名,Server.考勤日期,Server.上班时间,Server.下班时间 from Server,Employee');
       SQL.Add('where Server.员工编号=Employee.员工编号');
       SQL.Add('and 考勤日期='+''''+temp+'''');
       SQL.Add('order by Server.员工编号,Server.考勤日期');
       open;
     end;
  with Fr_server do
    begin
     for i:=0 to Stringgrid2.RowCount do
        for j:=1 to 6 do
           stringgrid2.Cells[j,i]:='';
     if ADOQuery1.RecordCount>5 then Stringgrid2.RowCount:=ADOQuery1.RecordCount+1;
     if ADOQuery1.RecordCount>0 then
        for i:=1 to ADOQuery1.RecordCount do
           begin
              Stringgrid2.Cells[0,0]:='序号';
              stringgrid2.Cells[1,0]:='员工姓名';
              Stringgrid2.Cells[2,0]:='考勤日期';
              Stringgrid2.Cells[3,0]:='上班时间';
              stringgrid2.Cells[4,0]:='下班时间';
              Stringgrid2.Cells[5,0]:='员工编号';
              Stringgrid2.Cells[0,i]:=inttostr(i);
              Stringgrid2.Cells[1,i]:=AdoQuery1.fieldbyname('员工姓名').AsString;
              Stringgrid2.Cells[2,i]:=AdoQuery1.fieldbyname('考勤日期').AsString;
              Stringgrid2.Cells[3,i]:=AdoQuery1.fieldbyname('上班时间').AsString;
              Stringgrid2.Cells[4,i]:=AdoQuery1.fieldbyname('下班时间').AsString;
              Stringgrid2.Cells[5,i]:=AdoQuery1.fieldbyname('员工编号').AsString;
              if not ADOQuery1.Eof then ADOQuery1.Next;
           end;
    end;
end;

end.

⌨️ 快捷键说明

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