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

posted @ 2021-05-24 14:58  roffey  阅读(141)  评论(0编辑  收藏  举报