我做了一个多选项查找功能(代码内详),为什么只查一次可以,查第二次就什么都查不到了?
procedure TSelect.CheckBox3Click(Sender: TObject);
begin
if CheckBox3.Checked=false then
begin
option:=option-2;
DBLookupComboBox3.color:=clMenu;
DBLookupcomboBox3.Enabled:=false;
end
else
begin
option:=option+2;
DBLookupComboBox3.color:=clWindow;
DBLookupcomboBox3.Enabled:=true;
end;
end;
procedure TSelect.CheckBox1Click(Sender: TObject);
begin
if CheckBox1.Checked=false then
begin
option:=option-1;
DBLookupComboBox1.color:=clMenu;
DBLookupcomboBox1.Enabled:=false;
end
else
begin
option:=option+1;
DBLookupComboBox1.color:=clWindow;
DBLookupcomboBox1.Enabled:=true;
end;
end;
procedure TSelect.CheckBox4Click(Sender: TObject);
begin
if CheckBox4.Checked=false then
begin
option:=option-4;
DateTimePicker1.color:=clMenu;
DateTimePicker1.Enabled:=false;
DateTimePicker2.color:=clMenu;
DateTimePicker2.Enabled:=false;
end
else
begin
option:=option+4;
DateTimePicker1.color:=clWindow;
DateTimePicker1.Enabled:=true;
DateTimePicker2.color:=clWindow;
DateTimePicker2.Enabled:=true;
end;
end;
procedure TSelect.BitBtn1Click(Sender: TObject);
//这里为什么不能重复操作?
begin
//多选项查找
case option of
7: //全选
begin
try
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('Select kehuming,danweidizhi,zongshoufei From Main_table.db');
SQL.Add('Where Chanpinleixing=:CPLX and shouligongchengshi=:SLGCS and Qujiriqi>:DateBegin and Qujiriqi<:Dateend');
ParamByName('CPLX').AsString:=DBLookupComboBox1.text;
ParamByName('SLGCS').AsString:=DBLookupComboBox3.text;
ParamByName('DateBegin').AsDateTime:=DateTimePicker1.date;
ParamByName('Dateend').AsDateTime:=DateTimePicker2.date;
if prepared=false then prepare;
open;
end;
except
MessageDlg('查找中出现错误,操作中止!',mtError,[mbOK],0);
end;
end;
6: //选择了工程师,日期
begin
try
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('Select kehuming,danweidizhi,zongshoufei From Main_table.db');
SQL.Add('Where shouligongchengshi=:SLGCS and Qujiriqi>:DateBegin and Qujiriqi<:Dateend');
ParamByName('SLGCS').AsString:=DBLookupComboBox3.text;
ParamByName('DateBegin').AsDateTime:=DateTimePicker1.date;
ParamByName('Dateend').AsDateTime:=DateTimePicker2.date;
if prepared=false then prepare;
open;
end;
except
MessageDlg('查找中出现错误,操作中止!',mtError,[mbOK],0);
end;
end;
5: //选择了机器类型,日期
begin
try
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('Select kehuming,danweidizhi,zongshoufei From Main_table.db');
SQL.Add('Where Chanpinleixing=:CPLX and Qujiriqi>:DateBegin and Qujiriqi<:Dateend');
ParamByName('CPLX').AsString:=DBLookupComboBox1.text;
ParamByName('DateBegin').AsDateTime:=DateTimePicker1.date;
ParamByName('Dateend').AsDateTime:=DateTimePicker2.date;
if prepared=false then prepare;
open;
end;
except
MessageDlg('查找中出现错误,操作中止!',mtError,[mbOK],0);
end;
end;
4: //选择了日期
begin
try
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('Select kehuming,danweidizhi,zongshoufei From Main_table.db');
SQL.Add('Where Qujiriqi>:DateBegin and Qujiriqi<:Dateend');
ParamByName('DateBegin').AsDateTime:=DateTimePicker1.date;
ParamByName('Dateend').AsDateTime:=DateTimePicker2.date;
if prepared=false then prepare;
open;
end;
except
MessageDlg('查找中出现错误,操作中止!',mtError,[mbOK],0);
end;
end;
3: //选择了工程师,机器类型
begin
try
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('Select kehuming,danweidizhi,zongshoufei From Main_table.db');
SQL.Add('Where Chanpinleixing=:CPLX and shouligongchengshi=:SLGCS ');
ParamByName('CPLX').AsString:=DBLookupComboBox1.text;
ParamByName('SLGCS').AsString:=DBLookupComboBox3.text;
if prepared=false then prepare;
open;
end;
except
MessageDlg('查找中出现错误,操作中止!',mtError,[mbOK],0);
end;
end;
2: //选择了工程师
begin
try
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('Select kehuming,danweidizhi,zongshoufei From Main_table.db');
SQL.Add('Where shouligongchengshi=:SLGCS ');
ParamByName('SLGCS').AsString:=DBLookupComboBox3.text;
if prepared=false then prepare;
open;
end;
except
MessageDlg('查找中出现错误,操作中止!',mtError,[mbOK],0);
end;
end;
1: //选择了机器类型
begin
try
with Query1 do
begin
Close;
SQL.Clear;
SQL.Add('Select kehuming,danweidizhi,zongshoufei From Main_table.db');
SQL.Add('Where Chanpinleixing=:CPLX ');
ParamByName('CPLX').AsString:=DBLookupComboBox1.text;
if prepared=false then prepare;
open;
end;
except
MessageDlg('查找中出现错误,操作中止!',mtError,[mbOK],0);
end;
end;
0://没有选择
Application.MessageBox('对不起,您还没有选择查找选项,请选择要查找的选项。','操作错误',MB_OK);
end;
end;