FastReport components review
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);使用指定的导出过滤器(export filter)导出报表內容。因为下列的方法只提供一种服务,
在大部分的情況之下,你并不须要使用它们。在增強FastReport 的报表功能方面,他们可能是很有用的。例如,当撰写自定义的报表元件时。
function Calc(const Expr: String): Variant;计算“Expr” 运算式并返回结果。
function GetAlias(DataSet: TfrxDataSet): String;返回指定数据集(data set)的别名。
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 = '');加入使用者自定函数至报表的函数列表。详细资料参考“The functions’ listextension” 一章。
TfrxReport 元件拥有下列属性:
property EngineOptions: TfrxEngineOptions;与FastReport 引擎相关的属性集合。
property IniFile: String;储存fastReport 环境变量设定的文档或注册码的名称。
property Preview: TfrxCustomPreview;连接到“TfrxPreview” 元件,完成的报表将显示在此元件上。假如此属性空白,
报表将显示于标准的预览窗口。参见“Custom preview windows creating”一章。
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” 元件,经由该连接,你可以为你的报表脚本语言加入变量、类型、函数以供以后调用。更多资料参见“FastScript developer’s manual” 。
property Style: TfrxStyle;报表式样。详细资料参见“operating with styles”相关章节。
property Variables: TfrxVariables readonly;报表变量列表。参见“operating with variables”
FastReport 引擎的相关属性集合:
TfrxEngineOptions = class(TPersistent)
published
property 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)
published
property AllowEdit: Boolean default True;允许或不允许编辑预览窗口中的报表。
property Buttons: TfrxPreviewButtons;预览窗口中的可用按钮集合。
TfrxPreviewButtons = set of 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)
published
property 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)
published
property 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 元件:2
property OnAfterPrint: TfrxAfterPrintEvent;发生在处理完每个报表物件之后(打印后)。
property OnBeforePrint: TfrxBeforePrintEvent;发生在处理完每个报表物件之前(打印前)。
property OnClickObject: TfrxClickObjectEvent;当预览一份报表时,选取报表内的物件时触发该事件。
property OnGetValue: TfrxGetValueEvent;当启动一份报表,发现未定义的变量时,该事件必须返回变量的值。
property OnManualBuild: TfrxManualBuildEvent;当开始打印报表,假如此事件被启动,然后FastReport 的引擎将被阻断(不处理),报表处理方法将交由程序员所写的程序处理。
property OnMouseOverObject: TfrxMouseOverObjectEvent;当报表处于浏览窗口,且鼠标指针移到该物件上时触发此事件。
property OnUserFunction: TfrxUserFunctionEvent;当执行报表的过程中,当调用的函数不存在,请使用“AddFunction” 方法提供自定义函数。