2017-02-01 10 views
0

Мы создали отчет с построителем отчетов, опубликованным на сервере отчетов. Отчет 1, первичный отчет имеет 6 параметров; 3 многозначных параметра и 3 одиночных параметра. Хотелось бы, чтобы Report 2 открывался из отчета 1, но в отдельном окне и передавал все 6 параметров. В отчете 2 они также построены как параметры. Параметры: Соседство (многоканальный) Start (одиночный) End (одиночный) Источника (многоканальный) DATA_TYPE (мульти) Prov_type (одиночный)SSRS, передающие многозначные параметры для открытия отчета в дополнительном окне

В отчете 1 мы создали текстовое поле с действием на откройте команду javascript. Вот текущий вызов в отчете 1, который открывает другое окно, но дает общую ошибку «не правильную»

javascript:void(window.open('http://ourcompany/Reportserver/Pages/Report.aspx?%2fReports+in+Development%2funknown+provider+detail&rs:Command=Render&NEIGHBORHOOD="+join(Parameters!NEIGHBORHOOD.Value, "&NEIGHBORHOOD=")&"&SOURCE="+join(Parameters!SOURCE.Value,"&SOURCE=")&"&DATA_TYPE="+join(Parameters!DATA_TYPE.Value,"&DATA_TYPE=")&"&START="+Fields!START.Value+"&END="+Fields!END.Value+"&PROV_TYPE="+Fields!PROV_TYPE.Value+"'))

Я заменил «Поле» с «Параметрами» и по-прежнему не работает. Если я создал его, передавая статические поля, он работает, как показано ниже;

javascript:void(window.open('http://ourcompany/Reportserver/Pages/Report.aspx?%2fReports+in+Development%2funknown+provider+detail&rs:Command=Render&rc:Parameters=true&NEIGHBORHOOD=Mesa&START=11/01/2016'))

Любые мысли? Благодаря!

+1

Вы пытались использовать (в свойствах текстового поля >> вкладка действий «Перейти к отчету»)? – Kostya

+0

Да, и он работает, однако он открывается в том же окне. Хотелось бы открыть отчет в своем окне. – Wendi

ответ

0

Часть проблемы заключается в том, что вы передаете многозначные параметры несколько раз. Например, часть вашего выражения приведет к:

...&SOURCE=A&SOURCE=B&SOURCE=C... 

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

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

"&SOURCE=" & join(Parameters!SOURCE.Value,",") 

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

+0

Я изменил код, как вы сказали выше, и получил ту же ошибку rsInvalidItemPath. "& SOURCE =" + join (Параметры! SOURCE.Value, ",") – Wendi

+0

Конкретная ошибка "'/ Отчеты в разработке/неизвестная информация поставщика, соединение (параметры! NEIGHBORHOOD.Value,", "),", join (Параметры! SOURCE.Value, ","), ", join (Параметры! DATA_TYPE.Value,", ")," "недействительны. Полный путь должен быть длиной менее 260 символов; применяются другие ограничения. Если сервер отчетов находится в основном режиме, путь должен начинаться с косой черты. (rsInvalidItemPath) " – Wendi

0

Итак, я разработал синтаксис и считаю, что он работает. Я достал несколько дополнительных амперсандов, которые у меня были там. Вот код работы:

javascript:void(window.open('http://ourcompany/Reportserver/Pages/Report.aspx?%2fReports+in+Development%2funknown+provider+detail&rs:Command=Render&NEIGHBORHOOD="+join(Parameters!NEIGHBORHOOD.Value, ",")"&SOURCE="+join(Parameters!SOURCE.Value,",")"&DATA_TYPE="+join(Parameters!DATA_TYPE.Value,",")"&START="+Parameters!START.Value+"&END="+Parameters!END.Value+"&PROV_TYPE="+Parameters!PROV_TYPE.Value+"')) 

Однако у меня сейчас совсем другая проблема. Похож на ошибку SSRS. Я получаю сообщение об ошибке: «параметр отчета« СТАРТ »недействителен для его типа. (RsReportParameterTypeMismatch)« В обоих отчетах это значения даты/времени. Я сделал все трюки, изменив форматы системного времени и времени безрезультатно. Любые мысли об этом? Спасибо