Initialisation d'objets Assembly personnalisés

Dans certains cas, vous pouvez être amené à initialiser des valeurs de propriété et de champ dans vos classes d'assembly personnalisées lorsque vous les instanciez. Vous aurez vraisemblablement besoin d'initialiser vos classes personnalisées avec des valeurs disponibles à partir des collections d'objets globales du rapport. Pour cela, substituez la méthode OnInit de l'objet Code d'un rapport. Pour accéder à OnInit, utilisez l'élément Code de la définition de rapport. Deux techniques vous permettent d'initialiser les valeurs de propriété ou de champ des classes dans un assembly personnalisé que vous projetez d'utiliser dans votre rapport : vous pouvez soit déclarer et créer une nouvelle instance de votre classe à l'aide d'OnInit, soit appeler une méthode publiquement disponible à l'aide d'OnInit.

Collections d'objets globales et initialisation

Plusieurs collections sont disponibles pour initialiser vos variables de classe personnalisées. Vous pouvez utiliser les collections Globals et User. Les collections Parameters, Fields et ReportItems ne sont pas disponibles au moment où, dans le cycle de vie du rapport, la méthode OnInit est appelée. Pour utiliser les collections partagées, Globals ou User, vous devez inclure la référence d'objet Report. Par exemple, pour initialiser votre classe personnalisée selon la langue actuelle de l'utilisateur qui accède au rapport, votre élément Code peut se présenter comme suit :

<Code>
   Dim m_myClass As MyClass

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

L'une des méthodes permettant d'initialiser les valeurs de propriété et de champ d'une classe comme montré précédemment consiste à déclarer votre classe et à créer une nouvelle instance de celle-ci en appelant un constructeur substitué.

Une autre méthode permettant d'initialiser les valeurs de propriété et de champ des classes dans vos assemblys personnalisés consiste à appeler une méthode publiquement disponible que vous définissez à partir de la méthode OnInit. Vous devez d'abord ajouter un nom d'instance pour votre classe dans le fichier de définition de rapport. Une fois que vous avez ajouté la référence d'assembly et le nom d'instance appropriés, vous pouvez appeler votre méthode d'initialisation pour initialiser les valeurs de propriété et de champ pour votre classe. Votre méthode OnInit peut se présenter comme suit :

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

Pour plus d'informations sur l'ajout d'une référence d'assembly et d'un nom de l'instance pour votre classe personnalisée, consultez Procédure : ajouter une référence d'assembly à un rapport (Reporting Services).

Pour plus d'informations sur les collections d'objets globales, consultez Utilisation de collections intégrées dans les expressions (Reporting Services).