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

📄 ufrmcqgpsgroup.pas

📁 msc map program to control client of tools,use for map guide
💻 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 + -