FastReport VCL程序员手册:报告继承

翻译|使用教程|编辑:杨鹏连|2021-04-29 09:21:45.383|阅读 12 次

概述:用户手册中描述了报告继承。我们将在这里描述一些关键时刻。

# 31款JAVA开发必备控件和工具 #

相关链接:

FastReport VCL是用于Delphi,C ++ Builder,RAD Studio和Lazarus的报告和文档创建VCL库。它提供了可视化模板设计器,可以访问为30多种格式,并可以部署到云,网站,电子邮件和打印中。

近日,FastReport VCL更新至v6.9,在新版本中,在PDF更新中增加了对以下对象的并行表单支持:文本,替换和图片。能够通过InteractiveForms字体子集属性将所需的字形仅包含在相互之间形式中。同时修复了多个Bug问题。欢迎下载体验。(旁边向下按钮下载)

立即点击下载FastReport VCL v6.9最新版

用户手册中描述了报告继承。我们将在这里描述一些关键时刻。

如果将报告存储在文件中,则需要设置文件夹名称,FastReport将使用该文件夹名称搜索基本报告。该文件夹的内容将显示在“文件|新建...”和“报告|选项...”对话框中:


该TfrxDesigner.TemplateDir属性用于此目的。默认情况下为空,FastReport将在包含项目的可执行文件(.exe)的文件夹中搜索基本报告。您可以将绝对或相对路径放入此属性。

如果将报告存储在数据库中,则必须编写代码以从数据库加载基本报告并获取可用基本报告的列表。使用TfrxReport.OnLoadTemplate事件加载基本报告:

property OnLoadTemplate: TfrxLoadTemplateEvent read FOnLoadTemplate write FOnLoadTemplate;

TfrxLoadTemplateEvent = procedure(Report: TfrxReport; const TemplateName: String) of object;
此事件的处理程序必须将具有给定TemplateName的基本报表加载到Report对象中。这是此类处理程序的示例:
procedure TForm1.LoadTemplate(Report: TfrxReport; const TemplateName: String);
var
  BlobStream: TStream;
begin
  ADOTable1.First;
  while not ADOTable1.Eof do
  begin
    if AnsiCompareText(ADOTable1.FieldByName('ReportName').AsString, TemplateName) = 0 then
    begin
      BlobStream := TMemoryStream.Create;
      TBlobField(ADOTable1.FieldByName('ReportBlob')).SaveToStream(BlobStream);
      BlobStream.Position := 0;
      Report.LoadFromStream(BlobStream);
      BlobStream.Free;
      break;
    end;
    ADOTable1.Next;
  end;
end;
要获取可用模板的列表,应使用以下TfrxDesigner.OnGetTemplateList事件:
property OnGetTemplateList: TfrxGetTemplateListEvent read FOnGetTemplateList write FOnGetTemplateList;

TfrxGetTemplateListEvent = procedure(List: TStrings) of object;
此事件的处理程序必须将可用模板的列表返回到List参数中。这是此类处理程序的示例:
procedure TForm1.GetTemplates(List: TList);
begin
  List.Clear;
  ADOTable1.First;
  while not ADOTable1.Eof do
  begin
    List.Add(ADOTable1.FieldByName('ReportName').AsString);
    ADOTable1.Next;
  end;
end;
FastReport可以继承已经创建的报告。为此,您应该使用以下功能:
TfrxReport.InheritFromTemplate(const templName: String; InheritMode: TfrxInheritMode = imDefault): Boolean
此功能允许从指示的报告继承当前加载的报告。该函数的第一个参数是父模板的文件名,第二个参数允许选择继承模式:
  • imDefault-派生对话并提供重命名/删除重复项的信息
  • imDelete-删除所有备份对象
  • imRename-重命名所有备份对象
注意!父模板的搜索是参考当前模板完成的,这对于将目录结构保持在报表存储位置是必需的。快速报告使用相对路径,这就是为什么不必担心应用程序传输的原因(唯一的例外是当当前模式和父模板放置在不同的载体上或使用了网络路径时)。


如果您对FastReport感兴趣,欢迎加入FastReport QQ交流群:801349317

还想要更多吗?您可以点击阅读【FastReport报表2020最新资源盘点】查找需要的教程资源。让人兴奋的是FastReport .NET正在慧都网火热销售中!>>查看价格详情


标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至hey@evget.com

文章转载自:Fast Reports

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
在线咨询
联系我们
TOP
在线客服系统
live chat