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

📄 uselectuser.pas

📁 用户权限管理系统
💻 PAS
字号:
unit uSelectUser;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, RzTabs, RzButton, StdCtrls, RzLabel, Grids, DBGridEh,
  cxControls, cxContainer, cxEdit, cxTextEdit, cxMemo, ExtCtrls,
  cxMaskEdit, cxDropDownEdit, RzPanel, cxTreeView, Buttons, cxLookupEdit,
  cxDBLookupEdit, cxDBLookupComboBox, DB, DBClient;

type
  TfrmSelectUser = class(TForm)
    RzButton1: TRzButton;
    RzButton2: TRzButton;
    edt_Search: TcxTextEdit;
    SpeedButton5: TSpeedButton;
    SpeedButton1: TSpeedButton;
    Bevel1: TBevel;
    SpeedButton2: TSpeedButton;
    SpeedButton3: TSpeedButton;
    cds_Sd: TClientDataSet;
    cds_SdV01: TStringField;
    cds_SdV02: TStringField;
    ds_SD: TDataSource;
    cxLookupComboBox1: TcxLookupComboBox;
    DBGridEh1: TDBGridEh;
    DBGridEh2: TDBGridEh;
    cds_Source: TClientDataSet;
    DataSource1: TDataSource;
    DataSource2: TDataSource;
    cds_SourceV01: TStringField;
    cds_SourceV37: TStringField;
    cds_SourceV38: TStringField;
    cds_SourceV02: TStringField;
    cds_SourceV03: TStringField;
    cds_SourceV35: TStringField;
    cds_SourceV11: TStringField;
    cds_Select: TClientDataSet;
    StringField1: TStringField;
    StringField2: TStringField;
    StringField3: TStringField;
    StringField4: TStringField;
    StringField5: TStringField;
    StringField6: TStringField;
    StringField7: TStringField;
    procedure RzButton2Click(Sender: TObject);
    procedure FormShow(Sender: TObject);
    procedure cxLookupComboBox1PropertiesChange(Sender: TObject);
    procedure FormCreate(Sender: TObject);
    procedure SpeedButton1Click(Sender: TObject);
    procedure DBGridEh2DblClick(Sender: TObject);
    procedure SpeedButton5Click(Sender: TObject);
    procedure RzButton1Click(Sender: TObject);
    procedure SpeedButton3Click(Sender: TObject);
    procedure SpeedButton2Click(Sender: TObject);
  private
    { Private declarations }
    procedure FillCombobox;
    procedure LoadSource;

  public
    { Public declarations }
    iType: smallint;
    MainId, MainName: string;
  end;

var
  frmSelectUser: TfrmSelectUser;

implementation

uses untDM, untUser, uUserAttr;

{$R *.dfm}

procedure TfrmSelectUser.FillCombobox;
begin
  if cds_Sd.Active then
    cds_Sd.Close;
  cds_Sd.XMLData := DM.FreeQuery('select V01,V02 from T_003 ' +
    'where V01<> ' + QuotedStr(MainId) + ' union ' +
    'select ''All'',''所有'' order by V01');
  cds_Sd.Active := true;

end;

procedure TfrmSelectUser.RzButton2Click(Sender: TObject);
begin
  ModalResult := mrCancel;
  close;
end;

procedure TfrmSelectUser.FormShow(Sender: TObject);
begin
  FillCombobox;

end;

procedure TfrmSelectUser.LoadSource;
begin
  if cds_Source.Active then
    cds_Source.Active := false;
  if cxLookupComboBox1.EditValue <> 'All' then
    cds_Source.XMLData := DM.FreeQuery('select * from V_0011 where V31=' +
      QuotedStr(cxLookupComboBox1.EditValue))
  else
    cds_Source.XMLData := DM.FreeQuery('select * from V_001');
  cds_Source.Active := true;
end;

procedure TfrmSelectUser.cxLookupComboBox1PropertiesChange(
  Sender: TObject);
begin
  LoadSource;
end;

procedure TfrmSelectUser.FormCreate(Sender: TObject);
begin       
  cds_Source.CreateDataSet;
  cds_Source.Open;
  cds_Select.CreateDataSet;
  cds_Select.Open;
end;

procedure TfrmSelectUser.SpeedButton1Click(Sender: TObject);
var
  V01: string;
begin
  if cds_Source.Active and not cds_Source.IsEmpty then
  begin
    V01 := trim(cds_Source.fieldbyname('V01').AsString);
    if not cds_Select.Locate('V01', V01, [loCaseInsensitive]) then
    begin
      cds_Select.Append;
      cds_Select.FieldByName('V01').Value :=
        trim(cds_Source.fieldbyname('V01').AsString);
      cds_Select.FieldByName('V37').Value :=
        trim(cds_Source.fieldbyname('V37').AsString);
      cds_Select.FieldByName('V38').Value :=
        trim(cds_Source.fieldbyname('V38').AsString);
      cds_Select.FieldByName('V02').Value :=
        trim(cds_Source.fieldbyname('V02').AsString);
      cds_Select.FieldByName('V03').Value :=
        trim(cds_Source.fieldbyname('V03').AsString);
      cds_Select.FieldByName('V35').Value :=
        trim(cds_Source.fieldbyname('V35').AsString);
      cds_Select.FieldByName('V11').Value :=
        trim(cds_Source.fieldbyname('V11').AsString);
      cds_Select.Post;
    end;
  end;
end;

procedure TfrmSelectUser.DBGridEh2DblClick(Sender: TObject);
begin
  if cds_Select.Active and not cds_Select.IsEmpty then
  begin
    cds_Select.Delete;
  end;
end;

procedure TfrmSelectUser.SpeedButton5Click(Sender: TObject);
var
  cSql: string;
begin
  cSql := 'select * from V_001 where V02 like ' +
    QuotedStr('%' + trim(edt_Search.Text) + '%') + ' or V03 like ' +
    QuotedStr('%' + trim(edt_Search.Text) + '%');

  if cds_Source.Active then
    cds_Source.Active := false;
  cds_Source.XMLData := DM.FreeQuery(cSql);
  cds_Source.Active := true;

end;

procedure TfrmSelectUser.RzButton1Click(Sender: TObject);
begin
  if cds_Select.Active and not cds_Select.IsEmpty then
  begin
    with cds_Select do
    begin
      First;
      while not eof do
      begin
        DM.UserToGrp(MainId, trim(fieldbyname('V01').AsString));
        next;
      end;
    end;
  end;
  ModalResult := mrOk;
end;

procedure TfrmSelectUser.SpeedButton3Click(Sender: TObject);
var
  CUser: TUser;
  UserId: string;
begin
  if cds_Source.Active and not cds_Source.IsEmpty then
  begin
    UserId := trim(cds_Source.fieldbyname('V01').AsString);
    CUser := TUser.Create(UserId, 1);
    frmUserAttr := TfrmUserAttr.Create(nil);
    frmUserAttr.CurUser := CUser;
    frmUserAttr.ShowModal;
    frmUserAttr.Free;
    CUser.Free;
  end;
end;

procedure TfrmSelectUser.SpeedButton2Click(Sender: TObject);
var
  CUser: TUser;
begin
  CUser := TUser.Create('', 0);
  frmUserAttr := TfrmUserAttr.Create(nil);
  frmUserAttr.CurUser := CUser;
  if frmUserAttr.ShowModal = mrOk then
  begin
    cds_Source.Append;
    cds_Source.FieldByName('V01').Value := CUser.V01;
    cds_Source.FieldByName('V37').Value := CUser.V37;
    cds_Source.FieldByName('V38').Value := CUser.V38;
    cds_Source.FieldByName('V02').Value := CUser.V02;
    cds_Source.FieldByName('V03').Value := CUser.V03;
    cds_Source.FieldByName('V35').Value := CUser.V35;
    cds_Source.FieldByName('V11').Value := CUser.V11;
    cds_Source.Post;
  end;
  frmUserAttr.Free;
  CUser.Free;
end;

end.

⌨️ 快捷键说明

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