FastReport中国社区FastReport联系电话 联系电话:17347785263

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

来源:   发布时间:2021-05-08   浏览:次

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正在慧都网火热销售中!>>查看价格详情

本站文章除注明转载外,均为本站原创或翻译
欢迎任何形式的转载,但请务必注明出处,尊重他人劳动成果
转载请注明:文章转载自:FastReport控件中文网 [https://www.fastreportcn.com/]
本文地址:https://www.fastreportcn.com/post/3041.html

联系我们
  • 重庆总部 17347785263
购买
  • sales@evget.com
合作
  • business@evget.com


在线
客服
微信
QQ 电话
023-68661681
返回
顶部