源代码如下:
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);
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);
公司要这样子啊,我也没有办法,能帮我解决问题吗