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 2008 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 2008 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에 포함된 자유롭게 배포 가능한 ReportViewer 컨트롤을 사용할 수도 있습니다. ReportViewer 컨트롤을 사용하면 Reporting Services 기능을 사용자 지정 애플리케이션에 쉽게 포함할 수 있습니다. ReportViewer 컨트롤은 애플리케이션 기능 집합의 일부로 미리 작성된 완전히 작성된 보고서를 제공하려는 개발자를 위한 것입니다(예: 웹 사이트 관리 애플리케이션에는 회사 웹 사이트에서 클릭 스트림 분석을 표시하는 보고서가 포함될 수 있습니다). 애플리케이션에 컨트롤을 포함하면 애플리케이션 배포에 Reporting Services 서버 구성 요소를 포함하는 간소화된 대안을 제공합니다. 컨트롤은 보고서 기능을 제공하지만 Reporting Services에서 찾을 수 있는 추가 보고서 작성, 게시 또는 배포 및 배달 지원이 없습니다.
ReportViewer 컨트롤에는 다양한 Windows 클라이언트 애플리케이션용과 ASP.NET 애플리케이션용으로 두 가지 버전이 있습니다. 컨트롤은 로컬 처리 모드와 원격 처리 모드를 모두 지원합니다. 로컬 처리 모드에서 애플리케이션은 보고서 정의 및 데이터 세트를 제공하고 보고서 처리를 트리거합니다. 원격 처리 모드에서는 보고서 서버에서 데이터 검색 및 보고서 처리가 수행되고 컨트롤이 표시 및 보고서 탐색에 사용됩니다. 이 모델을 사용하면 데스크톱에서 엔터프라이즈로 확장할 수 있는 풍부한 애플리케이션을 빌드할 수 있습니다.
ReportViewer 컨트롤은 Visual Studio 온라인 도움말에 설명되어 있습니다. 자세한 내용은 Visual Studio 제품 설명서를 참조하세요.
또한 참조하십시오
웹 서비스와 .NET Framework를 사용하여 애플리케이션 빌드
Reporting Services를 애플리케이션에 통합
웹 애플리케이션에서 SOAP API 사용