2011-05-12 4 views
0

Report Server를 통해 보고서를 원격으로 실행하는 Webforms 응용 프로그램에서 ReportViewer 컨트롤을 실험했습니다. ReportViewer의 Parameter 인터페이스가 제한적인 것처럼 느껴집니다. 다른 대안은 ReportViewer에 매개 변수를 전달하고 기본 매개 변수 인터페이스를 무시하는 자체 웹 양식 컨트롤을 만드는 것입니다. SSRS에 대한 저의 경험은 극히 미미하며 이것이 실행 가능한 솔루션인지 또는 문제를 묻는 지 궁금합니다. (즉, 새로운 보고서는 새로운 UI를 생성해야 할 수도 있습니다). 제 질문은 보고서 뷰어의 표준 사용자 인터페이스가 엔터프라이즈 수준 응용 프로그램에 적합한 지 여부입니다. 페이징 컨트롤, 드롭 다운 목록 및 체크 상자 목록에 대한 자세한 내용은 아닙니다.ReportViewer 웹 컨트롤을 엔터프라이즈 웹 응용 프로그램에 사용할 수 있습니까

답변

3

보고서에 일반적으로 간단한 매개 변수 세트가 사용되는 경우 기본 인터페이스가 제대로 작동 할 수 있습니다 (특히 사용자가 더 정통한 경우). 그러나 더 크고 복잡한 매개 변수 세트는 기본 인터페이스에서 빠르게 압도적으로 나타날 수 있습니다 (사용자가 정통하지 못하다면 더 큰 문제가 될 수 있음).

많은 보고서 세트에서 비슷한 문제가 발생했습니다. 어떤 것은 매우 단순 할 수 있고 (I.E., 매개 변수가 없거나 단순한 날짜 범위) 일부는 너무 복잡 할 수 있습니다 (25 개 이상의 매개 변수).

우리가 도달 한 솔루션은 대부분의 보고서에서 SSRS의 매개 변수를 검색하고이를 사용자에게 동적으로 제공하는 ASP.NET 보고서 메뉴 응용 프로그램을 작성하는 것이 었습니다. 일부 보고서는이 작업을하기에는 너무 복잡해 졌으므로 추가로 WebUserControl을 작성하여 사용자 매개 변수를 단순화했습니다. 이런 방식으로, 대부분의 보고서는 추가 개입을 필요로하지 않았으며, 그러한 경우에는 래퍼를 쉽게 만들 수있는 프레임 워크가있었습니다.

'ReportingService is a reference to the WebService 
Dim rs As New ReportingService 
     rs.Credentials = System.Net.CredentialCache.DefaultCredentials 
     Dim Reports() As ReportingService.CatalogItem 
     Reports = rs.ListChildren(ConfigurationManager.AppSettings("ReportPath"), True) 

     For Each item As ReportingService.CatalogItem In Reports 

      Dim historyID As String = Nothing 
      Dim forRendering As Boolean = True 
      Dim values As ReportingService.ParameterValue() = Nothing 
      Dim credentials As ReportingService.DataSourceCredentials() = Nothing 
      Dim params As ReportingService.ReportParameter() = Nothing 

      If item.Type = ReportingService.ItemTypeEnum.Report And item.ID = ReportID Then 
       params = rs.GetReportParameters(item.Path, historyID, forRendering, values, credentials) 
       Dim i As Integer = 0 
       For Each param As ReportingService.ReportParameter In params 
        'Display the parameter or add to a collection or whatever 
       Next 
      End If 
     Next 

당신은 모든 매개 변수를 얻기 위해 위의 방법을 사용하고 당신이 맞는 볼을 표시 할 수 있습니다 : 여기

는 SSRS 웹 서비스를 통해 해당 보고서에 대한 매개 변수를 활용하는 방법의 예 . 그런 다음 결과를 수집하고 유효성을 검사하여 ReportViewer로 전달하면됩니다.

+0

감사합니다. 매우 도움이되었습니다. 기본 UI에 대한 좋은 점은 매개 변수가 연쇄되는 일반적인 시나리오를 처리한다는 것입니다. –

+0

@ek_ny 새로운 UI를 작성할 때 반드시 고려해야합니다. 그러나 이렇게하면 추가 기능을 구현할 수 있습니다 (물론 새로운 기능을 구현하는 데 드는 시간을 소비해야합니다). 기본 UI에서 누락 된 것 중 가장 큰 것은 유효성 검사 도구입니다. –

관련 문제