我做了一个多选项查找功能(代码内详),为什么只查一次可以,查第二次就什么都查不到了?

ilovedelphi ilovedelphi 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
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;
...全文

相关推荐

评论 10
收藏 已收藏
分享
返回顶部
ilovedelphi
Delphi 5,944 成员 262,941 内容