?? login.pas
字號:
unit login;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
Db, DBTables, StdCtrls, ExtCtrls, Buttons,crypt, ComCtrls, Grids, DBGrids,
TFlatComboBoxUnit, TFlatEditUnit, TFlatButtonUnit, Unit_Public,
TFlatPanelUnit, TFlatGroupBoxUnit;
type
TFormlogin = class(TForm)
QueryRY: TQuery;
YY_GXH_StoredProc: TStoredProc;
PanelTop: TPanel;
ProgressBar1: TProgressBar;
QueryLogin: TQuery;
Query_GH: TQuery;
Label1: TLabel;
EditGH: TFlatComboBox;
Label2: TLabel;
EditMM: TFlatEdit;
Image1: TImage;
PanelCenter: TPanel;
BitBtnCancel: TFlatButton;
BitBtnLog: TFlatButton;
Label3: TLabel;
Label4: TLabel;
Image2: TImage;
FlatButtonExit: TFlatButton;
QueryNewGH: TQuery;
procedure FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
procedure BitBtnLogClick(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure EditMMKeyPress(Sender: TObject; var Key: Char);
procedure EditGHKeyPress(Sender: TObject; var Key: Char);
procedure EditGHChange(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure BitBtnCancelClick(Sender: TObject);
procedure FlatButtonExitClick(Sender: TObject);
procedure EditGHKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
private
{ Private declarations }
public
{ Public declarations }
Procedure SearchByWkNo( pCombobox : TFlatCombobox ; pStr : String );
end;
var
Formlogin: TFormlogin;
implementation
uses dmmain, main,ProcedureP;
{$R *.DFM}
Procedure TFormlogin.SearchByWkNo( pCombobox : TFlatCombobox ; pStr : String );
var
I : Integer ;
begin
//根據輸入的工號來進行搜索,主要進行模糊查詢和模糊定位
For i:=0 to pCombobox.Items.Count - 1 do
begin
if (copy(pCombobox.Items.Strings[i],1,Length(pStr))=pStr) and (i>7) then
begin
pCombobox.SelStart := i ;
Break;
end;
end;
end;
procedure TFormlogin.FormKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
{ case Key of
VK_RETURN,VK_DOWN: SelectNext(ActiveControl,true,true);
VK_UP: SelectNext(ActiveControl,false,true);
end;}
end;
procedure TFormlogin.BitBtnLogClick(Sender: TObject);
var
TmpUserName,TmpPassword:string;
begin
ProgressBar1.Visible := True ;
ProgressBar1.StepIt;
//'9999'為系統自動工號,不能用于登錄
if EditGH.Text = '9999' then
begin
Application.MessageBox('您輸入的登陸工號屬于非法工號,請重新輸入!','登錄失敗',MB_OK+MB_ICONWARNING);
ModalResult := mrNone;
Exit;
end;
ProgressBar1.StepIt;
LogTry := 0; //登錄成功,重置LogTry
with QueryRY do
begin
//Close;
//Parambyname('gh').asstring := EditGh.Text;
//Open;
Close;
if Length(Trim(EditGH.Text))<=6 then
begin
if QueryNewGH.Active then QueryNewGH.Close;
QueryNewGH.SQL.Clear;
QueryNewGH.SQL.Add('Select OldGH,NewGH From T_O_GH Where OldGH='''+Trim(EditGH.Text)+''' And CityNo='''+Ps_CityNo+'''');
QueryNewGH.Open;
if QueryNewGH.RecordCount=1 then
begin
Application.MessageBox(PChar('下次請以新工號'+Trim(QueryNewGH.FieldByName('NewGH').AsString)+'登錄,謝謝!'),'提示',MB_OK+MB_ICONINFORMATION);
ParamByName('GH').AsString:=Trim(QueryNewGH.FieldByName('NewGH').AsString);
end
else
begin
Application.MessageBox('對不起,您輸入的工號或密碼非法!無法登陸系統!','提示',MB_OK+MB_ICONINFORMATION);
Exit;
end;
end
else
Parambyname('gh').asstring := EditGh.Text;
Open;
if (RecordCount <> 1) or (Trim(FieldByName('mm').AsString)<>Trim(EditMM.Text)) then
begin
LogTry := LogTry + 1;
Application.MessageBox('對不起,您輸入的工號或密碼非法!無法登陸系統!','登錄失敗',MB_OK+MB_ICONWARNING);
if LogTry = 3 then Application.Terminate;
ProgressBar1.StepBy(-100); // set to max then it can back to 0
ModalResult:= mrNone;
EditGh.SetFocus;
Exit;
end;
FormMain.StatusBarMain.Panels[3].Text := PS_CityNo;
FormMain.StatusBarMain.Panels[5].Text := FieldByName('CITYNAME').AsString;
FormMain.StatusBarMain.Panels[7].Text := FieldByName('gh').AsString + ':' + FieldByName('xm').AsString;
FormMain.StatusBarMain.Panels[9].Text := FieldByName('jbmc').AsString;
FormMain.StatusBarMain.Panels[11].Text := FieldByName('home_name').AsString;
FormMain.Update;
//初始化全局變量
JX := FieldByName('off_no_home').AsInteger;
JBDM := FieldByName('JBDM').AsInteger;
GH := FieldByName('GH').AsString;
ManagerName:=FieldByName('xm').AsString;
ROOMID := Fieldbyname('roomid').asinteger;
PS_HomeName := FieldByName('home_name').AsString;
PS_CityNo := FieldByName('CITYNO').AsString;
PS_CityName := FieldByName('CITYNAME').AsString;
FormMain.StatusBarMain.Repaint;
end;
ProgressBar1.StepIt;
//取系統配置表的數據庫用戶名并對數據庫用戶密碼解密
with DM_Main.TXtpzb do
begin
if not Active then Open;
TmpUserName := FieldByName('username').AsString;
TmpPassword := Trim(FieldByName('password').AsString);
end;
TmpPassword := Decrypt(TmpPassword,MyKEY);
//重新連接數據庫
FormMain.StatusBarMain.Panels[1].Text := '系統正在登錄,請稍候...';
FormMain.Update;
with DM_Main.Databasedh do
try
Connected := false;
Params.Clear;
Params.Add('SERVER NAME='+ PS_ConnStr);
Params.Add('USER NAME='+TmpUserName);
Params.Add('PASSWORD='+TmpPassword);
Connected:=true;
LogTry := 0; //登錄成功,重置LogTry
except
Application.MessageBox('連接數據庫失敗!' + chr(10) + chr(13) + '請配置正確的系統配置信息(config.ini)', '系統提示', MB_OK+MB_ICONERROR);
Exit;
end;
//Open all dataset in the DataModule
QueryLogin.Close;
QueryLogin.SQL.Clear;
QueryLogin.SQL.Add('Insert Into T_H_LOGIN(LOGINID,CityNo,Off_No_Home,Wk_No,LOGINTIME) Values(SEQ_LOG_ID.NEXTVAL,'''+PS_CityNo+''','+IntToStr(Jx)+','''+GH+''',sysdate)');
QueryLogin.ExecSQL;
FormMain.InitiateControl(true);
crypt.UserEnter_Log('登入系統','瀏覽',-1,Gh,'系統登入');
FormMain.InitiateMenu;
ModalResult:= MrOK;
FormMain.StatusBarMain.Panels[1].Text := '系統登錄成功!恭喜,恭喜!';
END;
procedure TFormlogin.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action := caFree;
end;
procedure TFormlogin.EditMMKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then BitBtnLogClick(Sender);
end;
procedure TFormlogin.EditGHKeyPress(Sender: TObject; var Key: Char);
begin
if key = #13 then
EditMM.SetFocus;
end;
procedure TFormlogin.EditGHKeyDown(Sender: TObject; var Key: Word;
Shift: TShiftState);
begin
if (not EditGH.DroppedDown) then
EditGH.DroppedDown := True;
end;
procedure TFormlogin.EditGHChange(Sender: TObject);
begin
if Length(EditGH.Text) <= 6 then
begin
if (Length(EditGH.Text) <> 0) then //沒有內容的話,無須進行查詢
SearchByWkNo(EditGH,EditGh.Text);
end;
end;
procedure TFormlogin.FormShow(Sender: TObject);
begin
with Query_GH do
begin
Close;
Sql.Clear;
Sql.Add('select * from T_V_Manager where CityNo='+Copy(PS_CityNo, 1, 3)+' Order By Gh ');
Open;
while not Eof do
begin
EditGH.Items.Add(FieldByName('GH').AsString);
Next
end;
end;
EditGH.SetFocus;
// EditGH.SelLength := 0;
// EditGH.SelStart := 4;
// modify by zengzc 工號的長度不能限制為4位
end;
procedure TFormlogin.BitBtnCancelClick(Sender: TObject);
begin
Close;
end;
procedure TFormlogin.FlatButtonExitClick(Sender: TObject);
begin
Application.Terminate ;
end;
end.
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -