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

📄 setright.~pas

📁 中国移动集群网销售资料录入管理系统。 包含集群网用户录入
💻 ~PAS
字号:
unit setright;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, ExtCtrls, CheckLst, ComCtrls, DBCtrls, Grids, DBGrids,
  DB, ADODB;

type
  TFormSetRight = class(TForm)
    PageControl1: TPageControl;
    TabSheet1: TTabSheet;
    CheckListBox1: TCheckListBox;
    Panel1: TPanel;
    Label1: TLabel;
    ComboBox1: TComboBox;
    Button1: TButton;
    TabSheet2: TTabSheet;
    Panel2: TPanel;
    DX_User: TDataSource;
    DBGrid1: TDBGrid;
    DBNavigator1: TDBNavigator;
    T_User: TADOQuery;
    T_Userid: TAutoIncField;
    T_UserUsername: TWideStringField;
    T_UserPassword: TWideStringField;
    T_Usertag: TWideStringField;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure Button1Click(Sender: TObject);
    procedure TabSheet1Show(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure TabSheet2Show(Sender: TObject);
    procedure ComboBox1CloseUp(Sender: TObject);
  private
    procedure loadActions;

  public
    { Public declarations }
  end;

type PItem = ^AItem; //字段列表中的对象
  AItem = record
    field_name: string; //字段名
    field_remark: string; //字段显示名
  end;
var
  FormSetRight: TFormSetRight;

implementation
uses Main, datamodule, ActnList;
{$R *.dfm}

procedure TFormSetRight.FormClose(Sender: TObject;
  var Action: TCloseAction);
begin
  Action := caFree;
end;

procedure TFormSetRight.loadActions;
var i: Integer;
  act: TActionList;
  act_item: PItem;
begin
  CheckListBox1.Clear;
  act := MainForm.ActionList1;
  for i := 0 to act.ActionCount - 1 do
    if act.Actions[i].Category = 'Window' then begin
      New(act_item);
      act_item.field_name := act.Actions[i].Name;
      act_item.field_remark := TAction(act.Actions[i]).Caption;
      CheckListBox1.AddItem(act_item.field_remark, TObject(act_item));
    end;
end;
procedure TFormSetRight.Button1Click(Sender: TObject);
var oper: string;
  i: Integer;
  act_item: PItem;
begin
  oper := trim(ComboBox1.Text);
  if oper <> '' then begin
    DM.Conn.Execute(Format('delete from UserRight where username=''%s''', [oper]));
    for i := 0 to CheckListBox1.Count - 1 do
      if CheckListBox1.Checked[i] then begin
        act_item := PItem(CheckListBox1.Items.Objects[i]);
        DM.Conn.Execute(Format('insert into UserRight(username,funcname) values (''%s'',''%s'')', [oper, act_item.field_name]));
      end;
  end
  else
    ShowMessage('请先选择用户');
end;

procedure TFormSetRight.TabSheet1Show(Sender: TObject);
begin
  ComboBox1.Items.Text := DM.getrsstring('select distinct username from users where username<>''admin''');
  loadActions;
end;

procedure TFormSetRight.FormCreate(Sender: TObject);
begin
  PageControl1.ActivePageIndex := 0;
end;

procedure TFormSetRight.TabSheet2Show(Sender: TObject);
begin
  T_User.Close;
  T_User.SQL.Text := 'select * from Users where username<>''admin''';
  T_User.Open;
end;

procedure TFormSetRight.ComboBox1CloseUp(Sender: TObject);
var
  strs_tmp: TStringList;
  i, j: Integer;
  act_item: PItem;
begin
  strs_tmp := TStringList.Create;
  try
    strs_tmp.Text := DM.getrsstring(Format('select funcname from userright where username=''%s''', [ComboBox1.Text]));
    for i := 0 to CheckListBox1.Count - 1 do begin
      act_item := PItem(CheckListBox1.Items.Objects[i]);
      if strs_tmp.IndexOf(act_item.field_name) >= 0 then
        CheckListBox1.Checked[i] := true
      else
        CheckListBox1.Checked[i] := false;
    end;
  finally
    strs_tmp.Free;
  end;

end;

end.

⌨️ 快捷键说明

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