在某些情況下,您可能需要在具現化自定義元件類別中初始化屬性和域值。 您最可能需要使用報表全域物件集合中可用的值來初始化自定義類別。 您可以覆寫報表之 Code 物件的 OnInit 方法來執行此動作。 若要存取 OnInit,請使用報表定義的 Code 元素。 您打算在報表中使用的自定義元件中初始化類別的屬性或域值有兩種技巧:您可以使用 OnInit 宣告和建立類別的新實例,或使用 OnInit 呼叫公開可用的方法。
全域物件集合和初始化
有數個集合可供您初始化自定義類別變數。 您可以使用 Globals 和 User 集合。 叫用 OnInit 方法時,報表生命週期中的時間點無法使用 Parameters、Fields 和 ReportItems 集合。 若要使用共用集合、 全域 或 使用者,您需要包含 Report 物件參考。 例如,若要根據存取報表的使用者目前語言來初始化自定義類別,您的 Code 元素看起來可能如下所示:
<Code>
Dim m_myClass As MyClass
Protected Overrides Sub OnInit()
m_myClass = new MyClass(Report.User!Language, _
Report.Globals!ExecutionTime)
End Sub
</Code>
初始化類別的屬性和域值的方法之一,如先前所示,就是呼叫覆寫的建構函式來宣告您的類別,並建立它的新實例。
初始化自定義元件中類別的屬性和域值的另一個方法是呼叫您從 OnInit 方法定義的公開可用方法。 您必須先在報表定義檔案中新增 類別的實例名稱。 新增適當的元件參考和實例名稱之後,您可以呼叫初始化方法,以初始化 類別的屬性和域值。 您的 OnInit 方法看起來可能如下所示:
<Code>
Protected Overrides Sub OnInit()
m_myClass.MyInitializationMethod(Report.User!Language, _
Report.Globals!ExecutionTime)
End Sub
</Code>
如需為自訂類別新增元件參考和實例名稱的詳細資訊,請參閱 將元件參考新增至報表 (SSRS) 。
如需全域物件集合的詳細資訊,請參閱運算式中的內建集合(報表產生器及 SSRS)。