📄 uselectuser.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 + -