Partilhar via


Inicializando objetos de assembly personalizados

Em alguns casos, talvez seja necessário inicializar valores de propriedade e campo em suas classes de assembly personalizadas ao instanciá-los. Você provavelmente precisará inicializar suas classes personalizadas com valores disponíveis para você nas coleções de objetos globais do relatório. Faça 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ê pretende usar em seu relatório: você pode declarar e criar uma nova instância da classe usando OnInit ou chamar um método disponível publicamente usando OnInit.

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

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

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 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 assemblies personalizados é chamar um método disponível publicamente definido com base no 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 e o nome da instância apropriados, você pode chamar seu método de inicialização para inicializar valores de propriedade e campo para sua classe. O método OnInit poderá ser parecido com o seguinte:

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

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

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