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