请大家帮忙看下.这段代码是否可以精简下.总感觉应该有比较好的写法.我的代码写得比较笨.
主要的问题是在comboobx1的选择上.如果选择大库,就查大库的库存,如果选择小库,就查小库的库存.如果选择全部.就查全部.
不知道有没有其它更简单的定法.望指教.
procedure Tform1.button1onclick(sender:Tobject);
begin
with adoquery1 do
begin
sql.clear;
if combobox1.Items.Text='大库' then begin
sql.add('select spdm,sum(sl) as sl from spkcb where ckdm=''大库'' group by spdm');
end else if combobox1.Items.Text='小库' then begin
sql.add('select spdm,sum(sl) as sl from spkcb where ckdm=''小库'' group by spdm');
end else begin
sql.add('select spdm,sum(sl) as sl from spkcb')
end;
end;
主要的问题是在comboobx1的选择上.如果选择大库,就查大库的库存,如果选择小库,就查小库的库存.如果选择全部.就查全部.
不知道有没有其它更简单的定法.望指教.
procedure Tform1.button1onclick(sender:Tobject);
begin
with adoquery1 do
begin
sql.clear;
if combobox1.Items.Text='大库' then begin
sql.add('select spdm,sum(sl) as sl from spkcb where ckdm=''大库'' group by spdm');
end else if combobox1.Items.Text='小库' then begin
sql.add('select spdm,sum(sl) as sl from spkcb where ckdm=''小库'' group by spdm');
end else begin
sql.add('select spdm,sum(sl) as sl from spkcb')
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
with adoquery1 do
begin
sql.clear;
if combobox1.ItemIndex>=0 then
sql.add('select spdm,sum(sl) as sl from spkcb')
else
sql.add('select spdm,sum(sl) as sl from spkcb where ckdm='''+combobox1.Items.Text+''' group by spdm');
end;
end;
procedure Tform1.button1onclick(sender:Tobject);
begin
with adoquery1 do
begin
sql.clear;
if combobox1.Items.Text='全部' then
sql.add('select spdm,sum(sl) as sl from spkcb')
else
sql.add('select spdm,sum(sl) as sl from spkcb where ckdm=' +
QuotedStr(combobox1.Items.Text)+' group by spdm');
end;
end;
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
with adoquery1 do
begin
sql.clear;
if combobox1.Items.Text='' then
sql.add('select spdm,sum(sl) as sl from spkcb')
else
sql.add('select spdm,sum(sl) as sl from spkcb where ckdm='''+combobox1.Items.Text+''' group by spdm');
end;
end;
[/Quote]
var
vStr: String;
begin
vStr := ' select spdm,sum(sl) as sl from spkcb where 1=1';
if combobox1.Items.Text<>'' then
vStr := vStr +' and ckdm=:ckdm';
vStr := vStr +' group by spdm';
with adoquery1 do
begin
close;
sql.text := vStr;
if combobox1.Items.Text<>'' then
parameters.parambyname('chdm').value := combobox1.Items.Text;
Open;
end;
end;
begin
with adoquery1 do
begin
sql.clear;
if combobox1.ItemIndex>=0 then
sql.add('select spdm,sum(sl) as sl from spkcb where ckdm='''+combobox1.Items.Text+''' group by spdm')
else sql.add('select spdm,sum(sl) as sl from spkcb')
end;
end;
http://topic.csdn.net/u/20080903/14/f9eae873-ed23-4d5e-9000-e8dda0634bc5.html
希望有高手帮我解答一下.dev才用.实在是有很多问题
begin
with adoquery1 do
begin
sql.clear;
if combobox1.ItemIndex>=0 then
sql.add('select spdm,sum(sl) as sl from spkcb')
else
sql.add('select spdm,sum(sl) as sl from spkcb where ckdm='''+combobox1.Items.Text+''' group by spdm');
end;
end;
close.这个不需要再说了.必竟我不是什么都不懂啊