powerset.pas

来自「针对快餐店的会员管理系统.具有详细的分类及管理作用」· PAS 代码 · 共 122 行

PAS
122
字号
unit PowerSet;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, RzButton, RzRadChk, RzDBChk, StdCtrls, Mask, RzEdit, RzDBEdit,
  dbcgrids, ExtCtrls, RzPanel, RzCmboBx, RzDBCmbo, DB, cxStyles,
  cxCustomData, cxGraphics, cxFilter, cxData, cxDataStorage, cxEdit,
  cxDBData, cxGridLevel, cxGridCustomTableView, cxGridTableView,
  cxGridDBTableView, cxClasses, cxControls, cxGridCustomView, cxGrid;

type
  TPowerSetForm = class(TForm)
    RzGroupBox1: TRzGroupBox;
    Panel1: TPanel;
    cxGrid1: TcxGrid;
    cxGrid1DBTableView1: TcxGridDBTableView;
    cxGrid1DBTableView1DBColumn1: TcxGridDBColumn;
    cxGrid1DBTableView1DBColumn8: TcxGridDBColumn;
    cxGrid1DBTableView1DBColumn3: TcxGridDBColumn;
    cxGrid1DBTableView1DBColumn4: TcxGridDBColumn;
    cxGrid1DBTableView1DBColumn5: TcxGridDBColumn;
    cxGrid1DBTableView1DBColumn6: TcxGridDBColumn;
    cxGrid1DBTableView1DBColumn7: TcxGridDBColumn;
    cxGrid1Level1: TcxGridLevel;
    RzBitBtn1: TRzBitBtn;
    RzBitBtn3: TRzBitBtn;
    RzBitBtn4: TRzBitBtn;
    RzBitBtn2: TRzBitBtn;
    cxGrid1DBTableView1DBColumn2: TcxGridDBColumn;
    procedure RzBitBtn4Click(Sender: TObject);
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure RzBitBtn3Click(Sender: TObject);
    //检测系统管理员的人数
    function TestAdministrators:boolean;
    //权限窗口显示的内容
    procedure ShowPowerChange(id:integer);
    procedure RzBitBtn2Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  PowerSetForm: TPowerSetForm;

implementation

uses DM, EditPower;

{$R *.dfm}

procedure TPowerSetForm.RzBitBtn4Click(Sender: TObject);
begin
   Close;
end;

procedure TPowerSetForm.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
   DM1.ADODataSet11.Cancel;
end;

procedure TPowerSetForm.RzBitBtn3Click(Sender: TObject);
begin
   //删除
   if Messagebox(handle,'您确定要删除这个用户记录吗?','询问',MB_YESNO+MB_ICONQUESTION)=IDYES then begin
      if TestAdministrators then
         Messagebox(handle,'系统要求必须有一个“系统管理员”!删除操作被拒绝!','警告',MB_OK+MB_ICONERROR)
      else
      DM1.ADODataSet11.Delete;
   end;
end;

function TPowerSetForm.TestAdministrators: boolean;
begin
//检测管理员的人数
Result:=false;
 with DM1.ADOQuery1 do try
    Close;
    SQL.Clear;
    SQL.Add('Select * from 用户 where 用户类型='+''''+'系统管理员'+'''');
    Open;
    if (RecordCount<=1)and(DM1.ADODataSet11.FieldByName('用户类型').AsString='系统管理员') then
       Result:=true
    else Result:=false;
 except
 end;
end;

procedure TPowerSetForm.RzBitBtn2Click(Sender: TObject);
begin
   ShowPowerChange(TRzBitBtn(sender).Tag);
end;

procedure TPowerSetForm.ShowPowerChange(id: integer);
var
   Read:Boolean;
begin
   //编辑
  if ID=1 then  DM1.ADODataSet11.Append;
  Read:=TestAdministrators;
  with EditPowerForm do try
     RzDBComboBox1.ReadOnly:=Read;
     RzDBCheckBox1.ReadOnly:=Read;
     RzDBCheckBox2.ReadOnly:=Read;
     RzDBCheckBox3.ReadOnly:=Read;
     RzDBCheckBox4.ReadOnly:=Read;
     RzDBCheckBox5.ReadOnly:=Read;
     RzDBCheckBox6.ReadOnly:=Read;
     if Read then
        Label3.Caption:='说明:系统管理员拥有最高权限,无需更改。'
     else Label3.Caption:='说明:您可以分配、管理各用户权限。';
     Showmodal;
  except
  end;
end;

end.

⌨️ 快捷键说明

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