Как перейти к URL-адресу в SSRS?

У меня есть два отчета в одном фордере на сервере отчетов. Я хотел связать оба отчета с параметрами передачи назад и вперед.

Я пробовал использовать переход к параметру передачи отчета, он работает, но открывает отчет в том же окне. Я ищу, чтобы открыть отчет в новом окне, поэтому попытался использовать Jump to URL, используя это выражение.

= "javascript: void (window.open ('http://servername/reportserver?%2fStaffing%2fTest%2fStaffing Сводка прогноза & rs: Command = Render & PI_REGION_LIST = "+ Параметры! PI_REGION_LIST.Value +" & PI_CENTER_CODE = "+ Параметры! PI_CENTER_CODE.Value +" & PI_PROBABILITY = "PI_PROBABILITY =" + PI_PROBABILITY = "+ Параметры! "'))"

может ли кто-нибудь помочь мне здесь. Как я буду делать это динамически, чтобы мне не приходилось менять имя сервера во время рабочего движения? Первые 3 параметра являются многозначными, это нормально? мои отчеты доступны из самого диспетчера отчетов. что я должен дать для сервера отчетов?

Меня смущают ?, & и / во всей этой эпрессии. что это %2f. Я немного погуглил по этому поводу, но ничто не дает мне правильного представления.

Ваша помощь будет оценена по достоинству.

Спасибо, Сан


person Community    schedule 17.06.2009    source источник


Ответы (4)


Я просто использовал «Перейти к URL-адресу» и сбросил код javascript. Я использовал построитель выражений для создания следующего вывода на основе моего сервера и отчета, который я вызывал, для которого потребовались параметры prmCUID и prmEnabled:

="http://sk24-cbnks002/reportserver?/Autosweep/Operations/Sweeps+By+Credit+Union&prmCUID=" + Fields!CU_ID.Value.ToString + "&prmEnabled=true&rs%3aParameterLanguage=en-CA"

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

-Дэйв

person Daver    schedule 20.10.2009
comment
Я нашел лучший ответ в другой теме. Если вы последуете ответу Шираза ниже, я думаю, вы получите лучшие результаты. Мне он также нравится больше, чем варианты javascript, которые я видел здесь. - person Daver; 31.08.2012

Чтобы использовать Jump to URL (без javascript), вы должны указать следующее:

=Globals!ReportServerUrl & "/Pages/ReportViewer.aspx?"
& "/Staffing/Test/Staffing Forecast Summary"
& "&rs:Command=Render"
& "&PI_REGION_LIST=" & JOIN(Parameters!PI_REGION_LIST.Value, ",")
& "&PI_CENTER_CODE=" & JOIN(Parameters!PI_CENTER_CODE.Value, ",")
& "&PI_PROBABILITY=" & JOIN(Parameters!PI_PROBABILITY.Value, ",")
& "&PI_X=" & Parameters!PI_X.Value

Я разместил элементы на нескольких строках и разнес их, чтобы их было легче читать.

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

Во второй строке указывается каталог и отчет для запуска на сервере отчетов.

Третья строка сообщает серверу отчетов, что делать с отчетом: вы можете экспортировать в CSV следующие

& "&rs:Format=csv&rc:NoHeader=True&rc:Encoding=Ascii&rs:Command=Render"

В последних строках указываются используемые параметры. (Поскольку первые три параметра многозначны, мы объединяем их все вместе, но разделяем их запятой).

При переходе на использование функциональности javascript (с VBScript для редактора выражений в дизайнере отчетов) мы меняем & на + для выполнения конканенации. И чтобы объяснить "?", "&", "/", "=" И "" они становятся% 3f,% 26,% 2f,% 3d и% 20 соответственно из-за кодирования URL (которое вы можете узнать подробнее здесь).

К сожалению, мой Javascript недостаточно хорош, чтобы быть уверенным в переходе с VBScript на Javascript, но я предполагаю, что это произойдет примерно так:

Globals!ReportServerUrl & "/Pages/ReportViewer.aspx?/Staffing/Test/Staffing Forecast Summary&rs:Command=Render&PI_REGION_LIST=" & JOIN(Parameters!PI_REGION_LIST.Value,",") & "&PI_CENTER_CODE=" & JOIN(Parameters!PI_CENTER_CODE.Value,",") & "&PI_PROBABILITY=" & JOIN(Parameters!PI_PROBABILITY.Value,",") & "&PI_X=" & Parameters!PI_X.Value

к этому:

="javascript:void(window.open('" & Globals!ReportServerUrl & "%2fPages%2fReportViewer.aspx%3f%2fStaffing%2fTest%2fStaffing%20Forecast%20Summary%26rs:Command%3dRender%26PI_REGION_LIST%3d" & JOIN(Parameters!PI_REGION_LIST.Value,",") & "%26PI_CENTER_CODE%3d" & JOIN(Parameters!PI_CENTER_CODE.Value,",") & "%26PI_PROBABILITY%3d" & JOIN(Parameters!PI_PROBABILITY.Value,",") & "%26PI_X%3d"+Parameters!PI_X.Value & "'))"

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

person Kevin Hogg    schedule 05.10.2011

SSRS MS SQL Server 2008 R2

внутри TEXTBOX перейдите к свойствам текстового поля (F4 или щелкните правой кнопкой мыши-> свойства) перейдите к набору действий перейдите по URL-адресу и настройте следующий код в выражении (маленький Fx справа):

="http://MYSERVER/ReportServer?/MY REPORT FOLDER/MY REPORT NAME&rc:Parameters=True&rs:Command=Render&TODAY="& CStr(Fields!DT_0.Value)& "&ENG=" &Str(Fields!Employee_id.Value) & "&DT_TO=" & CStr(Fields!DT_6.Value)

Приведенный выше код работает в моей среде здесь.

Обратите внимание на 3 параметра:

параметр 1 называется СЕГОДНЯ параметр 2 называется ENG параметр 3 называется DT_TO

Я также изо всех сил пытался передать параметры.

Их значения взяты из разных наборов данных.

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

Марсело Миорелли

person Community    schedule 05.07.2013

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

=Globals!ReportServerUrl & "/Pages/ReportViewer.aspx?"

& "/Staffing/Test/Staffing Forecast Summary"

& "&rs:Command=Render"

& "&PI_REGION_LIST=" & JOIN(Parameters!PI_REGION_LIST.Value, "&PI_REGION_LIST=")

& "&PI_CENTER_CODE=" & JOIN(Parameters!PI_CENTER_CODE.Value, "&PI_CENTER_CODE=")

& "&PI_PROBABILITY=" & JOIN(Parameters!PI_PROBABILITY.Value, "&PI_PROBABILITY=")
& "&PI_X=" & Parameters!PI_X.Value
person Roy Casey    schedule 24.08.2018