Доступ к пользовательским сборкам посредством выражений

После того как пользовательская сборка была создана, сделана доступной для конструктора отчетов или сервера отчетов, добавлена к подходящей политике безопасности, а также после того, как в определение отчета была добавлена ссылка на данную пользовательскую сборку, появится возможность доступа к членам классов сборки посредством выражений отчетов. Для ссылки в выражении на пользовательский код следует вызвать элемент класса этой сборки. Способ создания ссылки зависит от того, является ли метод статическим или основывается на экземпляре.

Вызов статических членов из файла определения отчета

Статические члены принадлежат классу или типу, а не к созданному объекту. Доступ к данным членам можно получить, напрямую вызвав их из класса. По возможности для вызова пользовательских функций в отчете следует использовать статические члены, поскольку они обладают большей производительностью. Для вызова статического элемента необходимо сослаться на него как на выражение, принимающее следующий вид =Namespace.Class.Method.

Вызов статических членов

  • Для вызова статического члена следует установить выражение равным полностью указанному имени члена, в которое включено пространство имен, имя класса и имя члена. Следующий пример вызывает метод ToGBP, преобразующий значение поля StandardCost из долларов в фунты стерлингов и отображающий это в отчете:

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

Важные сведения о статических полях и свойствах

В данный момент все отчеты выполняются в одном и том же домене приложения. Это означает, что те отчеты, в которых присутствуют пользовательские статические данные, предоставляют доступ к этим данным другим экземплярам того же отчета. В связи с этим статические данные одного пользователя могут стать доступны всем пользователям, которые в данное время выполняют этот определенный отчет. В связи с этим не рекомендуется использовать статические поля или свойства в пользовательских сборках или в элементе Code; вместо этого в отчетах следует использовать поля или свойства экземпляров. Однако статические методы можно использовать, поскольку они не сохраняют состояния или данные.

Вызов членов экземпляров из файла определения отчета

Если в пользовательской сборке содержатся члены экземпляров, к которым нужно обращаться из определения отчета, то в отчет следует добавить имя экземпляра класса. Имя экземпляра для класса можно добавить, использовав вкладку Код диалогового окна Свойства отчета. Дополнительные сведения о добавлении экземпляров классов в отчет см. в разделе Ссылки на пользовательский код и сборки в выражениях в конструкторе отчетов (службы SSRS).

Для вызова статического элемента необходимо сослаться на него как на выражение, принимающее вид =Code.InstanceName.Method.

Вызов членов экземпляра

  • Для вызова члена экземпляра пользовательской сборки необходимо создать ссылку на ключевое слово Code, за которым следует имя экземпляра и метод. Следующий пример вызывает метод экземпляра ToGBP, преобразующий значение поля StandardCost из долларов в евро и отображающий это в отчете:

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