用ADOquery或者其他的组件,设置你的报表项的数据源为ADOquery,然后再预览报表就得到你想要的结果,给段代码你参考一下 procedure TForm8.BitBtn1Click(Sender: TObject); begin with adoquery2 do begin close; sql.Clear; sql.Add('select 日期,加工单编号,客户编码,客户名称,计价币别,原币金额合计,汇率,折人民币合计 from (select * from mon where 客户编码=:c) where 日期 between :a and :b'); adoquery2.Parameters.ParamByName('a').Value:=datetostr(datetimepicker1.Date); adoquery2.Parameters.ParamByName('b').Value:=datetostr(datetimepicker2.Date); adoquery2.Parameters.ParamByName('c').Value:=copy(combobox1.Text,0,7); open; end; with form7.ADOQuery1 do begin close; sql.Clear; sql.Add('select sum(原币金额合计) as hj from (select * from mon where 客户编码=:c) where 日期 between :a and :b'); Parameters.ParamByName('a').Value:=datetostr(datetimepicker1.Date); Parameters.ParamByName('b').Value:=datetostr(datetimepicker2.Date); Parameters.ParamByName('c').Value:=copy(combobox1.Text,0,7); open; end; form7.QuickRep1.Preview; end;
procedure TForm8.BitBtn1Click(Sender: TObject);
begin
with adoquery2 do
begin
close;
sql.Clear;
sql.Add('select 日期,加工单编号,客户编码,客户名称,计价币别,原币金额合计,汇率,折人民币合计 from (select * from mon where 客户编码=:c) where 日期 between :a and :b');
adoquery2.Parameters.ParamByName('a').Value:=datetostr(datetimepicker1.Date);
adoquery2.Parameters.ParamByName('b').Value:=datetostr(datetimepicker2.Date);
adoquery2.Parameters.ParamByName('c').Value:=copy(combobox1.Text,0,7);
open;
end;
with form7.ADOQuery1 do
begin
close;
sql.Clear;
sql.Add('select sum(原币金额合计) as hj from (select * from mon where 客户编码=:c) where 日期 between :a and :b');
Parameters.ParamByName('a').Value:=datetostr(datetimepicker1.Date);
Parameters.ParamByName('b').Value:=datetostr(datetimepicker2.Date);
Parameters.ParamByName('c').Value:=copy(combobox1.Text,0,7);
open;
end;
form7.QuickRep1.Preview;
end;
在查询后进行打印或预览就可以了