📄 ufind.pas
字号:
unit ufind;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, XPMenu, StdCtrls, Buttons, ComCtrls, DBCtrls, ADODB, DB;
type
TfrmFind = class(TForm)
Label3: TLabel;
gbInqus: TGroupBox;
rbEName: TRadioButton;
rbName: TRadioButton;
rbStano: TRadioButton;
edtInqu: TEdit;
bbtnOk: TBitBtn;
bbtnCancel: TBitBtn;
pcFind: TPageControl;
tcSingle: TTabSheet;
tsMul: TTabSheet;
gbInqum: TGroupBox;
Label1: TLabel;
Label2: TLabel;
Label6: TLabel;
Label10: TLabel;
cbDep: TComboBox;
cbSort: TComboBox;
cbLevel: TComboBox;
xqFind: TXPMenu;
cbSex: TComboBox;
procedure rbStanoClick(Sender: TObject);
procedure rbNameClick(Sender: TObject);
procedure rbENameClick(Sender: TObject);
procedure bbtnOkClick(Sender: TObject);
procedure bbtnCancelClick(Sender: TObject);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
frmFind: TfrmFind;
implementation
uses ustainfo, udata;
var
fid: integer = 0;
{$R *.dfm}
procedure TfrmFind.FormCreate(Sender: TObject);
procedure FillData;
var
aqFillData: TADOQuery;
i: integer;
begin
aqFillData := TADOQuery.Create(self);
dmPer.OpenQuery(aqFillData, 'select dep from dept order by ornum');
cbDep.Clear;
if not aqFillData.Eof then
begin
for i := 0 to aqFillData.RecordCount - 1 do
begin
cbDep.Items.add(aqFillData.FieldByName('dep').AsString);
aqFillData.Next;
end;
end;
dmPer.OpenQuery(aqFillData, 'select sname, iflag from oinfo');
with aqFillData do
begin
Filtered := false;
Filter := 'iflag = 1';
Filtered := true;
end;
cbSort.Items.Clear;
if not aqFillData.Eof then
begin
for i := 0 to aqFillData.RecordCount - 1 do
begin
cbSort.Items.add(aqFillData.FieldByName('sname').AsString);
aqFillData.Next;
end;
end;
with aqFillData do
begin
Filtered := false;
Filter := 'iflag = 4';
Filtered := true;
end;
cbLevel.Items.Clear;
if not aqFillData.Eof then
begin
for i := 0 to aqFillData.RecordCount - 1 do
begin
cbLevel.Items.add(aqFillData.FieldByName('sname').AsString);
aqFillData.Next;
end;
end;
end;
begin
FillData;
pcFind.ActivePageIndex := 0;
cbDep.Items.Insert(0, '不 限');
cbDep.ItemIndex := 0;
cbSex.Items.Insert(0, '不 限');
cbSex.ItemIndex := 0;
cbSort.Items.Insert(0, '不 限');
cbSort.ItemIndex := 0;
cbLevel.Items.Insert(0, '不 限');
cbLevel.ItemIndex := 0;
end;
procedure TfrmFind.rbStanoClick(Sender: TObject);
begin
label3.Caption := '请输入工号:';
edtInqu.SetFocus;
end;
procedure TfrmFind.rbNameClick(Sender: TObject);
begin
label3.Caption := '请输入姓名:';
edtInqu.SetFocus;
end;
procedure TfrmFind.rbENameClick(Sender: TObject);
begin
label3.Caption := '请输入拼音:';
edtInqu.SetFocus;
end;
procedure TfrmFind.bbtnOkClick(Sender: TObject);
var
i: integer;
s, sWhr: string;
begin
if pcFind.ActivePageIndex = 0 then
begin
if edtInqu.Text <> '' then
begin
with frmStainfo do
begin
tvper.SetFocus;
if rbStano.Checked = true then
begin
for i := fid to tvPer.Items.Count - 1 do
begin
fid := fid + 1;
if tvPer.Items[i].Data <> nil then
if Psid(tvPer.Items[i].Data)^.sNo = edtInqu.Text then
begin
tvPer.Items[i].Selected := true;
tvPer.Setfocus;
Break;
end;
end;
if i = tvPer.Items.Count then
begin
fid := 0;
MessageBox(self.Handle, '已到了末尾!', '提示', mb_IconInformation + mb_Ok);
end;
end
else if rbname.Checked = true then
begin
for i := fid to tvPer.Items.Count - 1 do
begin
fid := fid + 1;
if tvPer.Items[i].Data <> nil then
if tvPer.Items[i].Text = edtInqu.Text then
begin
tvPer.Items[i].Selected := true;
tvPer.Setfocus;
Break;
end;
end;
if i = tvPer.Items.Count then
begin
fid := 0;
MessageBox(self.Handle, '已到了末尾!', '提示', mb_IconInformation + mb_Ok);
end;
end
else
begin
for i := fid to tvPer.Items.Count - 1 do
begin
fid := fid + 1;
if tvPer.Items[i].Data <> nil then
if Psid(tvPer.Items[i].Data)^.sEn = edtInqu.Text then
begin
tvPer.Items[i].Selected := true;
tvPer.Setfocus;
Break;
end;
end;
if i = tvPer.Items.Count then
begin
fid := 0;
MessageBox(self.Handle, '已到了末尾!', '提示', mb_IconInformation + mb_Ok);
end;
end;
end;
end
else
begin
MessageBox(self.Handle, '请输入查询条件!', '提示', mb_IconInformation + mb_Ok);
edtInqu.SetFocus;
end;
frmStaInfo.sWhr := '';
end
else
begin
s := 'select id, stano, [name], ename, dep, sdep from stainfo where 0=0 ';
sWhr := '';
if cbDep.Text <> '不 限' then sWhr := sWhr + ' and dep = ' + QuotedStr(cbDep.Text);
if cbSex.Text <> '不 限' then sWhr := sWhr + ' and sex = ' + QuotedStr(cbSex.Text);
if cbSort.Text <> '不 限' then sWhr := sWhr + ' and sorts = ' + QuotedStr(cbSort.Text);
if cbLevel.Text <> '不 限' then sWhr := sWhr + ' and level = ' + QuotedStr(cbLevel.Text);
if sWhr <> '' then s := s + sWhr else s := '';
frmStaInfo.sWhr := sWhr;
frmStaInfo.DrawTree(s);
end;
end;
procedure TfrmFind.bbtnCancelClick(Sender: TObject);
begin
Close;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -