如何為 FastReport .NET 報表建立自己的元件?

語言: CN / TW / HK

FastReport .Net是適用於Windows Forms,ASP.NET,MVC和.NET Core的全功能報表解決方案。它可以在Microsoft Visual Studio 2005-2019中使用。支援.Net Framework 2.0-4.x,.NET Core 3.0及以上版本。

在FastReport .NET 2021.3的新版本在演示應用程式中實現了HiDPI支援。添加了用於嵌入Blazor Server應用程式的Razor元件。XODT和XODS有新的出口。FastReport OpenSource版本現在可以匯入DevExpress,List和Label以及SQL Server Reporting Services報表。(點選下方按鈕下載)

立即點選下載FastReport.NET v2021.3最新版

Fastreport.NET線上購買價優惠,專享85折起!趕緊加入購物清單吧!

FastReport .NET 報告生成器提供了廣泛的定製機會,即根據您自己的需要進行配置。從使用者應用程式程式碼中,您可以使用 FastReport 庫建立自己的報告生成器元件。因此,您可以建立自己的報表設計器及其檢視器。

此外,您可以更改報表設計器中的對話視窗,例如,檔案儲存視窗。

但是,報告生成器的原始碼提供了真正的定製機會。您可以根據需要重新配置當前功能或新增新功能。今天,我們將講如何在報表設計器的工具箱中新增自己的控制元件元素。

讓我們假設您經常在報告中使用具有特定設定的文字物件。使用特定字型或顏色突出顯示配置的物件“文字”會很方便,而不是每次都手動設定這些屬性。

您只需要建立自己的物件!為此,從現有物件繼承物件、擴充套件其功能或建立新功能就足夠了。

要為報表建立自己的元件,您需要報表生成器 FastReport .NET 的原始碼。讓我們考慮基於 Text 物件建立自己的物件的情況。為此,在 FastReport 專案的根目錄中新增一個新類:

public class CustomerTextObject : TextObject
 {
 public override void OnBeforeInsert(int flags)
 {
 base.OnBeforeInsert(flags);
 Border.Lines = BorderLines.All;
 }
 }

在這個類中,我們在插入物件之前重新定義了事件,我們在其中設定了物件邊界的預設值。因此,我們的文字物件從一開始就包含了邊界。如果您需要設定物件的任何其他屬性 - 沒問題。讓我們設定顏色:

 

 

public override void OnBeforeInsert(int flags)
 {
 base.OnBeforeInsert(flags);
 Border.Lines = BorderLines.All;
 TextColor = System.Drawing.Color.Gray;
 }

如果要建立具有自己功能的物件,請從基類 ReportComponentBase 繼承。但在這種情況下,除了物件屬性和行為之外,您還必須進行渲染——Draw() 方法。然後在其中呼叫 base.Draw() 並新增物件的繪圖。

 

讓我們考慮渲染 Text 物件的示例:

 

public override void Draw(FRPaintEventArgs e)
 {
 base.Draw(e);
 DrawText(e);
 DrawMarkers(e);
 Border.Draw(e, new RectangleF(AbsLeft, AbsTop, Width, Height));
 DrawDesign(e);
 }

如您所見,此處同時呼叫了幾種方法:用於渲染文字、標記、邊界和編輯器。

 

建立物件後,您應該註冊它,以便它出現在報表設計器的工具箱中。為此,請使用類 AssemblyInitializer.cs 中的 FastReport.Utils.RegisteredObjects.Add() 方法。

註冊我們建立的物件的例子:

RegisteredObjects.Add(typeof(CustomerTextObject), “ReportPage”, 120, 1);

所有引數依次為:註冊物件的名稱、報表頁面的物件名稱、物件圖示的識別符號、工具箱中物件的序號。圖示儲存在資源中。您可以將 bmp 格式的影象新增到資源中或將其直接傳送到方法引數而不是圖示識別符號。

 

現在您可以編譯解決方案並啟動報表設計器。工具箱中又出現了一個控制元件:

 

�表设计�中�对象

我們使用了 Text 物件的圖示,這就是它看起來相同的原因。現在我們將其新增到報告頁面並輸入文字:

 

 

����对象

如我們所見,框架和文字顏色都對應於我們在程式碼中的設定。我們建立了一個帶有預設邊界和文字顏色的“自定義”物件“文字”。使用此方法,您可以配置報告中的任何現有物件或建立您自己的物件。

 

如果您對FastReport感興趣,歡迎加入FastReport QQ交流群:801349317

還想要更多嗎?可以您點選閱讀【FastReport的報表2020最新資源盤點】查詢需要的教程資源。讓人興奮的是FastReport的.NET報表正在慧都網火熱銷售中!低至3701元型態起!> >檢視價格詳情