Записи SSRS не отображаются, когда используется (выберите все), но при выборе особого значения

У меня есть отчет, который имеет параметр с несколькими значениями. Он имеет доступные значения (1, 2, 3, 4, 5 и пустой). Пустое значение не равно NULL, это просто пустая ячейка.

Для целей тестирования должна появиться только одна запись. Запись имеет пустое значение в ячейке, которую я использую для фильтрации в моей хранимой процедуре.

В выпадающем параметре я вижу все параметры. Если я выберу вариант (Выбрать все), я не получу запись, которую я хочу. Однако, если я выберу только пустое значение, я получаю запись, которую я хочу. Я обновил запись вручную до «2». Я выбираю (Select All), и я получаю запись. Я выбираю только значение «2», и я получаю запись. Если я снова удалю значение, чтобы сделать значение пустым, я получаю запись только в том случае, если я выберу только вариант «Пустое» в раскрывающемся списке.

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

Что мне не хватает в моей хранимой процедуре или в моем отчете? Заранее спасибо.

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

В самом отчете вы не получите список значений в красиво завернутой строке для отображения. Мне пришлось использовать код для повторения значений в параметре.

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

CREATE PROCEDURE dbo.Test_RPT ( @TestMultiSelect varchar(1000) ) AS SELECT @TestMultiSelect RVAL 

В отчете у меня просто было одно текстовое поле, отображающее это поле RVAL .

Если я поставлю пустую опцию в начале, выход будет 1,2,3,4,5 . Если пустая опция находилась в любом другом месте, она включала: 1,2,3,,4,5 , 1,2,3,4,5,

В случаях, когда необходимо передать несколько значений в раздел Sql IN в хранимую процедуру из набора данных отчета SSRS, необходимы небольшие изменения в хранимой процедуре:

См. Предложение Sample WHERE в SP

 ... AND Courses.Type_Code IN (@Type_Code) 

Добавьте функцию SplitString () для разделения переданных параметров на основе разделителя.

Тело SplitString () будет выглядеть так:

 CREATE FUNCTION [dbo].[SplitString] ( @pString VARCHAR(8000), @pDelimiter CHAR(1) ) RETURNS @Values TABLE (Value VARCHAR(50)) AS BEGIN DECLARE @xml as XML; SET @xml = cast(('<X>'+replace(@pString, @pDelimiter, '</X><X>')+'</X>') as xml); INSERT @Values SELECT N.value('.', 'varchar(50)') as value FROM @xml.nodes('X') as T(N); RETURN END; 

Наконец, предложение IN будет выглядеть так:

 ... AND Courses.Type_Code IN (SELECT * FROM dbo.SplitString(@type_code,',')) 
  • Рассчитанная серия SSRS вместе с регулярной серией
  • SSRS - повторное использование временной таблицы в нескольких наборах данных
  • Какие учетные данные необходимо передавать при доступе к отчету SSRS через URL-адрес?
  • Как создать гистограмму на SSRS
  • Добавление функции «Предыдущий и следующий месяц» в календарь
  • Перемещение только подписки с SSRS 2008 на SSRS 2012
  • Как перемещать столбцы деталей между родительскими группами в SSRS
  • Отладка отчета не работает, показывая сообщение об ошибке «Убедитесь, что предоставлены достаточные разрешения» Как решить эту проблему?
  • Создатель отчетов SSRS, как скрыть конкретное текстовое поле, экспортирующее в Excel
  • Как удалить интервал между столбцами в столбчатой ​​диаграмме SSRS 2012
  • Нарушение отчета SSRS в зависимости от параметра Multi Value
  • Давайте будем гением компьютера.