式を使用したカスタム アセンブリへのアクセス
カスタム アセンブリを作成し、レポート デザイナまたはレポート サーバーで利用可能にします。そして、適切なセキュリティ ポリシーを追加し、レポート定義のカスタム アセンブリへの参照を追加すると、レポートの式を使用してアセンブリ内のクラスのメンバにアクセスできます。式の中でカスタム コードを参照するには、アセンブリ内のクラスのメンバを呼び出す必要があります。呼び出す方法は、メソッドが静的であるかインスタンス ベースであるかにより異なります。
レポート定義ファイルから静的メンバを呼び出す
静的メンバはクラスまたは型そのものに所属し、インスタンス化されたオブジェクトには所属しません。静的メンバはクラスから直接呼び出すことによりアクセスできます。可能な場合は常に、静的メンバを使用してレポートのカスタム関数を呼び出す必要があります。その理由は、静的メンバがパフォーマンス上最も優れているからです。静的メンバを呼び出すには、=Namespace.Class.Method の形をとる式として参照する必要があります。
静的メンバを呼び出すには
静的メンバを呼び出すには、式と、完全に修飾されたメンバ名とを等しくします。メンバ名を完全に修飾するには、名前空間、クラス名、およびメンバ名を使用します。次の例では、ToGBP メソッドを呼び出します。このメソッドは、StandardCost フィールドの値をドルから英ポンドに換算し、レポートに表示します。
=CurrencyConversion.DollarCurrencyConversion.ToGBP(Fields!StandardCost.Value)
静的フィールドおよび静的プロパティに関する重要な情報
現在のところ、すべてのレポートは同じアプリケーション ドメインで実行されます。このことは、レポートのユーザー固有の静的データを、同じレポートの他のインスタンスから参照できることを意味します。このような状況では、あるユーザーの静的データを、同時平行して個々のレポートを実行している他のすべてのユーザーが利用できる可能性があります。そのため、カスタム アセンブリまたは Code 要素の中で静的フィールドおよび静的プロパティを使用しないよう、強くお勧めします。レポートの中ではインスタンス フィールドおよびインスタンス プロパティを使用してください。しかし、静的メソッドは、状態やデータを保存しないため、使用可能です。
レポート定義ファイルからインスタンス メンバを呼び出す
レポート定義内からアクセスする必要があるインスタンス メンバがカスタム アセンブリ内に含まれている場合は、クラスのインスタンス名をレポートに追加する必要があります。[レポートのプロパティ] ダイアログ ボックスの [コード] タブを使用してクラスのインスタンス名を追加できます。クラスのインスタンスをレポートに追加する方法の詳細については、「式でのカスタム コード参照の使用 (Reporting Services)」を参照してください。
静的メンバを呼び出すには、=Code.InstanceName.Method の形をとる式として参照する必要があります。
インスタンス メンバを呼び出すには
カスタム アセンブリのインスタンス メンバを呼び出すには、キーワード Code の後にインスタンス名とメソッドを記述して参照する必要があります。次の例では、インスタンス メソッド ToEUR を呼び出します。このメソッドは、StandardCost フィールドの値をドルからユーロに換算し、レポートに表示します。
=Code.m_myDollarCoversion.ToEUR(Fields!StandardCost.Value)