2017-10-20 8 views
0

: 지수는 매개 변수가 빈 올 SSRS에서 배열의 외부 경계했다 <code>user!userid</code> 변수가 <code>3 pipe delimited values</code></p> <p>예와 함께 오는 어디 <code>SSRS report</code> 일하고

ReportUser |500|100 

내가 아래 식을 사용하여 값을 분할

=(Split(Parameters!QueryString.Value, "|")).GetValue(0) 
=(Split(Parameters!QueryString.Value, "|")).GetValue(1) 
=(Split(Parameters!QueryString.Value, "|")).GetValue(2) 

parameter이 위의 값과 함께 표시되면 정상적으로 작동합니다. 그러나 어떤 매개 변수가 blank으로 오면 report execution 동안 오류 아래에 있습니다.

색인은 매개 변수에 대한 배열 범위 밖에있었습니다.

나는 여전히 내가 같은 오류가 점점 오전

=iif((Split(Parameters!QueryString.Value, "|")).GetValue(0)=NOTHING,0, 
     (Split(Parameters!QueryString.Value, "|")).GetValue(0)) 

=iif((Split(Parameters!QueryString.Value, "|")).GetValue(0)="",0, 
     (Split(Parameters!QueryString.Value, "|")).GetValue(0)) 

IIF 발현과 해결 방법을 아래에 시도했다. 누군가가이 표현으로 blank values을 처리하는 방법을 도울 수 있습니까?

답변

1

나는 스위치가 최초의 진정한 결과에하지만 난 여전히 오류를 가지고 어떤 이유로 평가 정지로이 코드는

=SWITCH 
(
Split(Parameters!QueryString.Value, "|").Length <3, "", 
True, Split(Parameters!QueryString.Value, "|").GetValue(1) 
) 

실패 처음이

일을한다고하지만했다. 왜 이런 일이 일어날지는 모르겠지만 일을 할 수있는 함수를 작성하여 그것을 얻었습니다. 내가 Code 속성 (아마 더 잘 할 수 있지만 몇 년 동안 어떤 VB.Net을하지했습니다)

Public Function GetSplitValue(inputString as String, delim as string, index as Integer) as String 

    Dim arr() AS String = Split(inputString, delim) 
    Dim result AS string 

    TRY 
     result = arr(index) 
    CATCH 
     result = "" 
    END TRY 

    RETURN result 

End Function 

에게 당신을 보고서에이 코드를 추가

작동합니까 그런 다음 텍스트 상자에서 또는 사용자가 채우는 항목을 사용하여 표현식에서이를 호출 할 수 있습니다.
=Code.GetSplitValue(Parameters!QueryString.Value,"|",0) 
=Code.GetSplitValue(Parameters!QueryString.Value,"|",1) 
=Code.GetSplitValue(Parameters!QueryString.Value,"|",2) 

빈 문자열이 아닌 다른 무언가를 원하는 경우

, 그냥 CATCH 블록의 코드를 편집 할 수 있습니다.