2012-02-01 2 views
3

내 보고서에 하위 보고서를 추가했습니다. 하위 보고서에 데이터가 없으면 하위 보고서를 숨기는 것입니다.SSRS2008 R2의 빈 하위 보고서 숨기기

NoRows 속성이 this thread on Microsoft forums에 언급되었지만 SSRS 2005에 대한 스레드가 상당히 오래된 것으로 생각됩니다.

데이터가없는 경우 하위 보고서를 숨기려면 분명한 방법이 없습니까? 하위 보고서 자체에서 Tablix를 숨길 수 있지만 하위 보고서가있는 행을 숨길 필요가 있습니다. 이렇게하려면 하위 보고서에 주 보고서에 데이터가 있는지 여부를 나타내는 표시가 필요합니다.

이 문제를 해결할 수있는 단서를 제공해 주시겠습니까?

답변

5

1 년 전에 비슷한 문제가있었습니다.

기본 동작은 하위 보고서의 데이터 집합에 행이 반환되지 않으면 SSRS가 하위 보고서를 표시하지 않는다는 것입니다. 이렇게하면 원하는 것의 절반이 수행되지만 하위 보고서 영역을 숨길 지 여부를 부모 보고서에 알릴 수 없습니다. IIRC에서 NoRows 속성은이 경우에 표시 될 내용 만 제어하지만 런타임에 다른 속성을 쉽게 확인할 수는 없습니다.

마지막 해결 방법은 하위 보고서에 행이 있는지 여부를 나타내는 상위 보고서에서 제외 된 쿼리를 만드는 것입니다. 행과 하위 보고서의 가시성을 제어하는 ​​데이 방법을 사용했습니다. 내가 더 우아한 응답이 용의자

...

안녕하세요

+0

내가 http://social.msdn.microsoft.com/Forums/en-US/sqlreportingservices/ 전에 MSDN 포럼에서 유사한 회신을 받았는데 스레드/3e2d45aa-a9b4-4c6c-b43a-e7e4d5222196. 나는 당신의 대답을 대답으로 받아 들일 것입니다. 감사. – AnarchistGeek

0

AnarchistGeek,

난 그냥 내 자신이 문제로 실행했다. "오류 : 하위 보고서를 표시 할 수 없습니다"라는 줄에있는 추한 오류는 실제로 나를 귀찮게했습니다.

해결책 : 이 문제를 해결하기 위해 간단히 사각형 내에서 하위 보고서를 중첩하고 해당 사각형의 표시 여부에 대한 식을 사용했습니다.

ex. = IIF
(필드 1은 내 경우 부모 보고서에서 반환 된 데이터 열. 한) 따라 변경 :

0

내가 종료

를 확인합니다 (필드! Field1.Value 거짓 아무것도 참, 없음) Subreport가 아무 것도 반환하지 않으면 그 아래 사각형은 셀의 모양을 제어합니다. 서브 리포트에서 아무것도 반환하지 않으면 셀을 회색화해야했습니다.

이 스레드는 나에게 아이디어 How to supress empty subreports in SSRS 2008을주었습니다.하지만 아무 것도 반환하지 않으면 기본적으로 SSRS가 하위 보고서를 렌더링하지 않기 때문에 식을 사용할 필요조차 없습니다.

0

이 문제가 발생하여 어느 답변도 저에게 효과가 없었습니다. 제 경우에는 Crystal Report를 SSRS 보고서로 변환하고 모든 그룹에 대해 발생할 수있는 하위 보고서를 사용하고있었습니다. 확인란을 사용하여 빈 섹션을 표시하지 않기 때문에 Crystal Reports에서 매우 간단했습니다.

나를 위해 SSRS에서 효과가 있었고 매우 좋았던 것은 하위 보고서 데이터에있을 행 수가있는 주 보고서 쿼리에 하위 쿼리/CTE를 추가하는 것이 었습니다.예를 들면 다음과 같습니다.

SELECT CommonCriteria, Count(*) [RowCount] 
FROM TableUsedInSubReport 
GROUP BY CommonCriteria 

그런 다음이 하위 쿼리/CTE를 공통 조건에 대한 기본 쿼리에 결합하면됩니다. 일단 테이블 릭스에서 행의 맨 왼쪽을 마우스 오른쪽 버튼으로 클릭하고 행 가시성을 선택하면 매우 간단합니다. 그런 다음 식을 사용하는 등

=IIF(Sum(Fields!RowCount.Value) > 0, false, true) 

그 방법은 그들을 표시하고 하위 보고서에 행이없는 경우 그것을 숨기고되지 않습니다 하위 보고서에 표시 할 모든 행이 있는지 ... 등 공백을 남겨 둡니다.

1

하위 보고서를 자체 행에 배치했습니다. 그런 다음 텍스트 편집기에서 rdl 파일을 편집하고 행 높이를 0으로 설정했습니다 (디자이너가이 작업을 수행하지 못하게합니다).

행 높이가 0 인 경우 행이 실제로 숨겨 지므로 하위 보고서에서 데이터를 가져올 때까지 하위 보고서가 행 높이를 결정하고 다시 정상적으로 보입니다.

rdl을 편집하는 대신 코드의 행 높이를 설정하는 방법을 사용할 수도 있습니다.

0

더 쉬운 해결책은 다음과 같습니다

Sanjay Kumar Rajarao responded on 16 Oct 2013 12:15 AM Access sub report properties - visibility - show based on expression. Enter this code:

=IIF(RowNumber(Nothing)>0,False,True)

https://community.dynamics.com/gp/f/32/t/114129