Initialiseren van aangepaste assemblageobjecten

In sommige gevallen moet je property- en fieldwaarden initialiseren in je aangepaste assemblyklassen wanneer je ze instantieert. Je moet waarschijnlijk je aangepaste klassen initialiseren met waarden die beschikbaar zijn uit de globale objectcollecties van het rapport. Dit doe je door de OnInit-methode van het Code-object van een rapport te overschrijven. Om toegang te krijgen tot OnInit, gebruik je het Code-element van de rapportdefinitie. Er zijn twee technieken om eigenschappen of veldwaarden van de klassen te initialiseren in een aangepaste assembly die je in je rapport wilt gebruiken: je kunt ofwel een nieuwe instantie van je klasse declareren en aanmaken met OnInit, of je kunt een publiek beschikbare methode aanroepen met OnInit.

Globale objectcollecties en initialisatie

Verschillende collecties zijn beschikbaar voor het initialiseren van je aangepaste klassevariabelen. Je kunt de Globals- en Gebruikerscollecties gebruiken. De verzamelingen Parameters, Fields en ReportItems zijn niet beschikbaar voor je op het moment in de rapportlevenscyclus waarop de OnInit-methode wordt aangeroepen. Om de gedeelde collecties, Globals of User te gebruiken, moet je de Report object-referentie toevoegen. Om bijvoorbeeld je aangepaste klasse te initialiseren op basis van de huidige taal van de gebruiker die het rapport betreedt, kan je Code-element er als volgt uitzien:

Dim m_myClass As MyClass  

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

Een manier om de eigenschappen en veldwaarden van een klasse te initialiseren, zoals eerder getoond, is door je klasse te declareren en een nieuwe instantie daarvan aan te maken door een overschreven constructor aan te roepen.

Een andere manier om de eigenschappen en veldwaarden van de klassen in je aangepaste assemblies te initialiseren, is door een publiek beschikbare methode aan te roepen die je definieert vanuit de OnInit-methode . Je moet eerst een instantienaam voor je klasse toevoegen aan het rapportdefinitiebestand. Zodra je de juiste assemblyreferentie en instantienaam toevoegt, kun je je initialisatiemethode aanroepen om eigenschappen en veldwaarden voor je klasse te initialiseren. Je OnInit-methode kan er als volgt uitzien:

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

Voor meer informatie over het toevoegen van een assemblyreferentie en instantienaam voor je aangepaste klasse, zie Voeg een assemblyreferentie toe aan een rapport (SSRS).

Voor meer informatie over de globale objectcollecties, zie Built-in Collections in Expressions (Report Builder en SSRS).