2017-03-05 1 views
0

내 Report Viewer Expression에 도움이 필요합니다. 사용자가 다른 장소에서 데이터를 선택하기 때문에 데이터 값 유형을 알 수없는 특정 상황에 처해 있습니다. 값이 DateTime이거나 Double인지 확인해야합니다. DateTime이면 LongDateFormat을, double이면 4 자리수를 써야합니다. 이 표현식을 작성 중이므로 Tablix에서 값 대신 # 오류가 발생합니다. iif( IsDate(Fields(First(Fields!Value.Value,"DataSet1")).Value) ,DateValue(Fields(First(Fields!Value.Value,"DataSet1")).Value).ToLongDateString() ,Round(Fields(First(Fields!Value.Value,"DataSet1")).Value,4) ) 메신저가 필요한 정보없이 if를 사용하는 경우 #Error없이 결과를 얻을 수 있습니다.보고서 뷰어 식, 값이 DateTime 또는 double인지 확인하는 방법?

답변

0

IIf을 사용하면 양면 (TruePartFalsePart)이 항상 평가되므로 날짜를 반올림하거나 긴 날짜로 두 번 서식을 지정하면 #Error가 발생합니다.

Public Function strFormatValue(objValue As Object) As String 

    If IsDate(objValue) Then 
     strFormatValue = CDate(objValue).ToLongDateString 
    Else 
     strFormatValue = Format(Round(CDbl(objValue), 4), "f4").ToString 
    End If 

End Function 

그리고 이런 식으로 Tablix에서 호출 :

=Code.strFormatValue(Fields!Value1.Value) 
당신은 (오른쪽 보고서> Report Properties > Code 외부 디자인 화면을 클릭)와 If/Then/ElseIIf을 대체 사용자 지정 코드를 사용할 수 있습니다

+0

고맙습니다. 도움 없이는 할 수 없었습니다. –

관련 문제