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

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

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

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

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

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

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

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

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

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

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

Для вызова статического члена необходимо сослаться на него как на выражение, принимающее форму =Code*.ИмяЭкземпляра.Метод*.

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

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

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

Использование пользовательских сборок с отчетами