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

📄 login.pas

📁 车辆管理系统
💻 PAS
字号:
unit Login;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ExtCtrls, Grids, DBGridEh, StdCtrls, Mask, DBCtrlsEh,
  jpeg, DB, DBClient, inifiles, Base_C;

type
  Tfrmlogin = class(TfrmBase_C)
    imagetop: TImage;
    Panel1: TPanel;
    Label1: TLabel;
    DBEditEh1: TDBEditEh;
    DBEditEh2: TDBEditEh;
    Label2: TLabel;
    Bevel1: TBevel;
    CDSaccount: TClientDataSet;
    dsaccount: TDataSource;
    DBGridEh1: TDBGridEh;
    Button1: TButton;
    Button2: TButton;
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure DBGridEh1GetCellParams(Sender: TObject; Column: TColumnEh;
      AFont: TFont; var Background: TColor; State: TGridDrawState);
    procedure DBGridEh1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Button2Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure DBEditEh2Exit(Sender: TObject);
  private
    AccotisOpen:Boolean;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  frmlogin: Tfrmlogin;

implementation

uses Global, ClientMain, DataProcess, dm_Client;

{$R *.dfm}

procedure Tfrmlogin.FormCreate(Sender: TObject);
begin
  inherited;
  imagetop.Picture.LoadFromFile(GetLogDir('Images')+'system\PathTitle.jpg');
  AccotisOpen:=False;
end;

procedure Tfrmlogin.FormShow(Sender: TObject);
var
  s:string;
  ini:Tinifile;
begin
  inherited;

  try
  GetsqlData(CDSaccount,'Master..erpdb','fid','fid>0',10);
  AccotisOpen:=True;
  except
    begin
      messagedlg('没能可用帐套 !',mtError,[mbok],0);
      AccotisOpen:=False;
      Exit;
    end;
  end;

  s:=GetLogDir('Log')+'Login.ini';
  try
    ini:=Tinifile.Create(s);
    dbediteh1.Text:=ini.ReadString('Login','Usercode','');
  finally
    ini.Free;
  end;
end;

procedure Tfrmlogin.DBGridEh1GetCellParams(Sender: TObject;
  Column: TColumnEh; AFont: TFont; var Background: TColor;
  State: TGridDrawState);
begin
  inherited;
  if dbgrideh1.SumList.RecNo mod 2=1 then
    backGround:=$00EAEFED
    else
    background:=clWhite;
end;

procedure Tfrmlogin.DBGridEh1KeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  if (key=VK_DOWN) or (key=VK_TAB) then
    begin
        (sender as TDBgridEH).DataSource.DataSet.Next;
        key:=0;
    end;
end;

procedure Tfrmlogin.Button2Click(Sender: TObject);
begin
  inherited;
  if not AccotisOpen then
    begin
      messagedlg('帐套没有打开 , 不能进行操作 ! ',mtError,[mbok],0);
      Exit;
    end;

  if dbediteh1.Text='' then
    begin
      messagedlg('用户名不能为空 ! ',mtError,[mbok],0);
      dbediteh1.SetFocus;
      exit;
    end
    else
    gs_Usercode:=dbediteh1.text;

  if dbediteh2.Text='' then
    begin
      messagedlg('密码不能为空 ! ',mtError,[mbok],0);
      dbediteh2.SetFocus;
      exit;
    end;

  if CDSaccount.RecordCount > 0 then
    begin
      gs_GetAccName:=CDSaccount.fieldbyname('Accname').AsString;
      gs_GetDBname:=cdsAccount.fieldbyname('Dbname').AsString;
      cExecSql('Use '+Gs_GetDBname);
    end
    else
    begin
      if messagedlg('您必须用超级用户进入系统创建帐套,继续吗...... ? ',mtWarning,[mbok,mbcancel],0)=mrok then
        begin
          gs_Usercode:='ADMIN';
          dbediteh1.Text:='ADMIN';
          gs_GetDBname:='MASTER';
          cExecSql('Use Master ');
        end
        else
        exit;
    end;
  if gs_Usercode = 'ADMIN' then
    begin
      gs_password:=trim(dbediteh2.Text);
      gs_getApptitle:=getapptitle;
      gs_Userid:=0;
      if CheckAdminLogin(dbediteh2.Text) then
        begin
          frmclientmain.Caption:=gs_Getapptitle;
          frmclientmain.StatusBar.Panels[0].Text:=gs_Getapptitle;
          frmclientmain.statusbar.Panels[1].Text:='开发商:东创软件有限公司-刘祥';
          frmclientmain.statusbar.Panels[2].Text:='当前使用者:超级用户';
          ModalResult:=mrOK;
        end
        else
        begin
          messagedlg('密码不正确 ! ',mtError,[mbok],0);
          exit;
        end;
    end
    else
    begin
      gs_usercode:=Trim(dbediteh1.Text);
      gs_password:=trim(dbediteh2.Text);

      gs_userid:=CheckLogin(dbediteh1.Text,dbediteh2.Text);
      if gs_Userid>0 then
        begin
          gs_username:=Getusername(dbediteh1.Text,dbediteh2.Text);
          gs_ISadmin:=getISadmin(dbediteh1.Text,dbediteh2.Text);
          gs_getApptitle:=getapptitle;

          f_Writeclientini('Login','Usercode',gs_usercode);

          frmclientmain.Caption:=gs_Getapptitle;
          frmclientmain.StatusBar.Panels[0].Text:='开发商:东创软件有限公司-刘祥';
          frmclientmain.statusbar.Panels[1].Text:='操作员:'+gs_username;
          frmclientmain.statusbar.Panels[2].Text:='帐套:'+gs_getDBname;
          csyslog(self.Name,gs_username+'登入系统');
          ModalResult:=mrOK;
        end
        else
        begin
          messagedlg('密码不正确,请核对您的密码 ! ',mtError,[mbok],0);
          exit;
        end;
    end;
end;

procedure Tfrmlogin.Button1Click(Sender: TObject);
begin
  inherited;
  ModalResult:=mrcancel;
end;

procedure Tfrmlogin.DBEditEh2Exit(Sender: TObject);
begin
  inherited;
  button2.SetFocus;
end;

function cexecsql(const cmdStr: WideString): WordBool;
begin
  Result:=dmClient.SocketConnection1.AppServer.execsql(gs_GetDBName,cmdstr)
end;

end.

⌨️ 快捷键说明

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