다음을 통해 공유


보고서에 대한 데이터 원본 만들기

ReportViewer 컨트롤의 처리 모드에 따라 보고서에서 사용할 수 있는 데이터 종류가 달라집니다.

SQL Server 2005 보고서 서버에서 보고서가 처리되는 원격 처리 모드의 경우 보고서 서버의 데이터 처리 확장에 따라 사용할 수 있는 데이터 소스 유형이 달라집니다. 기본 데이터 처리 확장은 SQL Server, Analysis Services, SQL Server Integration Services, Oracle, SAP NetWeaver® Business Intelligence, XML, ODBC 및 OLE DB에서 사용할 수 있습니다. 보고서를 위한 데이터를 검색하는 데이터 소스 및 쿼리에 대한 연결은 Business Intelligence Development Studio(SQL Server 2005에 포함된 보고서 디자인 도구)에서 보고서를 만들 때 디자인 타임에 보고서 정의에 지정됩니다. 쿼리에서 반환되는 필드는 보고서 디자인 화면으로 끌어 보고서 레이아웃에 사용할 수 있습니다. 서버 보고서에서의 데이터 작업 방법은 SQL Server 온라인 설명서의 데이터 원본에 연결(Reporting Services)을 참조하십시오.

응용 프로그램 내의 컨트롤에 의해 보고서가 처리되는 로컬 처리 모드의 경우 Visual Studio 데이터 소스 및 필드를 지정하여 보고서에서 사용되는 데이터를 정의할 수 있습니다. 보고서를 위한 데이터를 검색하는 데이터 소스 및 쿼리에 대한 연결은 디자인 타임에 응용 프로그램 프로젝트에 정의됩니다. 클라이언트 보고서는 ADO.NET DataTable 또는 비즈니스 개체의 열거 가능한 컬렉션으로 제공될 수 있는 한 모든 원본의 데이터를 사용할 수 있습니다. 데이터 테이블 또는 비즈니스 개체는 보고서에 사용할 수 있는 필드 목록을 반환합니다. 필드에는 이름 속성과 데이터베이스 필드에 대한 포인터가 포함됩니다. 데이터 소스 창에서 보고서 레이아웃으로 필드를 끌 수 있습니다.

보고서에서 데이터 바인딩

보고서 정의는 데이터 영역을 사용하여 데이터를 보고서에 바인딩합니다. 다양한 데이터 영역에서 선택하여 보고서에서 다양한 데이터 구조를 지원할 수 있습니다. 보고서 정의에 사용할 수 있는 데이터 영역의 예에는 테이블, 행렬, 차트 및 목록이 있습니다. 보고서에서 데이터를 바인딩하려면 다음을 수행해야 합니다.

  • 보고서에서 사용할 데이터 소스 및 데이터 집합을 정의합니다. 이 항목에서 제공하는 정보와 링크를 사용하여 이 작업을 수행하는 방법을 배울 수 있습니다. 데이터 소스 창에는 사용할 수 있는 데이터 소스 및 필드가 표시됩니다.

  • 사용하려는 데이터 영역을 보고서 도구 상자에서 디자인 화면으로 끕니다.

  • 개별 필드를 데이터 소스 창에서 데이터 영역으로 끕니다.

    각 데이터 영역은 단일 데이터 집합의 필드를 사용할 수 있습니다. ReportViewer 컨트롤이나 보고서 서버 모두 서로 다른 데이터 집합 간의 조인을 수행할 수 없습니다. 예를 들어 비즈니스 개체를 사용하는 경우 비즈니스 개체 내에서 조인을 수행해야 합니다. 데이터 영역에 대한 자세한 내용은 보고서에 데이터 영역 추가(Visual Studio 보고서 디자이너)를 참조하십시오.

ReportViewer 보고서의 데이터 소스를 추가하는 방법

클라이언트 보고서 정의에서 사용할 수 있도록 데이터 소스를 설정하려면 다음과 같은 방법이 권장됩니다.

  • 응용 프로그램 프로젝트에 데이터 소스를 추가하고 기본 데이터에 대한 데이터 연결을 구성합니다. 기본 데이터 저장소의 경우 사용할 특정 데이터를 선택합니다. 보고서에 사용할 데이터는 데이터 소스 창에서 사용할 수 있어야 합니다. 데이터 테이블의 경우 데이터 소스는 쿼리에서 반환된 열 이름을 표시합니다. 열거 가능한 비즈니스 개체 컬렉션의 경우 데이터 소스는 클래스 개체에서 노출하는 단순 데이터 형식의 공용 속성 목록을 표시합니다.

  • 데이터 테이블을 만들려면 프로젝트에 데이터 집합을 추가하고 TableAdapter 마법사를 사용하여 데이터 테이블을 구성합니다. TableAdapter 마법사는 즉시 쿼리 결과를 확인할 수 있도록 쿼리 작성기와 데이터 미리 보기 기능을 제공합니다.

  • 비즈니스 개체를 만들려면 프로젝트 메뉴의 새 항목 추가 명령을 사용하여 클래스 개체를 선택합니다. 디자인 타임에 사용할 단순 데이터 형식의 공용 속성을 노출하는 구현을 제공합니다. 런타임 시 사용할 열거 가능한 속성 컬렉션을 반환하는 메서드를 제공합니다.

데이터 소스가 구성되면 데이터 소스 창의 계층에 바인딩 가능한 데이터가 나타납니다. 데이터를 보고서에 바인딩하려면 확장 계층의 노드를 보고서 레이아웃의 텍스트 상자나 데이터 영역으로 끌어 옵니다. 보고서가 정의된 후 나중에 데이터 집합을 수정하는 경우 보고서와 컨트롤에서 데이터 바인딩을 업데이트해야 합니다. 자세한 내용은 데이터 원본 참조 업데이트 및 다시 바인딩(Visual Studio 보고서 디자이너)을 참조하십시오.

수에 관계없이 데이터 소스를 프로젝트에 포함할 수 있습니다. 실제로 보고서에 사용되는 데이터 소스 목록을 보려면 보고서 메뉴에서 데이터 소스을 선택합니다. 응용 프로그램에서 보고서와 해당 데이터를 미리 보려면 응용 프로그램을 빌드하거나 배포하여 보고서에 필요한 데이터가 포함되어 있는지 확인해야 합니다. 컨트롤을 구성하고 보고서 레이아웃을 정의하는 방법은 ReportViewer에 로컬 처리 구성클라이언트 보고서 정의(.rdlc) 파일 만들기를 참조하십시오.

즉시 시작하려면 다음 연습을 사용하여 프로젝트에 각 데이터 소스 유형을 추가하는 방법을 알아 봅니다.

비즈니스 개체 사용

비즈니스 개체는 단순 데이터 형식의 공용 속성을 노출하는 응용 프로그램 개체입니다. 비즈니스 개체의 예로 기본 데이터 저장소의 Customer 개체 컬렉션, 응용 프로그램에서 만든 Book Title 개체의 배열, RSS XML 원본에서 만드는 Channel 개체 목록 등이 있습니다.

데이터 소스로 액세스할 수 있으려면 컬렉션에서 IEnumerable을 지원해야 합니다. 데이터 소스 창의 계층 뷰에 바인딩 가능한 데이터가 나타납니다. 비즈니스 개체의 경우 데이터 소스는 클래스 개체에서 노출하는 단순 데이터 형식의 공용 속성 목록을 표시합니다. 그런 다음 보고서 정의에서 데이터 영역과 텍스트 상자에 바인딩할 수 있습니다.

비즈니스 개체 컬렉션을 제공하려면 프로젝트에 클래스를 추가하거나 클래스에 대한 어셈블리 참조를 추가할 수 있습니다.

데이터 테이블 사용

DataTable은 ADO.NET DataSet의 일부로 프로젝트 메뉴에서 새 항목 추가를 선택하여 쉽게 프로젝트에 추가할 수 있습니다. 데이터 연결을 구성하려면 TableAdapter 구성 마법사를 시작합니다. 데이터 메뉴에서 추가를 선택한 다음 TableAdapter를 선택합니다. 쿼리를 정의하여 결과 집합을 제한할 수도 있습니다. 마법사가 완료되면 데이터 소스 창에서 DataTable의 열에 액세스하여 클라이언트 보고서 정의의 데이터 영역과 텍스트 상자에 바인딩할 수 있습니다.

ReportViewer 웹 서버 컨트롤의 데이터 소스 정의

데이터 소스 컨트롤은 데이터 액세스 계층 추상화에 대한 지원을 제공하므로 웹 페이지의 컨트롤이 데이터 소스에 바인딩되고 다시 실제 데이터로 바인딩됩니다. 이렇게 하면 모든 컨트롤을 해당 데이터에 다시 바인딩하지 않아도 효율적으로 데이터 소스를 변경할 수 있습니다.

웹 페이지를 디자인할 때 도구 상자 데이터 섹션에는 SqlDataSourceXmlDataSource와 같은 여러 개의 데이터 소스 컨트롤이 표시됩니다. 일부 데이터 소스 컨트롤은 웹 페이지에서 페이지 메모리 지원을 제공하고 다른 데이터 소스 컨트롤은 공유 데이터를 사용합니다. 보고서에서 페이지 메모리를 사용하지 않으므로 ReportViewer 웹 서버 컨트롤에 대한 최상의 방법은 ObjectDataSource 컨트롤을 사용하는 것입니다. 이 컨트롤은 메모리 내 캐시된 개체(DataTables 또는 비즈니스 개체 컬렉션)와 보고서 데이터 영역 간의 브리지를 제공합니다. ReportViewer 컨트롤을 웹 페이지에 추가하면 ObjectDataSource 컨트롤이 자동으로 추가되어 구성됩니다.

추가 코드 작성 필요성을 최소화하려면 ASP.NET 웹 페이지 지원은 바인딩 가능한 비즈니스 개체를 제공하는 컬렉션을 검색하기 위해 추가 백그라운드 처리를 제공합니다. 비즈니스 개체로 식별될 수 있는 개체 컬렉션을 반환하는 클래스를 프로젝트에 추가하면 웹 사이트 데이터 소스 창에 자동으로 컬렉션이 추가됩니다.

참고 항목

참조

Microsoft.Reporting.WinForms.ReportViewer.Drillthrough
Microsoft.Reporting.WinForms.LocalReport.SubreportProcessing
Microsoft.Reporting.WebForms.ReportViewer.Drillthrough
Microsoft.Reporting.WebForms.LocalReport.SubreportProcessing

개념

ReportViewer에 원격 처리 구성
데이터 원본 참조 업데이트 및 다시 바인딩(Visual Studio 보고서 디자이너)

관련 자료

TableAdapter 개요
샘플 및 연습