SSRS 2005 - циклический просмотр параметров отчета - PullRequest
7 голосов
/ 17 сентября 2008

Я хотел бы иметь возможность циклически просматривать все определенные параметры в моих отчетах и ​​создавать отображаемую строку с именем и значением параметра. Затем я отобразил бы результаты в отчете, чтобы пользователь знал, какие параметры были использованы для этого конкретного выполнения. Единственная проблема заключается в том, что я не могу перебрать коллекцию параметров. Похоже, что в коллекции параметров нет индексатора, и при этом он не реализует IEnumerable. Кто-нибудь был в состоянии сделать это? Я использую SSRS 2005, и он должен быть реализован в коде отчета (т.е. без внешней сборки). Спасибо!

Ответы [ 3 ]

1 голос
/ 17 сентября 2008

К сожалению, похоже, нет простого способа сделать это. См. http://www.jameskovacs.com/blog/DiggingDeepIntoReportingServices.aspx для получения дополнительной информации. Если вы посмотрите на комментарии к этому посту , есть несколько способов обойти это, но они не очень элегантны. Самое простое решение потребует от вас наличия списка параметров отчета где-то в вашем отчете, который явно нарушает принцип DRY , но если вы хотите самое простое решение, вам, возможно, придется с этим смириться.

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

0 голосов
/ 22 сентября 2008

Я могу придумать как минимум два способа сделать это. Первое может сработать, второе обязательно сработает.

  1. Используйте веб-сервис. Я почти уверен, что видел API для получения набора параметров. Даже если прямого доступа нет, вы всегда можете создать стандартную коллекцию и скопировать объекты ReportParameter из одного в другой в цикле foreach, а затем получить доступ к счетчику с доступными свойствами отдельных параметров путем разыменования экземпляров ReportParameter.

  2. Отчеты RDL. RDL - это XML. Создайте XmlDocument и загрузите файл RDL, затем используйте DOM для выполнения, ну, всего, что вам нравится , включая установку значений по умолчанию или даже перезапись строк подключения.

Если ваше приложение не имеет доступа файловой системы к файлам RDL, вы можете получить их через веб-сервис.

0 голосов
/ 18 сентября 2008

Если я понимаю ваш вопрос, просто делайте то, что я делаю: Добавьте текстовое поле в отчет, а затем, когда вы настраиваете отчет, вставьте следующее: = "Parameter1:" + Parameters! Parameter.Label + ", Parameter2:" + Parameters! Parameter2.Label ...

Конечно, это не самая красивая вещь, но она хорошо работает в нашем приложении.

И я использую Ярлыки вместо Значений, так как у нас есть значения даты и времени, а пользователь заботится только о короткой дате или месяце и году (в зависимости от обстоятельств), и я уже выполнил эту работу по форматированию в настройке до параметров.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...