2011-08-18 2 views
1

내 데이터 원본이 XML (셰어 포인트 목록)입니다. 기본적으로 필드의 값이 날짜 인 경우 서식이 지정된 날짜를 표시하고 그렇지 않으면 "NA"를 표시하려고합니다. 어떤 이유로 데이터가 문자열 일 때도 데이터를 어딘가에 변환하려고 시도하고 있습니다. 여기에 내 코드 ..SSRS 오류 : 문자열 "string; #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;#","") 
) 

답변

2

문제는 SSRS에서 IIF 문이 쇼트를 않는다는 것입니다, 항상 필드가 날짜하지 그래서 경우에도, 두 조건을 평가, 그것은 여전히 ​​작업을 시도입니다 formatdatetime 함수입니다.

(이 참조 : SSRS iif function question를)

대신의 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)) 
+0

이 걸렸다 3시간가 formatDateTime 여전히 때 조건 경우는 false 경우 실행 이유를 이해하려고 노력 내가 당신의 게시물을 찾을 때까지 – ZERO

관련 문제