Подтвердить что ты не робот

Многозначный параметр SSRS. Проверьте, выбрано ли "Выбрать все"

У меня есть параметр multi value в моем отчете SSRS. Я хочу узнать, отмечен ли (Выбрать все) в этом параметре.

Другими словами, проверяются ли все значения в параметре или проверяются только некоторые значения.

Возможно ли это?

Я могу узнать количество выбранных значений через Parameters! Parameter.Count. Есть ли способ узнать общее количество элементов в этом параметре?

4b9b3361

Ответ 1

Если у кого-то все еще возникают проблемы, я просто закодировал это легкое исправление.

=IIF(COUNTROWS("dataset").Equals(Parameters!parameter.Count),"it is equal","this is not equal")

Ответ 2

Ваш подход звучит хорошо: я бы сделал параметры для параметра из набора данных.

Затем вы можете использовать =COUNTROWS("DataSetName"), чтобы вернуть общее количество параметров для вашего параметра и сравнить это с параметрами! Parameter.Count, как вы предлагаете.

Ответ 3

Для конкретного примера использования выбранного фильтра в вашем отчете в текстовом поле здесь будет выведено выражение, которое будет отображать "Все", если "(Выбрать все)", иначе оно отобразит все выбранные значения как список, разделенный запятой:

=IIF(
     Parameters!YourMultivalueParam.Count = countrows("YourDataset"),
     "All",
     Join(Parameters!YourMultivalueParam.Label,", ")
 )

(разбиение на несколько строк для удобства чтения)

countrows ссылка: https://technet.microsoft.com/en-us/library/dd255215.aspx


Кредит на другие ответы, просто хочу расширить их для этого общего сценария.

Ответ 4

Я также столкнулся с этой проблемой.. Я решил это таким образом.

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

= "Carrier =" и Switch (Параметры! CarrierHidden.Count = Параметры! Carrier.Count, "All",  Параметры! Carrier.Count > 1 и параметры! CarrierHidden.Count > Параметры! Carrier.Count, "Multi",  Параметры! Carrier.Count = 1, Параметры! Carrier.Label(0))

Это сработало для меня.

Ответ 5

Проблема в том, что вы пытаетесь извлечь что-то для другого набора данных, тогда перекрестная ссылка на подсчет строк в другом наборе данных не будет работать. Вам придется идти с тем, что говорится в предыдущем сообщении. Создайте внутренний параметр точного типа и присвойте значение по умолчанию всему набору данных. Таким образом, у вас есть максимальное количество строк со скрытого parameter.count = rowscount. Таким образом, вы можете использовать его в другом наборе данных, при условии, что набор данных ПОСЛЕ того, как первый заполняется.

Ответ 6

В соответствии с поиском в Microsoft ssrs help:

= Параметры!.Count Возвращает целочисленное значение 1. Для параметра с одним значением счетчик всегда равен 1.

Я проверил, что это действительно работает, проверьте целое число, возвращаемое для встроенного поля count параметров.

Разрешить несколько значений при выборе параметра. Проверка значения указанного поля позволит вам узнать, сколько значений пользователь выбрал.

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

Таким образом, видимость или скрытие выражения видимости выглядит так в одном табло:

= IIF (Параметры! company_number.Count > 1, True, False)

и так далее:

= IIF (Параметры! company_number.Count = 1, True, False)

Счастливое кодирование! Robyn