2012-04-13 2 views
3

주 보고서에 전달 된 매개 변수를 기반으로 하위 보고서를 숨기거나 표시하려는 문제가 있습니다.매개 변수를 기반으로 SSRS의 하위 보고서 숨기기

하위 보고서를 숨기거나 표시하는 식을 사용하여 숨겨진 속성을 설정할 수 있지만 SQL 프로필러를 사용하여 찾은 결과는 하위 보고서가 저장된 경우에도 하위 보고서 저장 프로 시저가 여전히 실행된다는 것입니다. 숨겨진.

스토어드 프로 시저 자체를 변경하는 것 이외에 다른 사람이이를 피하는 방법을 알고 있습니까? 그렇지 않은 경우 하위 보고서가 숨겨져 있다고하더라도 저장 프로 시저가 실행되는 이유를 아는 사람이 있습니까?

답변

7

SSRS의 숨겨진 보고서 요소가 여전히 처리됩니다. 숨김 속성은 단순히 출력에 표시되는지 여부를 결정합니다.

한 가지 방법은 표현의 데이터 세트의 저장 프로 시저의 이름을 변경하는 것입니다 절차 만 조건부 실행되도록 - 같은 :

=iif(Parameters!RunMyDataset.Value="Y","sp_MyDataSet","sp_Dummy") 

을 - sp_Dummy는 저장 프로 시저는 곳 최소 처리를 수행합니다 (예 : SELECT NULL).

+0

더미 SP는 원래 sp와 동일한 열을 반환하지 않아도됩니까? –

+0

@astander : 그렇지 않은 경우 보고서는 BIDS에서 미리 볼 때 여러 가지 경고 (오류 없음)를 생성합니다. 따라서 더미 프로 시저에 같은 열 집합을 생성하는 것이 좋습니다 (이러한 경고를 생성하지 못하게하는 것이 좋습니다). 그러나 반드시 필요한 것은 아닙니다. –

+0

그런 다음 하위 보고서/SP 당 더미 SP를 만들어야하고 숨길 필요가있는 하위 보고서 당 SP 2 개를 유지해야한다는 것을 의미합니다.미시시피 결정에 대한 추론이 SP 실행을 강제하는 것이 었는지 아십니까? 어쨌든 SP가 가시성을 위해 내장 된 디스플레이 로직을 갖기를 원하지 않기 때문에 나는 다른 것을 생각해야 할 것입니다. –

0
  1. 주 보고서에서 하위 보고서 개체를 마우스 오른쪽 단추로 클릭하고 "하위 보고서 서식 지정 ..."을 선택합니다. 서식 편집기가 열립니다.

  2. 서식 편집기에서 "하위 보고서"탭을 선택하십시오.

  3. "Suppress Blank Subreport"확인란에 확인 표시를하십시오.

1

해결 방법이 있습니다. 너의 논쟁에 기초를 둔다. 예를 들어 4 개의 하위 보고서가 있으며 page1부터 page4까지 이름이 지정됩니다. 주요 보고서는이 4 페이지 모두에 매개 변수 "Investor_ID"값을 전달합니다. 기본 보고서에서 4 개의 부울 매개 변수를 만들고 하위 보고서의 숨겨진 속성을 설정하여이 4 개의 하위 보고서를 표시할지 여부를 제어해야합니다.

예를 들어 표현식 =iif(Parameters!Page1.Value = true, false, true을 사용하면 매개 변수 page1에 대해 true를 선택하면 page1이 표시되고 그렇지 않으면 숨겨집니다.

그런 다음 하위 보고서의 경우 "하위 보고서 속성"에 매개 변수를 구성해야합니다.

하위 리포트가 필요한 매개 변수 Investor_ID의 경우 값을 선택하고 =IIF(Parameters!Page1.Value = true, Fields!Investor_ID.Value, nothing)을 사용합니다. 즉, page1 숨기기를 선택하면 mainreport는 아무 것도 페이지 1의 하위 보고서로 전달하지 않습니다. 그러면 Page1이 실행되지 않고 Investor_ID 매개 변수가 null이므로 "오류 : 하위 보고서를 표시 할 수 없습니다"가 표시됩니다. 그러나 우리는 그 하위 보고서를 숨 깁니다. 그래서 page1은 나타나지 않을 것입니다.

이렇게하면 숨겨진 하위 보고서 실행을 제어 할 수 있습니다.

관련 문제