Ошибка SSRS: недопустимо преобразование строки «строка; #NA» в тип «Дата» - PullRequest
1 голос
/ 18 августа 2011

Мой источник данных - XML ​​(список sharepoint).Я в основном хочу показать форматированную дату, если значение в поле является датой, а если нет, то показать «NA».По какой-то причине, даже если данные являются строкой, они все еще пытаются преобразовать их в дату где-нибудь.Вот мой код ..

=IIF
(
ISDATE(replace(First(Fields!ows_Manufacturing_Date.Value, "DataSet1"),"datetime;#","")),
formatdatetime(replace(First(Fields!ows_Manufacturing_Date.Value, "DataSet1"),"datetime;#",""),2),
replace(First(Fields!ows_Manufacturing_Date.Value, "DataSet1"),"string;#","")
)

1 Ответ

2 голосов
/ 19 августа 2011

Проблема в том, что оператор IIF в SSRS не закорачивает, он всегда оценивает оба условия, поэтому, даже если поле не является датой, он все равно пытается выполнить функцию formatdatetime.См. Это: SSIF iif вопрос о функции )

Вместо функции IIF попробуйте использовать вместо нее функцию SWITCH:

=SWITCH(First(Fields!ows_Manufacturing_Date.Value, "DataSet1")="string;#NA",
"NA",
First(Fields!ows_Manufacturing_Date.Value, "DataSet1")<>"string;#NA",
formatdatetime(replace(First(Fields!ows_Manufacturing_Date.Value, "DataSet1"),"datetime;#",""),2))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...