usermanage.~pas

来自「某疗养院动脉硬化管理系统」· ~PAS 代码 · 共 220 行

~PAS
220
字号
unit UserManage;

interface

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

type
  TFrmUser = class(TFrmRecord)
    Panel3: TPanel;
    BtnClose: TBitBtn;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    EdtID: TEdit;
    Label2: TLabel;
    EdtName: TEdit;
    Label3: TLabel;
    EdtPass: TEdit;
    Label4: TLabel;
    CbxUserGroup: TComboBox;
    BtnNew: TBitBtn;
    BtnDel: TBitBtn;
    BtnEdit: TBitBtn;
    BtnSave: TBitBtn;
    Label5: TLabel;
    Memo: TMemo;
    cxGrid1DBTableView1UserID: TcxGridDBColumn;
    cxGrid1DBTableView1UserName: TcxGridDBColumn;
    cxGrid1DBTableView1UserPass: TcxGridDBColumn;
    cxGrid1DBTableView1UserGroup: TcxGridDBColumn;
    cxGrid1DBTableView1Memo: TcxGridDBColumn;
    PopupMenu1: TPopupMenu;
    ImageList1: TImageList;
    N1: TMenuItem;
    N2: TMenuItem;
    N3: TMenuItem;
    BitBtn1: TBitBtn;
    procedure BtnCloseClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure BtnNewClick(Sender: TObject);
    procedure BtnDelClick(Sender: TObject);
    procedure BtnEditClick(Sender: TObject);
    procedure BtnSaveClick(Sender: TObject);
    procedure BitBtn1Click(Sender: TObject);
  private
    //标志,0表示新增,1表示修改
    Flag:integer;
    //窗体初始化
    procedure IniForm;
    //显示数据
    procedure ShowData;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmUser: TFrmUser;

implementation

uses PubFunction, DataModule;

{$R *.dfm}

procedure TFrmUser.BtnCloseClick(Sender: TObject);
begin
  inherited;
  close;
end;
//显示数据
procedure TFrmUser.ShowData;
begin
  EdtID.Text:=ADQ.FieldByName('UserID').AsString;
  EdtName.Text:=ADQ.FieldByName('UserName').AsString;
  EdtPass.Text:=ADQ.FieldByName('UserPass').AsString;
end;

procedure TFrmUser.FormCreate(Sender: TObject);
begin
  inherited;
  IniForm;
  ShowRecord(ADQ,'UserID,UserName,UserPass,Memo,UserGroup=case UserGroup  when ''0'' then ''管理员'' else ''普通用户'' end ','UserManage','UserID');
end;

procedure TFrmUser.FormShow(Sender: TObject);
begin
  inherited;
  SetBtnStatus(BtnNew,BtnDel,BtnEdit,BtnSave,'Ini');
end;

procedure TFrmUser.IniForm;
var i:integer;
begin
  for i:=0 to GroupBox1.ControlCount-1 do
  begin
    if GroupBox1.Controls[i] is TEdit then
      TEdit(GroupBox1.Controls[i]).Text:=''
  end;
  CbxUserGroup.ItemIndex :=-1;
  Memo.Lines.Clear;
end;
//新增
procedure TFrmUser.BtnNewClick(Sender: TObject);
begin
  inherited;
  Flag:=0;
  //EdtID.Text:=GenID('UserID','UserManage','C');
  EdtName.SetFocus;
  SetBtnStatus(BtnNew,BtnDel,BtnEdit,BtnSave,'New');
end;
//删除
procedure TFrmUser.BtnDelClick(Sender: TObject);
begin
  inherited;
  if ADQ.IsEmpty then
    exit;
  if application.MessageBox('确定要删除这条记录?','提示',mb_yesno+mb_iconquestion)=idyes then
    ADQ.Delete;
end;
//修改
procedure TFrmUser.BtnEditClick(Sender: TObject);
begin
  inherited;
  if ADQ.IsEmpty then
    exit;
  EdtID.Enabled :=False;
  Flag:=1;
  ShowData;
  SetBtnStatus(BtnNew,BtnDel,BtnEdit,BtnSave,'Edit');
end;

procedure TFrmUser.BtnSaveClick(Sender: TObject);
begin
  inherited;
  if Trim(EdtName.Text)='' then
  begin
    application.MessageBox('请输入用户姓名!','提示',mb_ok+mb_iconinformation);
    EdtName.SetFocus;
    exit;
  end;
  if Trim(EdtPass.Text)='' then
  begin
    application.MessageBox('请输入用户密码!','提示',mb_ok+mb_iconinformation);
    EdtPass.SetFocus;
    exit;
  end;
  if CbxUserGroup.ItemIndex=-1 then
  begin
    application.MessageBox('请选择用户组!','提示',mb_ok+mb_iconinformation);
    exit;
  end;
  DM.ADOCn.BeginTrans;
  if Flag=0 then
    begin
      try
        with ADQ do
        begin
          sql.Clear;
          sql.Add('INSERT INTO UserManage(UserID,UserName,UserPass,UserGroup,Memo) VALUES (:v1,:v2,:v3,:v4,:v5)');
          Parameters.ParamByName('v1').Value :=Trim(EdtID.Text);
          Parameters.ParamByName('v2').Value :=Trim(EdtName.Text);
          Parameters.ParamByName('v3').Value :=Trim(EdtPass.Text);
          Parameters.ParamByName('v4').Value :=IntToStr(CbxUserGroup.ItemIndex);
          Parameters.ParamByName('v5').Value :=Trim(Memo.Lines.Text);
          ExecSql;
        end;
        DM.ADOCn.CommitTrans;
  ShowRecord(ADQ,'UserID,UserName,UserPass,Memo,UserGroup=case UserGroup  when ''0'' then ''管理员'' else ''普通用户'' end ','UserManage','UserID');
        SetBtnStatus(BtnNew,BtnDel,BtnEdit,BtnSave,'Ini');
        IniForm;
      except
        DM.ADOCn.RollbackTrans;
        raise;
        Application.MessageBox('保存失败!','警告',mb_ok+mb_iconwarning);
  ShowRecord(ADQ,'UserID,UserName,UserPass,Memo,UserGroup=case UserGroup  when ''0'' then ''管理员'' else ''普通用户'' end ','UserManage','UserID');
      end;
    end
  else
    begin
      try
        with ADQ do
        begin
          sql.Clear;
          sql.Add('UPDATE UserManage Set UserName=:v1,UserPass=:v2,UserGroup=:v3,Memo=:v4 WHERE UserID=:v5');
          Parameters.ParamByName('v1').Value :=Trim(EdtName.Text);
          Parameters.ParamByName('v2').Value :=Trim(EdtPass.Text);
          Parameters.ParamByName('v3').Value :=CbxUserGroup.ItemIndex;
          Parameters.ParamByName('v4').Value :=Trim(Memo.Lines.Text);
          Parameters.ParamByName('v5').Value :=Trim(EdtID.Text);
          ExecSql;
        end;
        DM.ADOCn.CommitTrans;
  ShowRecord(ADQ,'UserID,UserName,UserPass,Memo,UserGroup=case UserGroup  when ''0'' then ''管理员'' else ''普通用户'' end ','UserManage','UserID');
        SetBtnStatus(BtnNew,BtnDel,BtnEdit,BtnSave,'Ini');
        IniForm;
      except
        DM.ADOCn.RollbackTrans;
        raise;
        application.MessageBox('保存失败!','警告',mb_ok+mb_iconwarning);
  ShowRecord(ADQ,'UserID,UserName,UserPass,Memo,UserGroup=case UserGroup  when ''0'' then ''管理员'' else ''普通用户'' end ','UserManage','UserID');
      end;
    end;
end;

procedure TFrmUser.BitBtn1Click(Sender: TObject);
begin
  inherited;
  SetBtnStatus(BtnNew,BtnDel,BtnEdit,BtnSave,'Ini');
  IniForm;
end;

end.

⌨️ 快捷键说明

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