Inicialización de objetos de ensamblado personalizados
En algunos casos, es posible que tenga que inicializar los valores de propiedad y campo en las clases de ensamblado personalizadas al crear instancias de ellos. Es probable que tenga que inicializar las clases personalizadas con valores disponibles en las colecciones de objetos globales del informe. Para ello, se reemplaza el método OnInit del objeto Code de un informe. Para acceder a OnInit, use el elemento Code de la definición de informe. Hay dos técnicas para inicializar valores de propiedad o campo de las clases de un ensamblado personalizado que se piensa usar en el informe: puede declarar y crear una instancia nueva de la clase mediante OnInit o puede llamar a un método disponible públicamente con OnInit.
Colecciones de objetos globales e inicialización
Hay varias colecciones disponibles para inicializar las variables de clases personalizadas. Puede usar las colecciones Globals y User. Las colecciones Parameters, Fields y ReportItems no están disponibles en el momento del ciclo de vida del informe cuando se invoca el método OnInit . Para usar las colecciones compartidas, Globals o User, tiene que incluir la referencia al objeto Report. Por ejemplo, para inicializar la clase base en función del idioma actual del usuario que accede al informe, el elemento Code podría ser similar al siguiente:
Dim m_myClass As MyClass
Protected Overrides Sub OnInit()
m_myClass = new MyClass(Report.User!Language, _
Report.Globals!ExecutionTime)
End Sub
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 campo y propiedad de las clases de 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. Una vez que agregue la referencia de ensamblado y el nombre de instancia adecuados, puede llamar al método de inicialización para inicializar los valores de propiedad y campo de la clase. El método OnInit podría ser similar al siguiente:
Protected Overrides Sub OnInit()
m_myClass.MyInitializationMethod(Report.User!Language, _
Report.Globals!ExecutionTime)
End Sub
Para más información sobre cómo agregar una referencia de ensamblado y un nombre de instancia para la clase personalizada, vea Agregar una referencia de ensamblado a un informe (SSRS).
Para más información sobre las colecciones de objetos globales, vea Colecciones integradas en expresiones (Generador de informes y SSRS).