共用方式為


在報表中加入自訂程式碼 (Visual Studio 報表設計工具)

您可以將自訂函式加入報表中,或加入對於外部組件函式的參考。編譯專案時會自動參考下列組件:Microsoft.VisualBasicAllMembers.T:System.ConvertAllMembers.T:System.Math。您可以使用 [報表屬性] 對話方塊或報表定義中的 CodeModules 元素,以參考其他的組件。您也可以利用 [報表屬性] 對話方塊來定義自訂函式。若要在報表定義中定義自訂函式,請使用 Code 元素。請注意,您無法將資料值集傳給函式 (明確地說,不支援自訂彙總)。

您可以撰寫自訂程式碼,供整份報表的運算式使用。您可以利用兩種方式來執行這個動作:將程式碼內嵌在報表內,或參考自訂組件內的方法。請將內嵌程式碼用在複雜函式或在單一報表內重複使用的函式上。請利用自訂組件,將程式碼維護在單一位置,並供多份報表使用。

內嵌程式碼

若要在報表內使用程式碼,請在報表中加入一個程式碼區塊。這個程式碼區塊可以包含多個方法。內嵌程式碼中的方法必須用 Microsoft Visual Basic 來撰寫,且必須是以執行個體為基礎。

若要將程式碼加入報表中

  1. 在 [報表] 功能表中,按一下 [報表屬性]。

    Note附註

    如果 [報表] 功能表無法使用,請按一下報表設計區域內。

  2. 在 [程式碼] 索引標籤的 [自訂程式碼] 中,輸入程式碼。

內嵌程式碼中的方法是透過在全域範圍內定義的 Code 成員來使用。您藉由參考 Code 成員和方法名稱來存取它們。下列範例會呼叫將 StandardCost 欄位值轉換成美金值的 ToUSD 方法:

=Code.ToUSD(Fields!StandardCost.Value)

自訂組件

若要在報表中使用自訂組件,您必須先建立組件,將它提供給您的專案,並在報表中加入對於這個組件的參考,之後,在報表內利用運算式來參考這個組件內的方法。當報表部署到報表伺服器時,您也必須將自訂組件部署到報表伺服器。

若要將組件參考加入報表

  1. 在 [報表] 功能表中,按一下 [報表屬性]。

    Note附註

    如果 [報表] 功能表無法使用,請按一下報表設計區域內。

  2. 在 [參考] 索引標籤,執行下列動作:

    • 在 [參考] 中,按一下新增 ([...]) 按鈕,再從 [新增參考] 對話方塊中選取或瀏覽到組件。

    • 在 [類別] 中,輸入類別的名稱,再提供報表內所要使用的執行個體名稱。

      Note附註

      請只針對以執行個體為基礎的成員來指定類別和執行個體名稱。請勿在 [類別] 清單中指定靜態成員。

若要在運算式中參考自訂程式碼,您必須在組件內呼叫類別的成員。如何執行這個動作,會隨著方法是靜態方法或以執行個體為基礎的方法而不同。自訂組件內的靜態方法適用於報表內的全域範圍。您可以在運算式中,利用命名空間、類別和方法名稱來存取靜態方法。下列範例會呼叫將 StandardCost 欄位值從美金轉換成英鎊的 ToGBP 方法:

=CurrencyConversion.DollarCurrencyConversion.ToGBP(Fields!StandardCost.Value)

以執行個體為基礎的方法是透過在全域範圍內定義的 Code 成員來使用。您藉由參考 Code 成員,再參考執行個體和方法名稱來存取它們。下列範例會呼叫將 StandardCost 欄位值從美金轉換成歐元的執行個體方法 ToEUR

=Code.m_myDollarCoversion.ToEUR(Fields!StandardCost.Value)

Note附註

在 [報表設計工具] 中,會載入自訂組件一次,在關閉 Visual Studio 之前,都不會卸載。如果您預覽報表,變更報表所用的自訂組件,再重新預覽報表,變更不會出現在第二次的預覽中。若要重新載入組件,請關閉再重新開啟 Visual Studio,再預覽報表。

若要進一步了解如何使用自訂組件,您可以搜尋《SQL Server 2005 線上叢書》中的<搭配報表使用自訂組件。大多數的 Visual Studio 2008 版本都有提供線上叢書。您也可以在 www.microsoft.com 的 MSDN 上檢視線上叢書。線上叢書中有關自訂組件的資訊適用於使用 ReportViewer 控制項部署的報表。

另請參閱

參考

編輯參考對話方塊 (Visual Studio 報表設計工具)
編輯類別對話方塊 (Visual Studio 報表設計工具)

概念

在報表中使用運算式 (Visual Studio 報表設計工具)