Initialisation d’objets d’assembly personnalisés

Dans certains cas, vous devrez peut-être initialiser des valeurs de propriété et de champ dans vos classes d’assembly personnalisées lorsque vous les instanciez. Vous devez probablement 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 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 point du cycle de vie du rapport lorsque 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 :

Dim m_myClass As MyClass  

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

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 des valeurs de propriété et de champ pour votre classe. Votre méthode OnInit peut se présenter comme suit :

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

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 Ajouter une référence d’assembly à un rapport (SSRS).

Pour plus d’informations sur les collections d’objets globales, consultez Collections intégrées dans les expressions (Générateur de rapports et SSRS).

Utilisation d'assemblages personnalisés avec des rapports