Initialisation d’objets d’assemblage personnalisés

Dans certains cas, il se peut que vous deviez initialiser les valeurs de propriétés et de champs dans vos classes d’assemblage personnalisées lors de l’instanciation. Vous devrez très probablement initialiser vos classes personnalisées avec des valeurs disponibles dans les collections globales d’objets du rapport. Vous faites cela en supplantant la méthode OnInit de l’objet Code d’un rapport. Pour accéder à OnInit, utilisez l’élément Code de la définition du rapport. Il existe deux techniques pour initialiser les valeurs de propriétés ou de champs des classes dans un assembleur personnalisé que vous prévoyez d’utiliser dans votre rapport : vous pouvez soit déclarer et créer une nouvelle instance de votre classe en utilisant OnInit, soit appeler une méthode publique via OnInit.

Collections globales d’objets et initialisation

Plusieurs collections sont disponibles pour initialiser vos variables de classe personnalisées. Vous pouvez utiliser les collections Globals et Utilisateur . Les collections Parameters, Fields et ReportItems ne sont pas disponibles au moment du cycle de vie du rapport lorsque la méthode OnInit est invoquée. Pour utiliser les collections partagées, Globals ou User, vous devez inclure la référence à l’objet Signal . Par exemple, pour initialiser votre classe personnalisée en fonction du langage actuel de l’utilisateur accédant au rapport, votre élément Code peut ressembler à ce qui suit :

Dim m_myClass As MyClass  

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

Une façon d’initialiser les propriétés et les valeurs des champs d’une classe comme montré précédemment est de déclarer votre classe et d’en créer une nouvelle instance en appelant un constructeur écrasé.

Une autre façon d’initialiser les propriétés et les valeurs des champs des classes dans vos assemblages personnalisés est d’appeler une méthode publique 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 du rapport. Une fois que vous avez ajouté la référence d’assemblage et le nom d’instance appropriés, vous pouvez appeler votre méthode d’initialisation pour initialiser les valeurs des propriétés et des champs de votre classe. Votre méthode OnInit pourrait ressembler à ceci :

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’assemblage et d’un nom d’instance pour votre classe personnalisée, consultez Ajouter une référence d’assemblage à un rapport (SSRS).

Pour plus d’informations sur les collections globales d’objets, voir Collections intégrées dans les expressions (Report Builder et SSRS).