#reporting-services #ssrs-2012
Вопрос:
Я пытаюсь получить условие поля, чтобы дать мне N/A, когда оно пустое. Также дать мне потерпеть неудачу на определенных условиях. Кроме того, в переменной pass/fail дайте мне PASS или fail для переменной. Чего не хватает в моем синтаксисе?
=IIf(IsNothing(Variables!PassFail.Value),"N/A", iif(Variables!NameVer.Value = " x") Or (Variables!levPassFail.Value = "FAIL") Or (Variables!countPassFail.Value = "FAIL"),"FAIL", Variables!PassFail.Value)
Ответ №1:
Синтаксис был неправильным, но трудно точно знать, чего вы хотите достичь.
Ниже будет воспроизведена ваша первоначальная попытка
=IIF( IsNothing(Variables!PassFail.Value) ,"N/A" , IIF(Variables!NameVer.Value = " x" Or Variables!levPassFail.Value = "FAIL" Or Variables!countPassFail.Value = "FAIL" ,"FAIL" , Variables!PassFail.Value ) )
Примечание: Я не уверен, что = " x"
это опечатка и должна быть = "x"
, но я оставил там ваш исходный код.
Если это не поможет, пожалуйста, перечислите возможные сценарии и требуемые выходные данные в каждом, тогда я могу предложить более точное решение.
Комментарии:
1. спасибо тебе за ответ, Алан. Я все еще получаю аргумент BC30455], не указанный для параметра ‘FalsePart’ «Публичной функции IIf(Выражение Как логическое, Истинная часть Как объект, Ложная часть Как объект) Как объект». После загрузки выражения и и попытки сохранения. Ссылка на таблицу в SSRS представляет собой сводную таблицу. Все, что делает эта таблица, — это смотрит на выходные данные установленных переменных. Должен ли я вместо этого использовать ссылки на поля, изменит ли это вообще симптом?
2. Похоже, вы пропустили часть кода. Я только что посмотрел на него еще раз, и, похоже, все в порядке, но сейчас полночь, так что я, возможно, устал и что-то упустил… Вам, вероятно, нужно показать, с чем вы работаете. Вы можете использовать
Fields!
ссылки только на справочные данные в своем наборе данных, если вы тестируете переменные, то вам придется их использоватьVariables!
. Просто непонятно, что вы на самом деле пытаетесь сделать.3. В настоящее время я не получаю никаких ошибок после сохранения. Но я тестирую отчет с помощью построителя отчетов со случайной информацией, чтобы имитировать пустые данные или отсутствие данных, чтобы предоставить мне часть инструкции If. Я предполагаю, что сама переменная также должна была бы дать мне пустое значение, чтобы сводка дала мне ответ, основанный на пустом,
4. «Это переменная для PassFail.value» =IIf(Max(Поля!res. Значение, «Данные») > Переменные!изменяемые. Значение, «СБОЙ», «ПРОПУСК»)
5. Возможно, вам захочется либо протестировать
IsNothing(Variables!PassFail.Value)
деталь, либо инициализировать переменную чем-то, что вы можете протестировать, например пустой строкой. Я не уверен , что переменная когда-либо будетnothing
, я могу ошибаться, я просто не знаю, так что, возможно, стоит протестировать эту часть, а затем поработать над следующей частью, как только вы узнаете, что эта часть работает должным образом.