我现在报表写好了,但如何调用呢?

解决方案 »

  1.   

    var
      v: TfrView;
      bt,b: TfrBandView;
      Page: TfrPage;
      i:integer;
      iLeft,iTop,iWidth,iHeight:integer;
      sName:string;
    begin
      table1.Active :=true;
      frReport1.Pages.Clear;
      frReport1.Pages.Add;              // create page
      Page := frReport1.Pages[0];
      bt:=TfrBandView(frCreateObject(gtBand, ''));  // create MasterData band
      bt.SetBounds(0,20,0,20);
      bt.BandType:=btPageHeader;
      bt.Memo.Add('dd');
      page.Objects.Add(bt);  v := frCreateObject(gtMemo, '名称');  // create data field  v.SetBounds(iLeft, iTop, iWidth, iHeight);
      v.Memo.Add('示示');
      Page.Objects.Add(v);  b := TfrBandView(frCreateObject(gtBand, ''));  // create MasterData band
      b.SetBounds(0, 80, 0, 20);                // position and size in pixels
      b.BandType := btMasterData;
      b.Dataset := 'frDBDataSet1';              // reference to band dataset
      Page.Objects.Add(b);
      iLeft:=18;
      iTop:=80;  iHeight:=20;
      for i:=0 to Table1.FieldCount-1 do
      begin
      iWidth:=145;//Table1.Fields[i].Size;
      v:=frCreateObject(gtLine,'');  v.SetBounds(iLeft,iTop,iWidth,1);
      page.Objects.Add(v);
      v:=frCreateObject(gtLine,'');
      v.SetBounds(iLeft,iTop,1,iHeight);
      page.Objects.Add(v);  v := frCreateObject(gtMemo, '名称');  // create data field  v.SetBounds(iLeft, iTop, iWidth, iHeight);
      sName:='[Table1."'+Table1.Fields[i].FieldName+'"]';
      v.Memo.Add(sName);
      Page.Objects.Add(v);
      v:=frCreateObject(gtLine,'');
      iLeft:=iLeft+iWidth;
      v.SetBounds(iLeft,iTop,1,iHeight);
      page.Objects.Add(v);  end;
      frReport1.ShowReport;
    end;
      

  2.   

    fastreport在那儿?我没找到。rave里没有呀
      

  3.   

    self.frReport1.LoadFromFile(GetCurrentDir+'\入库单.frf')
      self.frReport1.ShowReport;
    注:fastreport是个不错的第三方控件,delphi本身没有
      

  4.   

    self后没有frReportl.LoadFromFile这个函数。
      

  5.   

    你应该在你的界面上放置了一个fastReport组件,假设为frReport1,你利用它设计好了报表,你在一个按钮或者其他什么控件的单击事件里写frReport1.showReport就OK了。