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