数据是这样连接近来的,adoconnection->adoquery1->datasource1->frxDBDataset1
                                                           ->datagrid
如何才能把当前查询得到的记录打印出来,adoquery1只连一张表,报表要打印数据字段我已经设计好
我用以下两种方法调用报表结果都打印表中所有记录 
方法一:  frxReport1.Clear;
  frxReport1.LoadFromFile(ExtractFilePath(ParamStr(0))+'report\\jinyaobufen.fr3');
  frxReport1.PrepareReport();
  frxReport1.ShowPreparedReport;
方法二:
  frxReport1.ShowReport;
查询是用adoquery1进行查询的,我试过frxDBDataset1直接连接adoquery1还是打印全部数据,哪位高手指点下哦

解决方案 »

  1.   

    frxdbdataset将打印所有查询数据,如果要条件打印肯定要在adoquery1中限制。
      

  2.   

    楼上兄弟,能说清楚点吗,我是通过adoquery1来查询,再连接他在来打印的呀
      

  3.   

    adoquery1.close;
    adoquery1.sql.clear;
    adoquery1.sql.add('select * from xx_jb where xb='+'''男''';
    adoquery1.open;
      

  4.   

    可以把查询的结果在dbgrid中显示出来,用frprintgrid就可以打印dbgrid中的数据了
      

  5.   

    实例代码:frp1为fastreport报表控件的名字procedure Tfmqgd_view_edt.BitBtn4Click(Sender: TObject);
    var
    Report:TfrReport;
    wpath,filename:string;
    beginaq2.Close;
    aq2.SQL.Clear;
    aq2.SQL.Add(' select qg_bill as 請購單號,qg_bumen as 申請部門,qg_man as 申請人,qg_date as 日期, ');
    aq2.SQL.Add(' ziliao_id as 料號,ziliao_name as 品名,ziliao_gg as 規格,ziliao_dw as 單位,ziliao_num as 數量,round(ziliao_price,0) as 單價, ');
    aq2.SQL.Add(' round(cust_feiyong,0) as 總價,ziliao_cust as 客戶,need_date as 需用日期,yongtu as 用途,qgd_bz as 備注 ');
    aq2.SQL.Add('  from qinggou_bill where  qg_bill='''+Trim(edtmjid.Text)+''' ');
    aq2.open;
     
      Report :=frp1 ;
     wpath:=ExtractFilePath(Application.ExeName) ;
     filename:=wpath+'qgd.frf';
    Report.Dictionary.Variables.Variable['qgd_bill']:=''''+aq2.fieldbyname('請購單號').Asstring+'''';
    Report.Dictionary.Variables.Variable['qg_bumen']:=''''+aq2.fieldbyname('申請部門').Asstring+'''';
    Report.Dictionary.Variables.Variable['qg_man']:=''''+aq2.fieldbyname('申請人').Asstring+'''';
    Report.Dictionary.Variables.Variable['qg_date']:=''''+aq2.fieldbyname('日期').Asstring+'''';  Report.ShowReport;
     Report.SaveToFile(filename );end;