Выберите Все как значение по умолчанию для параметра Многозначность - PullRequest
53 голосов
/ 24 марта 2010

Я создаю отчет в Visual Studio 2008 с большим количеством многозначных параметров , и он отлично работает, но мне бы хотелось, чтобы параметр "(Выбрать все)" использовался как значение по умолчанию отчет открыт.

Есть ли какое-нибудь выражение или код SQL, который я могу использовать, чтобы это произошло? Или мне нужно выбирать «(Выбрать все)» каждый раз, в каждом параметре, каждый раз, когда я хочу запустить отчет?

Ответы [ 7 ]

89 голосов
/ 30 марта 2010

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

15 голосов
/ 22 января 2015

Использование набора данных со значениями по умолчанию является односторонним, но вы должны использовать запрос для Доступных значений и Значений по умолчанию, если значения жестко заданы на вкладке Доступные значения, то вы должны определить значения по умолчанию в качестве выражений. Картинки должны все объяснить

Создать параметр (если не создан автоматически)

Create Parameter

Определение значений - пример неправильного пути

Define values - wrong way

Определение значений - пример правильного пути

Define values - correct way

Установить значения по умолчанию - вы должны определить все значения по умолчанию, отражающие доступные значения, чтобы сделать «Выбрать все» по умолчанию, если вы не определите все, по умолчанию будут выбраны только те, которые определены.

Set default values

Результат

The result

Одно изображение для типа данных: Int

One picture for Data type Int

8 голосов
/ 01 июля 2010

Не работает, если у вас есть нули.

Вы можете обойти это, изменив оператор SELECT, чтобы получить что-то пустое:

phonenumber = CASE
  WHEN (isnull(phonenumber, '')='') THEN '(blank)'
  ELSE phonenumber
END
5 голосов
/ 30 июля 2014

Принятый ответ правильный , но не полный . Чтобы параметр Select All был параметром по умолчанию, набор доступных значений должен содержать как минимум 2 столбца: значение и метку. Они могут возвращать одни и те же данные, но их имена должны быть разными. Набор данных «Значения по умолчанию» затем будет использовать столбец значений, и тогда значение по умолчанию будет Select All. Если набор данных возвращает только 1 столбец, в раскрывающемся списке параметра будет выбрано только значение последней записи.

0 голосов
/ 22 декабря 2015

работает лучше

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
0 голосов
/ 09 декабря 2015

Добавление к ответу от E_8.
Это не работает, если у вас есть пустые строки.

Вы можете обойти это, изменив оператор select в SQL или изменив свой запрос в наборе данных SSRS.

 Select distinct phonenumber
from YourTable
where phonenumber <> ''
Order by Phonenumber
0 голосов
/ 19 ноября 2010

Это довольно легко сделать, создав набор данных с текстовым запросом, подобным следующему:

SELECT 'Item1'
UNION
SELECT 'Item2'
UNION
SELECT 'Item3'
UNION
SELECT 'Item4'
UNION
SELECT 'ItemN'

Запрос должен вернуть все элементы, которые можно выбрать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...