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

📄 u_login.pas

📁 超信人力资源管理系统,一个用Delphi编写的人事管理系统
💻 PAS
字号:
unit U_login;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls, DB, ADODB;

type
  TF_Login = class(TForm)
    BTN_OK: TBitBtn;
    BTN_CANCEL: TBitBtn;
    BTN_Exit: TBitBtn;
    Edit1: TEdit;
    Edit2: TEdit;
    Label1: TLabel;
    Label2: TLabel;
    Label5: TLabel;
    Name_label: TLabel;
    Timer: TTimer;
    Q_Login: TADOQuery;
    Shape1: TShape;
    Shape2: TShape;
    Label3: TLabel;
    Login_Time: TLabel;
    Image1: TImage;
    BitBtn1: TBitBtn;
    procedure TimerTimer(Sender: TObject);
    procedure BTN_CANCELClick(Sender: TObject);
    procedure BTN_ExitClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure Edit1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Edit2KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure BTN_OKClick(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  F_Login: TF_Login;
  TIMES: INTEGER;
implementation

uses U_data, U_main;

{$R *.dfm}

procedure TF_Login.TimerTimer(Sender: TObject);
begin
  Login_Time.caption := Datetimetostr(now());
end;

procedure TF_Login.BTN_CANCELClick(Sender: TObject);
begin
  Login_code := '';
  Login_name := '';
  SYS_Login_time := now();
  Close;
end;

procedure TF_Login.BTN_ExitClick(Sender: TObject);
begin
  APPLICATION.Terminate;
end;

procedure TF_Login.FormCreate(Sender: TObject);
begin
  Timer.Enabled := true;
  Times := 0;
end;

procedure TF_Login.Edit1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 13 then
  begin
    Sql_s := 'Select Username from TB_Acount where UCode=''' + trim(edit1.Text) + '''';
    Sql_open(sql_s);
    if DM.Q_TempA.RecordCount <= 0 then
    begin
      MessageDlg('没有这个用户,请检查输入的是否正确!', mtWarning, [mbOK], 0);
      Edit1.SetFocus;
      Edit1.SelectAll;
      Exit;
    end;
    Name_label.Caption := DM.Q_TempA.fieldbyname('Username').AsString;
    edit2.SetFocus;
  end;
end;

procedure TF_Login.Edit2KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  if key = 13 then
    Btn_OKClick(sender);
end;

procedure TF_Login.BTN_OKClick(Sender: TObject);
var
  s: string;
begin
  if TRIM(EDIT1.TEXT) = '' then
  begin
    APPLICATION.MESSAGEBOX('没有输入账号', '系统提示', MB_OK);
    EDIT1.SETFOCUS;
    TIMES := TIMES + 1;
    EXIT;
  end;
  if not ((EDIT1.TEXT = 'SYSTEM') and (EDIT2.TEXT = 'huangxiaomin998')) then
  begin
    s := 'select * from TB_Acount WHERE Ucode=''' + trim(edit1.Text) + '''  and 1=1'; //先断是否有这用户
    Q_Login.Close;
    Q_Login.sql.clear;
    Q_Login.sql.add(s);
    Q_Login.open;
    if Q_Login.RecordCount <= 0 then
    begin
      APPLICATION.MESSAGEBOX('不存在这个账号,请重新重入', '系统提示', MB_OK);
      TIMES := TIMES + 1;
      EDIT1.SETFOCUS;
      EXIT;
    end;
    S := S + ' and Endtime>=Getdate()+1'; //断此用户是否过期
    Q_Login.Close;
    Q_Login.sql.clear;
    Q_Login.sql.add(s);
    Q_Login.open;

    if Q_login.RecordCount <= 0 then
    begin
      application.MessageBox('此用户使用期已过,请与管理员联系', '系统提示', mb_ok);
      exit;
    end;

    if Q_login.FieldByName('Uactive').AsBoolean then
    begin
      MessageDlg('此账号有人在使用,请用别的账号登录!', mtWarning, [mbOK], 0);
      exit;
    end;

    if UPPERCASE(trim(edit2.text)) <> UPPERCASE(trim(Q_Login.fieldBYNAME('Password').asstring)) then
    begin
      if TIMES >= 4 then
      begin
        application.MessageBox('你已经失去了最後一次机会,请与管理员联系', '系统提示', mb_ok);
        APPLICATION.Terminate;
      end;
      application.MessageBox('密码不正确,请重新输入', '系统提示', mb_ok);
      TIMES := TIMES + 1;
      edit2.text := '';
      edit2.SetFocus;
      exit;
    end;
    //LOGIN_CLASS := QUERY1.FIELDBYNAME('CLASS').ASINTEGER;
    LOGIN_Code := Q_Login.FIELDBYNAME('Ucode').ASSTRING;
    LOGIN_NAME := Q_Login.FIELDBYNAME('Username').ASSTRING;
    SYS_Login_time := now();
    SQL_S := 'Select * from TB_sysseting ';
    SQL_open(Sql_s);
    if Dm.Q_TempA.RecordCount = 1 then //设置系统语言
      syslanguage := Dm.Q_TempA.FieldByName('syslanguage').AsInteger
    else
      syslanguage := 0; //默认为简体中文
    //FAC_CODE := Q_Login.FIELDBYNAME('FAC_CODE').ASSTRING;
  end;

  //LOGIN_CODE := TRIM(UPPERCASE(EDIT1.TEXT));
  SQL_S := 'UPDATE TB_Acount SET LastIP=''' + user_IP + ''',Computername=''' + COMPUTER_NAME + ''',Uactive=1 WHERE UCODE='''
    + LOGIN_CODE + '''';

  SQL_EXEC(SQL_S);

  F_LOGIN.CLOSE;

end;

procedure TF_Login.FormShow(Sender: TObject);
begin
  SQL_S := 'UPDATE TB_Acount SET LastIP=''' + user_IP + ''',Computername=''' + COMPUTER_NAME + ''',Uactive=0 WHERE UCODE='''
    + LOGIN_CODE + '''';
  SQL_EXEC(SQL_S);
end;

procedure TF_Login.BitBtn1Click(Sender: TObject);
begin
  Sql_s := 'update TB_Acount set Uactive=0 where Ucode=''' + trim(edit1.text) + '''';
  SQL_exec(sql_s);
end;

end.

⌨️ 快捷键说明

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