源代码如下:
Const
  ColTop=400;
  ColHeight=25;
  MasterDataTop=325;
  BLeft=50;
var
  v: TfrView;
  b: TfrBandView;
  Page:TfrPage;
  i:integer;
  aLeft,aTop:integer;
  t_StrField:String;
  dt:TDataSet;
begin
  //建立页面
  frReport.Pages.Clear;
  frReport.Pages.Add;              // create page
  Page := frReport.Pages[0];
  if DbCols.Grid.DataSource.DataSet=nil then
  begin
    FnShowMessage('DataSet=nil');
    exit;
  end;  frDBDataSet.DataSet:=DbCols.Grid.DataSource.DataSet;
  dt:=frDbDataSet.DataSet;
  dt.Name:=frDbDataSEt.DataSet.Name;
  //创建报表头
  b := TfrBandView.Create;             // create Title band
  b.SetBounds(0,100,Page.Width,80);           // position and size in pixels
  b.BandType := btPageHeader;         // (only Top and Height are significant
  Page.Objects.Add(b);               //  for the band)
  Page.PageType:=ptReport;  //报表标题
  v := TfrMemoView.Create;  // create memo
  v.Parent:=TfrBand(b);
  v.SetBounds(20, 50, 200, 16);
  v.BandAlign := baWidth;
  v.Prop['Alignment'] := frtaCenter;   // another way to access properties
  v.Prop['Font.Style'] := 2;
  v.Prop['Font.Size']:=10;
  v.Prop['Font.Style.fsBold']:=True;
  v.Memo.Add('我的第一个FastReport报表');
  Page.Objects.Add(v);  //增加列头
  b:=TfrBandView.Create;
  b.BandType:=btColumnHeader;
  b.SetBounds(0,ColTop,Page.Width,ColHeight);
  Page.Objects.Add(b);
  //Columnheader增加
  aLeft:=BLeft;
  for i:=0 to DbCols.Count-1 do
   if DbCols[i].Visible then
   begin
     v:=TfrLineView.Create;
     v.SetBounds(aLeft,ColTop,1,ColHeight);
     v.FillColor:=ClRed;
     Page.Objects.Add(v);
     v:=TfrMemoView.Create;
     v.SetBounds(aLeft+1,ColTop,1,ColHeight);
     //v.Memo.Add(DbCols[i].Title.Caption);
     v.Memo.Text:=DbCols[i].Title.Caption;
     v.Visible:=True;
     v.Prop['Font.Size']:=10;
     Page.Objects.Add(v);
     aLeft:=aLeft+DbCols[i].Width;
   end;  v:=TfrLineView.Create;
  v.SetBounds(BLeft,ColTop,aLeft,1);
  v.FillColor:=ClBlack;
  Page.Objects.Add(v);
  v:=TfrLineView.Create;
  v.SetBounds(BLeft,ColTop+colHeight,aLeft,1);
  v.FillColor:=ClBlack;
  Page.Objects.Add(v);  v:=TfrLineView.Create;
  v.SetBounds(aLeft,ColTop+ColHeight,1,ColHeight);
  v.FillColor:=ClBlack;
  Page.Objects.Add(v);  //Columnheader增加  //Detail增加
  b := TfrBandView.Create;             // create MasterData band
  b.SetBounds(0, ColTop+ColHeight, Page.Width, ColHeight);
  b.BandType := btMasterData;
  //b.Dataset := DbCols.         // band's dataset
  b.DataSet:='frDbDataSet';
  Page.Objects.Add(b);
  aLeft:=BLeft;
  for i:=0 to DbCols.Count-1 do
   if DbCols[i].Visible then
   begin
     v:=TfrLineView.Create;
     v.SetBounds(aLeft,ColTop+ColHeight,1,ColHeight);
     v.FillColor:=ClBlack;
     Page.Objects.Add(v);
     v:=TfrMemoView.Create;
     v.SetBounds(aLeft+1,ColTop+ColHeight,1,ColHeight);
     v.Memo.Text:=DbCols[i].Field.AsString;
     v.Flags := (v.Flags and not flHideZeros) + Word(true) * flHideZeros;     v.Memo.Add('[Em_dm.'+dt.Name+'."'+dt.FieldDefs.Items[i].Name + '"]');     Page.Objects.Add(v);     //TfrMemoView(v).Prop['DbCols.Grid.DataSource.DataSet.""']     aLeft:=aLeft+DbCols[i].Width;
   end;   v:=TfrLineView.Create;
   v.SetBounds(BLeft,ColTop+2*ColHeight,aLeft,1);
   v.FillColor:=ClWhite;
   Page.Objects.Add(v);   v:=TfrLineView.Create;   v.SetBounds(aLeft,ColTop+ColHeight,1,ColHeight);
   v.FillColor:=ClBlack;
   Page.Objects.Add(v);