FastReport VCL程序员手册:报告缓存、MDI架构/使用变量列表
FastReport VCL程序员手册:报告缓存、MDI架构
FastReport VCL是用于Delphi,C ++ Builder,RAD Studio和Lazarus的报告和文档创建VCL库。它提供了可视化模板设计器,可以访问为30多种格式,并可以部署到云,网站,电子邮件和打印中。
近日,FastReport VCL更新至v6.9,在新版本中,在PDF更新中增加了对以下对象的并行表单支持:文本,替换和图片。能够通过InteractiveForms字体子集属性将所需的字形仅包含在相互之间形式中。同时修复了多个Bug问题。
【慧都网】免费下载FastReport VCL v6.9最新版
报告缓存
可以将报告及其数据缓存在内存中(用于提高速度)和磁盘中的文件中(用于保存RAM资源)。FastReport中有几种缓存类型:
- TfrxReport.EngineOptions.UseFileCache-如果该属性安装在True中,则生成的报告的整个文本和对象将保存在磁盘上的临时文件中,这TfrxReport.EngineOptions.MaxMemoSize表示RAM中的模板意味着多少MB。
- TfrxReport.PreviewOptions.PagesInCache -可以保留在高速缓存中的页面数大大提高了预览速度,但是却花费了很多内存(尤其是在模板中有图片时)。
- TfrxReport.PreviewOptions.PictureCacheInFile -如果启用此属性,则比已构建报告的所有图片都保存在磁盘上的临时文件中,这大大减少了包含大量图片的报表中的内存使用,但会降低速度。
MDI架构
在FastReport中,可以创建用于预览和设计人员的MDI应用程序。该示例的源代码在FastReport Demos \ MDI Designer目录中。
值得一提的是,建议您TfrxReport为每个预览窗口或设计器创建自己的窗口,否则所有窗口都将引用同一报表。
变量的概念在相应的章节中进行了详细说明。让我们简短地提醒大家要点。
用户可以在报告中指定一个或多个变量。可以为每个变量分配一个值或表达式,当引用一个变量时将自动计算出该值或表达式。变量可以通过“数据树”窗口直观地插入到报表中。将变量用于复合表达式的别名非常方便,而复合表达式经常在报表中使用。
使用变量时,必须使用“ frxVariables”单元。变量由TfrxVariable类表示。
TfrxVariable = class(TCollectionItem) published property Name: String; // Name of a variable property Value: Variant; // Value of a variable end;
变量列表由TfrxVariables类表示。它包含使用列表所需的所有方法。
TfrxVariables = class(TCollection) public // Adds a variable to the end of the list function Add: TfrxVariable; // Adds a variable to the given position of the list function Insert(Index: Integer): TfrxVariable; // Returns the index of a variable with the given name function IndexOf(const Name: String): Integer; // Adds a variable to the specified category procedure AddVariable(const ACategory, AName: String; const AValue: Variant); // Deletes a category and all its variables procedure DeleteCategory(const Name: String); // Deletes a variable procedure DeleteVariable(const Name: String); // Returns the list of categories procedure GetCategoriesList(List: TStrings; ClearList: Boolean = True); // Returns the list of variables in the specified category procedure GetVariablesList(const Category: String; List: TStrings); // The list of variables property Items[Index: Integer]: TfrxVariable readonly; // Values of variables property Variables[Index: String]: Variant; default; end;
如果变量列表很长,则按类别将其分组很方便。例如,当具有以下变量列表时:
Customer name Account number In total Total vat
可以用以下方式表示它:
Properties Customer name Account number Totals In total total vat
有以下限制:
- 至少必须创建一个类别
- 类别构成数据树的第一层,变量构成第二层
- 类别不能嵌套
- 变量的名称在整个列表中必须是唯一的,而不是在类别中
如果您对FastReport感兴趣,欢迎加入FastReport QQ交流群:801349317