Condividi tramite


Inizializzazione di oggetti assembly personalizzati

In alcuni casi, potrebbe essere necessario inizializzare valori di proprietà e campi nelle classi di assembly personalizzate quando si crea un'istanza di tali classi. In genere, è necessario inizializzare le classi personalizzate con i valori disponibili nelle raccolte 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 ciclo di vita del report durante il quale 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:

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

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 avere aggiunto il nome di istanza e il riferimento all'assembly appropriati, è possibile chiamare il metodo di inizializzazione per inizializzare i valori di proprietà e campi per la classe. Il metodo OnInit può essere simile al seguente:

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

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).

Vedere anche

Uso di assembly personalizzati con i report