用户手册中描述了 告继承。我们将在这里描述一些关键时刻。
用户手册中描述了 告继承。我们将在这里描述一些关键时刻。
如果将 告存储在文件中,则需要设置文件夹名称,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交流群:702295239
还想要更多吗可以点击阅读【FastReport 表2020最新资源盘点】,查找需要的教程资源。让人兴奋的是FastReport .NET正在 火热销售中!>>查看价格详情
标签:
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!