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

📄 frmuseru.pas

📁 这是一款用java做的图书管理系统
💻 PAS
字号:
unit frmUserU;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, cxStyles, cxCustomData, cxGraphics, cxFilter, cxData,
  cxDataStorage, cxEdit, DB, cxDBData, StdCtrls, Buttons, ExtCtrls,
  cxGridLevel, cxClasses, cxControls, cxGridCustomView,
  cxGridCustomTableView, cxGridTableView, cxGridDBTableView, cxGrid;

type
  TfrmUser = class(TForm)
    GroupBox1: TGroupBox;
    cxGridUser: TcxGrid;
    cxGridDBTableView2: TcxGridDBTableView;
    cxGridUserLevel1: TcxGridLevel;
    cxStyleRepository1: TcxStyleRepository;
    cxStyle1: TcxStyle;
    cxStyle2: TcxStyle;
    cxStyle3: TcxStyle;
    dsUser: TDataSource;
    Panel1: TPanel;
    GroupBox2: TGroupBox;
    chkLP1: TCheckBox;
    chkLP2: TCheckBox;
    chkLP3: TCheckBox;
    chkLP4: TCheckBox;
    chkLP5: TCheckBox;
    chkLP6: TCheckBox;
    chkLP7: TCheckBox;
    chkLP8: TCheckBox;
    chkLP9: TCheckBox;
    btnAdd: TBitBtn;
    btnEdit: TBitBtn;
    btnDel: TBitBtn;
    btnSave: TBitBtn;
    btnCancel: TBitBtn;
    btnClose: TBitBtn;
    Label1: TLabel;
    edName: TEdit;
    Label2: TLabel;
    edPass: TEdit;
    cxGridDBTableView2DBColumn1: TcxGridDBColumn;
    cxGridDBTableView2DBColumn2: TcxGridDBColumn;
    cxGridDBTableView2DBColumn3: TcxGridDBColumn;
    cxGridDBTableView2DBColumn4: TcxGridDBColumn;
    cxGridDBTableView2DBColumn5: TcxGridDBColumn;
    cxGridDBTableView2DBColumn6: TcxGridDBColumn;
    cxGridDBTableView2DBColumn7: TcxGridDBColumn;
    cxGridDBTableView2DBColumn8: TcxGridDBColumn;
    cxGridDBTableView2DBColumn9: TcxGridDBColumn;
    cxGridDBTableView2DBColumn10: TcxGridDBColumn;
    cxGridDBTableView2DBColumn11: TcxGridDBColumn;
    procedure FormShow(Sender: TObject);
    procedure btnCloseClick(Sender: TObject);
    procedure btnDelClick(Sender: TObject);
    procedure btnAddClick(Sender: TObject);
    procedure btnEditClick(Sender: TObject);
    procedure btnCancelClick(Sender: TObject);
    procedure btnSaveClick(Sender: TObject);
    procedure cxGridDBTableView2CellClick(Sender: TcxCustomGridTableView;
      ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
      AShift: TShiftState; var AHandled: Boolean);
    procedure cxGridDBTableView2KeyUp(Sender: TObject; var Key: Word;
      Shift: TShiftState);
    procedure edPassEnter(Sender: TObject);
    procedure edPassClick(Sender: TObject);
  private
    { Private declarations }
    Procedure ClsText();
    Procedure TextEnable(boo:Boolean);
    Procedure LoadData();
    Procedure Conn();
    Function BooToStr(Boo:Boolean):String;
  public
    { Public declarations }
  end;

var
  frmUser: TfrmUser;

implementation

uses DMU, frmQAU, frmMainU;

{$R *.dfm}
var
  ifAdd:Boolean;
  strpass:String;

procedure TfrmUser.ClsText;
begin
  chkLP1.Checked:=False;
  chkLP2.Checked:=False;
  chkLp3.Checked:=False;
  chkLP4.Checked:=False;
  chkLP5.Checked:=False;
  chkLp6.Checked:=False;
  chkLP7.Checked:=False;
  chkLP8.Checked:=False;
  chkLP9.Checked:=False;
  edName.Clear;
  edPass.Clear;
end;

procedure TfrmUser.FormShow(Sender: TObject);
begin
  ifAdd:=True;
  Conn();
  ClsText();
  LoadData();
  TextEnable(False);
end;

procedure TfrmUser.TextEnable(boo: Boolean);
begin
  edPass.Enabled:=boo;
  btnAdd.Enabled:=not boo;
  btnEdit.Enabled:=not boo;
  btnDel.Enabled:=not boo;
  btnSave.Enabled:=boo;
  btnCancel.Enabled:=boo;
  btnClose.Enabled:=not boo;
  cxGridUser.Enabled:=not boo;
  if (Dm.adoUser2.FieldByName('Name').AsString='Admin') and (ifAdd=False) then
    exit;
  chkLP1.Enabled:=boo;
  chkLP2.Enabled:=boo;
  chkLP3.Enabled:=boo;
  chkLP4.Enabled:=boo;
  chkLP5.Enabled:=boo;
  chkLP6.Enabled:=boo;
  chkLP7.Enabled:=boo;
  chkLP8.Enabled:=boo;
  chkLP9.Enabled:=boo;
  edName.Enabled:=boo;
end;

procedure TfrmUser.btnCloseClick(Sender: TObject);
begin
  Dm.adoTemp.Close;
  Dm.adoTemp.SQL.Clear;
  Dm.adoTemp.SQL.Text:='select * from qa';
  DM.adoTemp.Open;
  if DM.adoTemp.RecordCount<>1 then
  begin
    MessageBox(0,'请为Admin帐号设置一个问题和答案,该问题和答案可以在你忘记Admin帐号的密码时使用。','提示',MB_OK+MB_TASKMODAL+MB_ICONEXCLAMATION);
    frmQA.ShowModal;
  end;
  Dm.adoTemp.Close;
  close;
end;

procedure TfrmUser.LoadData;
begin
  chkLP1.Checked:=Boolean(Dm.adoUser2.FieldByName('lp1').AsInteger);
  chkLP2.Checked:=Boolean(Dm.adoUser2.FieldByName('lp2').AsInteger);
  chkLP3.Checked:=Boolean(Dm.adoUser2.FieldByName('lp3').AsInteger);
  chkLP4.Checked:=Boolean(Dm.adoUser2.FieldByName('lp4').AsInteger);
  chkLP5.Checked:=Boolean(Dm.adoUser2.FieldByName('lp5').AsInteger);
  chkLP6.Checked:=Boolean(Dm.adoUser2.FieldByName('lp6').AsInteger);
  chkLP7.Checked:=Boolean(Dm.adoUser2.FieldByName('lp7').AsInteger);
  chkLP8.Checked:=Boolean(Dm.adoUser2.FieldByName('lp8').AsInteger);
  chkLP9.Checked:=Boolean(Dm.adoUser2.FieldByName('lp9').AsInteger);
  edName.Text:=Dm.adoUser2.FieldByName('Name').AsString;
  edPass.Text:=Dm.adoUser2.FieldByName('Pass').AsString;
  strPass:=edPass.Text;
end;

procedure TfrmUser.Conn;
begin
  Dm.adoUser2.Close;
  Dm.adoUser2.SQL.Clear;
  Dm.adoUser2.SQL.Text:='select * from lpUser';
  Dm.adoUser2.Open;
end;

procedure TfrmUser.btnDelClick(Sender: TObject);
begin
  if DM.adoUser2.FieldByName('name').AsString='Admin' then
  begin
    MessageBox(0,'不能删除系统管理员帐号','提示',MB_OK+MB_TASKMODAL+MB_ICONEXCLAMATION);
    exit;
  end;
  if MessageBox(0,Pchar('真的要删除用户“'+Dm.adoUser2.FieldByName('Name').AsString+'”的用户吗?'),'提示',MB_OKCANCEL+MB_TASKMODAL+MB_ICONQUESTION)=IDOK then
  begin
    if DM.adoUser2.FieldByName('Name').AsString=Dm.adoLP.FieldByName('Name').AsString then
    begin
      if MessageBox(0,Pchar('你正要删除对当前系统用户:“'+Dm.adoUser2.FieldByName('Name').AsString+'”'+Chr(13)+'删除系统当前用户后系统会自动断开连接。你真的要删除该用户吗?'),'提示',MB_OKCANCEL+MB_TASKMODAL+MB_ICONQUESTION)=IDOK then
      begin
        Dm.adoUser2.Delete;
        frmMain.LogonEnable(False);
        frmUser.Close;
        Dm.adoCon.Close;
      end;
    end
    else
      Dm.adoUser2.Delete;
  end;
end;

procedure TfrmUser.btnAddClick(Sender: TObject);
begin
  ifAdd:=True;
  ClsText();
  TextEnable(True);
end;

procedure TfrmUser.btnEditClick(Sender: TObject);
begin
  if (DM.adoLP.FieldByName('Name').AsString<>'Admin') and (Dm.adoUser2.FieldByName('Name').AsString='Admin') then
  begin
    MessageBox(0,'当前用户不是系统管理员,不能修改系统管理员帐号。','错误',MB_OK+MB_TASKMODAL+MB_ICONSTOP);
    exit;
  end;
  ifAdd:=False;
  TextEnable(True);
  edName.Enabled:=False;
end;

procedure TfrmUser.btnCancelClick(Sender: TObject);
begin
  TextEnable(False);
  LoadData();
end;

procedure TfrmUser.btnSaveClick(Sender: TObject);
begin
  if ifAdd then
  begin
    DM.adoTemp.Close;
    Dm.adoTemp.SQL.Clear;
    Dm.adoTemp.SQL.Text:='select * from lpUser where name='+QuotedStr(edName.Text);
    DM.adoTemp.Open;
    if Dm.adoTemp.RecordCount<>0 then
    begin
      MessageBox(0,'用户名不能重复。','提示',MB_OK+MB_TASKMODAL+MB_ICONEXCLAMATION);
      edName.SetFocus;
      Dm.adoTemp.Close;
      exit;
    end;
    Dm.adoTemp.Close;

    Dm.adoUser2.Append;
  end
  else
    Dm.adoUser2.Edit;
  Dm.adoUser2.FieldByName('Name').AsString:=edName.Text;
  if edPass.Text<>strPass then
    Dm.adoUser2.FieldByName('Pass').AsString:=Dm.MD5(edPass.Text);
  if edPass.Text='' then
    Dm.adoUser2.FieldByName('Pass').AsString:='';
  Dm.adoUser2.FieldByName('lp1').AsString:=BooToStr(chkLP1.Checked);
  Dm.adoUser2.FieldByName('lp2').AsString:=BooToStr(chkLP2.Checked);
  Dm.adoUser2.FieldByName('lp3').AsString:=BooToStr(chkLP3.Checked);
  Dm.adoUser2.FieldByName('lp4').AsString:=BooToStr(chkLP4.Checked);
  Dm.adoUser2.FieldByName('lp5').AsString:=BooToStr(chkLP5.Checked);
  Dm.adoUser2.FieldByName('lp6').AsString:=BooToStr(chkLP6.Checked);
  Dm.adoUser2.FieldByName('lp7').AsString:=BooToStr(chkLP7.Checked);
  Dm.adoUser2.FieldByName('lp8').AsString:=BooToStr(chkLP8.Checked);
  Dm.adoUser2.FieldByName('lp9').AsString:=BooToStr(chkLP9.Checked);
  DM.adoUser2.Post;
  if Dm.adoLP.FieldByName('name').AsString=edName.Text then
    Dm.adoLpCon(True,edName.Text);
  TextEnable(False);
  LoadData();
end;

function TfrmUser.BooToStr(Boo: Boolean): String;
begin
  if boo then
    Result:='1'
  else
    Result:='0';
end;

procedure TfrmUser.cxGridDBTableView2CellClick(
  Sender: TcxCustomGridTableView;
  ACellViewInfo: TcxGridTableDataCellViewInfo; AButton: TMouseButton;
  AShift: TShiftState; var AHandled: Boolean);
begin
  LoadData();
end;

procedure TfrmUser.cxGridDBTableView2KeyUp(Sender: TObject; var Key: Word;
  Shift: TShiftState);
begin
  LoadData();
end;

procedure TfrmUser.edPassEnter(Sender: TObject);
begin
  edPass.SelectAll;
end;

procedure TfrmUser.edPassClick(Sender: TObject);
begin
  edPass.SelectAll;
end;

end.

⌨️ 快捷键说明

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