Мне нужно ПОМОЧЬ получить выбор отчета ВСЕ в выпадающем списке, чтобы запустить отчет для ВСЕХ - PullRequest
1 голос
/ 21 октября 2011

Я вытаскиваю из таблицы А, в которой есть 4 статуса транзакции ... '03', '05', '06', & '07'
Я определил набор данных, который тянет их ...

SELECT 'ALL' AS label, NULL AS value, 0 AS iordr
UNION ALL
SELECT '03' AS label, '03' AS value, 1 AS iordr
UNION ALL    
SELECT '05' AS label, '05' AS value, 2 AS iordr
UNION ALL
SELECT '06' AS label, '06' AS value, 3 AS iordr
UNION ALL
SELECT '07' AS label, '07' AS value, 4 AS iordr
ORDER BY iordr

Но когда я пытаюсь определить параметр, когда я выбираю ВСЕ из раскрывающегося списка отчета, он не тянет «03», «05», «06» и «07» - фактически он тянет НИЧЕГО ... как мне сделать так, чтобы выбор 'ВСЕ' потянул ВСЕ статусы в одном отчете?
Свойства параметра отчета:

Общее
Тип данных: текст; Разрешить нулевое значение
Выберите параметр видимости: Видимый
Доступные значения:
Выберите один из следующих вариантов:
Получить значения из запроса
Набор данных (определенный выше)
Поле значения: значение
Поле метки: метка
Значения по умолчанию:
Выберите один из следующих параметров: Нет значения по умолчанию

Ответы [ 2 ]

0 голосов
/ 24 октября 2011

В SSRS многозначные параметры передаются в SQL в виде строки, разделенной запятой.

Самый простой способ использовать многозначный параметр SSRS - встроить полный SQL-запрос в набор данных и использовать форму WHERE myTable.Column IN ( @MyParameterName )

Или вы можете переместить свой параметр фильтрации в фильтр набора данных или, может быть, фильтр на используемом вами таблике.

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

0 голосов
/ 21 октября 2011

Значение, выбранное из вашего раскрывающегося списка, будет одним из { NULL, '03', '05', '06', '07' }. Таким образом, вы можете написать свое WHERE предложение в отчете следующим образом:

SELECT ...
FROM ...
WHERE SomeColumn = @UserSelectedValue
  OR @UserSelectedValue IS NULL
;

Это не сработает, если ваше предложение WHERE будет просто WHERE SomeColumn = @UserSelectedValue, потому что = NULL недопустимо (в любом случае, как стандарт ANSI), и даст только результаты, если SomeColumn будет NULL.

Эффективно сравнивая NULL IS NULL, вы создаете условие, которое выполняется для каждой отдельной строки и, таким образом, дает вам все данные.

...