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

📄 rightmanageunit.pas

📁 好用得程序
💻 PAS
字号:
unit RightManageUnit;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, DB, DBTables, CheckLst;

type
  TRightManageForm = class(TForm)
    LB_name: TListBox;
    Panel1: TPanel;
    Panel2: TPanel;
    CLB_rights: TCheckListBox;
    OKBtn: TButton;
    CancelBtn: TButton;
    query_data: TQuery;
    procedure LB_nameClick(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure OKBtnClick(Sender: TObject);
    procedure CLB_rightsClick(Sender: TObject);
    procedure FormPaint(Sender: TObject);
    procedure CancelBtnClick(Sender: TObject);
  private
    B_create: boolean;
    P_rights: array of array of string;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  RightManageForm: TRightManageForm;

implementation
uses FunctionUnit;
{$R *.dfm}

procedure TRightManageForm.LB_nameClick(Sender: TObject);
var
  S_rights: string;
  I_index: integer;
begin
  inherited;
  if (LB_name.itemindex < 0) or (LB_name.itemindex > 6) then
  begin
    CLB_rights.Enabled := false;
    exit;
  end
  else
    CLB_rights.Enabled := true;
  S_rights := P_rights[1, LB_name.itemindex];
  if length(S_rights) <> 10 then
    S_rights := '0000000000';
  for I_index := 1 to CLB_rights.Items.Count do
  begin
    if S_rights[I_index] = '1' then
      CLB_rights.Checked[I_index - 1] := true
    else
      CLB_rights.Checked[I_index - 1] := false;
  end;

end;

procedure TRightManageForm.FormCreate(Sender: TObject);
var
  I_index: integer;
begin

  self.Caption := '权限管理';
  setlength(P_rights, 2);
  setlength(P_rights[0], 6);
  setlength(P_rights[1], 6);
  P_rights[0, 0] := '管理员';
  P_rights[0, 1] := '一级';
  P_rights[0, 2] := '二级';
  P_rights[0, 3] := '三级';
  P_rights[0, 4] := '四级';
  P_rights[0, 5] := '限制级';
  query_data.DatabaseName := 'CPXSGL';
  B_create := false;
  with query_data do
  begin
    close;
    sql.Clear;
    sql.Text := 'select * from SysUserRights';
    try
      open;
      B_create := true;
    except
      messagedlg(Errormsg0001 + '0006', mtError, [mbok], 0);
      close;
      B_create := false;
    end;
    //如果数据表记录数不对,则重置权限信息
    if (RecordCount <> 6) and (B_create) then
    begin
      P_rights[1, 0] := '1111111111';
      P_rights[1, 1] := '1111011111';
      P_rights[1, 2] := '1111011011';
      P_rights[1, 3] := '1111001011';
      P_rights[1, 4] := '1111000011';
      P_rights[1, 5] := '0000000011';
    end
    else if (RecordCount = 6) and (B_create) then
    begin
      first;
      for I_index := 1 to recordcount do
      begin
        P_rights[1, I_index - 1] := fieldbyname('rights').AsString;
        next;
      end;
    end;
  end;
end;

procedure TRightManageForm.OKBtnClick(Sender: TObject);
var
  I_row: integer;
begin

  with query_data do
  begin
    close;
    sql.Clear;
    sql.Text := 'delete  from SysUserRights';
    try
      execsql;
    except
      messagedlg(Errormsg0005 + '0006', mtError, [mbok], 0);
      close;
      self.Close;
    end;

    for I_row := 0 to 5 do
    begin
      close;
      sql.Clear;
      sql.Text := 'insert into SysUserRights (id,name,rights)'
        + ' values("' + inttostr(I_row) + '","' + P_rights[0, I_row] + '","'
        + P_rights[1, I_row] + '")';
      try
        execsql;
      except
        messagedlg(Errormsg0004 + '0006', mtError, [mbok], 0);
        close;
        self.Close;
      end;
    end;
    close;
    self.Close;
  end;
end;

procedure TRightManageForm.CLB_rightsClick(Sender: TObject);
var
  I_index, I_name: integer;
  S_rights: string;
begin
  I_name := lb_name.ItemIndex;
  if I_name = 0 then //系统管理员
    exit;
  if CLB_rights.Checked[5] then
    CLB_rights.Checked[6] := true;
  S_rights := '';
  for I_index := 0 to CLB_rights.Items.Count - 1 do
  begin
    if CLB_rights.Checked[I_index] then
      S_rights := S_rights + '1'
    else
      S_rights := S_rights + '0';
  end;
  S_rights := S_rights + '11';
  P_rights[1, I_name] := S_rights;
end;

procedure TRightManageForm.FormPaint(Sender: TObject);
begin
  if not B_create then
    self.Close;
end;

procedure TRightManageForm.CancelBtnClick(Sender: TObject);
begin
  Self.Close;
end;

end.

⌨️ 快捷键说明

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