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 a OnInit, utilizzare l'elemento Code della definizione del report. Per l'inizializzazione di valori di campo o proprietà delle classi in un assembly personalizzato da utilizzare in un report sono disponibili due tecniche. È possibile dichiarare e creare una nuova istanza della classe utilizzando OnInit oppure è possibile chiamare un metodo disponibile pubblicamente utilizzando OnInit.

Raccolte di oggetti globali e inizializzazione

Per l'inizializzazione delle variabili delle classi personalizzate sono disponibili diverse raccolte. È possibile utilizzare le raccolte Globals e User. Le raccolte Parameters, Fields e ReportItems non sono disponibili nel momento del ciclo di vita del report in cui viene richiamato il metodo OnInit. Per utilizzare le raccolte condivise, Globals o User, è necessario includere il riferimento all'oggetto Report. Per inizializzare la classe personalizzata in base alla lingua corrente dell'utente che accede al report, l'elemento Code potrebbe 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 potrebbe essere simile al seguente:

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

Per ulteriori informazioni sull'aggiunta di un riferimento all'assembly e di un nome di istanza per la classe personalizzata, vedere Procedura: Aggiunta di un riferimento a un assembly in un report (Reporting Services).

Per ulteriori informazioni sulle raccolte di oggetti globali, vedere Utilizzo di raccolte predefinite nelle espressioni (Reporting Services).