2015-01-21 3 views
0

SSRS의 표현식을 통해 두 개의 별도의 날짜/시간 필드를 하나의 텍스트 상자에 결합하려고했습니다.SSRS에서시/분 형식을 표현합니다.

=Format(Fields!EarlyShiftStart.Value,"hh:mm tt") & "-" & Format(Fields!LateShiftEnd.Value,"hh:mm tt") 

그리고 보고서에 올바른 것으로 보인다 :

내 식입니다

: 나는 보고서를 미리 볼 때

Drive_Times

하지만 내가 경고를 얻고있다 경고 1 [rsRuntimeErrorInExpression] textrun 'Textbox49.Paragraphs [0] .TextRuns [0]'에 대한 값 식에 오류가 있습니다. ror : 입력 문자열의 형식이 올바르지 않습니다.

이 경고가 발생하는 이유는 정확한지 잘 모릅니다. 생각?

답변

0

나는 그것에 대해 확실하지 않지만 잘못된 입력 문자열이 데이터베이스에서 가져 오는 것 같습니다. 내 최고의 추측은 귀하의 경우에 이것이 일어나는 두 가지 이유가 있다는 것입니다.
1) 귀하의 데이터에서 어떤 부분에 null 값이 표시 될 수 있습니다. 당신은 내가 같은 표현을 사용하는 당신에게 제안합니다 경고를 피하려면,

=Format(IIF(IsNothing(Fields!EarlyShiftStart.Value),"00:00",Fields!EarlyShiftStart.Value),"hh:mm tt") & "-" & Format(IIF(IsNothing(Fields!LateShiftEnd.Value),"00:00",Fields!LateShiftEnd.Value),"hh:mm tt") 

이 들어오는 NULL 값을 필터링합니다.

2) 두 값을 -으로 연결하면 두 값의 형식을 모두 Time으로 지정하고 string 값으로 연결하는 것이 그럴 수 있습니다. 따라서 표현식을 다음과 같이 변경하십시오 :

=CStr(Format(Fields!EarlyShiftStart.Value,"hh:mm tt")) & "-" & CStr(Format(Fields!LateShiftEnd.Value,"hh:mm tt")) 

이렇게하면 시간 값을 문자열로 강제 변환 한 다음 해당 문자열을 강제로 변환합니다.

모든 값의 형식이 올바른 경우 들어오는 값을 살펴 보시기 바랍니다. 따라서 표현에 맞게 변경할 수 있습니다.

+0

감사합니다. 필드에 NULL이 없어야하므로 두 번째 솔루션을 사용하고 있습니다. 다시 한 번 감사드립니다! – MISNole

관련 문제