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

이 연습에서는 Microsoft Visual Studio 2008 Windows 응용 프로그램 프로젝트에서 보고서를 만드는 방법과 응용 프로그램 사용자가 보고서를 볼 수 있도록 Windows Form에 ReportViewer 컨트롤을 추가하는 방법을 보여 줍니다.

필수 구성 요소

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

다음 단계에 따라 Visual Studio Windows 응용 프로그램 프로젝트에 보고서를 추가합니다. 이 예에서는 Microsoft Visual Basic으로 응용 프로그램을 만듭니다.

새 Windows 응용 프로그램 프로젝트 만들기

  1. Visual Studio 2008을 엽니다. 파일 메뉴에서 새로 만들기를 가리킨 다음 프로젝트를 선택합니다.

  2. 프로젝트 형식 창에서 Visual Basic을 선택합니다.

  3. 템플릿 창에서 Windows 응용 프로그램을 선택하여 Microsoft Windows 응용 프로그램을 만듭니다.

  4. 이름 입력란에 프로젝트 이름으로 ReportWalkthrough를 입력합니다.

  5. 위치 입력란에 프로젝트를 저장할 디렉터리를 입력하거나 찾아보기를 클릭하여 해당 디렉터리를 찾습니다. Windows Forms 디자이너가 열리고 방금 만든 프로젝트의 Form1.vb가 표시됩니다.

데이터 원본 연결 및 DataTable 정의

  1. 프로젝트 메뉴에서 새 항목 추가를 선택합니다.

  2. 새 항목 추가 대화 상자에서 데이터 집합을 클릭합니다.

  3. 데이터 집합의 이름을 입력한 다음 추가를 클릭합니다. 프로젝트에 XML 스키마 파일이 추가되고 데이터 집합 디자이너가 열립니다. 기본 이름은 DataSet1.xsd입니다.

  4. 데이터 집합 디자이너 모드에서 도구 상자를 열고 TableAdapter를 데이터 집합 디자인 화면으로 끌어 옵니다. TableAdapter 구성 마법사가 열립니다.

  5. 데이터 연결 선택 페이지에서 새 연결을 클릭합니다.

  6. 데이터 소스 대화 상자에서 Microsoft SQL Server를 선택합니다. 서버 이름 대화 상자에서 AdventureWorks가 위치한 서버를 입력합니다. 데이터베이스 드롭다운 목록에서 AdventureWorks를 선택하고 확인을 클릭하여 마법사의 다음 페이지로 이동합니다.

  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. 마법사 결과 페이지에서 마침을 클릭합니다.

  12. 데이터 집합 디자이너 페이지에 쿼리 결과로 반환된 열과 함께 DataTable1이 표시됩니다. 데이터 메뉴에서 데이터 소스 표시를 선택하고 DataTable1 노드를 확장하여 해당 열을 표시합니다. 다음 단계에서 데이터를 보고서에 바인딩할 때 데이터 소스 창과 Dept, Shift 및 EmployeeID 필드를 사용합니다.

보고서 디자인

  1. 프로젝트 메뉴에서 새 항목 추가를 선택합니다.

  2. 새 항목 추가 대화 상자에서 보고서를 클릭합니다.

  3. 보고서 파일의 이름을 입력합니다. 기본적으로 보고서 이름은 Report1.rdlc입니다. 추가를 클릭합니다. 보고서 디자이너가 열리고 보고서 페이지를 나타내는 점선 화면이 표시됩니다.

  4. 도구 상자를 엽니다. 텍스트 상자와 폼을 차례로 클릭합니다.

  5. 텍스트 상자에 # of Employees per Shift per Dept라는 보고서 제목을 입력합니다.

  6. 도구 상자에서 행렬 보고서 항목을 텍스트 상자 아래의 보고서로 끕니다.

  7. 데이터 소스 창에서 DataTable1을 확장하여 Dept, Shift 및 EmployeeID 열을 표시합니다. Dept 필드를 행렬의 첫 번째 열, 두 번째 행에 있는 텍스트 상자로 끕니다.

  8. Shift 필드를 행렬의 두 번째 열, 첫 번째 행에 있는 텍스트 상자로 끕니다. 텍스트 상자를 선택한 상태에서 TextAlign 속성을 오른쪽으로 설정합니다. 굵은 글꼴을 사용하려면 보고서 서식 도구 상자에서 B 아이콘을 클릭합니다.

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

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

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

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

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

  14. 속성 창의 일반 탭에서 식 단추(fx)를 클릭하여 식 편집기를 호출합니다.

  15. 기본 Sum 집계 함수를 편집하고 이를 Count로 변경합니다. 텍스트 상자를 마우스 오른쪽 단추로 클릭하고 속성을 선택하여 식 편집기를 호출할 수 있습니다. 식은 다음과 같아야 합니다.

    =Count(Fields!EmployeeID.Value)
    

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

  1. 솔루션 탐색기에서 Form1.vb를 마우스 오른쪽 단추로 클릭하고 디자인 보기를 선택하여 디자인 모드에서 폼을 엽니다.

  2. 속성 창에서 **+**를 클릭하여 Size 속성을 확장합니다. 폼 Height를 700으로 설정합니다.

  3. Visual Studio 도구 상자의 데이터 섹션에서 ReportViewer 아이콘, 폼을 차례로 클릭합니다. 필요한 경우 폼 너비와 ReportViewer 컨트롤 너비를 조절합니다.

  4. 오른쪽 위의 삼각형을 클릭하여 ReportViewer 컨트롤의 스마트 태그 패널을 엽니다. 보고서 선택 드롭다운 목록을 클릭하고 Report1.rdlc를 선택합니다. 보고서를 선택하면 보고서에 사용된 데이터 원본 인스턴스가 자동으로 생성됩니다. DataSet(DataTable에 대한 ADO.NET 컨테이너), TableAdapter 구성 요소 및 보고서에 사용된 각 데이터 원본에 해당하는 BindingSource 개체를 인스턴스화하는 코드가 생성됩니다.

  5. 열린 스마트 태그 패널에서 부모 컨테이너에서 도킹을 선택합니다.

응용 프로그램 빌드 및 실행

  1. 빌드 메뉴에서 ReportWalkthrough 빌드를 클릭합니다. 빌드 프로세스의 일부로 보고서가 컴파일됩니다. 보고서에 사용된 식의 구문 오류와 같은 일부 오류가 태스크 목록에 추가되어 표시됩니다.

  2. F5 키를 눌러 응용 프로그램을 실행하고 폼에서 보고서를 봅니다.

참고 항목

참조

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

개념

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

관련 자료

샘플 및 연습