Inizializzazione di oggetti assembly personalizzati

In alcuni casi, potrebbe essere necessario inizializzare i valori delle proprietà e dei campi nelle classi di assembly personalizzate quando ne viene creata un'istanza. È molto probabile che sia necessario inizializzare le classi personalizzate con valori disponibili dagli insiemi di oggetti globali del report. A tale scopo, è possibile eseguire l'override del metodo OnInit dell'oggetto Code di un report. Per accedere al metodo OnInit, usare l'elemento Code della definizione del report. Per l'inizializzazione di valori di campo o proprietà delle classi in un assembly personalizzato da usare in un report sono disponibili due tecniche. È possibile dichiarare e creare una nuova istanza della classe tramite OnInit oppure è possibile chiamare un metodo disponibile pubblicamente tramite OnInit.

Raccolte di oggetti globali e inizializzazione

Per l'inizializzazione delle variabili delle classi personalizzate sono disponibili diverse raccolte. È possibile usare le raccolte Globals e User. Le raccolte Parameters, Fields e ReportItems non sono disponibili nel punto del ciclo di vita del report quando viene richiamato il metodo OnInit . Per usare le raccolte condivise Globals o User, è necessario includere il riferimento all'oggetto Report. Ad esempio, per inizializzare la classe personalizzata in base alla lingua corrente dell'utente che accede al report, l'elemento Code può essere simile al seguente:

Dim m_myClass As MyClass  

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

Per inizializzare valori di proprietà e campi di una classe come illustrato in precedenza, è possibile dichiarare la classe e creare una nuova istanza chiamando un costruttore sottoposto a override.

In alternativa, per inizializzare i valori di proprietà e campi delle classi negli assembly personalizzati, è possibile chiamare un metodo disponibile pubblicamente definito dal metodo OnInit. È innanzitutto necessario aggiungere un nome di istanza per la classe nel file di definizione del report. Dopo aver aggiunto il riferimento all'assembly e il nome dell'istanza appropriati, è possibile chiamare il metodo di inizializzazione per inizializzare i valori di proprietà e campo per la classe. Il metodo OnInit può essere simile al seguente:

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

Per altre informazioni sull'aggiunta di un riferimento all'assembly e di un nome di istanza per la classe personalizzata, vedere Aggiungere un riferimento a un assembly in un report (SSRS).

Per altre informazioni sulle raccolte di oggetti globali, vedere Raccolte predefinite nelle espressioni (Generatore report e SSRS).