次の方法で共有


カスタム アセンブリ オブジェクトの初期化

場合によっては、カスタム アセンブリ クラスをインスタンス化するときに、プロパティとフィールドの値を初期化する必要があります。 ほとんどの場合、レポートのグローバル オブジェクト コレクションから使用できる値を使用して、カスタム クラスを初期化する必要があります。 これを行うには、レポートの Code オブジェクトの OnInit メソッドをオーバーライドします。 OnInit にアクセスするには、レポート定義の Code 要素を使用します。 レポートで使用する予定のカスタム アセンブリ内のクラスのプロパティまたはフィールド値を初期化するには、2 つの手法があります。 OnInit を使用してクラスの新しいインスタンスを宣言して作成するか、 OnInit を使用して公開されているメソッドを呼び出すことができます。

グローバル オブジェクト コレクションと初期化

カスタム クラス変数を初期化するために、いくつかのコレクションを使用できます。 Globals コレクションと User コレクションを使用できます。 パラメーターフィールド、および ReportItems コレクションは、OnInit メソッドが呼び出されたときに、レポートのライフサイクルの時点では使用できません。 共有コレクション、 グローバル 、または ユーザーを使用するには、 レポート オブジェクト参照を含める必要があります。 たとえば、レポートにアクセスするユーザーの現在の言語に基づいてカスタム クラスを初期化する場合、 Code 要素は次のようになります。

<Code>  
   Dim m_myClass As MyClass  
  
   Protected Overrides Sub OnInit()  
      m_myClass = new MyClass(Report.User!Language, _  
         Report.Globals!ExecutionTime)  
   End Sub  
</Code>  

前に示したように、クラスのプロパティとフィールド値を初期化する方法の 1 つは、クラスを宣言し、オーバーライドされたコンストラクターを呼び出して新しいインスタンスを作成することです。

カスタム アセンブリ内のクラスのプロパティ値とフィールド値を初期化するもう 1 つの方法は、 OnInit メソッドから定義したパブリックに使用可能なメソッドを呼び出す方法です。 まず、レポート定義ファイルにクラスのインスタンス名を追加する必要があります。 適切なアセンブリ参照とインスタンス名を追加したら、初期化メソッドを呼び出して、クラスのプロパティとフィールド値を初期化できます。 OnInit メソッドは次のようになります。

<Code>  
   Protected Overrides Sub OnInit()  
      m_myClass.MyInitializationMethod(Report.User!Language, _  
         Report.Globals!ExecutionTime)  
   End Sub  
</Code>  

カスタム クラスのアセンブリ参照とインスタンス名の追加の詳細については、「 レポートへのアセンブリ参照の追加 (SSRS)」を参照してください。

グローバル オブジェクト コレクションの詳細については、「 式の組み込みコレクション (レポート ビルダーおよび SSRS)」を参照してください

こちらもご覧ください

レポートでのカスタム アセンブリの使用