fastreport3.0 如何实现动态生成报表?特急!! 我用DBGridEH显示统计信息,同时可以随意选择显示的列。然后用fastreport3.0打印统计信息。各位大哥大姐帮帮忙,小弟不知道如何实现。小弟只会frReport和frDBDataSet。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 { 清除报表元件的內容 } frxReport1.Clear; { 清除报表元件的內容 } frxReport1.DataSets.Add(frxDBDataSet1); { 加入数据集至报表} { 加入页面 } Page := TfrxReportPage.Create(frxReport1); { 加入页面 } Page.CreateUniqueName; { 建立唯一的页面名称 } Page.SetDefaults; { 设定预置的字段、纸张大小 } //Page.Orientation := poLandscape; { 修改纸张的方向} // use Printers 值需要引用单元 ; { 加入顶部公司标志 } Band := TfrxReportTitle.Create(Page); { 加入报表标题区域} Band.CreateUniqueName; Band.Top := 0; { 坐标的单位采用象素(pixels) } Band.Height := 40; Memo := TfrxMemoView.Create(Band); { 加入物件至报表标题区域} Memo.CreateUniqueName; { 建立唯一的变量名称 } Memo.Text := '有限公司'; Memo.Height := 25; Memo.Align := baWidth; { 物件自动调整大小与区域同宽 } Memo.Frame.Typ := [ftBottom] ; { 底部线条 } Memo.Frame.Width := 2 ; { 加入主数据区表头 } HeadBand:= TfrxPageHeader.Create(page); HeadBand.CreateUniqueName ; HeadBand.Height := 25 ; //HeadBand.SetBounds(0,0,1000,25); { 加入物件至数据区表头 } for i:=ADOQuery1.FieldCount-1 downto 0 do begin Memo := TfrxMemoView.Create(HeadBand); Memo.CreateUniqueName; Memo.Text := ADOQuery1.Fields[i].FieldName; Memo.SetBounds(i*100 , 0, 95, 25); { 95为宽度,100为下一个列表的起点,这样才有间隔出现 } // Memo.HAlign := haCenter; { 调整文字至物件的右边界 } Memo.HAlign := haCenter; { 调整文字至物件的右边界 } Memo.VAlign := vaCenter ; { 垂直对齐 } Memo.Align := baNone ; Memo.Align := baRight ; // Memo.Font.Color := clYellow ; { 文字颜色 } // Memo.Color := clBlue ; { 背景颜色 } Memo.Frame.Typ := [ftLeft, ftRight, ftTop, ftBottom] ; { 边框 } end; { 加入主数据区域 } DataBand := TfrxMasterData.Create(Page); DataBand.CreateUniqueName; DataBand.DataSet := frxDBDataSet1; { Top 坐标必须大于前一个加入区域的top + height} DataBand.Top := 100; DataBand.Height := 30; { 加入物件 做为背景色条 } Memo := TfrxMemoView.Create(DataBand); { 加入物件至报表标题区域} Memo.CreateUniqueName; { 建立唯一的变量名称 } Memo.DataSet := frxDBDataSet1; { 连接至数据 } Memo.Height := 23; Memo.width := ADOQuery1.FieldCount * 100 ; Memo.top := 5 ; //背景色 各行不一样 Memo.Highlight.Color := RGB($F0,$F0,$F0) ; Memo.Highlight.Condition := '<Line#> mod 2'; { 加入物件至主数据区域} for i:=0 to ADOQuery1.FieldCount-1 do begin Memo := TfrxMemoView.Create(DataBand); Memo.CreateUniqueName; Memo.DataSet := frxDBDataSet1; { 连接至数据 } Memo.DataField := ADOQuery1.Fields[i].FieldName; Memo.SetBounds(i*100, 0, 100, 30 ); Memo.HAlign := haLeft; { 调整文字至物件的右边界 } Memo.VAlign := vaCenter ; { 垂直对齐 } //Memo.Frame.Typ := [ftLeft, ftRight, ftTop, ftBottom] ; { 边框 } end; { 显示报表 } frxReport1.PrepareReport(false) ; frxReport1.Preview := frxPreview1 ; frxReport1.ShowReport ; 创建dll文件 delphi获取表单内容 为什么我的下载进度会有问题?这样写不对吗? 请大家看一下关于FASTREPORT的问题,在线等 delphi7.0中怎么样画一张表格? 在线等待,简单!删除文件问题。 ://这是过滤数据的图片请问这东西用什么第3方组件来做,好象用EHLIB很难做到这东西 纪念伟大的屈原-----让我们有粽子吃,散分!! 简单问题高分数 各位兄弟,帮帮忙---'DCOM的RPC服务器不可用'! 寻找优秀共享软件开发人员!(Delphi) 为什么把SQL SERVER的数据库记录都已经删除了,数据库文件的大小还没有变?
frxReport1.Clear; { 清除报表元件的內容 }
frxReport1.DataSets.Add(frxDBDataSet1); { 加入数据集至报表} { 加入页面 }
Page := TfrxReportPage.Create(frxReport1); { 加入页面 }
Page.CreateUniqueName; { 建立唯一的页面名称 }
Page.SetDefaults; { 设定预置的字段、纸张大小 }
//Page.Orientation := poLandscape; { 修改纸张的方向} // use Printers 值需要引用单元 ; { 加入顶部公司标志 }
Band := TfrxReportTitle.Create(Page); { 加入报表标题区域}
Band.CreateUniqueName;
Band.Top := 0; { 坐标的单位采用象素(pixels) }
Band.Height := 40; Memo := TfrxMemoView.Create(Band); { 加入物件至报表标题区域}
Memo.CreateUniqueName; { 建立唯一的变量名称 }
Memo.Text := '有限公司';
Memo.Height := 25;
Memo.Align := baWidth; { 物件自动调整大小与区域同宽 }
Memo.Frame.Typ := [ftBottom] ; { 底部线条 }
Memo.Frame.Width := 2 ; { 加入主数据区表头 }
HeadBand:= TfrxPageHeader.Create(page);
HeadBand.CreateUniqueName ;
HeadBand.Height := 25 ;
//HeadBand.SetBounds(0,0,1000,25); { 加入物件至数据区表头 }
for i:=ADOQuery1.FieldCount-1 downto 0 do
begin
Memo := TfrxMemoView.Create(HeadBand);
Memo.CreateUniqueName;
Memo.Text := ADOQuery1.Fields[i].FieldName;
Memo.SetBounds(i*100 , 0, 95, 25); { 95为宽度,100为下一个列表的起点,这样才有间隔出现 }
// Memo.HAlign := haCenter; { 调整文字至物件的右边界 }
Memo.HAlign := haCenter; { 调整文字至物件的右边界 }
Memo.VAlign := vaCenter ; { 垂直对齐 }
Memo.Align := baNone ;
Memo.Align := baRight ;
// Memo.Font.Color := clYellow ; { 文字颜色 }
// Memo.Color := clBlue ; { 背景颜色 }
Memo.Frame.Typ := [ftLeft, ftRight, ftTop, ftBottom] ; { 边框 }
end; { 加入主数据区域 }
DataBand := TfrxMasterData.Create(Page);
DataBand.CreateUniqueName;
DataBand.DataSet := frxDBDataSet1;
{ Top 坐标必须大于前一个加入区域的top + height}
DataBand.Top := 100;
DataBand.Height := 30; { 加入物件 做为背景色条 }
Memo := TfrxMemoView.Create(DataBand); { 加入物件至报表标题区域}
Memo.CreateUniqueName; { 建立唯一的变量名称 }
Memo.DataSet := frxDBDataSet1; { 连接至数据 }
Memo.Height := 23;
Memo.width := ADOQuery1.FieldCount * 100 ;
Memo.top := 5 ;
//背景色 各行不一样
Memo.Highlight.Color := RGB($F0,$F0,$F0) ;
Memo.Highlight.Condition := '<Line#> mod 2'; { 加入物件至主数据区域}
for i:=0 to ADOQuery1.FieldCount-1 do
begin
Memo := TfrxMemoView.Create(DataBand);
Memo.CreateUniqueName;
Memo.DataSet := frxDBDataSet1; { 连接至数据 }
Memo.DataField := ADOQuery1.Fields[i].FieldName;
Memo.SetBounds(i*100, 0, 100, 30 );
Memo.HAlign := haLeft; { 调整文字至物件的右边界 }
Memo.VAlign := vaCenter ; { 垂直对齐 }
//Memo.Frame.Typ := [ftLeft, ftRight, ftTop, ftBottom] ; { 边框 }
end; { 显示报表 }
frxReport1.PrepareReport(false) ;
frxReport1.Preview := frxPreview1 ;
frxReport1.ShowReport ;