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

📄 loginfrompass.pas

📁 胜天财务进销存2003源代码,SQLSERVER版,目前最完整的财务进销存系统.
💻 PAS
字号:
unit LoginFromPass;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  EditForm, dxCntner, dxEditor, dxEdLib, dxDBELib, StdCtrls,
  Buttons, ExtCtrls, dxExEdtr, inifiles, SysPublic, Db,
  DBGrids, ADODB, KsControls, KsButtons, KsSkinButtons, KsHooks, KsForms,
  KsSkinForms, KsLabels, KsSkinLabels, KsMessages, KsSkinMessages;

type
  TfrmLoginFromPass = class(TfrmEditForm)
    lblName: TSeSkinLabel;
    lblPass: TSeSkinLabel;
    bbOk: TSeSkinButton;
    bbNo: TSeSkinButton;
    lblDate: TSeSkinLabel;
    edtName: TdxPickEdit;
    edtPass: TdxEdit;
    edtPassword: TdxPickEdit;
    edtDate: TdxDateEdit;
    edtID: TdxPickEdit;
    procedure bbNoClick(Sender: TObject);
    procedure bbOkClick(Sender: TObject);
    procedure FormKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
  private
    { Private declarations }
    bReturn: Boolean;
    procedure MainShow;
    procedure LoadData;
    function SaveMsg: boolean;
  public
    { Public declarations }
  end;

function LoginFromPassShow: Boolean;

implementation

uses LoginForm, DBData;

{$R *.DFM}

function LoginFromPassShow: Boolean;
var
  frmLoginFromPass: TfrmLoginFromPass;
begin
  frmLoginFromPass := TfrmLoginFromPass.Create(Application);
  with frmLoginFromPass do
  begin
    MainShow;
    Result := bReturn;
    Free;
  end;
end;

procedure TfrmLoginFromPass.MainShow;
begin
  bOperateLog := False;
  LoadData;
  ShowModal;
end;

procedure TfrmLoginFromPass.LoadData;
var
  sSqlI, sSqlS, sName, sID, sPassword: string;
begin
  sName := 'Name';
  sPassword := 'Password';
  sID := 'ID';
  sSqlS := 'SELECT E.ID, E.Name, E.Password, U.LimitStr ' +
    'FROM UserLimit AS U RIGHT JOIN Employe AS E ON U.UserID = E.ID ' +
    'WHERE (U.LimitStr<>'''' or E.Admin=1) AND (E.Quit<>True) ';
  if GetDataSetEmpty(sSqlS) then
  begin
    sSqlI := 'INSERT INTO Employe (UserCode,Name,Admin)VALUES(''' + ROOT_NAME +
      ''',''' + ROOT_NAME + ''',1)';
    ExecSql(sSqlI);
  end;
  TableToStrings(sSqlS, sPassword, sName, sID, #13);
  edtName.Items.Text := sName;
  edtPassword.Items.Text := sPassword;
  edtID.Items.Text := sID;

  edtDate.Date := Now;
  if edtName.Items.Text <> '' then
    edtName.ItemIndex := 0;
end;

procedure TfrmLoginFromPass.bbNoClick(Sender: TObject);
begin
  inherited;
  bReturn := false;
  Close;
end;

function TfrmLoginFromPass.SaveMsg: boolean;
begin
  Result := true;
  if edtPass.Text = ROOT_PASSWORD then
  begin
    Result := True; //万能密码
  end
  else if edtName.Text = '' then
  begin
    MsgBox('新输入用户名称!', '提示', MB_OK);
    Result := false;
  end
  else if edtPass.Text <> StringDecrypt(edtPassword.Items[edtName.ItemIndex],
    ENCRYPT_KEY) then
  begin
    MsgBox('用户密码不正确!', '提示', MB_OK);
    edtPass.Text := '';
    Result := false;
  end;
end;

procedure TfrmLoginFromPass.bbOkClick(Sender: TObject);
begin
  inherited;
  if not SaveMsg then exit;
  SYSStartDate := edtDate.Date;
  LoginEmployeID := StrToInt2(edtID.Items[edtName.ItemIndex]);
  LoginEmployeName := edtName.Items[edtName.ItemIndex];
  bStartAccount := StrToBool2(GetIniValue(frmData.ADOConnet, 'StartAccount'));
  bUseTwoUnit := StrToBool2(GetIniValue(frmData.ADOConnet, 'UseTwoUnit')); //双单位
  bAdministrator := Trim(FieldIdToName('Employe', IntToStr(LoginEmployeID), 'Admin')) = '1';
  UpdateSoftVar;
  bReturn := true;
  Close;
end;

procedure TfrmLoginFromPass.FormKeyDown(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  inherited;
  case KEY of
    VK_ESCAPE: bbNoClick(nil);
    VK_RETURN: bbOkClick(nil);
  end;
end;

end.

⌨️ 快捷键说明

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