연습: 로컬 처리 모드의 ReportViewer 웹 서버 컨트롤과 함께 데이터베이스 데이터 원본 사용

이 연습에서는 Microsoft Visual Studio 2008 ASP.NET 웹 사이트에 대한 보고서를 만드는 방법과 사용자가 보고서를 볼 수 있도록 웹 페이지에 ReportViewer 컨트롤을 추가하는 방법을 보여 줍니다.

필수 구성 요소

이 연습을 사용하려면 AdventureWorks 예제 데이터베이스에 대한 액세스 권한이 있어야 합니다. 자세한 내용은 연습: AdventureWorks 데이터베이스 설치를 참조하십시오.

또한 ASP.NET 웹 페이지를 만드는 권한과 함께 Microsoft IIS(인터넷 정보 서비스) 버전 5.0 이상을 실행하는 서버에 액세스할 수 있는 권한이 있어야 합니다.

컴퓨터에서 다음 단계에 따라 Visual Studio 2008 템플릿을 사용하여, 사용자가 만드는 보고서를 볼 수 있도록 구성된 ReportViewer 컨트롤을 포함하는 ASP.NET 웹 페이지를 만듭니다. 이 예에서는 Microsoft Visual Basic으로 응용 프로그램을 만듭니다.

새 웹 사이트 만들기

  1. 파일 메뉴에서 새로 만들기를 가리킨 다음 웹 사이트를 선택합니다.

  2. 새 웹 사이트 대화 상자에서 ASP.NET 웹 사이트를 선택합니다.

  3. 언어 목록에서 Visual Basic을 선택한 다음 확인을 클릭합니다.

  4. 위치 상자에서 HTTP가 아직 선택되어 있지 않은 경우 선택한 다음 찾아보기를 클릭하여 새 폴더로 이동합니다.

  5. 위치 선택 대화 상자에서 로컬 IIS를 클릭하고 웹 사이트 루트 디렉터리로 이동합니다.

  6. 새 웹 응용 프로그램 만들기 단추를 클릭하여 새 폴더를 만들고 이름을 입력합니다. Enter 키를 누릅니다.

  7. 열기를 클릭합니다.

  8. 확인을 클릭합니다.

    웹 사이트 프로젝트가 열리고 Default.aspx 웹 페이지가 표시됩니다.

  9. 솔루션 탐색기에서 Default.aspx가 강조 표시되어 있는지 확인합니다.

  10. 보기 메뉴에서 디자이너를 선택합니다.

    이제 웹 사이트 기본 페이지를 수정할 수 있습니다.

데이터 집합을 추가하여 데이터 연결 및 DataTable 정의

  1. 웹 사이트 메뉴에서 새 항목 추가를 선택합니다.

  2. 새 항목 추가 대화 상자에서 데이터 집합을 클릭합니다. 추가를 클릭합니다. App_Code 폴더에 항목을 추가할지를 묻는 메시지가 표시되면 를 클릭합니다. 새 XSD 파일인 DataSet1.xsd가 프로젝트에 추가되고 데이터 집합 디자이너가 열리며 TableAdapter 구성 마법사가 호출됩니다.

  3. SQLExpress를 사용하여 AdventureWorks를 설치하면 선택할 수 있는 기존 데이터 연결 sqlexpress.AdventureWorks.dbo데이터 연결 선택 페이지에 표시될 수 있으며 이 경우 6단계로 건너뜁니다. 그렇지 않으면 새 연결을 클릭합니다.

  4. 데이터 소스 대화 상자에서 **Microsoft SQL Server (SqlClient)**를 선택합니다.

  5. 서버 이름 대화 상자에서 AdventureWorks 예제 데이터베이스가 위치한 서버의 이름을 입력합니다. 예를 들어 SQL Server Express 기본 인스턴스 이름은 (local)\sqlexpress입니다. 서버 이름을 입력한 후 데이터베이스 드롭다운 목록에서 AdventureWorks를 선택하고 확인을 클릭합니다.

  6. 다음을 클릭합니다.

  7. 응용 프로그램 구성 파일에 연결 문자열 저장 페이지에서 연결 문자열의 이름을 입력하거나 기본값 AdventureWorksConnectionString을 적용합니다. 다음을 클릭합니다.

  8. 명령 유형을 선택하십시오 페이지에서 SQL 문 사용을 선택합니다. 다른 라디오 단추가 선택되어 있지 않은지 확인합니다.

  9. SQL 문을 입력하십시오 페이지에서 다음 Transact-SQL 쿼리를 입력하여 AdventureWorks 데이터베이스에서 데이터를 검색한 다음 마침을 클릭합니다. 쿼리 작성기 단추를 클릭하고 쿼리 작성기에서 쿼리를 만든 다음 쿼리 실행 단추를 사용하여 만든 쿼리를 확인할 수도 있습니다.

    SELECT d.Name as Dept, s.Name as Shift, e.EmployeeID as EmployeeID
    FROM (HumanResources.Department d
    INNER JOIN HumanResources.EmployeeDepartmentHistory e
        ON d.DepartmentID = e.DepartmentID)
    INNER JOIN HumanResources.Shift s
        ON e.ShiftID = s.ShiftID
    

    쿼리에서 필요한 데이터가 반환되지 않는 경우 이전 버전의 AdventureWorks를 사용하는 것일 수 있습니다. SQL Server 2005 버전의 AdventureWorks를 설치하는 방법은 연습: AdventureWorks 데이터베이스 설치를 참조하십시오.

  10. 생성할 메서드 선택 페이지에서 기본값으로 DataTable 채우기에는 메서드 이름: Fill을, DataTable 반환에는 메서드 이름: GetData를 적용합니다. 다음을 클릭합니다.

  11. 마법사 결과 페이지에서 마침을 클릭합니다.

    이제 ADO.NET DataTable이 보고서의 데이터 원본으로 구성되었습니다.

  12. Visual Studio의 데이터 집합 디자이너 페이지에 쿼리 정의로부터 얻은 열을 나열하는 추가된 DataTable이 표시되어야 합니다. 기본 이름은 DataTable1입니다. 데이터 메뉴에서 데이터 미리 보기를 선택한 다음 미리 보기 단추를 클릭하여 쿼리 결과를 확인할 수 있습니다.

보고서 디자인

  1. 웹 사이트 메뉴에서 새 항목 추가를 선택합니다.

  2. 새 항목 추가 대화 상자에서 보고서 템플릿을 선택하고 보고서 파일 이름을 입력한 다음 추가를 클릭합니다. 보고서 정의 파일(기본값: Report.rdlc)이 생성되고 보고서 디자이너가 시작되며 웹 사이트 데이터 원본 창이 표시됩니다.

  3. 도구 상자를 엽니다. 텍스트 상자, 보고서 디자인 화면을 차례로 클릭합니다.

  4. 텍스트 상자에 # of Employees per Shift per Dept라는 보고서 제목을 입력합니다. 필요한 경우 텍스트 상자를 확장합니다.

  5. 도구 상자에서 행렬 보고서 항목을 텍스트 상자 아래의 보고서로 끕니다. 점선 흰색 배경이 보고서 페이지입니다. 페이지에서 행렬 위치를 조정하려면 왼쪽 모퉁이를 클릭하여 행렬을 선택하고 필요에 따라 끌거나 화살표 키를 사용하여 항목을 이동합니다.

  6. 웹 사이트 데이터 원본 창에서 쿼리의 열이 표시될 때까지 DataTable1 노드를 확장합니다. Dept를 행렬의 첫 번째 열, 두 번째 행에 있는 텍스트 상자로 끕니다.

  7. Shift를 행렬의 두 번째 열, 첫 번째 행에 있는 텍스트 상자로 끕니다. 텍스트 상자가 선택된 상태에서 속성 창의 TextAlign 속성을 Right로 설정합니다. 텍스트 상자를 클릭하여 보고서 서식 도구 모음을 활성화하고 굵게 단추를 클릭합니다.

  8. 행렬에서 아무 위치나 클릭하여 행렬을 선택합니다. 마우스 오른쪽 단추를 클릭하고 이름으로 행렬을 선택합니다. 기본값은 matrix1입니다. 행렬 보고서 항목 주위에 윤곽선이 나타납니다. 윤곽선을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 열리는 대화 상자의 제목이 행렬 속성인지 확인합니다.

  9. 그룹 탭을 클릭합니다. 섹션에서 편집을 클릭합니다.

  10. 정렬 및 그룹화 대화 상자에서 정렬 탭을 클릭합니다.

  11. 식 아래의 첫 번째 상자를 클릭하여 텍스트 상자를 활성화합니다. 드롭다운 목록에서 =Fields!Dept.Value를 선택합니다. 이렇게 하면 보고서 데이터가 부서 이름을 기준으로 정렬됩니다. 확인을 클릭합니다.

  12. 확인을 클릭하여 행렬 속성 대화 상자를 닫습니다.

  13. 웹 사이트 데이터 원본 창에서 EmployeeID 필드를 행렬의 두 번째 열, 두 번째 행에 있는 데이터 텍스트 상자로 끕니다. 이 텍스트 상자를 마우스 오른쪽 단추로 클릭하고 을 선택합니다.

  14. 기본 Sum 집계 함수를 편집하고 이를 Count로 변경합니다. 확인을 클릭합니다.

  15. 확인을 클릭하여 텍스트 상자 속성 대화 상자를 닫습니다.

  16. 파일 메뉴에서 모두 저장을 선택합니다.

응용 프로그램에 ReportViewer 컨트롤 추가

  1. 솔루션 탐색기에서 Default.aspx를 마우스 오른쪽 단추로 클릭하고 디자이너 보기를 선택합니다.

  2. 도구 상자 창을 엽니다. 데이터 그룹에서 ReportViewer 컨트롤을 페이지로 끕니다.

  3. 아직 열려 있지 않은 경우 웹 페이지에서 ReportViewer 컨트롤의 오른쪽 위 삼각형을 클릭하여 ReportViewer 태스크 스마트 태그 패널을 엽니다. 보고서 선택 상자에서 Report.rdlc의 정규화된 파일 이름을 선택합니다.

    보고서를 선택하면 보고서에 사용된 데이터 원본 인스턴스가 자동으로 생성됩니다. 각 DataTable 및 해당 DataSet 컨테이너, 보고서에 사용된 각 데이터 원본에 해당하는 ObjectDataSource 컨트롤을 인스턴스화하는 코드가 생성됩니다. 이 데이터 원본 컨트롤은 자동으로 구성됩니다.

Note참고

기본 데이터 원본이 데이터베이스나 다른 강력한 형식의 데이터 저장소인 경우에도 ASP.NET에서 SqlDataSource 컨트롤이 아닌 ObjectDataSource 컨트롤을 사용하는 이유를 이해하려면 보고서에 대한 데이터 원본 만들기를 참조하십시오.

응용 프로그램 빌드 및 실행

  1. Ctrl+F5를 눌러 디버깅 없이 페이지를 실행하거나 F5 키를 눌러 디버깅과 함께 페이지를 실행합니다.

    빌드 프로세스의 일부로 보고서가 컴파일되며 보고서에 사용된 식의 구문 오류와 같은 발견된 모든 오류가 태스크 목록에 추가됩니다.

    웹 페이지가 브라우저에 나타납니다. ReportViewer 컨트롤이 보고서를 표시합니다. 도구 모음을 사용하여 보고서를 탐색하거나 확대/축소하거나 Excel로 내보낼 수 있습니다.

  2. 브라우저를 닫습니다.

참고 항목

참조

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

개념

ReportViewer 태스크 스마트 태그 패널 사용

관련 자료

샘플 및 연습