Inicializar objetos de ensamblados personalizados
En algunos casos, puede que tenga que inicializar valores de campos y propiedades en las clases de ensamblados personalizados al crear instancias de ellos. Probablemente tendrá que inicializar las clases personalizadas con los valores de que disponga en las colecciones de objetos globales del informe. Para ello, invalida el método OnInit del objeto Code de un informe. Para tener acceso a OnInit, utilice el elemento Code de la definición de informe. Hay dos técnicas para inicializar los valores de propiedades o de campos de las clases en un ensamblado personalizado que piense utilizar en un informe: puede declarar y crear una instancia nueva de su clase utilizando OnInit o puede llamar a un método disponible públicamente utilizando OnInit.
Colecciones de objetos globales e inicialización
Hay varias colecciones disponibles para inicializar las variables de clases personalizadas. Puede utilizar las colecciones Globals y User. Las colecciones Parameters, Fields y ReportItems no están disponibles cuando se invoca al método OnInit en el ciclo de vida del informe. Para usar las colecciones compartidas, Globals o User, tiene que incluir la referencia al objeto Report. Por ejemplo, para inicializar la clase personalizada basada en el idioma actual del usuario que tiene acceso al informe, el elemento Code podría ser similar al siguiente:
<Code>
Dim m_myClass As MyClass
Protected Overrides Sub OnInit()
m_myClass = new MyClass(Report.User!Language, _
Report.Globals!ExecutionTime)
End Sub
</Code>
Una manera de inicializar los valores de los campos y propiedades de una clase según se ha mostrado anteriormente es declarar la clase y crear una instancia nueva de ella llamando a un constructor invalidado.
Otra manera de inicializar los valores de los campos y propiedades de las clases en los ensamblados personalizados es llamar a un método disponible públicamente que se define a partir del método OnInit. Primero es necesario agregar un nombre de instancia para la clase en el archivo de definición de informe. Cuando haya agregado la referencia de ensamblado y el nombre de instancia adecuados, podrá llamar al método de inicialización para inicializar los valores de las propiedades y campos para la clase. El método OnInit podría ser similar al siguiente:
<Code>
Protected Overrides Sub OnInit()
m_myClass.MyInitializationMethod(Report.User!Language, _
Report.Globals!ExecutionTime)
End Sub
</Code>
Para obtener más información acerca de cómo agregar una referencia de ensamblado y un nombre de instancia para la clase personalizada, vea Cómo agregar una referencia de ensamblado a un informe (Reporting Services).
Para obtener más información acerca de las colecciones de objetos globales, vea Usar las colecciones integradas en expresiones (Reporting Services).