📄 umain.pas
字号:
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 + -