Подтвердить что ты не робот

Передача параметра через службу отчетов URL-адресов в sql-сервер

Я пытаюсь передать параметр через URL-адрес в SSRS и, похоже, не работает!

Я пытаюсь передать userId (string) через url, который будет передан в базу данных и использован по запросу.

базовый url: http://blah/Reports/Pages/Report.aspx?ItemPath=MyReport

попробовал это, но он не работает: http://blah/Reports/Pages/Report.aspx?ItemPath=MyReport&UserId=fred

Любые идеи

4b9b3361

Ответ 1

Как и то, что сказал Шираз, попробуйте что-то вроде этого:

http://<server>/ReportServer/Pages/ReportViewer.aspx?%2f<path>%2f<ReportName>&rs:Command=Render&UserID='fred'

Обратите внимание, что путь будет работать только в том случае, если вы находитесь в одной папке. Когда я должен это сделать, я просто просматриваю отчет с использованием пути к серверу отчетов ( "отчеты" - это диспетчер отчетов) и копирует URL-адрес, а затем добавляет &<ParameterName>=<value> в конец.

Ответ 2

У меня был тот же вопрос и многое другое, и хотя этот поток старый, он по-прежнему хорош, поэтому в резюме для SSRS 2008R2 я нашел...

Ситуации

  • Вы хотите использовать значение из URL-адреса для поиска данных
  • Вы хотите отобразить параметр из URL-адреса в отчете
  • Вы хотите передать параметр из одного отчета в другой отчет

Действия

Если применимо, не забудьте заменить Отчеты/Страницы/Отчет .aspx? ItemPath = на ReportServer?. Другими словами: Вместо этого:

http://server/Reports/Pages/Report.aspx?ItemPath=/ReportFolder/ReportSubfolder/ReportName

Используйте этот синтаксис:

http://server/ReportServer?/ReportFolder/ReportSubfolder/ReportName

Добавить параметр в отчет и установить как скрытый (или видимый, если разрешено действие пользователя, но имейте в виду, что, хотя параметр отчета изменится, URL-адрес будет не изменяться на основе обновленная запись).

Прикрепите параметры к URL с помощью & ParameterName = Value

Параметры можно ссылаться или отображать в отчете с помощью @ParameterName, независимо от того, установлены ли они в отчете или в URL-адресе

Чтобы скрыть панель инструментов, где отображаются параметры, добавьте & rc: Toolbar = false в URL (ссылка)

Объединяя все вместе, вы можете запустить URL со встроенными значениями или вызвать это как действие из одного отчета и прочитать другой отчет:

http://server.domain.com/ReportServer?/ReportFolder1/ReportSubfolder1/ReportName&UserID=ABC123&rc:Toolbar=false

В запросе свойств набора данных отчета: SELECT stuff FROM view WHERE User = @UserID

В отчете установите значение выражения в [UserID] (или = Fields! UserID.Value)

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

Чтобы передать параметр с помощью Action = Перейти к URL, установите выражение:

="http://server.domain.com/ReportServer?/ReportFolder1/ReportSubfolder1/ReportName&UserID="
 &Fields!UserID.Value 
 &"&rc:Toolbar=false"
 &"&rs:ClearSession=True"

Убедитесь, что у вас есть пробел после выражения, если за ним следует, и (разрыва строки недостаточно). Перед выражением пробела не требуется. Этот метод может передавать параметр, но не скрывает его, поскольку он отображается в URL-адресе.

Если вы не включили & rs: ClearSession = True, отчет не будет обновляться до тех пор, пока не будет очищен кеш сеанса браузера.

Чтобы передать параметр, используя Action = Перейти к отчету:

  • Укажите отчет
  • Добавить параметр для запуска отчета
  • Добавьте параметры (ы), которые вы хотите передать (параметры должны быть определены в отчете о назначении, поэтому, насколько мне известно, вы не можете использовать команды, специфичные для URL, такие как панель инструментов rc: с помощью этого метода); однако, я полагаю, было бы возможно прочитать или установить флажок "Приглашенный пользователь", как показано в отчетах о параметрах sever, с помощью настраиваемого кода в отчете.)

Для справки /=% 2f

Ответ 3

Я сам решил эту проблему. Я нашел решение на MSDN: http://msdn.microsoft.com/en-us/library/ms155391.aspx.

Формат в основном

http://<server>/reportserver?/<path>/<report>&rs:Command=Render&<parameter>=<value>

Ответ 4

Попробуйте изменить "Отчеты" на "ReportServer" в своем URL-адресе

Ответ 5

Попробуйте передать несколько значений через url:

/ReportServer?%2fService+Specific+Reports%2fFilings%2fDrillDown%2f&StartDate=01/01/2010&EndDate=01/05/2010&statuses=1&statuses=2&rs%3AFormat=PDF

Это должно работать.

Ответ 6

Я решил аналогичную проблему, передав значение доступного параметра в URL вместо метки этого параметра.

Например, у меня есть отчет с параметром с именем viewName, а предопределенные доступные значения для параметра: (метки/значения) - заказы/подзадачи, orderDetail/sub_orderDetail, product/sub_product.

Чтобы вызвать этот отчет с URL-адресом для автоматического рендеринга для параметра = product, вы должны указать значение, а не метку.
Это было бы неправильно: http://server/reportserver?/Data+Dictionary/DetailedInfo&viewName=product&rs:Command=Render

Это правильно: http://server/reportserver?/Data+Dictionary/DetailedInfo&viewName=sub_product&rs:Command=Render

Ответ 8

Попробуйте изменить "Отчеты" на "ReportServer" в своем URL-адресе. Для этого просто войдите в это http://host/ReportServer/, и оттуда вы можете перейти на страницы отчета. Там добавьте свои парматеры &<parameter>=<value>

Для получения более подробной информации:

http://dobrzanski.net/2008/08/11/reporting-services-problem-with-passing-parameters-directly-in-the-url/

https://www.mssqltips.com/sqlservertip/1336/pass-parameters-and-options-with-a-url-in-sql-reporting-services/