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

📄 umain.pas

📁 用户权限管理系统
💻 PAS
📖 第 1 页 / 共 2 页
字号:
unit uMain;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, Menus, ImgList, cxGraphics, dxBar, cxControls,
  dxStatusBar, cxPC, dxBarExtItems, dxBarExtDBItems, RzTabs, cxStyles,
  cxCustomData, cxFilter, cxData, cxDataStorage, cxEdit, DB, cxDBData,
  cxGridLevel, cxGridCustomTableView, cxGridTableView, cxGridDBTableView,
  cxClasses, cxGridCustomView, cxGrid, ExtCtrls, Grids,
  dxDockControl, dxDockPanel, DBClient, cxTreeView, cxContainer, cxListBox,
  cxListView, RzPanel, ComCtrls, RzListVw, StdCtrls, Buttons, cxTextEdit,
  StrUtils,
  ActnList,
  untPublic,
  untUser,
  shellapi;

const

  C_SQL = 'select * from V_001 order by V01';

type

  TfrmMain = class(TForm)
    Images: TImageList;
    ilHotImages: TImageList;
    ilDisabledImages: TImageList;
    dxBarManager1: TdxBarManager;
    dxBarSubItem1: TdxBarSubItem;
    dxBarSubItem2: TdxBarSubItem;
    dxBarSubItem3: TdxBarSubItem;
    dxBarSubItem4: TdxBarSubItem;
    dxBarSubItem5: TdxBarSubItem;
    dxBarSubItem6: TdxBarSubItem;
    dxBarSubItem7: TdxBarSubItem;
    dxBarButton2: TdxBarButton;
    dxBarButton3: TdxBarButton;
    dxBarButton1: TdxBarButton;
    dxBarCombo1: TdxBarCombo;
    dxBarSpinEdit1: TdxBarSpinEdit;
    dxBarDateCombo1: TdxBarDateCombo;
    dxBarToolbarsListItem1: TdxBarToolbarsListItem;
    dxBarContainerItem1: TdxBarContainerItem;
    dxBarEdit1: TdxBarEdit;
    CustomdxBarCombo1: TCustomdxBarCombo;
    dxBarLookupCombo1: TdxBarLookupCombo;
    dxBarSubItem8: TdxBarSubItem;
    dxBarSubItem9: TdxBarSubItem;
    dxBarListItem1: TdxBarListItem;
    dxBarSubItem10: TdxBarSubItem;
    dxBarMRUListItem1: TdxBarMRUListItem;
    dxBarButton4: TdxBarButton;
    dxBarMRUListItem2: TdxBarMRUListItem;
    dxBarButton5: TdxBarButton;
    dxBarButton6: TdxBarButton;
    dxBarButton7: TdxBarButton;
    dxBarButton8: TdxBarButton;
    dxBarButton9: TdxBarButton;
    dxBarButton10: TdxBarButton;
    dxBarInPlaceSubItem1: TdxBarInPlaceSubItem;
    dxStatusBar1: TdxStatusBar;
    dxBarButton11: TdxBarButton;
    dxBarSubItem11: TdxBarSubItem;
    dxBarButton12: TdxBarButton;
    dxBarButton13: TdxBarButton;
    dxBarButton14: TdxBarButton;
    dxBarButton15: TdxBarButton;
    dxBarButton16: TdxBarButton;
    dxBarButton17: TdxBarButton;
    dxBarButton18: TdxBarButton;
    dxBarButton19: TdxBarButton;
    dxBarButton20: TdxBarButton;
    dxBarButton21: TdxBarButton;
    cds_Grp: TClientDataSet;
    dxBarSubItem12: TdxBarSubItem;
    dxBarButton22: TdxBarButton;
    dxBarButton23: TdxBarButton;
    dxBarButton24: TdxBarButton;
    dxBarButton25: TdxBarButton;
    dxBarButton26: TdxBarButton;
    dxBarButton27: TdxBarButton;
    dxBarButton28: TdxBarButton;
    dxBarButton29: TdxBarButton;
    dxBarButton30: TdxBarButton;
    dxDockingManager1: TdxDockingManager;
    dxBarButton31: TdxBarButton;
    dxBarButton32: TdxBarButton;
    dxBarButton33: TdxBarButton;
    dxBarSubItem13: TdxBarSubItem;
    dxBarButton34: TdxBarButton;
    dxBarSubItem14: TdxBarSubItem;
    dxBarButton35: TdxBarButton;
    dxBarButton36: TdxBarButton;
    dxBarButton37: TdxBarButton;
    dxBarButton38: TdxBarButton;
    dxBarButton39: TdxBarButton;
    dxBarButton40: TdxBarButton;
    dxBarButton41: TdxBarButton;
    dxBarButton42: TdxBarButton;
    dxBarEdit2: TdxBarEdit;
    dxBarButton43: TdxBarButton;
    dxBarControlContainerItem1: TdxBarControlContainerItem;
    dxBarSubItem15: TdxBarSubItem;
    dxBarInPlaceSubItem2: TdxBarInPlaceSubItem;
    dxBarCombo2: TdxBarCombo;
    dxBarButton44: TdxBarButton;
    CustomdxBarCombo2: TCustomdxBarCombo;
    dxBarContainerItem2: TdxBarContainerItem;
    dxBarLargeButton1: TdxBarLargeButton;
    dxBarColorCombo1: TdxBarColorCombo;
    dxBarProgressItem1: TdxBarProgressItem;
    dxBarSpinEdit2: TdxBarSpinEdit;
    dxBarButton45: TdxBarButton;
    dxBarButton46: TdxBarButton;
    dxBarButton47: TdxBarButton;
    dxBarButton48: TdxBarButton;
    dxBarButton49: TdxBarButton;
    dxBarButton50: TdxBarButton;
    dxBarButton51: TdxBarButton;
    dxBarButton52: TdxBarButton;
    Panel2: TPanel;
    Panel3: TPanel;
    RzPanel1: TRzPanel;
    Splitter1: TSplitter;
    Panel1: TPanel;
    RzPanel2: TRzPanel;
    Labl_Title: TLabel;
    Label1: TLabel;
    SpeedButton5: TSpeedButton;
    dxBarButton53: TdxBarButton;
    dxBarSubItem16: TdxBarSubItem;
    dxBarStatic1: TdxBarStatic;
    PopM_User: TPopupMenu;
    PopM_SubSys: TPopupMenu;
    PopM_List: TPopupMenu;
    N1: TMenuItem;
    N3: TMenuItem;
    N4: TMenuItem;
    N6: TMenuItem;
    N7: TMenuItem;
    N8: TMenuItem;
    N9: TMenuItem;
    N11: TMenuItem;
    N12: TMenuItem;
    N13: TMenuItem;
    N14: TMenuItem;
    N18: TMenuItem;
    N19: TMenuItem;
    N20: TMenuItem;
    N21: TMenuItem;
    N22: TMenuItem;
    N23: TMenuItem;
    N24: TMenuItem;
    N25: TMenuItem;
    N26: TMenuItem;
    N27: TMenuItem;
    N28: TMenuItem;
    edt_Search: TcxTextEdit;
    dpSubSystem: TdxDockPanel;
    dxDockSite2: TdxDockSite;
    dxLayoutDockSite2: TdxLayoutDockSite;
    dpUserGrp: TdxDockPanel;
    dxLayoutDockSite3: TdxLayoutDockSite;
    TV_Grp: TcxTreeView;
    TV_SubSys: TcxTreeView;
    ActionList1: TActionList;
    AddGrp: TAction;
    AddUser: TAction;
    cds_UserList: TClientDataSet;
    GrpAttr: TAction;
    DelGrp: TAction;
    OpenSubSys: TAction;
    SetImp: TAction;
    SetUnImp: TAction;
    actUp: TAction;
    actDown: TAction;
    cds_SubSys: TClientDataSet;
    DataSource1: TDataSource;
    cds_GrpV01: TStringField;
    cds_GrpV02: TStringField;
    cds_GrpV03: TStringField;
    cds_GrpV04: TSmallintField;
    cds_UserListV31: TStringField;
    cds_GrpV05: TMemoField;
    cds_UserListV02: TStringField;
    cds_UserListV03: TStringField;
    cds_UserListV11: TStringField;
    cds_UserListV35: TStringField;
    cds_UserListV37: TStringField;
    cds_UserListV38: TStringField;
    cds_UserListV05: TDateTimeField;
    cds_UserListV06: TDateTimeField;
    cds_UserListV01: TStringField;
    cds_UserListV15: TSmallintField;
    LV_UserList: TRzListView;
    cds_UserListV14: TSmallintField;
    cds_UserListV32: TStringField;
    MoveToGrp: TAction;
    ChgPwd: TAction;
    LookUp: TAction;
    UserLog: TAction;
    ActPrint: TAction;
    cds_Card: TClientDataSet;
    ActClearCookie: TAction;
    ActOpen: TAction;
    procedure dxBarButton10Click(Sender: TObject);
    procedure dxBarButton14Click(Sender: TObject);
    procedure dxBarButton30Click(Sender: TObject);
    procedure dxBarButton46Click(Sender: TObject);
    procedure dxBarButton27Click(Sender: TObject);
    procedure dxBarButton28Click(Sender: TObject);
    procedure dpUserGrpVisibleChanged(Sender: TdxCustomDockControl);
    procedure dpSubSystemVisibleChanged(Sender: TdxCustomDockControl);
    procedure AddGrpExecute(Sender: TObject);
    procedure AddUserExecute(Sender: TObject);
    procedure GrpAttrExecute(Sender: TObject);
    procedure TV_GrpEnter(Sender: TObject);
    procedure TV_SubSysEnter(Sender: TObject);
    procedure dxBarButton22Click(Sender: TObject);
    procedure dxBarButton26Click(Sender: TObject);
    procedure TV_GrpMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure DelGrpExecute(Sender: TObject);
    procedure OpenSubSysExecute(Sender: TObject);
    procedure dxBarButton49Click(Sender: TObject);
    procedure SetImpExecute(Sender: TObject);
    procedure SetUnImpExecute(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure TV_SubSysMouseDown(Sender: TObject; Button: TMouseButton;
      Shift: TShiftState; X, Y: Integer);
    procedure FormCloseQuery(Sender: TObject; var CanClose: Boolean);
    procedure LV_UserListEnter(Sender: TObject);
    procedure MoveToGrpExecute(Sender: TObject);
    procedure ChgPwdExecute(Sender: TObject);
    procedure LookUpExecute(Sender: TObject);
    procedure UserLogExecute(Sender: TObject);
    procedure ActPrintExecute(Sender: TObject);
    procedure dxBarButton48Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure ActClearCookieExecute(Sender: TObject);
    procedure ActOpenExecute(Sender: TObject);
  private
    { Private declarations }
    ActiveCtrl: string;
    UserGrpId: string;
    UserId: string;
    UserListSql, cSqlStr: string;
    function GetGrpNode(const Id: string): TTreeNode;
    function GetGrpCodeStr(Node: TTreeNode): string;

    procedure LoadUserGrp;
    procedure LoadSubSys;
    procedure LoadUserList; overload;
    procedure LoadUserList(const cSql: string); overload;

    procedure LoadListViewData(LV: TRzListView; const cSql: string);
    procedure FreeLVData(LV: TRzListView);

  public
    { Public declarations }
  end;

var
  frmMain: TfrmMain;

implementation

uses untDM, uUserGrpAttr, uSubSysAttr, uUserAttr, uSubSystem, uRightGrp,
  uMoveToGrp, uChangePwd, uSearch, uUserLog, untCustomReport;

{$R *.dfm}

procedure TfrmMain.dxBarButton10Click(Sender: TObject);
begin
  close;
end;

procedure TfrmMain.dxBarButton14Click(Sender: TObject);
begin
  if not dxBarButton27.Down then
    dxBarButton27.Down := true
  else
    dxBarButton27.Down := false;
end;

procedure TfrmMain.dxBarButton30Click(Sender: TObject);
begin
  close;
end;

procedure TfrmMain.dxBarButton46Click(Sender: TObject);
begin
  LoadUserList;

end;

procedure TfrmMain.dxBarButton27Click(Sender: TObject);
begin
  if (dpUserGrp = nil) then
    exit;
  if dxBarButton27.Down then
  begin
    dpUserGrp.Visible := True;
    dxDockingController.ActiveDockControl := dpUserGrp;
  end
  else
    dpUserGrp.Visible := false;
end;

procedure TfrmMain.dxBarButton28Click(Sender: TObject);
begin
  if (dpSubSystem = nil) then
    exit;
  if dxBarButton28.Down then
  begin
    dpSubSystem.Visible := True;
    dxDockingController.ActiveDockControl := dpSubSystem;
  end
  else
    dpSubSystem.Visible := false;
end;

procedure TfrmMain.dpUserGrpVisibleChanged(Sender: TdxCustomDockControl);
begin
  dxBarButton27.Down := dpUserGrp.Visible;
end;

procedure TfrmMain.dpSubSystemVisibleChanged(Sender: TdxCustomDockControl);
begin
  dxBarButton28.Down := dpSubSystem.Visible;
end;

procedure TfrmMain.AddGrpExecute(Sender: TObject);
var
  Node: TTreeNode;
  ParId, GrpTitle: string;
  NodData: PUserGrpData;
begin
  GrpTitle := '用户组';
  Node := TV_Grp.Items.AddChild(TV_Grp.Selected, GrpTitle);
  Node.ImageIndex := 4;
  Node.SelectedIndex := 3;
  if Node.Parent <> nil then
    ParId := PUserGrpData(Node.Parent.Data)^.GrpId
  else
    ParId := '';
  if DM.UserGrpAdd(UserGrpId, GrpTitle, ParId, Node.Level) = 0 then
  begin
    new(NodData);
    NodData^.GrpId := trim(UserGrpId);
    NodData^.GrpName := GrpTitle + trim(UserGrpId);
    NodData^.Nod := Node;
    Node.Data := NodData;
    Node.Text := NodData^.GrpName;
  end;
end;

procedure TfrmMain.AddUserExecute(Sender: TObject);
var
  CUser: TUser;
  ListItem: TListItem;
  LVDataPtr: PLVData;
begin
  CUser := TUser.Create('', 0);
  if TV_Grp.Selected <> nil then
  begin
    CUser.V31 := PUserGrpData(TV_Grp.Selected.Data)^.GrpId;
    CUser.V32 := PUserGrpData(TV_Grp.Selected.Data)^.GrpName;
  end;
  frmUserAttr := TfrmUserAttr.Create(nil);
  frmUserAttr.CurUser := CUser;
  if frmUserAttr.ShowModal = mrOk then
  begin
    ListItem := LV_UserList.Items.Add;
    ListItem.Caption := trim(CUser.V37);
    ListItem.SubItems.Add(trim(CUser.V38));
    ListItem.SubItems.Add(trim(CUser.V02));
    ListItem.SubItems.Add(trim(CUser.V03));
    ListItem.SubItems.Add(trim(CUser.V05));
    ListItem.SubItems.Add(trim(CUser.V06));
    ListItem.SubItems.Add(trim(CUser.V32));
    ListItem.SubItems.Add(trim(CUser.V35));
    ListItem.SubItems.Add(trim(CUser.V11));

    new(LVDataPtr);
    LVDataPtr^.UserId := trim(CUser.V01);
    LVDataPtr^.UserGrpId := trim(CUser.V31);
    LVDataPtr^.UserGrpName := trim(CUser.V32);
    if CUser.V15 = 1 then
      LVDataPtr^.IfImp := true
    else
      LVDataPtr^.IfImp := false;
    if CUser.V14 = 1 then
      LVDataPtr^.IfManager := true
    else
      LVDataPtr^.IfManager := false;

    ListItem.Data := LVDataPtr;

  end;
  frmUserAttr.Free;
  CUser.Free;
end;

procedure TfrmMain.GrpAttrExecute(Sender: TObject);
var
  CUser: TUser;
  ListItem: TListItem;
begin
  if ActiveCtrl = 'UserGrp' then
  begin
    if TV_Grp.Selected = nil then
      exit;
    frmUserGrpAttr := TfrmUserGrpAttr.Create(nil);
    frmUserGrpAttr.GrpData := TV_Grp.Selected.Data;
    frmUserGrpAttr.ShowModal;
    frmUserGrpAttr.Free;
  end
  else if ActiveCtrl = 'SubSys' then
  begin
    if TV_SubSys.Selected = nil then
      exit;
    frmSubSysAttr := TfrmSubSysAttr.Create(nil);
    frmSubSysAttr.iMod := 0;
    frmSubSysAttr.cxTextEdit1.Text :=
      PSubSysData(TV_SubSys.Selected.data)^.SubId;
    frmSubSysAttr.cxTextEdit2.Text :=
      PSubSysData(TV_SubSys.Selected.data)^.SubName;
    frmSubSysAttr.cxTextEdit3.Text :=
      PSubSysData(TV_SubSys.Selected.data)^.SubVer;
    frmSubSysAttr.cxMemo1.Text := PSubSysData(TV_SubSys.Selected.data)^.SubMemo;
    frmSubSysAttr.ShowModal;
    frmSubSysAttr.Free;
  end
  else
  begin
    ListItem := LV_UserList.Selected;
    if ListItem <> nil then
    begin
      UserId := PLVData(ListItem.Data)^.UserId;
      CUser := TUser.Create(UserId, 1);
      frmUserAttr := TfrmUserAttr.Create(nil);
      frmUserAttr.CurUser := CUser;
      frmUserAttr.ShowModal;
      frmUserAttr.Free;
      CUser.Free;
    end;
  end
end;

procedure TfrmMain.TV_GrpEnter(Sender: TObject);
begin
  ActiveCtrl := 'UserGrp';
end;

procedure TfrmMain.TV_SubSysEnter(Sender: TObject);
begin
  ActiveCtrl := 'SubSys';
end;

procedure TfrmMain.dxBarButton22Click(Sender: TObject);
begin

⌨️ 快捷键说明

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