FastReport VCL报表开发人员手册:自定义向导编写

FastReport 支持两种类型的向导。第一种类型包括已经提到的向导,从“文件|新建…”菜单调用。第二个包括向导,可以从“向导”工具栏调用。

您可以在自定义向导的帮助下扩展 FastReport 功能。例如,FastReport 包含标准的“报告向导”,它从“文件|新建…”菜单中调用。

FastReport 支持两种类型的向导。第一种类型包括已经提到的向导,从“文件|新建…”菜单调用。第二个包括向导,可以从“向导”工具栏调用。

任何向导的基本类是TfrxCustomWizard,在“frxClass”文件中定义。

  TfrxCustomWizard = class(TComponent)  Public    Constructor Create(AOwner: TComponent); override;    class function GetDescription: String; virtual; abstract;    function Execute: Boolean; virtual; abstract;    property Designer: TfrxCustomDesigner read FDesigner;    property Report: TfrxReport read FReport;  end;

要编写自己的向导,必须从此类继承并至少覆盖GetDescription和Execute方法。第一个返回向导名称;第二个在运行向导时被调用;如果向导成功完成工作并对报告进行了任何更改,则它必须返回“True”。在向导工作期间,您可以通过Designer和Report属性正确调用设计器和报告方法和属性。

向导注册和删除是通过“frxDsgnIntf”文件中描述的过程执行的:

frxWizards.Register(ClassRef: TfrxWizardClass; ButtonBmp: TBitmap; IsToolbarWizard: Boolean = False);frxWizards.Unregister(ClassRef: TfrxWizardClass);

在注册时,输入向导类名称、其图片,并指定向导是否放置在“向导”工具栏中。如果向导应放置在工具栏中,则 ButtonBmp 大小必须为 16×16 像素,否则为 32×32 像素。

让我们检查原始向导,它正在“文件|新建…”菜单中注册,然后添加新的页面来报告。

uses frxClass, frxDsgnIntf;type  TfrxMyWizard = class(TfrxCustomWizard)  public    class function GetDescription: String; override;    function Execute: Boolean; override;  end;class function TfrxMyWizard.GetDescription: String;begin  Result := 'My Wizard';end;function TfrxMyWizard.Execute: Boolean;var  Page: TfrxReportPage;begin  { lock any drawings in designer }  Designer.Lock;  { create new page in report }  Page := TfrxReportPage.Create(Report);  { create unique name for page }  Page.CreateUniqueName;  { set paper sizes and orientation by default }  Page.SetDefaults;  { update report pages and switch focus to last added page }  Designer.ReloadPages(Report.PagesCount - 1);end;var  Bmp: TBitmap;initialization  Bmp := TBitmap.Create;  { load picture from resource; of course, you should place it there first }  Bmp.LoadFromResourceName(hInstance, 'frxMyWizard');  frxWizards.Register(TfrxMyWizard, Bmp);finalization  frxWizards.Unregister(TfrxMyWizard);  Bmp.Free;end.

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

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

标签:

来源:慧都

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2021年6月24日
下一篇 2021年6月25日

相关推荐

发表回复

登录后才能评论