翻譯|使用教程|編輯:楊鵬連|2021-07-28 09:51:02.447|閱讀 410 次
概述:FastReport 支持兩種類型的向導。第一種類型包括已經提到的向導,從“文件|新建...”菜單調用。第二個包括向導,可以從“向導”工具欄調用。
# 界面/圖表報表/文檔/IDE等千款熱門軟控件火熱銷售中 >>
相關鏈接:
FastReport VCL是用于 Delphi、C++ Builder、RAD Studio 和 Lazarus 的報告和文檔創建 VCL 庫。它提供了可視化模板設計器,可以訪問 30 多種格式,并可以部署到云、網站、電子郵件和打印中。
您可以在自定義向導的幫助下擴展 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 大小必須為 16x16 像素,否則為 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 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慧正在網火熱銷售中!>>查看價格詳情
本站文章除注明轉載外,均為本站原創或翻譯。歡迎任何形式的轉載,但請務必注明出處、不得修改原文相關鏈接,如果存在內容上的異議請郵件反饋至chenjj@fc6vip.cn
文章轉載自: