建立自定義元件之後,即可將它提供給報表設計師或報表伺服器、新增適當的安全策略,並在報表定義中新增自定義元件的參考,您可以使用報表表達式存取元件中的類別成員。 若要參考表示式中的自訂程式碼,您必須在元件中呼叫 類別的成員。 執行此動作的方式取決於方法是否為靜態或實例型。
從報表定義檔呼叫靜態成員
靜態成員屬於類別或類型本身,而不是具現化物件。 您可以從 類別直接呼叫這些成員來存取這些成員。 您應該盡可能使用靜態成員在報表中呼叫自定義函式,因為靜態成員的表現最好。 若要呼叫靜態成員,您必須將其參考為採用 =Namespace.Class.Method 格式的表達式。
呼叫靜態成員
若要呼叫靜態成員,請將表達式設定為等於成員的完整名稱,其中包括命名空間、類別名稱和成員名稱。 下列範例會呼叫 To GBP 方法,此方法會將 StandardCost 域值從美元轉換為英鎊,並將其顯示在報表中:
=CurrencyConversion.DollarCurrencyConversion.ToGBP(Fields!StandardCost.Value)
靜態欄位和屬性的重要資訊
目前,所有報表都會在相同的應用程式域中執行。 這表示具有使用者特定靜態數據的報表會將此數據公開給相同報表的其他實例。 此條件可能會讓一位使用者的靜態數據可供目前執行特定報表的所有使用者使用。 基於這個理由,強烈建議您不要在自定義元件或 Code 元素中使用靜態字段或屬性;請改用報表中的實例欄位或屬性。 靜態方法仍可使用,因為它們不會儲存狀態或數據。
從報表定義檔呼叫實例成員
如果您的自定義元件包含您需要在報表定義中存取的實例成員,則必須將類別的實例名稱新增至報表。 您可以使用 [報表屬性] 對話方塊的 [程序代碼] 索引標籤,為類別新增實例名稱。 如需將類別實例加入報表的詳細資訊,請參閱報表設計師中表達式中的自定義程式代碼和元件參考 (SSRS)。
若要呼叫靜態成員,您必須將它當做採用 = Code* 表單的表達式來參考它。InstanceName.Method*。
呼叫實例成員
若要呼叫自定義元件的實例成員,您必須參考 Code 關鍵詞,後面接著實例名稱和方法。 下列範例會呼叫 ToEUR 實例方法,將 StandardCost 域值從美元轉換成歐元,並將其顯示在報表中:
=Code.m_myDollarCoversion.ToEUR(Fields!StandardCost.Value)