Aceder a assemblies personalizados através de expressões

Depois de criar uma montagem personalizada, disponibilizá-la ao Report Designer ou ao servidor de relatórios, adicionar a política de segurança apropriada e adicionar uma referência à sua montagem personalizada na definição do seu relatório, pode aceder aos membros das classes na sua assembleia usando expressões de relatório. Para referir-se a código personalizado numa expressão, deve invocar o membro de uma classe dentro do assemblage. A forma como fazes isto depende se o método é estático ou baseado em instâncias.

Chamar membros estáticos a partir de um ficheiro de definição de relatório

Os membros estáticos pertencem à própria classe ou tipo e não a um objeto instanciado. Estes membros podem ser acedidos ligando-lhes diretamente a partir da turma. Deves usar elementos estáticos para chamar funções personalizadas num relatório sempre que possível, porque os membros estáticos têm melhor desempenho. Para chamar um membro estático, precisa de o referenciar como uma expressão que assume a forma =Namespace.Class.Method.

Chamar membros estáticos

  • Para chamar um membro estático, defina a sua expressão igual ao nome totalmente qualificado do membro, que inclui o namespace, nome da classe e nome do membro. O exemplo seguinte chama o método ToGBP , que converte o valor do campo StandardCost de dólares para libras esterlinas e o apresenta num relatório:

    =CurrencyConversion.DollarCurrencyConversion.ToGBP(Fields!StandardCost.Value)  
    

Informação importante sobre campos estáticos e propriedades

Atualmente, todos os relatórios são executados no mesmo domínio de aplicação. Isto significa que relatórios com dados estáticos específicos para o utilizador expõem esses dados a outras instâncias do mesmo relatório. Esta condição pode tornar possível que os dados estáticos de um utilizador estejam disponíveis para todos os utilizadores que atualmente executam um determinado relatório. Por esta razão, é altamente recomendado que não utilize campos ou propriedades estáticas em assemblies personalizados ou no elemento Code ; Em vez disso, use campos de instância ou propriedades nos seus relatórios. Métodos estáticos ainda podem ser usados, porque não armazenam estado ou dados.

Chamar membros da instância a partir de um ficheiro de definição de relatório

Se o seu assembly personalizado contiver membros de instância que precisa de aceder numa definição de relatório, deve adicionar um nome de instância para a sua classe ao relatório. Pode adicionar um nome de instância para uma classe usando o separador Código do diálogo Propriedades do Relatório . Para mais informações sobre como adicionar instâncias de classes a um relatório, consulte Custom Code and Assembly References in Expressions in Report Designer (SSRS).

Para chamar um membro estático, precisa de o referenciar como uma expressão que assume a forma =Code*. InstanceName.Method*.

Membros da instância de chamada

  • Para chamar um membro de instância de uma assembly personalizada, deve referenciar a palavra-chave Code seguida do nome da instância e do método. O exemplo seguinte chama um método de instância ToEUR que converte o valor do campo StandardCost de dólares para euros e o apresenta num relatório:

    =Code.m_myDollarConversion.ToEUR(Fields!StandardCost.Value)