#reporting-services #ssrs-2012
#службы отчетов #ssrs-2012
Вопрос:
Отчет работает только для 1 варианта, но когда я добавляю более одного, он ничего не возвращает (никаких ошибок, просто ничего в отчете).
Мой оператор SQL включает параметр @Region
where Region_Name IN (@Region)
В свойствах параметра Region я установил разрешение на несколько значений.
в свойствах фильтра набора данных:
Выражение: =Fields!Region.Value
Оператор: IN
Значение: =Parameters!Region.Value(0)
* РЕДАКТИРОВАТЬ Я удалил фильтр набора данных, как было предложено.
Ниже приведены свойства параметра. Доступные значения поступают из другого набора данных, который представляет собой отдельный список регионов.
Комментарии:
1. Почему вы ссылаетесь на
Region
параметр в обоихExpression
иValue
?2. @iamdave, честно говоря, не совсем уверен. Я следил за потоком и адаптировался.
3. Я обновил свой вопрос до использования параметра @Region в инструкции SQL
4. Использование
=Parameters!Region.Value(0)
задает первое значение параметра с(0)
помощью . Попробуйте просто использовать=Parameters!Region.Value
.
Ответ №1:
Ваше редактирование имеет гораздо больше смысла. Чтобы использовать многозначные параметры, вам просто нужно ссылаться на параметр обычным способом, за исключением использования in
в SQL:
select cols
from table
where specificcol in @Region
И затем не устанавливайте фильтр набора данных, просто убедитесь Region
, что на странице свойств есть ссылка на параметр Parameters
. Фильтрация данных выполняется путем включения параметра в SQL, поэтому вам не нужно также устанавливать фильтр для набора данных SSRS.
Комментарии:
1. Здравствуйте, да, я ссылаюсь на параметр в моем коде SQL, ГДЕ Region_Name В (@Region) Я удалил фильтр из набора данных, как вы предложили. Я не уверен в этом: убедитесь, что на странице свойств параметров есть ссылка на параметр Region Я обновлю свой пост фотографиями свойств параметра>
2. @Brent Добавленное изображение предназначено для свойств параметра, тогда как я имею в виду страницу параметров в окне свойств набора данных. Прошу прощения, я мог бы объяснить это немного лучше.
3. Извините за это. Да, параметр отображается в свойствах набора данных. Я вызываю процедуру хранения и нашел статью, в которой мне может понадобиться немного по-другому обращаться к параметру. Я попробовал это =JOIN (Параметры! Регион. Значение,»,») в окне выражения значения параметра, но тот же результат отчета работает с 1 выбранным выбором, но не работает с более чем 1 выбором
4. Использование объединения в значении параметра не сработало, но я думаю, что мои проблемы связаны с тем, что я использую хранимую процедуру и передаю значения параметров @Region.
5. Я думаю, что я переключусь на это. Вместо использования сохраненной процедуры я введу все значения, а затем попробую использовать свойство tablix для фильтрации моих регионов. использование сохраненной процедуры делает ее более сложной, чем нужно. У меня так много работы с проблемой, что «Все» отображает только первый вариант.
Ответ №2:
Вместо того, чтобы использовать параметр для перехода между хранимой процедурой и отчетом, я создал параметр и использовал его в свойствах табликса.
Выражение: =Поля!Регион.Оператор значения: В значении: =Параметры!Регион.Значение
При первом создании значения добавляется (0) в конец выражения. Удалите это, и все будет работать так, как ожидалось.
Спасибо @iamdave за помощь!
Редактировать:
Я вернулся к этому и смог выполнить фильтрацию с использованием параметра и хранимой процедуры.
Я перешел по ссылке из вопроса сюда: http://www.codeulike.com/2012/03/ssrs-multi-value-parameters-with-less.html
Я создал параметр dataset и удалил его из свойств табликса. Затем создал предоставленную функцию, и она сработала. Я не связывался со «ВСЕМИ» функциями в сообщении.
Спасибо за все советы. Брент
Комментарии:
1. Итак, вы знаете, что это не фильтрация вашего запроса. Запрос возвращает весь ваш набор данных, а в отчете используются только те данные, которые соответствуют фильтру. Гораздо эффективнее фильтровать SQL, как в моем ответе, чем просто набор данных. Кроме того, указание того, что ваш набор данных вызывает хранимую процедуру, является важной информацией, которая не учитывалась в вашем вопросе.
2. Дэйв (@iamdave), да, я знаю, что использую весь набор данных, но это небольшая таблица всего с несколькими тысячами строк. В идеале я бы настроил его с помощью параметра, но после того, как я понял, что мне нужно будет проанализировать данные, я выбираю более быстрый путь для выполнения задачи. Мне все еще интересно выяснить, как это сделать правильно. Да, я пропустил это и прошу прощения. Я работаю с SSRS совсем недавно, так что многое из этого для меня ново, и это то, что я просто пропустил. Спасибо за обратную связь и помощь. Брент