2010-08-11 5 views
1

최근에 SSRS 2008 및 ASP.Net 작업을 시작했습니다. 3 가지 세부 수준의 보고서를 작성해야합니다. 그래서 가장 좋은 솔루션은 탐색을 허용하기 위해 3 가지 보고서를 개발하고 드릴 스루 메커니즘을 제공하는 것입니다. 이를 위해 텍스트 상자 중 하나의 'Action'속성을 'Go to report'로 설정하고 올바른 URL을 설정합니다.SSRS 및 ASP.NET에서 '보고서로 이동'(드릴 스루) 동작이 작동하지 않습니다.

보고서에 전달 된 매개 변수의 유효성을 검사해야합니다. 그래서 유연성과 더 나은 사용자 환경을 위해 사용자가 표준 ASP.Net 컨트롤을 사용하여 매개 변수를 입력 할 수있게했습니다. 내 사용자 지정 버튼 '보고서보기'의 사용자 clics는 다음과 같은 코드를 실행하면 :

 ReportViewer2.ServerReport.ReportPath = ".. my report path .."; 
     ReportViewer2.ServerReport.ReportServerUrl = new Uri(".. my report url .."); 
     ReportParameter p1 = new ReportParameter("dateStart", dateStart.ToString()); 
     ReportParameter p2 = new ReportParameter("dateEnd", dateEnd.ToString()); 
     ReportViewer2.ServerReport.SetParameters(p1); 
     ReportViewer2.ServerReport.SetParameters(p2); 
     ReportViewer2.ServerReport.Refresh(); 

그런 다음 보고서가 표시되지만 다른 보고서로 이동하기위한 링크가 작동하지 않습니다. 추가 된 매개 변수가 표시되어 보고서 뷰어에 포함 된 '보고서보기'버튼을 누를 수 있습니다. 그렇게하면 보고서가 다시 렌더링되고 나면 주저없이 확인됩니다. 그것은 ReportViewer.ServerReport.Refresh() 메서드에 누락 된 것과 같습니다.

매개 변수가 숨겨져 있어야한다는 요구 사항이 있으므로 문제가됩니다.

VS 또는 보고서 서버 내부에서 보고서를 실행하면 링크가 정상적으로 작동하지만 그 경우에는 항상 표준 '보고서보기'버튼을 눌러야합니다.

ReportViewer 컨트롤의 버그입니까? 아니면 여기에 누락 된 항목이 있습니까? 미리 감사드립니다.

안부,

곤잘로.

답변

2

보고서 뷰어에는 업데이트 패널이 포함되어 있습니다. 당신은에 업데이트 패널의 Update 메서드를 호출해야 보고서 뷰어의 이벤트를 사전 렌더링 :

protected void ReportViewer2_PreRender(object sender, EventArgs e) { ((UpdatePanel)this.ReportViewer2.Controls[1]).Update(); }

+0

그것은 확인했다. 고마워요! –

관련 문제