📄 usearch.pas
字号:
unit uSearch;
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, cxRadioGroup, cxCalendar,
DB, DBClient, cxLookupEdit, cxDBLookupEdit, cxDBLookupComboBox;
type
TfrmSearch = class(TForm)
RzButton1: TRzButton;
RzButton2: TRzButton;
RzLabel1: TRzLabel;
Panel1: TPanel;
cxRadioButton1: TcxRadioButton;
cxRadioButton2: TcxRadioButton;
cxRadioButton3: TcxRadioButton;
Bevel1: TBevel;
RzLabel2: TRzLabel;
RzLabel3: TRzLabel;
cxTextEdit1: TcxTextEdit;
cxTextEdit2: TcxTextEdit;
RzGroupBox1: TRzGroupBox;
Panel2: TPanel;
RzLabel4: TRzLabel;
Panel3: TPanel;
Bevel2: TBevel;
cxRadioButton4: TcxRadioButton;
cxRadioButton5: TcxRadioButton;
cxRadioButton6: TcxRadioButton;
cxRadioButton7: TcxRadioButton;
cxRadioButton8: TcxRadioButton;
cxRadioButton9: TcxRadioButton;
cxRadioButton10: TcxRadioButton;
cxRadioButton11: TcxRadioButton;
RzLabel5: TRzLabel;
cxDateEdit1: TcxDateEdit;
RzLabel6: TRzLabel;
cxDateEdit2: TcxDateEdit;
RzButton3: TRzButton;
RzButton4: TRzButton;
RzButton5: TRzButton;
RzButton6: TRzButton;
RzButton7: TRzButton;
RzButton8: TRzButton;
DBGridEh2: TDBGridEh;
cds_UserList: TClientDataSet;
cds_UserListV01: TStringField;
cds_UserListV37: TStringField;
cds_UserListV38: TStringField;
cds_UserListV02: TStringField;
cds_UserListV03: TStringField;
cds_UserListV35: TStringField;
cds_UserListV11: TStringField;
cds_UserListV05: TDateTimeField;
cds_UserListV06: TDateTimeField;
DataSource1: TDataSource;
cds_Sd: TClientDataSet;
cds_SdV01: TStringField;
cds_SdV02: TStringField;
ds_SD: TDataSource;
cxLookupComboBox1: TcxLookupComboBox;
cxLookupComboBox2: TcxLookupComboBox;
cxLookupComboBox3: TcxLookupComboBox;
cds_Sd1: TClientDataSet;
StringField1: TStringField;
StringField2: TStringField;
ds_SD1: TDataSource;
cds_Sd2: TClientDataSet;
StringField3: TStringField;
StringField4: TStringField;
ds_SD2: TDataSource;
procedure RzButton2Click(Sender: TObject);
procedure FormCreate(Sender: TObject);
procedure cxLookupComboBox1PropertiesChange(Sender: TObject);
procedure cxLookupComboBox2PropertiesChange(Sender: TObject);
procedure cxLookupComboBox3PropertiesChange(Sender: TObject);
procedure cxRadioButton1Click(Sender: TObject);
procedure RzButton1Click(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure RzButton3Click(Sender: TObject);
procedure RzButton5Click(Sender: TObject);
procedure RzButton4Click(Sender: TObject);
procedure RzButton6Click(Sender: TObject);
procedure RzButton7Click(Sender: TObject);
procedure RzButton8Click(Sender: TObject);
private
{ Private declarations }
QrySql: string;
procedure FillCombobox;
procedure LoadDataFromGrp;
procedure LoadDataFromSubSys;
procedure LoadDataFromRightGrp;
procedure QryData(const cSqlStr: string); overload;
procedure QryData; overload;
procedure ChangeStatus;
public
{ Public declarations }
iType: smallint;
end;
var
frmSearch: TfrmSearch;
implementation
uses untDM, uUserAttr, untUser, uUserLog, untPublic;
{$R *.dfm}
procedure TfrmSearch.FillCombobox;
begin
if cds_Sd.Active then
cds_Sd.Close;
cds_Sd.XMLData := DM.FreeQuery('select V01,V02 from T_003 union ' +
'select ''All'',''所有'' order by V01');
cds_Sd.Active := true;
if cds_Sd1.Active then
cds_Sd1.Close;
cds_Sd1.XMLData := DM.FreeQuery('select V01,V02 from T_005 union ' +
'select ''All'',''所有'' order by V01');
cds_Sd1.Active := true;
if cds_Sd2.Active then
cds_Sd2.Close;
cds_Sd2.XMLData := DM.FreeQuery('select V01,V02 from T_004 union ' +
'select ''All'',''所有'' order by V01');
cds_Sd2.Active := true;
end;
procedure TfrmSearch.RzButton2Click(Sender: TObject);
begin
close;
end;
procedure TfrmSearch.FormCreate(Sender: TObject);
begin
FillCombobox;
cxTextEdit1.Text := '';
cxTextEdit2.Text := '';
cxDateEdit1.Text := '';
cxDateEdit2.Text := '';
cds_UserList.CreateDataSet;
cds_UserList.Active := true;
end;
procedure TfrmSearch.LoadDataFromGrp;
var
cSql: string;
begin
if cxLookupComboBox1.EditValue = 'All' then
cSql := 'select * from V_001'
else if cxLookupComboBox1.EditValue <> null then
cSql := 'select * from V_0011 where V31=' +
QuotedStr(cxLookupComboBox1.EditValue)
else
cSql := 'select * from V_0011 where 1<>1';
QryData(cSql);
end;
procedure TfrmSearch.LoadDataFromRightGrp;
var
cSql: string;
begin
if cxLookupComboBox3.EditValue = 'All' then
cSql := 'select * from V_001'
else if cxLookupComboBox3.EditValue <> null then
cSql := 'select * from V_001 ' + ' where isnull(V16,0)= 0 and V17=' +
QuotedStr(cxLookupComboBox3.EditValue)
else
cSql := 'select * from V_0011 where 1<>1';
QryData(cSql);
end;
procedure TfrmSearch.LoadDataFromSubSys;
var
cSql: string;
begin
if cxLookupComboBox2.EditValue = 'All' then
cSql := 'select * from V_001'
else if cxLookupComboBox2.EditValue <> null then
cSql := 'Q_SysUser ' + QuotedStr(cxLookupComboBox2.EditValue)
else
cSql := 'select * from V_0011 where 1<>1';
QryData(cSql);
end;
procedure TfrmSearch.cxLookupComboBox1PropertiesChange(Sender: TObject);
begin
LoadDataFromGrp;
end;
procedure TfrmSearch.cxLookupComboBox2PropertiesChange(Sender: TObject);
begin
LoadDataFromSubSys;
end;
procedure TfrmSearch.cxLookupComboBox3PropertiesChange(Sender: TObject);
begin
LoadDataFromRightGrp;
end;
procedure TfrmSearch.ChangeStatus;
begin
if cxRadioButton1.Checked then
begin
cxLookupComboBox1.Enabled := true;
cxLookupComboBox2.Enabled := false;
cxLookupComboBox3.Enabled := false;
RzButton7.Enabled := false;
RzButton8.Enabled := true;
cxLookupComboBox1.Properties.OnChange(self);
end
else if cxRadioButton2.Checked then
begin
cxLookupComboBox1.Enabled := false;
cxLookupComboBox2.Enabled := true;
cxLookupComboBox3.Enabled := false;
RzButton7.Enabled := true;
RzButton8.Enabled := false;
cxLookupComboBox2.Properties.OnChange(self);
end
else if cxRadioButton3.Checked then
begin
cxLookupComboBox1.Enabled := false;
cxLookupComboBox2.Enabled := false;
cxLookupComboBox3.Enabled := true;
RzButton7.Enabled := false;
RzButton8.Enabled := true;
cxLookupComboBox3.Properties.OnChange(self);
end;
end;
procedure TfrmSearch.cxRadioButton1Click(Sender: TObject);
begin
ChangeStatus;
end;
procedure TfrmSearch.RzButton1Click(Sender: TObject);
var
cSql: string;
begin
cSql := 'select * from V_001 where 1=1 ';
if trim(cxTextEdit1.Text) <> '' then
cSql := cSql + ' and V03 like ' +
QuotedStr('%' + trim(cxTextEdit1.Text) + '%');
if trim(cxTextEdit2.Text) <> '' then
cSql := cSql + ' and V02 like ' +
QuotedStr('%' + trim(cxTextEdit2.Text) + '%');
if cxRadioButton5.Checked then
cSql := cSql +
' and V05>= dateadd(day,-7,convert(varchar(10),getdate(),120))'
else if cxRadioButton6.Checked then
cSql := cSql +
' and V05>= dateadd(month,-1,convert(varchar(10),getdate(),120))'
else if cxRadioButton7.Checked then
cSql := cSql +
' and V05>= dateadd(year,-1,convert(varchar(10),getdate(),120))'
else if cxRadioButton8.Checked then
begin
if trim(cxDateEdit1.EditText) <> '' then
cSql := cSql + ' and V05>=' + QuotedStr(trim(cxDateEdit1.EditText));
if trim(cxDateEdit2.EditText) <> '' then
cSql := cSql + ' and V05<=' + QuotedStr(trim(cxDateEdit2.EditText));
end;
if cxRadioButton10.Checked then
cSql := cSql + ' and V08= 1'
else if cxRadioButton11.Checked then
cSql := cSql + ' and isnull(V08,0)= 0';
QryData(cSql);
end;
procedure TfrmSearch.FormShow(Sender: TObject);
begin
case iType of
0: cxRadioButton1.Checked := true;
1: cxRadioButton2.Checked := true;
2: cxRadioButton3.Checked := true;
end;
ChangeStatus;
end;
procedure TfrmSearch.RzButton3Click(Sender: TObject);
var
CUser: TUser;
UserId: string;
begin
if cds_UserList.Active and not cds_UserList.IsEmpty then
begin
UserId := trim(cds_UserList.fieldbyname('V01').AsString);
CUser := TUser.Create(UserId, 1);
frmUserAttr := TfrmUserAttr.Create(nil);
frmUserAttr.CurUser := CUser;
frmUserAttr.ShowModal;
frmUserAttr.Free;
CUser.Free;
end;
end;
procedure TfrmSearch.RzButton5Click(Sender: TObject);
var
CUser: TUser;
begin
CUser := TUser.Create('', 0);
frmUserAttr := TfrmUserAttr.Create(nil);
frmUserAttr.CurUser := CUser;
if frmUserAttr.ShowModal = mrOk then
begin
cds_UserList.Append;
cds_UserList.FieldByName('V01').Value := CUser.V01;
cds_UserList.FieldByName('V37').Value := CUser.V37;
cds_UserList.FieldByName('V38').Value := CUser.V38;
cds_UserList.FieldByName('V02').Value := CUser.V02;
cds_UserList.FieldByName('V03').Value := CUser.V03;
if trim(CUser.V05) <> '' then
cds_UserList.FieldByName('V05').Value := StrToDate(CUser.V05);
if trim(CUser.V06) <> '' then
cds_UserList.FieldByName('V06').Value := StrToDate(CUser.V06);
cds_UserList.FieldByName('V35').Value := CUser.V35;
cds_UserList.FieldByName('V11').Value := CUser.V11;
cds_UserList.Post;
end;
frmUserAttr.Free;
CUser.Free;
end;
procedure TfrmSearch.RzButton4Click(Sender: TObject);
begin
if cds_UserList.Active and not cds_UserList.IsEmpty then
begin
if TPublicFunc.ShowQuestionMsg('您确实要删除此用户吗?') = IDYes then
begin
if DM.UserDel(trim(cds_UserList.fieldbyname('V01').AsString)) = 0 then
cds_UserList.Delete;
end;
end;
end;
procedure TfrmSearch.RzButton6Click(Sender: TObject);
begin
if cds_UserList.Active and not cds_UserList.IsEmpty then
begin
frmUserLog := TfrmUserLog.Create(nil);
frmUserLog.iMod := 1;
frmUserLog.UserId := trim(cds_UserList.fieldbyname('V01').AsString);
frmUserLog.cxTextEdit1.Text :=
trim(cds_UserList.fieldbyname('V03').AsString);
frmUserLog.ShowModal;
frmUserLog.Free;
end;
end;
procedure TfrmSearch.RzButton7Click(Sender: TObject);
var
SysId, V02: string;
begin
if cds_UserList.Active and not cds_UserList.IsEmpty then
begin
if (cxLookupComboBox2.EditValue <> 'All') and
(cxLookupComboBox2.EditValue <> null) then
begin
SysId := cxLookupComboBox2.EditValue;
V02 := trim(cds_UserList.fieldbyname('V01').AsString);
if DM.SubRightChg(SysId, V02, '') = 0 then
begin
TPublicFunc.ShowInfoMsg('操作成功!');
QryData;
end
else
TPublicFunc.ShowInfoMsg('操作失败!');
end
else
TPublicFunc.ShowInfoMsg('请指定子系统!');
end;
end;
procedure TfrmSearch.RzButton8Click(Sender: TObject);
var
GrpId, V02, cSql: string;
begin
if cds_UserList.Active and not cds_UserList.IsEmpty then
begin
if cxRadioButton1.Checked then
begin
if (cxLookupComboBox1.EditValue <> 'All') and
(cxLookupComboBox1.EditValue <> null) then
begin
GrpId := cxLookupComboBox1.EditValue;
V02 := trim(cds_UserList.fieldbyname('V01').AsString);
if DM.UserToGrp(GrpId, V02) = 0 then
TPublicFunc.ShowInfoMsg('操作成功!')
else
TPublicFunc.ShowInfoMsg('操作失败!');
end
else
TPublicFunc.ShowInfoMsg('请指定用户组!');
end
else if cxRadioButton3.Checked then
begin
if (cxLookupComboBox3.EditValue <> 'All') and
(cxLookupComboBox3.EditValue <> null) then
begin
GrpId := cxLookupComboBox3.EditValue;
V02 := trim(cds_UserList.fieldbyname('V01').AsString);
cSql := 'update T_001 set V16=0,V17=' + QuotedStr(GrpId) +
' where V01=' + QuotedStr(V02);
if DM.ExecuteSqlCmd(cSql) = 0 then
TPublicFunc.ShowInfoMsg('操作成功!')
else
TPublicFunc.ShowInfoMsg('操作失败!');
end
else
TPublicFunc.ShowInfoMsg('请指定权限组!');
end;
end;
end;
procedure TfrmSearch.QryData(const cSqlStr: string);
begin
QrySql := cSqlStr;
if cds_UserList.Active then
cds_UserList.Active := false;
cds_UserList.XMLData := DM.FreeQuery(QrySql);
cds_UserList.Active := true;
end;
procedure TfrmSearch.QryData;
begin
if cds_UserList.Active then
cds_UserList.Active := false;
cds_UserList.XMLData := DM.FreeQuery(QrySql);
cds_UserList.Active := true;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -