2015-06-09 3 views
0

У меня есть несколько Parameters, что я пытаюсь установить основан от результатов, которые пользователь выбирает, но когда я выбираю из моих многозначных Parameter моих ошибок отчета с Failed to evaluate the FilterValues of the DataSet 'DST_MyThirdDataSet'SSRS Multi-Значение Параметр Не Фильтрование

I имеют мой первый DataSet под названием DST_MyFirstDataSet, который используется для создания списка Parameter под названием Parameter1.

Мой второй DataSet под номером DST_MySecondDataSet отфильтрован на основе того, что выбрано в Parameter1. Мой фильтр выглядит следующим образом:

Expression [DataSet1Id] Integer = CInt(Parameters!Parameter1.Value) 

Это то, что я использую для моей второй Parameter называется Parameter2, который является параметром Multi-Value. Кажется, это работает правильно.

Мой третий DataSet называется DST_MyThirdDataSet, который я настроил для фильтрации, исходя из того, что выбрано в Parameter2. Мой фильтр выглядит следующим образом:

Expression [DataSet2Id] Integer In CInt(Parameters!Parameter2.Value) 

Везде я посмотрел в Интернете, кажется, поддерживает то, что я (с помощью In оператора и использование Parameters!Parameter2.Value), но я до сих пор, кажется, получают эту глупую ошибку.

Кто-нибудь видит, где я могу ошибаться?

EDIT

Это похоже на работу, если вместо преобразования Parameter в Integer, я конвертировать Field в String, но почему не могу я сделать это так, что я изначально имел?

ответ

2

Это не работает, потому что Parameters!Parameter2.Value на самом деле является массивом, потому что это параметр multi-select. Таким образом, вы пытаетесь преобразовать массив в целое число, и это не сработает.

Вы даже можете получить доступ к отдельным элементам массива, делая Parameters!Parameter2.Value(1) или количество элементов в массиве Parameters!Parameter2.Count (more info)

Я рекомендую устанавливать типы данных ваших параметров целого, если они должны быть целое число. Таким образом, вы можете избежать необходимости делать какие-либо преобразования, которые могут быть неудачными. parameter data type configuration

+0

Спасибо! Вы ответили, решив мою проблему. Однако я хотел бы прояснить, что 'Parameters2.Value' работает. Даже если вы правильно говорите, что это массив, это нормально, потому что я использовал оператор 'IN', который позволял бы искать в« массиве »значений. То, что в конечном итоге решило мою проблему, заключалось в установке параметра Data Type в Integer. Еще раз спасибо! – scapegoat17

+0

Вы использовали оператор in в 'Cint (Parameter ...)' функция cint не возвращает массив и не работает над каждым значением в массиве. Так что это не так, как вы думали. –

Смежные вопросы