首页 > 代码库 > FastReport 使用说明

FastReport 使用说明

FastReport TfrxReport此为最主要的报表元件,一个 TfrxReport 元件组成一份报表。在设计时期,双击此元件可打开报表设计器(Report Designer),此元件拥有所有载入、存盘、设计及来看报表必须的属性及方法。TfrxReport 提供的方法:procedure Clear; 清除报表function LoadFromFile(const FileName: String; ExceptionIfNotFound: Boolean = False): Boolean; 从给予的文件载入报表。假如第二个参数等于 “True”且文件不存在,将产生例外状况, 假如文件载入成功,返回值为”True ” 。procedure LoadFromStream(Stream: TStream); 从数据流(stream)载入报表。procedure SaveToFile(const FileName: String); 保存报表至指定的文件。procedure SaveToStream(Stream: TStream); 保存报表至数据流(stream)。procedure DesignReport; 进入报表设计环境。报表设计环境将嵌入在你的工程文件 要执行此功能,只要在 uses 句加入 frxDesign单元或在工程文件中加入“TfrxDesigner” 元件。procedure ShowReport(ClearLastReport: Boolean = True); 开始制作报表并输出结果显示在预览窗口。例如“ClearLastReport”参数等于“False”,报表将会加入至前一个报表的后面,否则前一个建立的报表会被清除预置值。function PrepareReport(ClearLastReport: Boolean = True): Boolean; 开始制作报表,但沒有显示预览窗口。参数指定方式与“ShowReport” 方法(method)相同。假如报表创建成功,此函数返回“True” 。 procedure ShowPreparedReport; 显示先前使用“PrepareReport” 所建立的报表。 procedure Print; 打印报表。 procedure Export(Filter: TfrxCustomExportFilter); 使用指定的导出过滤器(exportfilter)导出报表內容。因为下列的方法只提供一种服务在大部分的情況之下,你并不须要使用它们。在增強 FastReport 的报表功能方面,他们可能是很有用的。例如,当撰写自定义的报表元件时。 function Calc(const Expr: String): Variant; 计算“Expr” 运算式并返回结果。 function GetAlias(DataSet: TfrxDataSet): String; 返回指定数据集 (dataset)的别名。 function GetDataset(const Alias: String): TfrxDataset; 返回指定别名(Alias)的数据集。 procedure DoNotifyEvent(Obj: TObject; const EventName: String); 执行连接至”Obj” 物件的“EventName”事件处理程序。 procedure DoParamEvent(const EventName: String;var Params:Variant); 以任意的参数类型执行 “EventName”的事件处理程序。 procedure GetDatasetAndField(const ComplexName: String; var Dataset: TfrxDataset; var Field: String); 解析“ComplexName”复合名称(以DataSet.”Field”表示),并返回参照的数据集及字段名称。 procedure GetDataSetList(List: TStrings; OnlyDB: Boolean = False); 从 List参数返回报表可用的数据集列表,假如第二个参数为 True,仅返回连接到数据库的数据集。 procedure AddFunction(const FuncName: String; const Category: String = ‘‘; const Description: String = ‘‘); 加入使用者自定函数至报表的函数列表。 TfrxReport 元件拥有下列属性: property EngineOptions: TfrxEngineOptions; 与 FastReport引擎相关的属性集合。 property IniFile: String; 储存 fastReport 环境变量设定的文档或注册码的名称。 property Preview: TfrxCustomPreview; 连接到“TfrxPreview” 元件,完成的报表将显示在此元件上。假如此属性空白,报表将 显示于标准的预览窗口。 property PreviewOptions: TfrxPreviewOptions; 与报表预览相关的属性。 property PrintOptions: TfrxPrintOptions; 与报表打印相关的属性。 property ReportOptions: TfrxReportOptions; 定义报表相关的属性。 property ScriptLanguage: String; 报表使用的脚本语言 (Script la nguage)。 property ScriptText: TStrings; 脚本语言的内容。 property AllObjects: TList readonly; 报表内所有的物件列表(包括页定义元件)。 property DataSets: TfrxReportDataSets readonly; 报表可用的数据集列表。 property Designer: TfrxCustomDesigner readonly; 连结到报表设计元件 property Engine: TfrxCustomEngine readonly; 连结报表引擎。对于要使用程序码处理报表是非常有用的,它可以自定义报表处理引擎。 property Errors: TStrings readonly; 错误清单,发生在一个或其它的进程。 property FileName: String; 定义报表的文件名称;文件名会显示在设计环境的窗口标题中。 property PreviewPages: TfrxCustomPreviewPages readonly; 定义一个连结到已完成的报表页面。它可被使用在所有地方,例如打印、存盘及导出等。 property Pages[Index: Integer]: TfrxPage readonly; 报表页面列表,其中对话框类型也包括在列表中。 property PagesCount: Integer readonly; 报表的页数。property Script: TfsScript readonly; 连结报表的“TfsScript” 元件,经由该连接,你可以为你的报表脚本语言加入变量、类型、函数以供以后调用。property Style: TfrxStyle; 报表式样。property Variables: TfrxVariables readonly; 报表变量列表。FastReport 引擎的相关属性集合:TfrxEngineOptions = class(TPersistent)publishedproperty ConvertNulls: Boolean default True;转换数据库字段的 值至 或空字串 依字段型态而定 。“Null” “0”, “False” ( )property DoublePass: Boolean default False;使报表进行二次处理,第一次进行资料搜集 例如报表总页数 ,第二次才实际进行报( )表处理。property MaxMemSize: Integer default 10;配置报表页面缓存(Cache)的最大内存使用量(Mbytes),当“UseFileCashe”属性等于“True” 时特别有用。假如在建立期间耗用太多内存,已建立的报表缓存页面将会被写入缓存文件,此属性并不非常的精确,它只大約的決定内存的限制。property PrintIfEmpty: Boolean default True;定义是否要打印空白报表(没有打印资料的报表)。property TempDir: String;指定保存临时文件的目录。property UseFileCache: Boolean default False;定义产生的预览报表是否缓存 到文件。 见 属性(Cache) ( “MaxMemSize” )end;报表预览的相关属性集合:TfrxPreviewOptions = class(TPersistent)publishedproperty AllowEdit: Boolean default True;允许或不允许编辑预览窗口中的报表。property Buttons: TfrxPreviewButtons;预览窗口中的可用按钮集合。TfrxPreviewButtons = setof TfrxPreviewButton; TfrxPreviewButton= (pbPrint, pbLoad, pbSave, pbExport, pbZoom, pbFind, pbOutline,pbPageSetup, pbTools, pbEdit, pbNavigator);此属性可用的值如下:pbPrint - 打印pbLoad - 载入文件pbSave - 存报表到文件pbExport - 导出pbZoom - 显示比例pbFind - 搜寻pbOutline - 选定报表边框pbPageSetup - 页面设定pbTools - 工具pbEdit - 编辑pbNavigator - 导航上面的值你可以混合使用。property DoubleBuffered: Boolean default True;预览窗口采用双缓存区模式。假如启用 预置值 ,画面输出时屏幕不会有闪烁的情形,( )但处理速度会稍微下降。property Maximized: Boolean default True;定义预览窗口是否最大化。property MDIChild: Boolean default False;定义预览窗口是否为MDIChild (给MDI 介面使用)。property Modal: Boolean default True;定义预览窗口是否为Modal模示。property OutlineVisible: Boolean default False;定义是否显示报表的大纲。property OutlineWidth: Integer default 120;定义报表大纲显示的宽度。property ShowCaptions: Boolean default False;定义是否显示按钮的标题。当启动该属性时,你应该限制Buttons 属性所显示按钮的个数,因为所有的按钮无法显示于同一画面。property Zoom: Extended;预置的显示百分比率。property ZoomMode: TfrxZoomMode default zmDefault;预置显示模式。可用的值如下:zmDefault - 显示百分比率视“Zoom” 属性而定zmWholePage - 整页模示zmPageWidth - 页宽zmManyPages - 两页end;报表打印相关属性的集合:TfrxPrintOptions = class(TPersistent)publishedproperty Copies: Integer default 1;预置的打印份数。property Collate: Boolean default True;不管校对份数。property PageNumbers: String;打印的页码。例如,“1,3,5-12,17-“ 。property Printer: String;打印机名称。property PrintPages: TfrxPrintPages default ppAll;定义要打印的方式。可用的值如下:ppAll – 全部ppOdd – 奇数页ppEven – 偶数页property ShowDialog: Boolean default True;是否显示打印窗口。end;报表相关属性的集合:TfrxReportOptions = class(TPersistent)publishedproperty Author: String;报表作者。property CreateDate: TDateTime;报表建立日期。property Description: TStrings;报表描述。property Name: String;报表名称。property LastChange: TDateTime;报表最后修改日期。property Password: String;报表密码。假如该属性为空白,当打开报表定义档时需要输入密码。property Picture: TPicture;报表图片。property SilentMode: Boolean default False;无声 (Silent)方式。所有的错误信息将被保存在“TfrxReport.Errors”属性,而不会在屏幕上显示任何信息。property VersionBuild: String;property VersionMajor: String;property VersionMinor: String;property VersionRelease: String;决定报表版本的属性。end;下列的事件定义于 TfrxReport 元件:2property OnAfterPrint: TfrxAfterPrintEvent;发生在处理完每个报表物件之后(打印后)。property OnBeforePrint: TfrxBeforePrintEvent;发生在处理完每个报表物件之前(打印前)。property OnClickObject: TfrxClickObjectEvent;当预览一份报表时,选取报表内的物件时触发该事件。property OnGetValue: TfrxGetValueEvent;当启动一份报表,发现未定义的变量时,该事件必须返回变量的值。property OnManualBuild: TfrxManualBuildEvent;当开始打印报表,假如此事件被启动,然后FastReport的引擎将被阻断(不处理),报表处理方法将交由程序员所写的程序处理。property onm ouseOverObject: TfrxMouseOverObjectEvent;当报表处于浏览窗口,且鼠标指针移到该物件上时触发此事件。property OnUserFunction: TfrxUserFunctionEvent;当执行报表的过程中,当调用的函数不存在,请使用“AddFunction”方法提供自定义函数。TfrxDBDatasetTfrxUserDataset数据存取元件。FastReport使用这些元件读取及参考数据库的字段,这两个元件都源于 “TfrxDataSet” 并继承其大部分的功能。TfrxUserDataSet元件允许构建未连接到数据库的报表,而由其它来源接收数(据如:数列、文件等)。在此同时,程序员仅需提供浏览此数据集的功能,资料接收并非由此元件执行,而是用其它的方法(例如,经由“TfrxReport.OnGetValue”事件)。TfrxUserDataSet 元件有下列的属性:property RecNo: Integer readonly;目前记录编号,首笔的记录编号是“ ”0property Enabled: Boolean default True;定义此元件是否可在designer里面使用。property RangeBegin: TfrxRangeBegin default rbFirst;数据导航(navigation)的起点。下列的值可以使用:rbFirst – 从数据的第一笔记录开始。rbCurrent – 从当前的记录开始。property RangeEnd: TfrxRangeEnd default reLast;数据导航(navigation)的起点。下列的值可以使用:reLast – 直到数据结束。ReCurrent – 直到目前的记录。reCount – 依“RangeEndCount” 属性而定。property RangeEndCount: Integer;数据集中的数据个数,此功能只在“RangeEnd”属性等于 reCount 有效。property UserName: String;符号名称。在报表设计环境(Designer)下,将被显示于DataSet 的下方。property OnCheckEOF: TfrxCheckEOFEvent;TfrxCheckEOFEvent=procedure(Sender:TObject;varEof:Boolean)of object; 此事件在数据集的尾端时,Eof参数将返回 True。property OnFirst: TNotifyEvent;数据集移至第一笔的位置时,会触发此事件。property OnNext: TNotifyEvent;数据集移至下一笔的位置时,会触发此事件。property OnPrior: TNotifyEvent;数据集移至上一笔的位置时,会触发此事件。TfrxDBDataSet 元件用来连接以 TDataSet, TTable 及 TQuery 为基类的数据库元件,有关数据的导航及字段的参考都是自动的,程序员不需特殊的设定。除上述属性外,该元件有下列的属性:property CloseDataSource: Boolean default False;报表创建完成后,关闭数据库。property OpenDataSource: Boolean default True;在报表创建之前打开数据库。property FieldAliases: TStrings;数据集字段的符号名称 别名 。( )property DataSet: TDataSet; property DataSource:TDataSource;连结至 TDataSet 或 TDataSource 类型的元件。property OnClose: TNotifyEvent;当关闭数据集时触发此事件。property OnOpen: TNotifyEvent;当打开数据集时触发此事件TfrxDesignerTfrxDesigner 元件是报表设计器,当使用此元件,你的工程文件就可以使用报表设计器,此元件它只包含一些报表设计器的设定,当加入”frxDesign” 单元到uses 清单中,就表明与报表设计器连接上了。此元件包含下列的属性:property CloseQuery: Boolean default True;定义结束设计报表是否询问储存报表之用。property OpenDir: String;打开报表的预置数据目录。property SaveDir: String;储存报表的预置数据目录。property Restrictions: TfrxDesignerRestrictions;报表设计环境下,限制不同的报表操作标识 (flag),此标识包含单一或混合数据值:drDontInsertObject – 禁止插入物件drDontDeletePage – 禁止刪除页面drDontCreatePage – 禁止建立新的页面drDontChangePageOptions – 禁止修改页面属性drDontCreateReport – 禁止建立新报表drDontLoadReport – 禁止载入报表drDontSaveReport – 禁止储存报表drDontPreviewReport – 禁止预览报表drDontEditVariables – 禁止编辑变量drDontChangeReportOptions – 禁止修改报表属性property onl oadReport: TfrxLoadReportEvent;TfrxLoadReportEvent = function(Report: TfrxReport): Boolean ofobject;此事件发生在载入报表之时。利用此事件,你可以从数据库载入报表。property OnSaveReport: TfrxSaveReportEvent;TfrxSaveReportEvent = function(Report: TfrxReport;SaveAs:Boolean): Boolean of object;此事件发生在储存报表之时。利用此事件,你可以将报表储存于数据库中。property OnShow: TNotifyEvent;此事件发生在启动报表设计环境时。TfrxPreview此元件专供建立自定义报表合预览窗口使用。procedure AddPage;加入空白页面到报表末端。procedure DeletePage;删除当前页。procedure Print;打印报表。procedure LoadFromFile;显示文件载入窗口。procedure LoadFromFile(FileName: String);载入指定的文件。procedure SaveToFile;显示文件储存窗口。procedure SaveToFile(FileName: String);储存文件到指定的文件名称。procedure Edit;载入当前页至设计模式供编辑使用。procedure Export(Filter: TfrxCustomExportFilter);使用指定的导出过滤器导出报表。procedure First;第一页。procedure Next;下一页。procedure Prior;上一页。procedure Last;最后一页。procedure PageSetupDlg;显示页面设定窗口。procedure Find;显示文字搜寻窗口。procedure FindNext;继续找下一个。procedure Cancel;取消创建报表。procedure Clear;清除报表。你可以使用下列属性:property PageCount: Integer readonly;报表页数。property PageNo: Integer;目前报表页码 起始值为 。要移至其它页面,指定此属性的值即可。( 1)property Tool: TfrxPreviewTool;选取工具。property Zoom: Extended;显示比例,“1” 代表 100% 。property ZoomMode: TfrxZoomMode;显示模式,可以的显示模式如下:zmDefault – 预置值,显示比例根据“Zoom” 属性而定zmWholePage – 整页模式zmPageWidth – 与页面宽度相同zmManyPages – 一屏显示多页property OutlineVisible: Boolean;是否显示报表大纲 树状结构 。