Share via


Inicializando objetos assembly personalizados

Em alguns casos, talvez você precise inicializar valores de propriedade e de campo em suas classes assembly personalizadas ao instanciá-las. É mais provável que você tenha de inicializar as suas classes personalizadas com valores disponíveis a partir de coleções de objetos globais do relatório. Você faz isso substituindo o método OnInit do objeto Code de um relatório. Para acessar OnInit, use o elemento Code da definição de relatório. Existem duas técnicas para a inicialização de valores de propriedade e de campo das classes em um assembly personalizado que você planeja usar em seu relatório: você pode declarar e criar uma nova instância da sua classe usando OnInit, ou pode chamar um método disponível publicamente usando OnInit.

Coleções e inicialização de objetos globais

Várias coleções estão disponíveis para que você inicialize suas variáveis de classe personalizadas. Você pode usar as coleções Globals e User. As coleções Parameters, Fields e ReportItems não estão disponíveis no ponto do ciclo de vida do relatório quando o método OnInit é invocado. Para usar as coleções compartilhadas, Globals ou User, você precisa incluir a referência de objeto Report. Por exemplo, para inicializar sua classe personalizada com base no idioma atual do usuário que está acessando o relatório, o seu elemento Code poderia ser assim:

<Code>
   Dim m_myClass As MyClass

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

Uma forma de inicializar os valores de propriedade e de campo de uma classe como mostrado anteriormente é declarar a sua classe e criar uma nova instância dela chamando um construtor substituído.

Outra forma de inicializar os valores de propriedade e de campo das classes em seus assemblies personalizados é chamar um método disponível publicamente definido a partir do método OnInit. Primeiro, você precisa adicionar um nome de instância para a sua classe ao arquivo de definição de relatório. Depois de adicionar a referência de assembly apropriada e o nome de instância, você poderá chamar o seu método de inicialização para inicializar valores de propriedade e de campo para a sua classe. O seu OnInit poderia ficar assim:

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

Para obter mais informações sobre como adicionar uma referência de assembly e um nome de instância à sua classe personalizada, consulte Como adicionar uma referência de assembly a um relatório (SSRS).

Para obter mais informações sobre as coleções de objetos globais, consulte Usando coleções internas em expressões (Construtor de Relatórios 3.0 e SSRS).

Consulte também

Outros recursos