Acessando assemblies personalizados por meio de expressões
Depois de criar um assembly personalizado, disponibilize-o para o Designer de Relatórios ou para o servidor de relatório, de ter adicionado a diretiva de segurança apropriada, e de ter adicionado uma referência ao seu assembly personalizado à sua definição de relatório, você poderá acessar os membros das classes do seu 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.
Chamando 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.
Para 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 importante 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 poderão ser usados, já que não armazenam estado ou dados.
Chamando membros de 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 para uma classe usando a guia Código da caixa de diálogo Propriedades do Relatório. Para obter mais informações sobre como adicionar instâncias de classes a um relatório, consulte Usando referências de código personalizado em expressões (Reporting Services).
Para chamar um membro estático, você terá de referenciá-lo como uma expressão com a forma =Code.InstanceName.Method.
Para chamar membros de 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_myDollarCoversion.ToEUR(Fields!StandardCost.Value)