loginmanagerfm.pas

来自「一个电力企业的后台管理程序」· PAS 代码 · 共 264 行

PAS
264
字号
unit LoginManagerFM;

interface

uses
  Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
  wenActionPass, Menus, ActnList, Grids, DBGrids, {RXDBCtrl,}
  ExtCtrls, ComCtrls, StdCtrls, DBCtrls, Mask, Db, DBTables, ImgList,
  TB97Tlbr, TB97Ctls, TB97, pubBillFM, Buttons, RXCtrls, Animate, RXDBCtrl;

type
  Tfrm_LoginManager = class(Tfrm_pubBill)
    Qr_Login: TQuery;
    Us_Login: TUpdateSQL;
    Ds_Login: TDataSource;
    Qr_Role: TQuery;
    Ds_Role: TDataSource;
    Label1: TLabel;
    DBEd_WorkID: TDBEdit;
    Label4: TLabel;
    DBEd_WorkName: TDBEdit;
    DBEd_Birthday: TDBEdit;
    Label8: TLabel;
    Label5: TLabel;
    Label6: TLabel;
    Label3: TLabel;
    Dbcb_Role: TDBLookupComboBox;
    DBComboBox1: TDBComboBox;
    DBEd_Department: TDBEdit;
    Label7: TLabel;
    Label2: TLabel;
    DBEd_Pwd: TDBEdit;
    DBEd_Peoples: TDBEdit;
    Panel3: TPanel;
    RxLabel2: TRxLabel;
    Image1: TImage;
    Table1: TTable;
    Panel1: TPanel;
    RxLabel1: TRxLabel;
    procedure FormCreate(Sender: TObject);
    procedure Actn_Const_RefreshExecute(Sender: TObject);
    procedure Actn_Const_UserControlExecute(Sender: TObject);
    procedure DBEd_WorkIDKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure DBEd_WorkIDExit(Sender: TObject);
    procedure Dbcb_RoleKeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure Actn_Const_SaveExecute(Sender: TObject);
    procedure Actn_Const_CancelExecute(Sender: TObject);
    procedure Actn_Const_NewExecute(Sender: TObject);
    procedure Actn_Const_DeleteExecute(Sender: TObject);
    procedure DBComboBox1KeyDown(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure FormActivate(Sender: TObject);
  private
    { Private declarations }
    CanSave:boolean;
    procedure RefreshTable;
  public
    { Public declarations }
  end;

var
  frm_LoginManager: Tfrm_LoginManager;

implementation

uses systemDM;

{$R *.DFM}
///////////////////////////////////////////////////////////////////
//私有函数
///////////////////////////////////////////////////////////////////
procedure Tfrm_LoginManager.RefreshTable;
begin
  with Qr_Login do
  begin
    DisableControls;
    Close;  DatabaseName:=sysDM.DBName;  SQL.Clear;
    SQL.Text:=' select * from ECSC_SA.sysLogin ';
    EnableControls;
    Prepare;   Open;
  end;
  with Qr_Role do
  begin
    DisableControls;
    Close;  DatabaseName:=sysDM.DBName;  SQL.Clear;
    SQL.Text:=' select * from ECSC_SA.sysRole';
    EnableControls;
    Prepare;   Open;
  end;
end;
///////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////

procedure Tfrm_LoginManager.FormCreate(Sender: TObject);
begin
  inherited;
  RefreshTable;
  CanSave:=true;
  stb_Main.Panels[0].Text:='共有'
                            +inttostr(Qr_Login.RecordCount)
                            +'条记录.';
end;

procedure Tfrm_LoginManager.Actn_Const_RefreshExecute(Sender: TObject);
begin
  inherited;
  RefreshTable;
  stb_Main.Panels[0].Text:='共有'
                            +inttostr(Qr_Login.RecordCount)
                            +'条记录.';
end;

procedure Tfrm_LoginManager.Actn_Const_UserControlExecute(
  Sender: TObject);
begin
  inherited;
  stb_Main.Panels[0].Text:='共有'
                            +inttostr(Qr_Login.RecordCount)
                            +'条记录.';
end;

procedure Tfrm_LoginManager.DBEd_WorkIDKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
  if (ssCtrl in Shift) or (ssAlt in Shift)  then exit;
  if Key=13 then exit;
  if not FormEditStatus then
    Actn_Const_Edit.Execute;
end;

procedure Tfrm_LoginManager.DBEd_WorkIDExit(Sender: TObject);
var
  SQL_Str:string;
begin
  inherited;
  if not FormEditStatus then exit;
  SQL_Str:=' select workID from syslogin '
          +' where workID='''+DBEd_WorkID.Text+''''
          +' and APPNAME = ''' + sysDM.AppName + '''';
  if sysDM.SQL_Querys(sysDM.Qr_Temp,SQL_Str) then
  begin
    if Qr_Login.FieldByName('workId').OldValue=Qr_Login.FieldByName('workId').NewValue then
    begin
      Cansave:=true;
      exit;
    end;
    Application.MessageBox('该操作员工号已存在,请选择一个新的工号。','提示',MB_OK);
    DBEd_WorkID.SetFocus;
    CanSave:=false;
  end else
    Cansave:=true;
end;

procedure Tfrm_LoginManager.Dbcb_RoleKeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
  if (ssCtrl in Shift) or (ssAlt in Shift)  then exit;
  if Key=13 then exit;
  if not FormEditStatus then
    Actn_Const_Edit.Execute;
end;

procedure Tfrm_LoginManager.Actn_Const_SaveExecute(Sender: TObject);
begin
  SelectNext(ActiveControl,true,true);
  if not CanSave then exit;
  if trim(Qr_Login.FieldByName('WorkID').AsString)='' then
  begin
    ShowMessage('请填写操作员工号!');
    exit;
  end;
  if trim(Qr_Login.FieldByName('RoleName').AsString)='' then
  begin
    ShowMessage('请选择操作员角色!');
    exit;
  end;
  if trim(Qr_Login.FieldByName('WorkName').AsString)='' then
  begin
    ShowMessage('请填写操作员姓名!');
    exit;
  end;
  sysDM.DBMain.StartTransaction;
  try
    if Qr_Login.FieldByName('Pwd').IsNull then
      Qr_Login.FieldByName('Pwd').AsString:='';
    Qr_Login.FieldByName('ISRECORD').asinteger:=1;
    if Qr_Login.Modified then
      Qr_Login.ApplyUpdates;
    sysDM.DBMain.Commit;
  except
    Qr_Login.CommitUpdates;
    sysDM.DBMain.Rollback;
    exit;
  end;
  Qr_Login.CommitUpdates;
  CanSave:=true;
  with TQuery.Create(nil) do
  try
    databasename:=SysDM.DBMain.DatabaseName ;
    close;     sql.Clear ;
    sql.Text :='update syslogin set ISRECORD=1';
    ExecSql;
  finally
    free;
  end;
  inherited;
end;

procedure Tfrm_LoginManager.Actn_Const_CancelExecute(Sender: TObject);
begin
  inherited;
  Qr_Login.Cancel;
  CanSave:=true;
end;

procedure Tfrm_LoginManager.Actn_Const_NewExecute(Sender: TObject);
begin
  inherited;
  with Qr_Login do
  begin
    Qr_login.Edit;
    Append;
    FieldByName('AppName').AsString:=sysDM.AppName;
  end;
  DBEd_WorkID.SetFocus;
end;

procedure Tfrm_LoginManager.Actn_Const_DeleteExecute(Sender: TObject);
begin
  if Application.MessageBox('确认删除数据吗?','提示',MB_YESNO+MB_ICONQUESTION)=ID_NO then exit;
  sysDM.DBMain.StartTransaction;
  try
    Qr_Login.Delete;
    Qr_Login.ApplyUpdates;
    sysDM.DBMain.Commit;
  except
    Qr_Login.CommitUpdates;
    sysDM.DBMain.Rollback;
    exit;
  end;
  Qr_Login.CommitUpdates;
  inherited;
end;

procedure Tfrm_LoginManager.DBComboBox1KeyDown(Sender: TObject;
  var Key: Word; Shift: TShiftState);
begin
  inherited;
  if Key=13 then DBEd_WorkName.SetFocus;
end;

procedure Tfrm_LoginManager.FormActivate(Sender: TObject);
begin
  inherited;
  tbtn97_Const_Edit.Visible:=True;
end;

end.

⌨️ 快捷键说明

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