Inicialização de objetos de montagem personalizados

Em alguns casos, pode ser necessário inicializar valores de propriedades e campos nas suas classes de montagem personalizadas quando os instancia. Muito provavelmente precisa de inicializar as suas classes personalizadas com valores disponíveis nas coleções globais de objetos do relatório. Faz-se isto ao sobrepor o método OnInit do objeto Code de um relatório. Para aceder ao OnInit, utilize o elemento Código da definição do relatório. Existem duas técnicas para inicializar valores de propriedades ou campos das classes numa assembly personalizada que planeia usar no seu relatório: pode declarar e criar uma nova instância da sua classe usando OnInit, ou pode chamar um método público usando OnInit.

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

Existem várias coleções disponíveis para inicializar as suas variáveis de classe personalizadas. Podes usar as coleções Globais e Utilizador . As coleções Parameters, Fields e ReportItems não estão disponíveis no momento do ciclo de vida do relatório em que o método OnInit é invocado. Para usar as coleções partilhadas, Globais ou Utilizador, é necessário incluir a referência do objeto Relatório . Por exemplo, para inicializar a sua classe personalizada com base na linguagem atual do utilizador que acede ao relatório, o seu elemento Code pode ser o seguinte:

Dim m_myClass As MyClass  

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

Uma forma de inicializar as propriedades e os valores dos campos de uma classe, como mostrado anteriormente, é declarar a sua classe e criar uma nova instância dela chamando um construtor sobreposto.

Outra forma de inicializar os valores das propriedades e campos das classes nas suas assembleias personalizadas é chamar um método disponível publicamente que define a partir do método OnInit . Primeiro, precisas de adicionar um nome de instância para a tua classe no ficheiro de definição do relatório. Depois de adicionar a referência de montagem e o nome da instância apropriados, pode chamar o seu método de inicialização para inicializar valores de propriedades e campos para a sua classe. O seu método OnInit pode ser o seguinte:

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

Para mais informações sobre como adicionar uma referência de montagem e um nome de instância para a sua classe personalizada, consulte Adicionar uma Referência de Montagem a um Relatório (SSRS).

Para mais informações sobre as coleções globais de objetos, consulte Coleções Incorporadas em Expressões (Report Builder e SSRS).