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

📄 ufrmcqgpsuseredit.pas

📁 msc map program to control client of tools,use for map guide
💻 PAS
字号:
//==============================================================================
// $修订版本号: 1.0 $
// $日期      : 2007年7月20日 星期五 09:55:00 $
// $版本号    : 1.0.0 Alpha 1 $
//
// 用户管理编辑界面功能实现。
//
//
// $BeginLog$
// $Endlog  $
// $Copyright 版权所有 (c)2006 TRANSIT  保留所有权利$
//==============================================================================
{: 实现说明:
    I. 编辑窗口显示之前事件(仅处理非高级管理员用户):
      1. 权限组只能选择普通用户。
      2. 用户类型不可选。
      3. 登录用户为自己本身时是否激活不可选。
    II. 编辑窗口保存之前事件:
      1. 超级管理员不受限制。
      2. 不能新建与登录用户所属组相同的用户(由上级用户去新建)。
}


unit ufrmCQGPSUserEdit;

interface

uses
  Windows, cxLookAndFeelPainters, cxGraphics, dxStatusBar, StdCtrls,
  cxButtons, cxTextEdit, cxControls, cxContainer, cxEdit, cxLabel,
  ExtCtrls, RzPanel, dxDockPanel, dxDockControl, Classes, Controls,
  uBaseDBEditForm, cxMemo, cxMaskEdit, cxDropDownEdit, ufrmCQGPSUserType,
  ComCtrls, TbListView, uBaseDBDataAware, uBaseDBDefs, SysUtils, Menus;

type
  TfrmCQGPSUserEdit = class(TBaseDBEditForm)
    dxDockSite1: TdxDockSite;
    dxLayoutDockSite1: TdxLayoutDockSite;
    dxDockPanel1: TdxDockPanel;
    btnSave: TcxButton;
    btnCancel: TcxButton;
    dxStatusBar: TdxStatusBar;
    gbPlan: TRzGroupBox;
    cxLabel2: TcxLabel;
    GroupID: TcxComboBox;
    cxLabel3: TcxLabel;
    Name: TcxTextEdit;
    Password: TcxMaskEdit;
    cxLabel4: TcxLabel;
    cxLabel1: TcxLabel;
    UserTypeID: TcxComboBox;
    cxLabel5: TcxLabel;
    cxLabel6: TcxLabel;
    PurviewGroupID: TcxComboBox;
    IsActive: TcxComboBox;
    procedure FormCreate(Sender: TObject);

    procedure doOnBeforeEditFormDisplayEvent(_sender: TObject);
    procedure doOnBeforeEditFormSaveEvent(_sender: TObject; var _save_flag: Boolean;
      var _input_hint: string);
  end;

implementation

uses
  ufrmCQGPSUser, Math, Forms;

{$R *.dfm}

procedure TfrmCQGPSUserEdit.FormCreate(Sender: TObject);
begin
  BeforeEditFormDisplayEvent := doOnBeforeEditFormDisplayEvent;
  BeforeEditFormSaveEvent    := doOnBeforeEditFormSaveEvent;

  CaptionControl := dxDockPanel1;
  HintControl    := dxStatusBar;
  ButtonConfirm  := btnSave;
  ButtonCancel   := btnCancel;
end;

procedure TfrmCQGPSUserEdit.doOnBeforeEditFormDisplayEvent(
  _sender: TObject);
var
  purview_group_id: Integer;
  select_user_id  : Integer;
begin
  if  TfrmCQGPSUser(TfrmCQGPSUserEdit(_Sender).Owner).Purview_group_id <> 1 then
  begin
    purview_group_id := PurviewGroupID.Properties.Items.IndexOf('普通用户');
    select_user_id   := TBaseDBUtility.ExtractRecordID(EditFieldValueList);

    if purview_group_id <> -1 then
      PurviewGroupID.ItemIndex := purview_group_id;

    UserTypeID.Enabled     := False;
    PurviewGroupID.Enabled := False;

    // 登录用户为自己时屏蔽激活
    if TfrmCQGPSUser(TfrmCQGPSUserEdit(_Sender).Owner).User_id = select_user_id then
      IsActive.Enabled := False;
  end;
end;

procedure TfrmCQGPSUserEdit.doOnBeforeEditFormSaveEvent(_sender: TObject;
  var _save_flag: Boolean; var _input_hint: string);
var
  login_group_id        : Integer;
  group_id              : Integer;
  login_pruview_group_id: Integer;
begin
  if Assigned(_sender) then
  begin
    group_id := ExtractRefComboBoxReferenceID(GroupID);
    login_group_id :=  TfrmCQGPSUser(TfrmCQGPSUserEdit(_Sender).Owner).Group_id;
    login_pruview_group_id := TfrmCQGPSUser(TfrmCQGPSUserEdit(_Sender).Owner).Purview_group_id;

    // 超级管理员可以任意操作
    if login_pruview_group_id = 1 then
    begin
      _save_flag  := True;
      
      exit;
    end;

    if group_id = -1 then  exit;

    if login_group_id = group_id then
    begin
      _input_hint := format('用户组为%s的用户已存在',[GroupID.Text]);

      _save_flag  := False;
    end
    else
      _save_flag  := True;
  end;
end;

end.

⌨️ 快捷键说明

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