0

SSRS 2005 BIDS 프로젝트를 Visual Studio 2015 데이터 도구로 마이그레이션하고 IN 연산자를 사용하는 데이터 집합 필터 마이그레이션 문제가 있습니다. 보고서가 올바르게 작동하는 것처럼 보이지만 디자이너의 필터 식을 보면 목록의 첫 번째 피연산자 만 나타나고 나머지는 누락되었습니다. 그러나 코드 (.rdl 소스)를 보면 모든 피연산자를 볼 수 있습니다. 더욱 나쁜 것은, OK 버튼을 사용하여 필터 창을 닫으면 첫 번째 피연산자 만 남아 있고 나머지는 .rdl 파일에서 제거된다는 것입니다.SSRS BIDS 2005 ~ 2015 데이터 도구 마이그레이션 : IN 연산자가 부적절하게 마이그레이션하는 필터

<Filter> 
    <FilterExpression>=Fields!DecodeType.Value</FilterExpression> 
    <Operator>In</Operator> 
    <FilterValues> 
    <FilterValue>="Team"</FilterValue> 
    <FilterValue>="ALL"</FilterValue> 
    </FilterValues> 
</Filter> 

필터 연산자와 필터 값의 .rdl 코드는 모두 2,005 2015 도구 동일하다 : 여기서

는 .rdl 코드로부터 예를 들어 필터이다. 이 문제는 2015 년 (또는 그 문제에 대한 2008 년) 디자이너와 관련이있는 것 같습니다.

질문 :

잘못된 것이 있습니까? 아니면 알려진 문제입니까?

대신 어떤 구문을 사용해야합니까? 작동 분할 ("팀, ALL", ","),하지만 내 필터 중 일부는

<Filter> 
    <FilterExpression>=Fields!DecodeType.Value</FilterExpression> 
    <Operator>In</Operator> 
    <FilterValues> 
    <FilterValue>=2</FilterValue> 
    <FilterValue>=Nothing</FilterValue> 
    </FilterValues> 
</Filter> 

주 (.rdl 아래의 필터 값 참조) 가능한 값의 목록에서 아무것도 확인 :이 같은 문제가 발생 2005 BIDS에서 2008 BIDS로 이전. 각 버전을 통해 점진적 마이그레이션을 시도하여 이것을 찾았습니다. (

답변

0

이 문제는 디자인 타임에 데이터 도구가 IN 필터를 처리하는 방법과 관련이 있습니다. 해결 방법은 다음을 사용하여 해결했습니다. = 분할() 난 정말 싫어하지만, 그것은 작동한다 :

"Team","ALL" 
:

="Team,ALL".split(",") 

문서는 단순히 어떤 등호없이 내 IN 절에서 다음을 수 사용되어야한다고 말한다

그러나 다음에 필터를 열면 q가없는 것처럼 보입니다. uotes : 다음

Team, ALL 

, 나는 값은 다음과 같습니다 필터 다시 데이터 세트 속성 페이지에서 확인을 클릭하고 다시 열면 : 정말 옵션을 사용하여 이유를

"""Team""","""ALL""" 

되지 않음을 = split(). 당신의 분야는 정수 때

그냥 참고로, 당신은 이런 식의 등호 (=)없이 매개 변수를 나열 할 수 있습니다

2,4,9 

희망이 다음 사람을 도와줍니다.

* 업데이트 * 아무것도 (널)가 나는이 시도 가능성이 있었다 시나리오에서 작동하는 것 같다 :

편집은 일반적으로 필드를 선택하려는 필터 식에을 (정수를 낳는다 내 경우에는

=iif(IsNothing(Fields!myField.Value), -1, Fields!myField.Value) 

을, 그래서 나는 정수로 표현 내 데이터 유형을 설정 : 데이터 집합에서) 표현으로 이것을 추가합니다. 슬프게도 내가 여기에 마법의 숫자에 의존하고있어 (-1 경우)

이제 필터의 값 필드에 이런 말을 할 수

-1,2,4,9 

대안을 경우 테스트 문자열과 "아무것도 "옵션 중 하나 대신이 식 사용이다 (! IsNothing (필드 myField.Value),

= IIF을"NULL ", 필드 myField.Value!) 다음

그리고의 값 필드 테스트 필터는 다음과 같습니다.

=="Team,ALL,NULL".split(",") 

또 다른 마술 (이 경우 "NULL")이지만 도구의 한계를 넘어서게합니다.

또 다른 사람들에게 도움이되기를 바랍니다.

관련 문제