FastReport 4程序员手册
快速报表系统FastReport4用户使用手册_修改版

“Reprint headers on new page”决定在多个页面打印时,是否在每个页面当打印输出标题栏。
“Side by side cell”:是否允许合并单元格“Join equal cells”选项,当数值相等时是否可以合并单元格。
使用对象查看器的属性设置也可以设置这些内容。
第八章FastReport允许用户插入chart制表组件到报表中,这样,在FastReport面板上的“TfrxCharObject”组件就必须应用上。
这个组件基于“TeeChart”动态库,在delphi 中需要将它包含在工程中。
我们通过以下示例先进行简单说明,连接DBDemos中的countory表,数据内容如下:在delphi环境中创建一个新的工程,添加“TTable”,“TfrxChartObject”,“TfrxDBData”,“TfrxReport”组件,并设置属性值:Table1:DatabaseName = 'DBDEMOS'TableName = ''frxDBDataSet1:DataSet = Table1UserName = 'Country'进入到报表设计器页面,并连结设置数据源。
在报表的设计页上放置一个“chart”组件,并调整其大小(18X8cm)。
双击组件,打开组件的编辑器窗口。
char编辑器区域说明:1:chart结构,一个chart包含有几个制表系统。
2:组件监视器,显示所选组件的属性。
3:连结chart的series的数据属性。
开始的界面显示如上,首先添加一个或几个series,在1区点击按钮,添加一个Pie。
有许多可用的不同的类型的series。
添加一个系列之后,3区被激活。
首先选择数据源,设置Label和pie字段。
点击确定按钮,关闭编辑器窗口,然后预览。
还如何改良以下报表呢?首先,将数据按升序方式进行排序。
再次进入编辑器,选择要设置的series,在3区设置选项。
快速报表系统FastReport4用户使用手册_修改版

“Reprint headers on new page”决定在多个页面打印时,是否在每个页面当打印输出标题栏。
“Side by side cell”:是否允许合并单元格“Join equal cells”选项,当数值相等时是否可以合并单元格。
使用对象查看器的属性设置也可以设置这些内容。
第八章FastReport允许用户插入chart制表组件到报表中,这样,在FastReport面板上的“TfrxCharObject”组件就必须应用上。
这个组件基于“TeeChart”动态库,在delphi 中需要将它包含在工程中。
我们通过以下示例先进行简单说明,连接DBDemos中的countory表,数据内容如下:在delphi环境中创建一个新的工程,添加“TTable”,“TfrxChartObject”,“TfrxDBData”,“TfrxReport”组件,并设置属性值:Table1:DatabaseName = 'DBDEMOS'TableName = ''frxDBDataSet1:DataSet = Table1UserName = 'Country'进入到报表设计器页面,并连结设置数据源。
在报表的设计页上放置一个“chart”组件,并调整其大小(18X8cm)。
双击组件,打开组件的编辑器窗口。
char编辑器区域说明:1:chart结构,一个chart包含有几个制表系统。
2:组件监视器,显示所选组件的属性。
3:连结chart的series的数据属性。
开始的界面显示如上,首先添加一个或几个series,在1区点击按钮,添加一个Pie。
有许多可用的不同的类型的series。
添加一个系列之后,3区被激活。
首先选择数据源,设置Label和pie字段。
点击确定按钮,关闭编辑器窗口,然后预览。
还如何改良以下报表呢?首先,将数据按升序方式进行排序。
再次进入编辑器,选择要设置的series,在3区设置选项。
FastReport用户手册译文

FastReport用户手册1.0.0设计器报表组件提供了一个内置的设计器,此设计器可以在报表设计期间通过双击TfrxReport 组件进行访问。
它为用户提供了设计报表的所有工具,并能同步预览。
设计器当前版本是V4.6.8。
它提供了一些工具栏,可以根据个人爱好停放在任意位置。
工具栏的位置以及设计器的设置信息(任何一个改变后)会被保存在ini文件或注册表中,以后启动报表设计器后会根据这些信息恢复当前的设计界面。
要给终端用户提供报表设计器,你要么从fastreport组件面板中加入“TfrxDesigner”组件,要么在单元文件Uses列表中加入“frxDesgn”单元,这样才能在运行时期设计或修改报表。
注意:应该在Delphi窗体中添加其它Tfrx系列的组件,这样才能在报表设计期间使用。
看一下报表设计器,在上图中用数字进行了指示:1 –报表设计器工作区;2 –菜单栏;3 –工具栏;4 –对象工具栏;5 –报表页标签;6 –“报表树”窗体;;7 –“对象查看器”窗体;8 –“数据树”窗体,可以从此窗体中拖到一个数据元素到工作区;9 –标尺。
当往工作区拖动标尺时,将会出现一根引导线;10 –状态栏。
1.1.0控制键1.2.0鼠标控制Ctrl + 左键(原文是右键,有误)按住左键拖动,将出现虚线框,释放左键时所有被虚线框捕获的对象将被选中。
该操作也可以由点击空白页面,并移动鼠标光标到所需的位置。
Alt + 左键如果选中的对象是文本对象, 可直接编辑对象的文本。
1.3.0工具栏1.3.1设计栏与对象工具栏是一体的,有下列基本的按钮:图标名称描述选取工具一个标准的操作方法,显示一个鼠标指针,用来选择对象,修改大小等等。
徒手工具点击该图标后可以拖动报表。
显示比率工具点击鼠标左键放大报表显示(每次增加100%),点击右键缩小显示(每次减少100%)。
当按住左键拖动时,指定区域会被缩放。
文本工具点击“文本”的对象后可以在报表内直接编辑文本内容。
FastReport4(Delphi)动态生成报表

字段名、字段数不确定时,用FastReport4 动态生成报表Delphi xe3 + FastReport4.14.1ADOConnection,ADOQuery,DatasetProvider,ClientDataSet,DataSource,FrxDBDataset1,FrxReport屬性設置,不在這裡詳述。
效果圖:unit Unit1;interfaceusesWinapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Vcl.Grids, Vcl.DBGrids, Datasnap.Provider, Data.Win.ADODB, Data.DB, Datasnap.DBClient, frxClass, frxPreview, frxDesgn, frxDBSet;typeTForm1 = class(TForm)ADOConnection1: TADOConnection;DataSource1: TDataSource;ClientDataSet1: TClientDataSet;ADOQuery1: TADOQuery;DataSetProvider1: TDataSetProvider;DBGrid1: TDBGrid;Button1: TButton;Button2: TButton;frxDBDataset1: TfrxDBDataset;frxDesigner1: TfrxDesigner;frxPreview1: TfrxPreview;frxReport1: TfrxReport;Button3: TButton;procedure Button1Click(Sender: TObject);procedure Button2Click(Sender: TObject);procedure Button3Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;implementation{$R *.dfm}procedure TForm1.Button1Click(Sender: TObject);beginclientdataset1.Close;mandText:= 'select user_id,user_name ,sal_no from t_user '; clientdataset1.Open;end;procedure TForm1.Button2Click(Sender: TObject);varpDataPage :TfrxDataPage;pPage :TfrxReportPage ;pBand :TfrxBand;pDataBand :TfrxMasterData ;pMemo :TfrxMemoView ;i:integer;x,y,z,width:extended;begin// 清除原报表内容frxReport1.Clear;// 设置Report 的DataSetfrxReport1.DataSets.Add(frxDBdataset1);// 添加Report 的Data 页pDataPage := TfrxDatapage.Create(frxReport1);// 增加报表显示内容pPage := TfrxReportPage.Create(frxReport1);ppage.CreateUniqueName();// 设置Fields 的默认尺寸pPage.SetDefaults;// 页面方向// pPage.Orientation := poLandscape;// 页面边距pPage.TopMargin := 20;pPage.LeftMargin := 20;pPage.RightMargin := 20;pPage.BottomMargin := 20;// 创建报表Title BandpBand := TfrxReportTitle.Create(pPage);pBand.CreateUniqueName();pBand.Top := 0;pBand.Height := 20;// 创建显示Field 的MemopMemo := TfrxMemoView.Create(pBand);pMemo.CreateUniqueName();pMemo.Text := 'Hello FastReport!';pMemo.Height := 20;// 风格pMemo.Align := baWidth;// 创建DataBandpDataBand := TfrxMasterData.Create(pPage);pDataBand.CreateUniqueName();pDataBand.DataSet := frxDBDataset1;pDataBand.Top := 100;pDataBand.Height := 20;// 将Memo 添加到DataBand 上pMemo := TfrxMemoView.Create(pDataBand);pMemo.CreateUniqueName();// 连接数据pMemo.DataSet := frxDBDataset1;// 显示username 字段pMemo.DataField := 'user_name';pMemo.SetBounds(0, 0, 100, 20);// memo 带边框pMemo.Frame.Typ := [ftLeft , ftRight , ftTop , ftBottom];// 风格pMemo.HAlign := haRight;// 报表显示frxReport1.ShowReport(true);end;procedure TForm1.Button3Click(Sender: TObject);varpDataPage :TfrxDataPage;pPage :TfrxReportPage ;pBand :TfrxBand;pDataBand :TfrxMasterData ;pMemo :TfrxMemoView ;pTitle :TfrxReportTitle;pPageHeader :TfrxPageHeader;pPagetFooter :TfrxPageFooter;i:integer;x,y,z,width:extended;poPortrait, poLandscape: TPrinterOrientation ;beginwidth:= 80 ; // 字段宽度x:= 0 ;y:= 0 ;z:= 0 ;frxReport1.Clear;frxReport1.DataSets.Add(frxDBdataset1);pDataPage := TfrxDatapage.Create(frxReport1);pPage := TfrxReportPage.Create(frxReport1);ppage.CreateUniqueName();pPage.SetDefaults;pPage.Orientation := poLandscape; // 橫印,poPortrait: 直印(默認),pPage.TopMargin := 10; // 上邊距(mm)pPage.LeftMargin := 20; // 左邊距(mm)pPage.RightMargin := 20; //右邊距(mm)pPage.BottomMargin := 15; // 下邊距(mm){pBand := TfrxReportTitle.Create(pPage);pBand.CreateUniqueName();pBand.Top := 0;pBand.Height := 20;}pTitle := TfrxReportTitle.Create(pPage);pTitle.CreateUniqueName();pTitle.Top := 0;pTitle.Height := 30;// 標題頭pMemo := TfrxMemoView.Create(pTitle);pMemo.CreateUniqueName();pMemo.Text :='AutoReport for FastReport4.14';pMemo.SetBounds(0,0,300,30); //MemoView :長、寬、高;pMemo.Font.Size := 14 ; // 14號字pMemo.Font.Style :=[fsBold]; // 粗體pMemo.Height := 30;pMemo.Align := baCenter; // MemoView:居中;// 創建表頭欄pPageHeader := TfrxPageHeader.Create(pPage); pPageHeader.CreateUniqueName;pPageHeader.Top := 50;pPageHeader.Height:= 20;for i := 0 to clientDataset1.FieldCount -1 dobegin// 表頭欄位pMemo := TfrxMemoView.Create(pPageHeader);pMemo.CreateUniqueName();pMemo.Text := clientDataset1.Fields[i].FieldName; pMemo.SetBounds( i * width, 0, width, 20);pMemo.Frame.Typ:=[ftLeft , ftRight , ftTop , ftBottom]; pMemo.Height := 20;// 风格// pMemo.Align := baWidth;pMemo.Align := baLeft;end; // end for ;// 创建DataBandpDataBand := TfrxMasterData.Create(pPage);pDataBand.CreateUniqueName();pDataBand.DataSet := frxDBDataset1;pDataBand.Top := 100;pDataBand.Height := 20;for i := 0 to clientdataset1.FieldCount-1 dobegin// 将Memo 添加到DataBand 上pMemo := TfrxMemoView.Create(pDataBand);pMemo.CreateUniqueName();// 连接数据pMemo.DataSet := frxDBDataset1;// 显示username 字段pMemo.DataField := clientDataset1.Fields[i].FieldName;pMemo.SetBounds( i * width, 0, width, 20); // setBountds(X横行起点,Y起点,字段宽度,字段高度)// memo 带边框pMemo.Frame.Typ:=[ftLeft , ftRight , ftTop , ftBottom];// 风格// pMemo.HAlign := haRight; // 字右對齊;pMemo.HAlign := haLeft;end; // end for ;// 报表显示frxReport1.ShowReport(true);end;end.。
快速报表系统FastReport4用户使用手册簿_修改版(3)

快速报表系统FastReport4用户使用手册簿_修改版(3)实用标准文档互式报表,意思是在预览窗口用户可用通过鼠标在组的标题上单击,以实现展开和关闭详细信息内容。
这里有一个示例:你在第一次生成报表时可以控制全部组内容是展开还是缩回。
默认情况全部组不展开。
如果想展开,可以设置ExpandDrillDown属性为True,或者通过右键上下文菜单进行操作。
3.5、行数让我们的示例显示每个组的行数,在没有band上添加一个text 组件,并设置系统变量[line]。
如图:浏览结果,可以看到每个组分别显示序列号。
如果想让第二个band的页码成顺序号延续,可以在band中将[line]改为[line#]。
显示结果如下图:3.6、函数集在分组报表中,一般情况下需要显示一些结论性的内容,如分组数,组内行数等。
为了这个目的,FastReport提供了一些函数集。
Sum 返回公式的和Min 返回公式的最小值Avg 返回公式的平均值Count 返回数据行数除count函数外的其他函数的语法如下,以sum为例:sum(公式,band,标记)sum(公式,band)sum(公式)参数解释:公式——要显示数据的公式band——数据Band的名称标记——一个字节,可以是以下数据之一或他们的和1:计算时包含不可见Band2:对计算值进行累计公式是必需的参数,其他是可选的,不过,有歧义时,应该使用band这个参数。
Count函数的语法:Count(band,标记)Count(band)参数说明和上面类似。
对所有的函数有一个规定,就是只适用于数据Band或数据Band 的Footer Band.集合函数是怎么工作的呢?让我们做一个示例:数据Band的“ItemTotal”字段显示当前表单的总计,在groupfooter中添加一个text 组件,输入[sum(,masterdata1)]。
显示结果如下图:函数中“标记”参数的目的就是为了有些报表部分数据Band可能隐藏不可见,不管是否可见都应该计算在范围内。
FastReport用户手册译文

FastReport用户手册译文FastReport用户手册1.0.0 设计器报表组件提供了一个内置的设计器,此设计器可以在报表设计期间通过双击TfrxReport组件进行访问。
它为用户提供了设计报表的所有工具,并能同步预览。
设计器当前版本是V4.6.8。
它提供了一些工具栏,可以根据个人爱好停放在任意位置。
工具栏的位置以及设计器的设置信息(任何一个改变后)会被保存在ini 文件或注册表中,以后启动报表设计器后会根据这些信息恢复当前的设计界面。
要给终端用户提供报表设计器,你要么从fastreport组件面板中加入“TfrxDesigner”组件,要么在单元文件Uses列表中加入“frxDesgn”单元,这样才能在运行时期设计或修改报表。
注意:应该在Delphi窗体中添加其它Tfrx系列的组件,这样才能在报表设计期间使用。
看一下报表设计器,在上图中用数字进行了指示:1 –报表设计器工作区;2 –菜单栏;3 –工具栏;4 –对象工具栏;5 –报表页标签;6 –“报表树”窗体;;7 –“对象查看器”窗体;8 –“数据树”窗体,可以从此窗体中拖到一个数据元素到工作区;9 –标尺。
当往工作区拖动标尺时,将会出现一根引导线;10 –状态栏。
1.1.0控制键键描述Ctrl+O “文件|打开…” 菜单命令Ctrl+S “文件|保存” 菜单命令Ctrl+P “文件|预览” 菜单命令Ctrl+Z “编辑|撤消” 菜单命令Ctrl+C “编辑|复制” 菜单命令Ctrl+V “编辑|粘贴” 菜单命令Ctrl+X “编辑|剪切” 菜单命令Ctrl+A “编辑|全选” 菜单命令方向键, Tab 在对象间移动Del 删除选中的对象Enter 访问选中对象的编辑器Shift+方向键修改选中对象的大小Ctrl+方向键移动选中的对象Alt+方向键选中的物体附着到最近的一个特定的方向 1.2.0鼠标控制操作描述左键选择对象;粘贴一个新对象; 移动名调整一个对象的大小。
报表fastreport

报表fastreport本节主要讲述FastReport报表系统的基本概念、基本操作⽅法、基本控件使⽤等内容。
基本概念最主要的概念是FastReport报表的组成⽅式和控件主要⽤途,它⼀般包括以下⽅⾯:*页⾯(Page) --- 默认为Page1与我们现实中使⽤的纸张相似。
但它不仅仅指的是⼀张纸,⽽是⽤于我们设计报表的容器。
打印出来可以是⼀张纸也可以是多张。
页⾯(Page)可以有多个(你可以新增页⾯New Page),即可以有多个报表容器。
利⽤这⼀点,你可以设计出复合报表(Composite Report)。
利⽤页⾯设置可以定义⼤⼩、⽅向、边界、打印⽅式、分栏等参数。
这⾥不再详述,只特别强调分栏的作⽤。
你可以将页⾯分成多栏,这样打印时数据将按照从上到下,再从左往右的⽅式显⽰。
这就是我们通常说的分栏报表(Splite Report)。
*区域(Band)FastReport将整个页⾯划分成若⼲个区域。
⽽每个区域有着各⾃不同的功能,这些功能由FastReport⾃动加载。
⼀个页⾯中可以没有区域,也可以只有其中的某些区域,这根据报表的需求⽽定。
放置在页⾯中的区域有范围,落⼊区域范围内的控件(例如:TextObject)才具有区域的功能。
重要的区域包括:#报表抬头(ReportTitle)仅在第⼀页显⽰在纸张的上部。
⼀般⽤于打印报表的标题等信息。
#报表合计(ReprotSummary)仅显⽰在所有数据的最后末尾。
⼀般⽤于打印统计信息等。
#页⾸(PageHeader)显⽰在每页的最上部。
通过设置你可以让它置于报表抬头之上或者之下。
⼀般⽤于打印页眉信息等。
#页脚(PageFooter)显⽰在每页的最底部。
⼀般⽤于打印页序等信息。
#主数据(MasterData)⽤于显⽰数据源的数据,是最重要的区域。
在该区域中可以定义连接哪⼀个数据源,那么该数据源的数据将会按顺序依次将记录打印出。
数据区域还有明细数据(DetailData)等,⼀共⽀持6阶数据。
fastreport教程

FastReport教程简介FastReport是一款功能强大且易于使用的报告生成工具。
它提供了丰富的报告设计功能,并支持多种数据源。
FastReport广泛应用于软件开发、数据分析和业务报表等领域。
本教程将介绍FastReport的基本用法和一些常用功能。
安装要使用FastReport,我们首先需要安装它。
FastReport支持多种开发环境,如Delphi、C++Builder、.NET等。
你可以根据自己的开发环境选择合适的版本进行安装。
Delphi环境如果你使用Delphi进行开发,可以按照以下步骤安装FastReport:1.在FastReport官网下载最新版本的安装包;2.运行安装包,按照提示进行安装;3.在Delphi的组件面板中找到FastReport组件,将其拖放到窗体中。
.NET环境如果你使用.NET进行开发,可以按照以下步骤安装FastReport:1.在FastReport官网下载最新版本的安装包;2.运行安装包,按照提示进行安装;3.在Visual Studio中打开项目,通过NuGet下载并安装FastReport。
创建报表创建报表是使用FastReport的第一步。
在FastReport中,我们可以使用设计器来创建报表模板,并在代码中加载和填充数据。
下面是创建报表的基本步骤:1.打开FastReport设计器,新建一个报表项目;2.在报表中添加数据源,可以是数据库、XML文件或自定义数据源;3.在报表中添加报表控件和数据绑定,设计报表样式;4.在代码中加载数据,并预览或导出报表。
加载数据在FastReport中,我们可以使用多种方式加载数据:数据库如果你的报表数据存储在数据库中,你可以使用FastReport提供的数据库连接工具加载数据。
首先需要设置数据库连接参数,然后通过SQL查询或存储过程获取数据。
```csharp using FastReport.Data;// 创建数据库连接 var connection = new Connection(); connection.ConnectionString =。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
FastReport 程序员手册一、使用TfrxReport 组件工作1、加载并存储报表默认情况下,报表窗体同项目窗体构存储在同一个DFM文件中。
多数情况下,无须再操作,因而你就不必采用特殊方法加载报表。
如果你决定在文件中存储报表窗体或者是数据库的Blob字段(他提供了非常大的弹性,你能够在非编译程序中修改),你必须使用“TfrxReport”提供的加载和存储方法。
function LoadFromFile(const FileName: String; ExceptionIfNotFound: Boolean = False): Boolean;从一个给定名字文件中加载报表。
如果第二个参数等于“True”并且文件没找到,那么他会触发一个异常。
如果文件加载成功,他返回“True”。
procedure LoadFromStream(Stream: TStream);从流中加载报表。
procedure SaveToFile(const FileName: String);用特殊名称文件存储报表。
procedure SaveToStream(Stream: TStream);把报表存在流中。
例如:Pascal:frxReport1.LoadFromFile('c:\1.fr3');frxReport1.SaveToFile('c:\2.fr3');C++:frxReport1->LoadFromFile("c:\\1.fr3");frxReport1->SaveToFile("c:\\2.fr3");2.设计报表通过“TfrxReport.DesignReport”方法调用报表设计器。
你必须在你的项目中包含报表设计器(必要条件是:要么使用“TfrxDesigner”组件,要么增加“frxDesgn”单元到uses列表)“DesigReport”方法接受两个默认参数:procedure DesignReport(Modal: Boolean = True; MDIChild: Boolean = False);Modal参数决定设计器是否被模态,MDIChild参数允许把设计器窗体作为一个MDI子窗体。
例如:frxReport1.DesignReport;3.运行报表应用下面两个“TfrxReport”方法中的一个启动报表:procedure ShowReport(ClearLastReport: Boolean = True);启动报表并在预览窗体中显示。
如果“ClearLastReport”参数等于“False”,报表将会增加先前的一个报表结果,否则清除前一个报表结构。
function PrepareReport(ClearLastReport: Boolean = True): Boolean;启动报表,没有打开预览窗体,参数赋值与“ShowReport”方法同名。
如果报表构造成功,他返回“True”。
多数情况下,使用第一种方法更为方便一些。
在报表被构造的同时,他会立刻显示一个预览窗体。
当需要增加另一个报表到前一个报表中的时候,“ClearLastReport”参数显得方便些。
(此类技术用于批量报表打印)。
例如:frxReport1.ShowReport;4.预览报表使用两种途径显示一个报表是可能的:两者都是调用“TfrxReport.ShowReport”方法(先前描述过了),或者使用“TfrxReport.ShowPreparedReport”方法来帮助实现。
在第二种情况下,报表构造没有被执行,但显示了一个完成的报表。
也就是说,你要么在“PreparedReport”方法帮助下构造他,要么在构造前从文件中加载报表(查看“加载/存储完成的报表”)例如:Pascal:if frxReport1.PrepareReport thenfrxReport1.ShowPreparedReport;C++:if(frxReport1->PrepareReport(true))frxReport1->ShowPreparedReport();在这种情况下,报表构造器先被完成了,并显示在预览窗体中。
构造一个庞大的报表可能要花费很多时间,那就是为什么使用“ShowReport”非等时同步方法会好于“PrepareReport/ShowPreparedReport”方法。
你可以通过“TfrxReport.PreviewOptions”属的缺省值设定预览参数值。
(这句翻译的不够好,请参考原文)原文参考:In this case, report construction is finished first, and after that it is displayed in the preview window. Construction of a large report can takea lot of time, and that is why it is better to use the “ShowReport anisochronous” method, than the “PrepareReport/ShowPreparedReport” one. One can assignpreview settings by default via the “TfrxReport.PreviewOptions” property.[SPAN]5、打印报表大多数情况下,你可以从预览窗体打印报表。
要人工打印报表,你应该使用“TfrxReport.Print”方法,例如:frxReport1.LoadFromFile(...);frxReport1.PrepareReport;frxReport1.Print;同时,你可以在显示的打印对话框中设置打印参数,你也可以使用默认设定值。
取消打印对话框,请参考“TfrxReport.PrintOptions”属性帮助6.载入并存储报表这个功能可以在预览窗口中执行。
也可以使用手工方法执行,帮助参考“TfrxReport.PreviewPages”方法:function LoadFromFile(const FileName: String; ExceptionIfNotFound: Boolean = False): Boolean;procedure SaveToFile(const FileName: String);procedure LoadFromStream(Stream: TStream);procedure SaveToStream(Stream: TStream);赋值和参数化类似与TfrxReport相应的方法。
文件包含了完成的报表,默认情况下以“FP3”为扩展名。
例如:Pascal:frxReport1.PreviewPages.LoadFromFile('c:\1.fp3');frxReport1.ShowPreparedReport;C++:frxReport1->PreviewPages->LoadFromFile("c:\\1.fp3");frxReport1->ShowPreparedReport();注意,完成的报表加载完毕后,预览方法是通过“ShowPreparedReport” 方法执行的。
7.导出报表他可以从预览窗口中执行。
也可以手动操作,通过“FfrxReport.Export”方法,及这个方法中的参数,你可以导出你想要导出的文件类型:frxReport1.Export(frxHTMLExport1);导出过滤组件必须是有效的(你必须把他们放到你项目中的窗体上)并调整正确。
The export filter component must be available (you must put it on the form of your project) and be adjusted correctly.8.创建自定义预览窗体FastReport在标准的预览窗口中显示报表。
如果因为某些原因而不适合你,你可以创建一个自定义预览窗体。
为了这个目的,需要设计FastReport组件面板中的“TfrxReport”组件。
要显示报表,TfrxReport.Preview方法应该连接到这个组件。
在使用TfrxPreview组件的时候,有两个典型的问题。
他不会处理按键(箭头,PgUp,PgDown等等)和鼠标滚轮(如果有的话)。
要让TfrxPreview同按键工作,设置焦点给他(他是可以做到的,例如,在窗体的OnShow事件句柄中)frxPreview.SetFocus;要让TfrxPreview同鼠标滚轮工作,你必须创建OnMouseWheel事件句柄,并且调用TfrxPreview.MouseWheelScroll方法。
procedure TForm1.FormMouseWheel(Sender: TObject; Shift: TShiftState; WheelDelta: Integer; MousePos: TPoint; var Handled: Boolean);beginfrxPreview1.MouseWheelScroll(WheelDelta);end;9.建立复合报表(批量打印)在某些情况下,需要立刻组织几个报表打印,或者在一个打印预览窗体中封装并呈现几个报表。
要执行这些,在FastReport中有些工具能够允许建立一个新的报表附加在一个已经存在的报表上。
“TfrxReport.PrepareReport”方法中有一个选项“ClearLasReport”布尔类型参数,默认情况下他等于True,这个参数定义了是否有必要在建立报表时清除前一个报表。
下面的方法展示了如何从两个报表中建立一个批量报表:Pascal:frxReport1.LoadFromFile('1.fr3');frxReport1.PrepareReport;frxReport1.LoadFromFile('2.fr3');frxReport1.PrepareReport(False);frxReport1.ShowPreparedReport;C++:frxReport1->LoadFromFile("1.fr3");frxReport1->PrepareReport(true);frxReport1->LoadFromFile("2.fr3");frxReport1->PrepareReport(false);frxReport1->ShowPreparedReport();我们加载并建立第一个报表,但并没有显示他。