Как фильтровать набор данных в службах SQL Reporting Services в соответствии с параметром?
У меня есть нефильтрованный набор данных для работы, чтобы создать отчет (SQL Server 2005 btw).
Допустим у меня есть имя столбец, и я хотел бы добавить параметр в свой отчет, чтобы выбрать только имена, содержащие некоторые символы.
знаете ли вы, как обращаться с этими фильтрами?
Я пробовал без удачи такие:
=Fields!Name.Value Like =Parameters!FilterName.Value
=Fields!Name.Value = = "%" + Parameters!FilterName.Value + "%"
Я хотел бы иметь возможность получить имена " foo " и "foobar", если я дайте параметр 'oo'
Edit: Я знаю, что фильтрация должна выполняться на стороне SQL server, но я не управляю данным набором данных (веб-сервис дает его с помощью метода без параметров), поэтому я должен фильтровать на стороне отчета.
5 ответов
я отвечаю на свой собственный вопрос, выражение фильтра на самом деле:
=Fields!Name.Value Like ="*"+ Parameters!FilterName.Value + "*"
т. е. использовать "*"
вместо "%"
, на самом деле.
предпочтительной практикой является точное совпадение.
вы можете создать список параметров с несколькими значениями из набора данных, возвращенного из запроса или альтернативного запроса, тем самым гарантируя точное соответствие.
следующая ссылка может оказаться полезной.
Я бы предложил применить фильтр как часть инструкции SQL, которая выполняется для возврата набора данных вместо того, чтобы пытаться применить фильтры в отчете служб Reporting Services. Я думаю, что SQL Engine намного более оптимизирован для обработки этих типов фильтров / запросов.
ваш ответ вывел меня на правильный путь :)! Возможно, это отличается для SQL Server 2005; но для меня сработало следующее решение:
=Fields!AppName.Value Like ="*" & Parameters!FilterApplication.Value & "*"
перейдите к свойствам набора данных, перейдите на вкладку фильтр. в раскрывающемся списке выражение щелкните поле, по которому требуется отфильтровать (имя). выберите оператора и выберите как. в поле Значение выберите выражение. откроется новое окно. перейдите в список параметров и добавьте параметр в уравнение. нажимать OK.