カスタムアセンブリを作成した後、レポート デザイナーやレポートサーバーで利用可能にし、適切なセキュリティポリシーを追加し、レポート定義にカスタムアセンブリへの参照を追加すれば、レポート式を使ってアセンブリ内のクラスのメンバーにアクセスできます。 式の中でカスタム コードを参照するには、アセンブリ内のクラスのメンバーを呼び出す必要があります。 呼び出す方法は、メソッドが静的であるかインスタンス ベースであるかにより異なります。
レポート定義ファイルから静的メンバーを呼び出します
静的メンバーはクラスや型自体に属し、インスタンス化されたオブジェクトには属しません。 これらのメンバーはクラスから直接呼び出すことでアクセスできます。 可能な限り、レポートでカスタム関数を呼び出す際には静的メンバーを使うべきです。なぜなら、静的メンバーが最も効果的に機能するからです。 静的メンバーを呼び出すには、それを =Namespace.Class.Method の形をとる式として参照する必要があります。
静的メンバーの呼び出し
静的メンバーを呼び出すには、名前空間、クラス名、メンバー名を含むメンバーの完全修飾名に式を等しく設定します。 以下の例は ToGBP メソッドを呼び起こしており、これは StandardCost フィールドの価値をドルからポンド・スターリングに変換し、レポートに表示します。
=CurrencyConversion.DollarCurrencyConversion.ToGBP(Fields!StandardCost.Value)
静電場と性質に関する重要な情報
現在、すべてのレポートは同じアプリケーションドメイン内で実行されています。 つまり、ユーザー固有の静的データを含むレポートは、同じレポートの他のインスタンスにデータを公開します。 この条件により、あるユーザーの静的データが現在特定のレポートを実行しているすべてのユーザーに利用可能になる可能性があります。 このため、カスタムアセンブリや コード 要素で静的フィールドやプロパティを使用することは強く推奨されません。代わりに、レポートでインスタンスフィールドやプロパティを使いましょう。 静的メソッドは状態やデータを保存しないため、依然として使えます。
レポート定義ファイルからインスタンスメンバーを呼び出す
カスタムアセンブリにレポート定義でアクセスが必要なインスタンスメンバーが含まれている場合は、レポートにクラス名を追加する必要があります。 クラスのインスタンス名は、Report Propertiesダイアログの「Code」タブを使って追加できます。 レポートにクラスのインスタンスを追加する詳細は、レポート デザイナー(SSRS)のExpressionsにおけるカスタムコードおよびアセンブリ参照を参照してください。
静的メンバーを呼び出すには、=Code*の形をとる式として参照する必要があります。InstanceName.Method*.
コールインスタンスメンバー
カスタムアセンブリのインスタンスメンバーを呼び出すには、 Code キーワードを参照し、その後にインスタンス名とメソッドを付ける必要があります。 以下の例は、StandardCostフィールドの値をドルからユーロに変換し、レポートに表示するインスタンスメソッドToEURを呼び出します。
=Code.m_myDollarConversion.ToEUR(Fields!StandardCost.Value)