Acessando assemblies personalizados por meio de expressões
Depois de criar um assembly personalizado, disponibilizá-lo ao Designer de Relatórios ou ao servidor de relatório, adicionar a diretiva de segurança apropriada e adicionar uma referência ao assembly personalizado na definição de relatório, você poderá acessar os membros das classes no assembly usando expressões de relatório. Para consultar o código personalizado em uma expressão, você deve chamar o membro de uma classe dentro do assembly. A maneira de fazer isso depende do método ser estático ou baseado em instância.
Chamar membros estáticos de um arquivo de definição de relatório
Os membros estáticos pertencem à própria classe ou tipo e não a um objeto instanciado. Esses membros podem ser acessados por sua chamada direta a partir da classe. Você deve usar os membros estáticos para chamar funções personalizadas em um relatório sempre que possível, porque eles têm um desempenho melhor. Para chamar um membro estático, você precisa referenciá-lo como uma expressão que usa a forma =Namespace.Class.Method.
Chamar membros estáticos
Para chamar um membro estático, defina a sua expressão como o nome totalmente qualificado do membro, que inclui o namespace, o nome da classe e o nome do membro. O exemplo a seguir chama o método ToGBP, que converte o valor do campo StandardCost de dólares para libras esterlinas e o exibe em um relatório:
=CurrencyConversion.DollarCurrencyConversion.ToGBP(Fields!StandardCost.Value)
Informações importantes sobre campos estáticos e propriedades
Atualmente, todos os relatórios são executados no mesmo domínio do aplicativo. Isso significa que relatórios com dados específicos do usuário e estáticos exibem esses dados a outras instâncias do mesmo relatório. Essa condição pode fazer com que os dados estáticos de um usuário estejam disponíveis a todos os usuários que executam um relatório específico no momento. Por esse motivo, é altamente recomendável que você não use campos estáticos ou propriedades em assemblies personalizados ou no elemento Code , em vez disso, use campos de instância ou propriedades em seus relatórios. Os métodos estáticos ainda podem ser usados, porque eles não armazenam estado ou dados.
Chamar membros da instância de um arquivo de definição de relatório
Se o seu assembly personalizado contém membros de instância que você precisa acessar em uma definição de relatório, adicione um nome de instância para a sua classe ao relatório. Você pode adicionar um nome de instância a uma classe usando a guia Código da caixa de diálogo Propriedades do Relatório. Para obter mais informações sobre adição de instâncias de classes a um relatório, confira Referências a código personalizado e assemblies em expressões no Designer de Relatórios (SSRS).
Para chamar um membro estático, você terá de referenciá-lo como uma expressão com a forma =Code*.InstanceName.Method*.
Chamar membros da instância
Para chamar um membro de instância de um assembly personalizado, referencie a palavra-chave Code seguida pelo nome de instância e o método. O exemplo a seguir chama um método de instância ToEUR que converte o valor do campo StandardCost de dólares para euros e o exibe em um relatório:
=Code.m_myDollarConversion.ToEUR(Fields!StandardCost.Value)