📄 login.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 + -