Выбрать все как значение по умолчанию для параметра Multivalue
Я создаю отчет в Visual Studio 2008 с большим количеством многозначных параметров, и он отлично работает, но я хотел бы иметь параметр "(Выбрать все)" в качестве значения по умолчанию при открытии отчета.
Есть ли какое-то выражение или код SQL, который я могу использовать, чтобы это произошло? Или мне нужно выбирать "(Выбрать все)" каждый раз в каждом параметре каждый раз, когда я хочу запустить отчет?
Ответы
Ответ 1
Попробуйте установить параметр "значение по умолчанию" для использования того же запроса, что и "доступные значения". Фактически он предоставляет каждое "доступное значение" как "значение по умолчанию", и автоматически выбирается опция "Выбрать все".
Ответ 2
Использование набора данных со значениями по умолчанию является одним из способов, но вы должны использовать запрос для доступных значений и значений по умолчанию, если значения жестко закодированы на вкладке Доступные значения, тогда вы должны определить значения по умолчанию в качестве выражений. Картинки должны объяснить все
Создать параметр (если он не создан автоматически)
![Create Parameter]()
Определить значения - пример неправильного пути
![Define values - wrong way]()
Определить значения - пример правильного пути
![Define values - correct way]()
Установите значения по умолчанию - вы должны определить все значения по умолчанию, отражающие доступные значения, чтобы сделать "Выбрать все" по умолчанию, если вы не будете определять все, только те, которые определены, будут выбраны по умолчанию.
![Set default values]()
Результат
![The result]()
Одно изображение для типа данных: Int
![One picture for Data type Int]()
Ответ 3
Не работает, если у вас есть нули.
Вы можете обойти это, изменив свой оператор select, чтобы что-то плюнуть в nulls:
phonenumber = CASE
WHEN (isnull(phonenumber, '')='') THEN '(blank)'
ELSE phonenumber
END
Ответ 4
Принятый ответ правильный, но не завершен.
Для того чтобы Select All
был параметром по умолчанию, набор данных доступных значений должен содержать не менее 2 столбцов: значение и метку. Они могут возвращать одни и те же данные, но их имена должны быть разными. Затем набор данных значений по умолчанию будет использовать столбец значений, а затем значение Select All
будет использоваться по умолчанию. Если набор данных возвращает только 1 столбец, в раскрывающемся списке параметра будет выбрано только последнее значение записи.
Ответ 5
Добавление к ответу от E_8.
Это не работает, если у вас есть пустые строки.
Вы можете обойти это, изменив инструкцию select в SQL или изменив свой запрос в наборе данных SSRS.
Select distinct phonenumber
from YourTable
where phonenumber <> ''
Order by Phonenumber
Ответ 6
Он работает лучше
CREATE TABLE [dbo].[T_Status](
[Status] [nvarchar](20) NULL
) ON [PRIMARY]
GO
INSERT [dbo].[T_Status] ([Status]) VALUES (N'Active')
GO
INSERT [dbo].[T_Status] ([Status]) VALUES (N'notActive')
GO
INSERT [dbo].[T_Status] ([Status]) VALUES (N'Active')
GO
DECLARE @GetStatus nvarchar(20) = null
--DECLARE @GetStatus nvarchar(20) = 'Active'
SELECT [Status]
FROM [T_Status]
WHERE [Status] = CASE WHEN (isnull(@GetStatus, '')='') THEN [Status]
ELSE @GetStatus END
Ответ 7
Это довольно легко сделать, создав набор данных с текстовым запросом, подобным этому:
SELECT 'Item1'
UNION
SELECT 'Item2'
UNION
SELECT 'Item3'
UNION
SELECT 'Item4'
UNION
SELECT 'ItemN'
Запрос должен возвращать все элементы, которые можно выбрать.