Призначений для користувача код і посилань на збірки в виразах в конструкторі звітів (служби ssrs)

Ви можете додавати ярлики для користувача код, впроваджений в звіт, або призначені для користувача збірки, побудовані і збережені на комп'ютері і розгорнуті на сервері звітів. Використовуйте впроваджений код для призначених для користувача констант, складних функцій або функцій, які використовуються в одному звіті кілька разів. Складання з призначеним для користувача кодом використовуйте для збереження коду в одному місці і його загального використання в декількох звітах. Призначений для користувача код може включати нові призначені для користувача константи, змінні, функції або підпрограми. Можна включати посилання, доступні тільки для читання, у вбудовані колекції, наприклад колекцію Parameters. Однак ці набори значень даних звіту неможливо передати призначеним для користувача функцій (зокрема, не підтримуються призначені для користувача статистичні обчислення).

Примітка з безпеки

У критичних за часом обчисленнях, які виконуються один раз при запуску і значення яких потрібно зберегти незмінними в процесі обробки звіту, розгляньте можливість використання групової змінної або змінної звіту. Додаткові відомості див. У розділі Посилання на колекції змінних звіту і групи (будівник звітів і служби SSRS).

Конструктор звітів - краща середовище створення звітів, яка використовується для додавання користувацького коду в звіт. Будівник звітів підтримує обробку звітів, які мають допуск вираження або посилання на призначені для користувача збірки на сервері звітів. У построителе звітів немає способу додати посилання в призначену для користувача збірку.

Слід пам'ятати, що при оновленні сервера звітів звіти, які залежать від користувача збірок, можуть зажадати додаткових кроків для завершення оновлення. Додаткові відомості див. У розділі Використання помічника з оновлення для підготовки до оновлень.

Для включення посилання до найменш часто використовуваним просторів імен CLR необхідно використовувати повну посилання, наприклад System.Text. StringBuilder. Для найменш часто використовуваних функцій технологія Intellisense не підтримує на панелі коду діалогового вікна Вираз.

Для використання в звіті призначених для користувача збірок необхідно спочатку створити збірку, зробити її доступною для конструктора звітів, додати до звіту на неї посилання, а потім використовувати в виразах звіту посилання на методи цієї збірки. При розгортанні звіту на сервері звітів слід також розгорнути на сервері звітів і призначену для користувача збірку.

Додаткові відомості про створення користувальницької збірки і надання до неї доступу для служб Служби Reporting Services см. В розділі Використання користувальницьких збірок зі звітами.

Для посилання в вираженні на призначений для користувача код слід викликати елемент класу цієї збірки. Спосіб створення посилання залежить від того, чи є метод статичним або грунтується на екземплярі. Статичні методи в призначеній для користувача збірці доступні з усіх елементів звіту. У виразах можна отримати доступ до статичних методів за допомогою вказівки простору імен, класу і імені методу. У наступному прикладі проводиться виклик методу ToGBP. який перетворює значення поля StandardCost з доларів в фунти стерлінги:

Методи на основі примірника доступні через глобально певний елемент Code. Отримати до них доступ можна за допомогою посилання на елемент Code. потім на екземпляр і на ім'я методу. У наступному прикладі проводиться виклик методу примірника ToEUR. який перетворює значення поля StandardCost з доларів в євро:

Якщо необхідно передати вбудовані колекції, наприклад Globals або Parameters. в призначену для користувача збірку для обробки, необхідно додати посилання на збірку в проекті коду в збірку, визначальну вбудовані колекції і доступ до правильного простору імен. Залежно від того, чи розробляється призначена для користувача збірка для звіту, що виконується на сервері звітів (серверний звіт), або звіту, що виконується локально, в додатку платформи .NET (локальний звіт) може знадобитися використовувати посилання на різні збірки. Докладну інформацію див. Нижче.

Простір імен: Microsoft.ReportingServices.ReportProcessing.ReportObjectModel

Збірка (локальний звіт): Microsoft.ReportingServices.ProcessingObjectModel.dll

Збірка (серверний звіт): Microsoft.ReportViewer.ProcessingObjectModel.dll

Оскільки вміст колекцій Fields і ReportItems може динамічно змінюватися під час виконання, доступ до нього не слід робити за допомогою викликів до користувальницької збірці (наприклад, в змінної члена). Та ж сама рекомендація застосовується зазвичай для всіх вбудованих колекцій.