2012-05-31 4 views
2

SSRS에서 꽤 복잡한 IIF 표현식을 사용하고 있는데, 셀의 배경색을 변경하려면 특정 조건에 따라 변경됩니다. 그것은 현재 상태에서 잘 작동하지만 나는 (일)SSRS 2005에서 Like 연산자 사용 IIF 표현

그래서, 여기에 지금의 모습이다 ... 그것에처럼 조건을 추가하는 것을 시도하고있다 :

=IIf(inscope("matrix1_errorType"), 

IIf(

(
    FormatPercent(Sum(Fields!numberOfIssues.Value)/First(Fields!totalItems.Value),3) >= .0001 & "%" 
    And (First(Fields!errorType.Value) = "TypeA") 
) 

Or 
(
    FormatPercent(Sum(Fields!numberOfIssues.Value)/First(Fields!totalItems.Value),3) >= .04 & "%" 
    And First(Fields!errorType.Value) = "TypeB" 
) 

Or 
(
    FormatPercent(Sum(Fields!numberOfIssues.Value)/First(Fields!totalItems.Value),3) >= .02 & "%" 
    And First(Fields!errorType.Value) = "TypeC" 
    ) 
, 
"Maroon", "Transparent") 
, "Transparent") 

것은 내가 좋아하는 것이 무엇에 이 라인의 어딘가에 Like 타입의 문장을 추가하면된다. ... 그리고 "Scan"과 같은 위치 - 즉, 제목의 어딘가에 "Scan"이있는 위치. locationName은 보고서에 표시되는 필드이기도합니다.

(
    FormatPercent(Sum(Fields!numberOfIssues.Value)/First(Fields!totalItems.Value),3) >= .0001 & "%" 
    And (First(Fields!errorType.Value) = "TypeA") 
) 

등 문은 비슷한 것 :

... And (First(Fields!errorType.Value) = "TypeA") And First(Fields!locationName.Value) Like "*Scan*" 

하지만이 작동하지 않습니다. 나는 또한 시도했다 :

And (First(Fields!errorType.Value) = "TypeA" And First(Fields!locationName.Value.ToString().Contains("Scan") 

어떤 것도 작동하지 않는다.

나는 어떤 식 으로든 SSRS 2005 표현에서 이것을 할 수 있습니까?
감사합니다.

답변

3

문제는 구문이라고 생각합니다. 귀하의 성명서에 포함 된() 및의 Double check placements는 귀하가 시도하는 것을 위해 효과가 있어야합니다.

나는 또한 당신의 문을주의 사항 :

First(Fields!locationName.Value.ToString().Contains("Scan")) 

아마해야합니다

First(Fields!locationName.Value).ToString().Contains("Scan") 

당신은 또한 IndexOf 기능을 시도 할 수 있습니다. IndexOf는 전달한 문자열이 소스에서 발생하는 문자 위치를 반환합니다. 따라서 0보다 크거나 같으면 문자열에 '스캔'문자가 포함됩니다. 0보다 작은 경우 소스에 문자열이 포함되지 않습니다.

Fields!YourField.Value.ToString().IndexOf("Scan") >= 0 

대략적으로 사용 방법과 동일합니다.

+0

굉장! 그리고 IndexOf를 설명해 주셔서 감사합니다. 지금 당장 말이야! – SeanFlynn

+0

달콤한! 방금 클라이언트 ID의 값을 기반으로 테이블 열을 조건부로 표시해야한다는 완전히 다른 문제가 해결되었습니다. RThomas에게 감사드립니다. – DJGray