📄 ufrmcqgpsgroup.pas
字号:
//==============================================================================
// $修订版本号: 1.0 $
// $日期 : 2007年7月20日 星期五 10:30:00 $
// $版本号 : 1.0.0 Alpha 1 $
//
// 车辆分组功能实现。
// 分组管理是权限数据在系统内实现的基础
//
//
// $BeginLog$
// $Endlog $
// $Copyright 版权所有 (c)2006 TRANSIT 保留所有权利$
//==============================================================================
{: 实现说明:
1. 权限数据显示:登录用户为高级管理员时,显示全部数据;否则显示登录用户所属组
及其下属组的所有用户数据。
2. 不能编辑系统内部设置数据(编号为1 的期初数据)。
3. 不能删除系统内部设置数据(编号为1 的期初数据)。
}
unit ufrmCQGPSGroup;
interface
uses
Windows, DB, Classes, SysUtils,
cxTextEdit, cxControls, cxContainer, cxEdit, cxLabel, ExtCtrls, RzPanel,
StdCtrls, cxButtons, Controls, ComCtrls, TbListView, dxDockPanel,
dxDockControl, uBaseDBUtils, Graphics,
uBaseDBForm, uBaseDBDefs, ufrmCQGPSGroupEdit, cxLookAndFeelPainters,
cxMemo, ImgList, dxNavBarCollns, dxNavBarBase, dxNavBar, ufrmBaseDBPurview,
uBaseSystemNavForm, uBaseDBFormInfor, ufrmCQGPSHigherGroup, Menus;
type
TfrmCQGPSGroup = class(TBaseDBForm)
dxDockSite1: TdxDockSite;
dxLayoutDockSite1: TdxLayoutDockSite;
dxDockPanel1: TdxDockPanel;
lvOilType: TTbListView;
Panel1: TPanel;
dxDockSite2: TdxDockSite;
dxDockPanel3: TdxDockPanel;
dxLayoutDockSite3: TdxLayoutDockSite;
gbPlan: TRzGroupBox;
Name: TcxTextEdit;
cxLabel4: TcxLabel;
cxLabel1: TcxLabel;
LevelID: TcxTextEdit;
btnRefresh: TcxButton;
btnEdit: TcxButton;
btnDelete: TcxButton;
btnAdd: TcxButton;
ilSmall: TImageList;
ilLarge: TImageList;
cxLabel2: TcxLabel;
GroupRelationshipParent: TTbListView;
cxLabel3: TcxLabel;
GroupRelationshipChild: TTbListView;
cxLabel5: TcxLabel;
UnitID: TcxTextEdit;
procedure FormCreate(Sender: TObject);
procedure lvOilTypeCustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
Public
Purview_Group_Id : Integer;
Group_id : Integer;
procedure CommandExecuteEdit; override;
procedure CommandExecuteDelete; override;
end;
implementation
{$R *.dfm}
{ TfrmProtectSecurityUser }
procedure TfrmCQGPSGroup.FormCreate(Sender: TObject);
var
p_ref_table_level : PBaseDBRefTable ;
p_ref_table_unit : PBaseDBRefTable ;
str_sql : string;
begin
DBListView := lvOilType;
ButtonNew := btnAdd;
ButtonEdit := btnEdit;
ButtonDelete := btnDelete;
ButtonRefresh := btnRefresh;
DBTableName := 'MSC_Group';
DBTableCHNName := '车辆分组';
if BaseDBGlobal.UserPurviewGroupIDByName(AppName) = 1 then
SelectSQL := 'Select * from V_MSC_GroupLevelInfo'
else
SelectSQL := Format('Select * from V_MSC_GroupLevelInfo Where ID In '+
'(Select * from F_GetAllGroupTabelBYGroupID(%d))',
[BaseDBGlobal.UserGroupIDByName(AppName)]);
str_sql := Format('Select ID,Name,LevelNO,(Select LevelNO from V_BaseDB_User Where '+
'ID = %d) as UserLevelNo from MSC_GroupLevel',
[BaseDBGlobal.UserIDByName(AppName)]);
p_ref_table_level := AddRefTable('MSC_GroupLevel', '分级管理', 'Name,LevelNO,UserLevelNo',
'ID', str_sql);
p_ref_table_unit := AddRefTable('MSC_Unit', '单位名称', 'Name', 'ID');
EditFormClass := TfrmCQGPSGroupEdit;
Purview_Group_Id := BaseDBGlobal.UserPurviewGroupIDByName(AppName);
Group_id := BaseDBGlobal.UserGroupIDByName(AppName);
AddField('ID', '编号', 50, ftInteger, False, False, True);
AddField('Name', '名称', 100, ftString, False, False);
AddField('LevelID', '单位等级', 180, ftReference, False, False, False,
'', '', p_ref_table_level);
AddField('LevelNO', '单位等级编号', 100, ftInteger, False, False, False,
'', '', nil, True);
AddField('UnitID', '单位名称', 130, ftReference, True, False, False,
'', '', p_ref_table_unit);
AddChildTableFieldMultiRef('GroupRelationshipParent', '上级用户组', 100, TfrmCQGPSHigherGroup,
'MSC_GroupRelationShip', 'ID', 'GroupID', 'ParentGroupID',
'', '', 'Name,LevelNO,LevelName', True);
AddChildTableFieldMultiRef('GroupRelationshipChild', '下级用户组', 100, TfrmCQGPSHigherGroup,
'MSC_GroupRelationShip', 'ID', 'ParentGroupID', 'GroupID',
'', '', 'Name,LevelNO,LevelName', True);
InitialInfo;
end;
procedure TfrmCQGPSGroup.CommandExecuteEdit;
var
group_id : Integer;
begin
if Assigned(lvOilType.Selected) then
begin
group_id := TBaseDBUtility.ExtractRecordID(TList(lvOilType.Selected.Data));
if group_id = 1 then
begin
baseDBUtilShowMessageEx('编辑记录失败', '对不起, 您不能编辑初始数据', True);
exit;
end;
end;
inherited;
end;
procedure TfrmCQGPSGroup.CommandExecuteDelete;
var
record_id : Integer;
child_group : Variant;
begin
if Assigned(lvOilType.Selected) then
begin
record_id := TBaseDBUtility.ExtractRecordID(TList(lvOilType.Selected.Data));
if record_id = 1 then exit;
child_group := TBaseDBUtility.ExtracFieldDisplayStrByFieldNames('GroupRelationshipChild',
TList(lvOilType.Selected.Data));
if child_group <> '' then
if not baseDBUtilShowConfirmEx('删除提示', '您选择的删除操作会把所有的子组都删除,确认要继续吗?') then exit;
end;
inherited;
end;
procedure TfrmCQGPSGroup.lvOilTypeCustomDrawItem(Sender: TCustomListView;
Item: TListItem; State: TCustomDrawState; var DefaultDraw: Boolean);
var
record_id : Integer;
begin
DefaultDraw := True;
if TryStrToInt(Item.Caption, record_id) then
begin
if record_id = 1 then
Sender.Canvas.Font.Color := clTeal
else
Sender.Canvas.Font.Color := clBlack;
end;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -