SOAP를 사용하여 Reporting Services 통합 - Windows 애플리케이션

Reporting Services SOAP API를 통해 보고서 서버의 전체 기능에 액세스할 수 있습니다. SOAP API는 웹 서비스이므로 쉽게 액세스하여 사용자 지정 비즈니스 애플리케이션에 엔터프라이즈 보고 기능을 제공할 수 있습니다. 서비스를 호출하는 코드를 작성하면 Windows 애플리케이션에서 웹 서비스에 액세스할 수 있습니다. Microsoft .NET Framework를 사용하여 웹 서비스의 속성과 메서드를 노출하는 프록시 클래스를 생성할 수 있습니다. 그런 다음 친숙한 인프라 및 도구를 사용하여 Reporting Services 기술을 기반으로 하는 비즈니스 애플리케이션을 빌드할 수 있습니다.

Windows Forms를 사용하여 보고서 관리 기능 통합

URL 액세스와 달리 SOAP API는 보고서 서버를 통해 사용 가능한 전체 관리 기능 집합을 표시합니다. 즉, SOAP를 통해 개발자가 보고서 관리자의 전체 관리 기능을 사용할 수 있습니다. 따라서 Windows Forms를 사용하여 완전한 관리 및 관리 도구를 개발할 수 있습니다. 예를 들어 Windows 애플리케이션에서 사용자가 보고서 서버 네임스페이스의 콘텐츠를 검색할 수 있도록 설정할 수 있습니다. 웹 서비스 ListChildren 방법을 사용하여 보고서 서버 데이터베이스의 모든 항목을 나열한 다음 Listview, Treeview 또는 Combobox 컨트롤을 사용하여 해당 항목을 사용자에게 표시할 수 있습니다. 다음 웹 서비스 코드는 사용자가 양식에서 단추를 선택할 때 사용자의 내 보고서 폴더에서 사용 가능한 보고서의 현재 목록을 검색하는 데 사용할 수 있습니다.

' Button click event that retrieves a list of reports from  
' the My Reports folder and displays them in a combo box  
Private Sub listReportsButton_Click(sender As Object, e As System.EventArgs)  
   ' Create a new Web service object and set credentials  
   ' to Windows Authentication  
   Dim rs As New ReportingService2010()  
   rs.Credentials = System.Net.CredentialCache.DefaultCredentials  
  
   ' Return the list of items in My Reports  
   Dim items As CatalogItem() = rs.ListChildren("/Adventureworks Sample Reports", False)  
  
   Dim ci As CatalogItem  
   For Each ci In  items  
      ' If the item is a report, add it to   
      ' a combo box  
      If ci.TypeName = "Report" Then  
         catalogComboBox.Items.Add(ci.Name)  
      End If  
   Next ci  
End Sub 'listReportsButton_Click  
// Button click event that retrieves a list of reports from  
// the My Reports folder and displays them in a combo box  
private void listReportsButton_Click(object sender, System.EventArgs e)  
{  
   // Create a new Web service object and set credentials  
   // to Windows Authentication  
   ReportingService2010 rs = new ReportingService2010();  
   rs.Credentials = System.Net.CredentialCache.DefaultCredentials;  
  
   // Return the list of items in My Reports  
   CatalogItem[] items = rs.ListChildren("/Adventureworks Sample Reports", false);  
  
   foreach (CatalogItem ci in items)  
   {  
      // If the item is a report, add it to   
      // a combo box  
      if (ci.TypeName == "Report")  
         catalogComboBox.Items.Add(ci.Name);  
   }  
}  

여기에서 사용자가 콤보 상자에서 보고서를 선택하고 웹 브라우저 컨트롤 또는 이미지 컨트롤을 사용하여 폼에서 보고서를 미리 볼 수 있습니다.

Windows Forms를 사용하여 보고서 보기 및 탐색 사용

보고서를 Windows Forms 애플리케이션에 통합하는 데 사용할 수 있는 두 가지 방법이 있습니다.

SOAP API를 사용하여 메서드를 사용하여 Render 지원되는 렌더링 형식으로 보고서를 렌더링할 수 있습니다. SOAP을 통해 보고서 보기 및 탐색을 사용하면 다음과 같이 약간의 단점이 있습니다.

  • URL 액세스를 통해 HTML 뷰어에 포함된 보고서 도구 모음의 기본 제공 기능을 활용할 수 없습니다.

  • HTML로 렌더링하는 경우 메서드를 사용하여 RenderStream 이미지 또는 리소스를 추가 스트림으로 별도로 렌더링해야 합니다.

  • SOAP API를 사용하는 것에 비해 URL 액세스를 사용하여 보고서를 렌더링하는 데 약간의 성능 이점이 있습니다.

그러나 Render SOAP API의 메서드를 사용하여 보고서를 렌더링하고 프로그래밍 방식으로 다양한 출력 형식에 저장할 수 있습니다. 이 방법은 사용자 상호 작용이 필요한 URL 액세스보다 유리합니다. SOAP API Render 메서드를 사용하여 보고서를 렌더링할 때 지원되는 출력 형식으로 렌더링할 수 있습니다.

또한 Microsoft Visual Studio 2008에 포함되어 체험용으로 배포 가능한 보고서 뷰어 컨트롤을 사용할 수도 있습니다. 보고서 뷰어 컨트롤을 통해 Reporting Services 기능을 사용자 지정 애플리케이션에 쉽게 포함시킬 수 있습니다. 보고서 뷰어 컨트롤은 미리 작성된 완전히 작성된 보고서를 애플리케이션 기능 집합의 일부로 제공하려는 개발자를 위한 것입니다. 예를 들어 웹 사이트 관리 애플리케이션에는 회사 웹 사이트에서 클릭 스트림 분석을 표시하는 보고서가 포함될 수 있습니다. 애플리케이션에 컨트롤을 포함하는 것은 Reporting Services 서버 구성 요소를 애플리케이션 배포에 포함하는 대신 사용할 수 있는 간소화된 방법입니다. 컨트롤은 보고서 기능을 제공하지만 Reporting Services에서 찾을 수 있는 추가 보고서 작성, 게시 또는 배포 및 배달 지원이 없습니다.

보고서 뷰어 컨트롤에는 기능이 풍부한 Windows 클라이언트 애플리케이션용과 ASP.NET 애플리케이션용의 두 가지 버전이 있습니다. 컨트롤은 로컬 처리 모드와 원격 처리 모드를 모두 지원합니다. 로컬 처리 모드의 경우 애플리케이션은 보고서 정의 및 데이터 세트을 제공하고 보고서 처리를 시작합니다. 원격 처리 모드의 경우에는 데이터 검색 및 보고서 처리는 보고서 서버에서 수행되며 컨트롤은 표시 및 보고서 탐색에 사용됩니다. 이 모델에서는 데스크톱에서 엔터프라이즈 수준까지 확장될 수 있는 기능이 풍부한 애플리케이션을 구축할 수 있습니다.

보고서 뷰어 컨트롤은 Visual Studio 온라인 도움말에 설명되어 있습니다. 자세한 내용은 Visual Studio 제품 설명서를 참조하세요.

웹 서비스와 .NET Framework를 사용하여 애플리케이션 빌드
애플리케이션에 Reporting Services 통합
웹 애플리케이션에서 SOAP API 사용