Выражение IIF — ошибка разрешения перегрузки

#report #ssrs-2012 #reportbuilder

#Сообщить #ssrs-2012 #reportbuilder

Вопрос:

Я получаю ошибку при выполнении приведенной ниже инструкции IIF —

 =IIF(
(First(Fields!ProcessDate.Value, "Currency_Date_GBP_Error_Acct")=0)
OR
(First(Fields!ProcessDate.Value, "Currency_Date_GBP_Error_Acct")=1)
,(Last(Fields!FXCCYUSD.Value, "Currency_Date_GBP_Error_Acct"))
,(Fields!SecondtoLastUSDtoCCY.Value, "Currency_Date_GBP_Error_Acct")
)
  

Сообщение об ошибке:
«Выражение значения для textrun ‘Textbox115.Paragraphs[0].TextRuns[0]’ содержит ошибку: [BC30516] Не удалось разрешить перегрузку, поскольку ни один доступный ‘IIf’ не принимает такое количество аргументов».

Ответ №1:

Эта ошибка обычно означает, что где-то неуместна скобка или, возможно, ей не нравится, что OR она не заключена в круглые скобки. Попробуйте это — оно должно работать так, как ожидалось.

 =IIF(((First(Fields!ProcessDate.Value, "Currency_Date_GBP_Error_Acct")=0) OR
(First(Fields!ProcessDate.Value, "Currency_Date_GBP_Error_Acct")=1))
,(Last(Fields!FXCCYUSD.Value, "Currency_Date_GBP_Error_Acct"))
,(Fields!SecondtoLastUSDtoCCY.Value, "Currency_Date_GBP_Error_Acct"))
  

Если этого не происходит, дважды проверьте свои круглые скобки, особенно те, которые окружают OR часть выражения.