Inizializzazione di oggetti assembly personalizzatiInitializing Custom Assembly Objects

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 some cases, you may need to initialize property and field values in your custom assembly classes when you instantiate them. In genere, è necessario inizializzare le classi personalizzate con i valori disponibili nelle raccolte di oggetti globali del report.You will most likely need to initialize your custom classes with values available to you from the report's global object collections. A tale scopo, è possibile eseguire l'override del metodo OnInit dell'oggetto Code di un report.You do this by overriding the OnInit method of the Code object of a report. Per accedere al metodo OnInit, usare l'elemento Code della definizione del report.To access OnInit, use the Code element of the report definition. 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.There are two techniques for initializing property or field values of the classes in a custom assembly that you plan to use in your report: You can either declare and create a new instance of your class using OnInit, or you can call a publicly available method using OnInit.

Raccolte di oggetti globali e inizializzazioneGlobal Object Collections and Initialization

Per l'inizializzazione delle variabili delle classi personalizzate sono disponibili diverse raccolte.Several collections are available to you for initializing your custom class variables. È possibile usare le raccolte Globals e User.You can use the Globals and User collections. Le raccolte Parameters, Fields e ReportItems non sono disponibili nel ciclo di vita del report durante il quale viene richiamato il metodo OnInit.The Parameters, Fields and ReportItems collections are not available to you at the point in the report lifecycle when the OnInit method is invoked. Per usare le raccolte condivise Globals o User, è necessario includere il riferimento all'oggetto Report.To use the shared collections, Globals or User, you need to include the Report object reference. 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:For example, to initialize your custom class based on the current language of the user accessing the report, your Code element might look like the following:

<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.One way to initialize the property and field values of a class as shown previously is to declare your class and create a new instance of it by calling an overridden constructor.

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.Another way to initialize the property and field values of the classes in your custom assemblies is to call a publicly available method that you define from the OnInit method. È innanzitutto necessario aggiungere un nome di istanza per la classe nel file di definizione del report.You first need to add an instance name for your class in the report definition file. 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.Once you have added the appropriate assembly reference and instance name, you can call your initialization method to initialize property and field values for your class. Il metodo OnInit può essere simile al seguente:Your OnInit method might look like the following:

<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).For more information about adding an assembly reference and instance name for your custom class, see Add an Assembly Reference to a Report (SSRS).

Per altre informazioni sulle raccolte di oggetti globali, vedere Raccolte predefinite nelle espressioni (Generatore report e SSRS).For more information about the global object collections, see Built-in Collections in Expressions (Report Builder and SSRS).

Vedere ancheSee Also

Uso di assembly personalizzati con i reportUsing Custom Assemblies with Reports