나는 그것에서이 가진 SSRS 식을 가지고 :SSRS의 표현 - # 오류 명백하게 올바른 표현에
=IIF(
Fields!CUT.Value.ToString().Length > 1
,IIF(
Fields!CUT.Value.ToString().Contains(","),
Fields!CUT.Value.ToString().Substring(0, Fields!CUT.Value.ToString().IndexOf(",")),
Fields!CUT.Value.ToString()
)
,""
)
번역 : 필드가 ,
을 포함
경우에, 저에게 필드의 substring
를 가져옵니다 첫 번째 위치에서 ,
까지의 위치. 필드에 ,
이 포함되어 있지 않으면 전체 필드를 입력하십시오.
Probelm :
내가 NO 쉼표가없는 모든 페이지에 #Error
를 얻을. COMMA가 있으면 예상대로 작동합니다. 필드 중 하나 인 값은 4
입니다. 다른 시나리오에서는 값이 17/64" Corrugated
입니다. 나는 그 둘 모두에 대해 오류가 발생합니다.
가 나는 시도했다 :
내가 몇 가지 다른 방법 시도했다 : 나는에 새 필드를 추가
=IIF(
IsNothing(Fields!CUT.Value)
,""
,IIF(
Fields!CUT.Value LIKE "*,*",
Mid(Fields!CUT.Value, InStr(Fields!CUT.Value, ",") + 1, (LEN(Fields!CUT.Value) - InStr(Fields!CUT.Value, ",") - 1))
Fields!CUT.Value
)
)
사용
LIKE
대신Contains
을 내 을XXXX
으로 대체 한dataset
입니다. SSRS는 문자열의 일부로,
에 대해 이야기하고 있다는 것을 이해하지 못했을 것입니다. 그런 다음 쿼리를 변경하여XXXX
이 있는지 확인했습니다. 여전히 동일 함#Error
파일을 삭제하고
.data
파일을 삭제하고 프로젝트를 지우고 프로젝트를 다시 작성하십시오. 왜냐하면, 이것은 분명히 부정확하지 않습니다. 그래서 나는 보고서의 최신 버전을보고 있지 않을 수도 있다고 생각했습니다.
아무것도 보이지 않습니다. 나는 정말로 나쁜 것을하고있는 것에 가깝다! 이 일은 나를 미치게 만든다.
질문 :
- 누구든지 내 표현 중 하나 잘못 아무것도 볼?
- 달성하려는 작업을 수행하는 더 좋은 방법이 있습니까?
,
이있는 경우,
앞에 모든 것을 제공하십시오. 그렇지 않다면, 모든 것을주세요.
편집 1 : 다른 필드에, 나는이 매우 비슷한 일을하고, 협조 할
하십시오 ,
에있을 경우,
IIF(
IsNothing(Fields!CUT.Value)
,""
,IIF(
Fields!CUT.Value LIKE "*,*"
," | Length: " & Mid(Fields!CUT.Value, InStr(Fields!CUT.Value, ",") + 1, (LEN(Fields!CUT.Value) - InStr(Fields!CUT.Value, ",") - 1))
,""
)
)
이것이하고있는 것은을 그 동일한 분야, ,
후에 나에게 모든 것을 가져다가 | Length:
에 붙이십시오. ,
이 없으면 빈 공간 ""
만 표시하면됩니다. 이것은 완벽하게 작동합니다. ,
이 있고 ,
이없는 상황.그래서 나는 MS가 SSRS를 사용하여 나를 미치게 만들었다 고 결론을 내렸다.
간단한, 그래서 문제가 가장 가능성이 당신의 진정한 섹션에있다 :'필드 CUT를! .Value.ToString(). 하위 문자열 (0, 필드! CUT.Value.ToString(). IndexOf (","))'. 쉼표가 없으면이 표현식은 쉼표의 위치를 찾을 수 없습니다. 그러나'IndexOf' 함수가 어떻게 동작하는지 정확히 모르겠습니다. 그리고 나는 이것을 순간적으로 테스트 할 수단이 없으므로 이것을 단지 주석으로 남겨 두었습니다. –