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

📄 purview.pas

📁 DELPHI写的一个权限管理的功能,一个相当不错的功能,值得下载与学习
💻 PAS
字号:
unit Purview;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, ComCtrls, RzTreeVw, StdCtrls, RzLstBox, RzDBList, RzTray,
  RzShellCtrls, DB, ADODB, ExtCtrls, ToolWin, ImgList;

type
  TFrmPurview = class(TForm)
    Panel1: TPanel;
    Panel2: TPanel;
    PurviewTree: TRzCheckTree;
    ToolBar1: TToolBar;
    BtSave: TToolButton;
    BtClose: TToolButton;
    ImageList1: TImageList;
    QPoliceMan: TADOQuery;
    QPurview: TADOQuery;
    PoliceTree: TRzTreeView;
    procedure FormClose(Sender: TObject; var Action: TCloseAction);
    procedure FormCreate(Sender: TObject);
    procedure PoliceTreeClick(Sender: TObject);
    procedure BtCloseClick(Sender: TObject);
    procedure BtSaveClick(Sender: TObject);
    procedure PurviewTreeStateChange(Sender: TObject; Node: TTreeNode;
      NewState: TRzCheckState);
  private
    procedure AddPurviewTree;
    function readname(jyname: string): string;
    { Private declarations }
  public
    { Public declarations }
  end;

var
  FrmPurview: TFrmPurview;
  changPur: boolean;
  NonceNum: string;
implementation

uses Dm;

{$R *.dfm}

function TFrmPurview.readname(jyname: string): string;
var
  rname, rs: string;
  i: word;
begin
  rname := '';
  i := 1;
  rs := copy(jyname, i, 1);
  while rs <> #$A3 do
  begin
    rname := rname + Trim(rs);
    i := i + 1;
    rs := copy(jyname, i, 1);
  end;
  result := Trim(rname);
end;

//TRzCheckState   =   (   csUnknown,   csUnchecked,   csChecked,   csPartiallyChecked   );

procedure TFrmPurview.AddPurviewTree;
var
  pur: string;
begin
  QPurview.Close;
  QPurview.SQL.Text := 'select * from jyqx where jybm=' + quotedstr(Trim(QPoliceman.FieldByName('JYBH').AsString));
  QPurview.Open;
  PurviewTree.ItemState[0] := csUnchecked;
  QPurview.First;
  while not Qpurview.Eof do
  begin
    pur := Trim(QPurview.FieldByName('QXMC').AsString);
    if pur = '导入图片' then
      PurviewTree.ItemState[2] := cschecked
    else
      if pur = '信息录入' then
        PurviewTree.ItemState[3] := cschecked
      else
        if pur = '信息审核' then
          PurviewTree.ItemState[4] := cschecked
        else
          if pur = '信息发布' then
            PurviewTree.ItemState[6] := cschecked
          else
            if pur = '处罚' then
              PurviewTree.ItemState[7] := cschecked
            else
              if pur = '信息查询' then
                PurviewTree.ItemState[9] := cschecked
              else
                if pur = '分季度统计信息' then
                  PurviewTree.ItemState[11] := cschecked
                else
                  if pur = '各地点信息统计' then
                    PurviewTree.ItemState[12] := cschecked
                  else
                    if pur = '分时段统计信息' then
                      PurviewTree.ItemState[13] := cschecked
                    else
                      if pur = '次数统计' then
                        PurviewTree.ItemState[14] := cschecked
                      else
                        if pur = '本地统计' then
                          PurviewTree.ItemState[15] := cschecked
                        else
                          if pur = '地点配置' then
                            PurviewTree.ItemState[18] := cschecked
                          else
                            if pur = '方向配置' then
                              PurviewTree.ItemState[19] := cschecked
                            else
                              if pur = '类型配置' then
                                PurviewTree.ItemState[20] := cschecked
                              else
                                if pur = '记录类型' then
                                  PurviewTree.ItemState[21] := cschecked
                                else
                                  if pur = '车类型配置' then
                                    PurviewTree.ItemState[22] := cschecked
                                  else
                                    if pur = '颜色配置' then
                                      PurviewTree.ItemState[23] := cschecked
                                    else
                                      if pur = '牌类型配置' then
                                        PurviewTree.ItemState[24] := cschecked
                                      else
                                        if pur = '特殊信息配置' then
                                          PurviewTree.ItemState[25] := cschecked
                                        else
                                          if pur = '基本信息配置' then
                                            PurviewTree.ItemState[27] := cschecked
                                          else
                                            if pur = '权限配置' then
                                              PurviewTree.ItemState[28] := cschecked;
    Qpurview.next;
  end;
  ChangPur := False;
end;

procedure TFrmPurview.FormClose(Sender: TObject; var Action: TCloseAction);
begin
  action := cafree;
  FrmPurview := nil;
end;

procedure TFrmPurview.FormCreate(Sender: TObject);
var
  firstnode, node: tTreenode;
  i: integer;
begin
  firstnode := PoliceTree.Items.AddFirst(nil, '姓名');
  QPoliceman.Close;
  QPoliceman.SQL.Text := 'select * from JY where jybh<>' + quotedstr(Trim(FrmDm.QLogin.FieldValues['jybh']))
    + ' and jyxm<>' + quotedstr('sys');
  QPoliceman.Open;
  while not QPoliceMan.Eof do
  begin
    node := PoliceTree.Items.AddChild(firstnode, Trim(QPoliceman.FieldByName('JYXM').AsString)
      + '(' + Trim(QPoliceman.FieldByName('JYBH').AsString) + ')');
    QPoliceman.Next;
  end;
  for i := 0 to PurviewTree.Items.Count - 1 do
    PurviewTree.Items.Item[i].Expanded := True;
  PoliceTree.Items.Item[0].Expanded := True;
  AddPurviewTree;
end;

procedure TFrmPurview.PoliceTreeClick(Sender: TObject);
begin
  if (PoliceTree.Selected <> nil) and (PoliceTree.Selected.Text <> '姓名') then
  begin
    if ChangPur = true then
      if MessageBox(0, '权限已改变,是否保存修改?', '提示', MB_ICONWARNING + mb_YESNO) = idyes then
        Btsave.Click;
    QPoliceMan.Close; //获取姓名
    QPoliceMan.SQL.Text := 'select * from jy where jyxm=' + quotedstr(readname(Trim(PoliceTree.Selected.Text)));
    QPoliceMan.Open;
    PurviewTree.ItemState[0] := csunchecked;
    AddPurviewTree;
    NonceNum := Trim(QPoliceman.FieldByName('JYBH').AsString);
  end;
end;

procedure TFrmPurview.BtCloseClick(Sender: TObject);
begin
  close;
end;

procedure TFrmPurview.BtSaveClick(Sender: TObject);
var
  i: integer;
  ComPurview: TAdoCommand;
begin
  try
    ComPurview := TAdoCommand.Create(self);
    ComPurview.Connection := FrmDm.ConnPolice;
    ComPurview.CommandText := 'delete from jyqx where jybm=' + quotedstr(NonceNum);
    ComPurview.Execute;
    QPurview.Close;
    for i := 0 to PurviewTree.Items.Count - 1 do
      if PurviewTree.ItemState[i] <> csUnchecked then
      begin
        ComPurview.CommandText := 'insert into jyqx values('
          + quotedstr(PurviewTree.Items.Item[i].Text)
          + ',' + quotedstr(Trim(QPoliceman.FieldByName('JYBH').AsString)) + ')';
        ComPurview.Execute;
      end;
  finally
    ComPurview.Free;
    ChangPur := False;
    MessageBox(0, '保存成功!', '提示', MB_ICONINFORMATION + mb_OK);
  end;
end;

procedure TFrmPurview.PurviewTreeStateChange(Sender: TObject;
  Node: TTreeNode; NewState: TRzCheckState);
begin
  ChangPur := true;
end;

end.

⌨️ 快捷键说明

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