Inicializando objetos de montagem personalizados

Em alguns casos, você pode precisar inicializar valores de propriedades e campos em suas classes assembly personalizadas ao instancia-las. Provavelmente você precisará inicializar suas classes personalizadas com valores disponíveis para você nas coleções globais de objetos do relatório. Você faz isso sobrescrevendo o método OnInit do objeto Code de um relatório. Para acessar o OnInit, use o elemento Código da definição do relatório. Existem duas técnicas para inicializar valores de propriedades ou campos 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 globais de objetos e inicialização

Várias coleções estão disponíveis para você inicializar suas variáveis de classe personalizadas. Você pode usar as coleções Globais e Usuários . As coleções Parâmetros, Campos e Itens de Relatório não estão disponíveis para você no momento do ciclo de vida do relatório em que o método OnInit é invocado. Para usar as coleções compartilhadas, Globais ou Usuário, você precisa incluir a referência ao objeto Relatório . Por exemplo, para inicializar sua classe personalizada com base na linguagem atual do usuário que acessa o relatório, 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 os valores de propriedade e campo de uma classe, como mostrado anteriormente, é declarar sua classe e criar uma nova instância dela chamando um construtor sobrescrevido.

Outra forma de inicializar os valores das propriedades e campos das classes em seus assemblies personalizados é chamar um método disponível publicamente que você define a partir do método OnInit . Primeiro, você precisa adicionar um nome de instância para sua classe no arquivo de definição do relatório. Depois de adicionar a referência de montagem e o nome da instância apropriados, você pode chamar seu método de inicialização para inicializar valores de propriedades e campos para sua classe. 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 sua classe personalizada, veja Adicionar uma Referência de Montagem a um Relatório (SSRS).

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