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

ilovedelphi 2001-09-07 11:25:38
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;
...全文
198 10 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
bear_c 2001-09-07
  • 打赏
  • 举报
回复
你的option的值没还原
ilovedelphi 2001-09-07
  • 打赏
  • 举报
回复
to mastersky(小龙)
就是指打开窗口后,查找符合某条件的记录,可以查找到。然后继续查找,就再也查不到了(即使是同样的条件也查不到)。
但是如果重新启动程序,又可以查找到,然后又不行了。
kuangning 2001-09-07
  • 打赏
  • 举报
回复
对不起,发错了
kuangning 2001-09-07
  • 打赏
  • 举报
回复
我知道了你没有在DBGrid1中写数据,而是写在edit12中?
ecgnis 2001-09-07
  • 打赏
  • 举报
回复
up
summernightrain 2001-09-07
  • 打赏
  • 举报
回复
单步调试。
kuangning 2001-09-07
  • 打赏
  • 举报
回复
跟踪一下option的值
mastersky 2001-09-07
  • 打赏
  • 举报
回复
不明白什么是“为什么只查一次可以,查第二次就什么都查不到了?”
ilovedelphi 2001-09-07
  • 打赏
  • 举报
回复
如果嫌分少,我还会加分的!
zzutlink 2001-09-07
  • 打赏
  • 举报
回复
太长了吧

5,927

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧