我想先查询满足条件的记录,然后再显示到报表中。大家给点意见!!!谢谢

解决方案 »

  1.   

    用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;
      

  2.   

    将报表中的QRDBTEXT的DATASET设为你查询的数据集
    在查询后进行打印或预览就可以了