初始化自訂組件物件
在某些情況下,您可能需要在初始化自訂組件類別時,初始化其中的屬性與欄位值。 您很可能需要使用報表全域物件集合中可用的值,來初始化自訂類別。 您可以透過覆寫報表之 Code 物件的 OnInit 方法來完成。 若要存取 OnInit,請使用報表定義的 Code 項目。 有兩個技術可初始化您計劃在報表中使用的自訂組件中類別之屬性或欄位值。您可以使用 OnInit 來宣告和建立類別的新執行個體,或者您可以使用 OnInit 來呼叫公開可用的方法。
全域物件集合與初始化
有幾個集合可供您初始化自訂類別變數。 您可以使用 Globals 和 User 集合。 叫用 OnInit 方法時,無法在報表生命週期內使用 Parameters、Fields 和 ReportItems 集合。 若要使用共用集合 Globals 或 User,您需要加入 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)。