📄 find_unit.pas
字号:
unit find_Unit;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls, Db, DBTables, ExtCtrls, DBCtrls, Grids, DBGrids, ComCtrls;
type
Tfind = class(TForm)
Table1: TTable;
DataSource1: TDataSource;
PageControl1: TPageControl;
TabSheet1: TTabSheet;
Label1: TLabel;
Label2: TLabel;
Edit1: TEdit;
Edit2: TEdit;
Button1: TButton;
Panel1: TPanel;
DBGrid1: TDBGrid;
DBMemo1: TDBMemo;
TabSheet2: TTabSheet;
TabSheet3: TTabSheet;
RadioGroup1: TRadioGroup;
RadioGroup2: TRadioGroup;
ComboBox1: TComboBox;
Label3: TLabel;
Label4: TLabel;
Edit3: TEdit;
Label5: TLabel;
Edit4: TEdit;
Label6: TLabel;
Button2: TButton;
ComboBox2: TComboBox;
DateTimePicker1: TDateTimePicker;
CheckBox1: TCheckBox;
Query1: TQuery;
DataSource2: TDataSource;
StatusBar1: TStatusBar;
procedure FormCreate(Sender: TObject);
procedure RadioGroup2Click(Sender: TObject);
procedure Button1Click(Sender: TObject);
procedure FormClose(Sender: TObject; var Action: TCloseAction);
procedure Button2Click(Sender: TObject);
procedure CheckBox1Click(Sender: TObject);
procedure DateTimePicker1Change(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
find: Tfind;
implementation
{$R *.DFM}
procedure Tfind.FormCreate(Sender: TObject);
begin
table1.First;
while not table1.Eof do
begin
combobox1.Items.Add(table1.fieldbyname('fh').asstring);
table1.Next;
end;
end;
procedure Tfind.RadioGroup2Click(Sender: TObject);
begin
case RadioGroup2.ItemIndex of
0:begin combobox1.Enabled:=true;
edit1.Enabled:=false;
edit2.Enabled:=false;
combobox1.SetFocus;
end;
1:begin combobox1.Enabled:=false;
edit1.Enabled:=true;
edit2.Enabled:=false;
edit1.SetFocus;
end;
2:begin combobox1.Enabled:=false;
edit1.Enabled:=false;
edit2.Enabled:=true;
edit2.SetFocus;
end;
end;
end;
procedure Tfind.Button1Click(Sender: TObject);
var s:string;
begin
case radiogroup2.ItemIndex of
0:begin
if combobox1.Text='' then
begin
messagebox(handle,'请输入房间号。','房间号为空。',mb_ok+mb_iconinformation);
exit;
end;
s:=combobox1.Text;
table1.IndexName:='';
end;
1:begin
if edit1.Text='' then
begin
messagebox(handle,'请输入客户姓名。','姓名为空。',mb_ok+mb_iconinformation);
exit;
end;
s:=edit1.Text;
table1.IndexName:='xmidx';
end;
2:begin
if edit2.Text='' then
begin
messagebox(handle,'请输入证件号。','证件号为空。',mb_ok+mb_iconinformation);
exit;
end;
s:=edit2.Text;
table1.IndexName:='zjhidx';
end;
end;
case radiogroup1.ItemIndex of
0:if table1.FindKey([s]) then showmessage('客户已找到。')
else showmessage('没有该客户资料。');
1:table1.FindNearest([s]);
end;
end;
procedure Tfind.FormClose(Sender: TObject; var Action: TCloseAction);
begin
Action:=cafree;
end;
procedure Tfind.Button2Click(Sender: TObject);
var
xm1,xb1,zjh1,xm2,xb2,zjh2:string;
{rq1,rq2:Tdate;}
xmb,xbb,zjhb{,rqb}:boolean;rpt:integer;
begin
if checkbox1.Checked then
begin
xm1:=edit3.text;
xb1:=combobox2.text;
zjh1:=edit4.text;
{rq1:=datetimepicker1.date;}
query1.DisableConstraints;
query1.First;
while not query1.Eof do
begin
xm2:=query1.fieldbyname('xm').asstring;
xb2:=query1.fieldbyname('xb').asstring;
zjh2:=query1.fieldbyname('zjh').asstring;
{rq2:=table1.fieldbyname('rq').asdatetime;}
if length(xm1)=0 then xmb:=true
else if radiogroup1.ItemIndex=0 then
xmb:=comparetext(xm1,xm2)=0
else xmb:=pos(xm1,xm2)>0;
if length(xb1)=0 then xbb:=true
else if radiogroup1.ItemIndex=0 then
xbb:=comparetext(xb1,xb2)=0
else xbb:=pos(xb1,xb2)>0;
if length(zjh1)=0 then zjhb:=true
else if radiogroup1.ItemIndex=0 then
zjhb:=comparetext(zjh1,zjh2)=0
else zjhb:=pos(zjh1,zjh2)>0;
{if radiogroup1.ItemIndex=0 then
rqb:=comparetext(datetimetostr(rq1),datetimetostr(rq2))=0
else rqb:=pos(datetimetostr(rq1),datetimetostr(rq2))>0;}
if xmb and xbb and zjhb {and rqb} then
if radiogroup1.ItemIndex=0 then break
else
begin
rpt:=application.MessageBox('是否是这个人?','请确认',mb_okcancel);
if rpt=idok then break;
end;
query1.Next;
end;
query1.EnableConstraints;
if length(xm1+xb1+zjh1)=0 then showmessage('查询条件为空。')
else if query1.Eof then showmessage('没有找到')
else showmessage('已经找到')
end
else
begin
xm1:=edit3.text;
xb1:=combobox2.text;
zjh1:=edit4.text;
{rq1:=datetimepicker1.date;}
table1.DisableConstraints;
table1.First;
while not table1.Eof do
begin
xm2:=table1.fieldbyname('xm').asstring;
xb2:=table1.fieldbyname('xb').asstring;
zjh2:=table1.fieldbyname('zjh').asstring;
{rq2:=table1.fieldbyname('rq').asdatetime;}
if length(xm1)=0 then xmb:=true
else if radiogroup1.ItemIndex=0 then
xmb:=comparetext(xm1,xm2)=0
else xmb:=pos(xm1,xm2)>0;
if length(xb1)=0 then xbb:=true
else if radiogroup1.ItemIndex=0 then
xbb:=comparetext(xb1,xb2)=0
else xbb:=pos(xb1,xb2)>0;
if length(zjh1)=0 then zjhb:=true
else if radiogroup1.ItemIndex=0 then
zjhb:=comparetext(zjh1,zjh2)=0
else zjhb:=pos(zjh1,zjh2)>0;
{if radiogroup1.ItemIndex=0 then
rqb:=comparetext(datetimetostr(rq1),datetimetostr(rq2))=0
else rqb:=pos(datetimetostr(rq1),datetimetostr(rq2))>0;}
if xmb and xbb and zjhb {and rqb} then
if radiogroup1.ItemIndex=0 then break
else
begin
rpt:=application.MessageBox('是否是这个人?','请确认',mb_okcancel);
if rpt=idok then break;
end;
table1.Next;
end;
table1.EnableConstraints;
if length(xm1+xb1+zjh1)=0 then showmessage('查询条件为空。')
else if table1.Eof then showmessage('没有找到')
else showmessage('已经找到')
end;
end;
procedure Tfind.CheckBox1Click(Sender: TObject);
begin
if checkbox1.Checked then
begin
datetimepicker1.Enabled:=true;
button2.Enabled:=false;
end
else
begin
datetimepicker1.Enabled:=false;
dbgrid1.DataSource:=datasource1;
button2.Enabled:=true;
end;
end;
procedure Tfind.DateTimePicker1Change(Sender: TObject);
begin
query1.SQL.Clear;
query1.SQL.Add('select fh,xm,xb,zjh,rq from 客户登记表 where rq=:cc');
query1.ParamByName('cc').asstring:=datetostr(DateTimePicker1.date);
query1.open;
dbgrid1.datasource:=datasource2;
end;
end.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -