SSRS передает многозначные параметры, чтобы открыть отчет в дополнительном окне

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

В отчете 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'))

Какие-нибудь мысли? Спасибо!

2 ответа

Решение

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

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

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

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

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

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

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

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. Я получаю сообщение об ошибке "параметр отчета" START "недопустим для своего типа. (RsReportParameterTypeMismatch)" В обоих отчетах они являются значениями даты / времени. Я сделал все трюки, изменив системные форматы даты и времени безрезультатно. Есть мысли по этому поводу? Спасибо

Другие вопросы по тегам