彩票走势图

FastReport VCL报表控件开发者手册八:自定义向导

原创|其它|编辑:郝浩|2012-12-04 10:38:14.000|阅读 490 次

概述:你可以在自定义向导的帮助下,扩展FastReport VCL报表功能。通过“File >|New…”菜单项调用FastReport VCL中包含的标准“Report Wizard”。FastReport VCL 支持2种类型的向导。上述提到的是第一种类型的向导,通过“File >|New…”菜单项调用它。第二种类型的向导通过“Wizards”工具栏来对其进行调用。

# 慧都年终大促·界面/图表报表/文档/IDE等千款热门软控件火热促销中 >>

相关链接:

你可以在自定义向导的帮助下,扩展FastReport VCL报表功能。通过“File >|New…”菜单项调用FastReport VCL中包含的标准“Report Wizard”。FastReport VCL 支持2种类型的向导。上述提到的是第一种类型的向导,通过“File >|New…”菜单项调用它。第二种类型的向导通过“Wizards”工具栏来对其进行调用。

“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;

你可以从“TfrxCustomWizard”基类中继承你自己的向导,并且至少重写“GetDescription”和“Execute” 方法。第一种方法返回向导的名称;当运行向导时,便调用第二种方法。如何完成向导操作并对报表进行了修改,第二种方法便返回为“True”。运行向导时,通过“Designer”和“Report” 属性,你可以像平时一样访问设计器,报表方法和属性。

利用“frxDsgnIntf”文件中所定义的程序实现向导注册和删除。

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

在向导注册过程中,需要提供向导类名,图片以及向导是否放置到 “Wizards” 工具栏上。如果向导被放置到工具栏上,ButtonBmp大小可以为16×16像素或者32x32像素。

接下来的示例,我们就用本文中所提及的第一种向导来为报表添加一个新页面。

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 to defaults }
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, it must already be there }
Bmp.LoadFromResourceName(hInstance, 'frxMyWizard');
frxWizards.Register(TfrxMyWizard, Bmp);
finalization
frxWizards.Unregister(TfrxMyWizard);
Bmp.Free;
end.

 


标签:

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

文章转载自:慧都控件网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP