Share via


연습: ReportViewer 보고서 만들기

이 연습에서는 Visual Studio Windows Forms 응용 프로그램 프로젝트에서 AdventureWorks2008 예제 데이터베이스를 기반으로 간단한 테이블 보고서를 만드는 방법을 보여 줍니다. 보고서 마법사를 사용하여 프로젝트에 보고서를 추가하고 응용 프로그램의 사용자가 보고서를 볼 수 있도록 Windows Form에 ReportViewer Windows Forms 컨트롤을 추가합니다.

Visual Studio 보고서 디자이너를 사용하여 보고서를 디자인하는 방법은 보고서 디자이너(Visual Studio)를 참조하십시오.

필수 구성 요소

이 연습을 사용하려면 AdventureWorks2008 예제 데이터베이스에 대한 액세스 권한이 있어야 합니다. 이 연습에서 사용되는 쿼리는 이전 버전의 AdventureWorks에서 작동하지 않습니다. AdventureWorks2008 예제 데이터베이스를 가져오는 방법은 연습: AdventureWorks 데이터베이스 설치를 참조하십시오.

이 연습에서는 사용자가 Transaction-SQL 쿼리와 ADO.NET DataSetDataTable 개체에 대해 잘 알고 있다고 가정합니다.

새 Windows Forms 응용 프로그램 프로젝트를 만들려면

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

  2. 설치된 템플릿 창에서 다른 언어를 확장하고 Visual Basic을 선택합니다.

  3. Windows Forms 응용 프로그램을 선택합니다.

  4. 이름 상자에 SimpleReport를 입력합니다.

  5. 위치 입력란에 프로젝트를 저장할 디렉터리를 입력하거나 찾아보기를 클릭하여 해당 디렉터리를 찾습니다.

  6. 확인을 클릭합니다.

    Windows Forms 디자이너가 열리고 방금 만든 프로젝트의 Form1이 표시됩니다.

  7. 폼을 클릭합니다. 보기 메뉴에서 속성 창을 선택합니다. 크기 속성을 확장하여 너비높이를 표시합니다. 너비를 500픽셀로 설정합니다.

데이터 집합 및 데이터 테이블을 정의하려면

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

  2. 새 항목 추가 대화 상자에서 데이터 집합을 클릭합니다. 데이터 집합의 이름을 입력하고 추가를 클릭합니다. 기본 이름은 DataSet1.xsd입니다.

    새 XSD 파일이 프로젝트에 추가되고 데이터 집합 디자이너가 열립니다.

  3. 데이터 집합 디자이너의 도구 상자에서 TableAdapter 컨트롤을 디자인 화면으로 끌어 옵니다.

    TableAdapter 구성 마법사가 시작됩니다.

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

  5. Visual Studio에서 데이터 소스를 처음 만드는 경우 데이터 소스 선택 페이지가 표시됩니다. 데이터 소스 상자에서 Microsoft SQL Server를 선택합니다.

  6. 연결 추가 대화 상자에서 다음 단계를 수행합니다.

    • 서버 이름 상자에 AdventureWorks2008 데이터베이스가 위치한 서버를 입력합니다.

      기본 SQL Server Express 인스턴스는 (local)\sqlexpress입니다.

    • 서버에 로그온 섹션에서 데이터에 액세스할 수 있도록 하는 옵션을 선택합니다. Windows 인증 사용이 기본값입니다.

    • 데이터베이스 이름 선택 또는 입력 드롭다운 목록에서 AdventureWorks2008을 클릭합니다.

    • 확인을 클릭하여 마법사로 돌아간 후 다음을 클릭합니다.

  7. 이전 단계에서 SQL Server 인증 사용을 지정한 경우 중요한 데이터를 문자열에 포함할지 아니면 응용 프로그램 코드에서 설정할지를 지정하는 옵션을 선택합니다.

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

  9. 명령 유형을 선택하십시오. 페이지에서 SQL 문 사용을 선택하고 다음을 클릭합니다.

  10. SQL 문을 입력하십시오. 페이지에서 다음 Transact-SQL 쿼리를 입력하여 AdventureWorks2008 데이터베이스에서 판매 데이터를 검색한 다음 마침을 클릭합니다.

    --SET DATEFORMAT mdy
    
    SELECT      
       PC.Name AS Category, PS.Name AS Subcategory, 
       DATEPART(yy, SOH.OrderDate) AS Year, 
       'Q' + DATENAME(qq, SOH.OrderDate) AS Qtr, 
       SUM(DET.UnitPrice * DET.OrderQty) AS Sales
    FROM Production.ProductSubcategory PS INNER JOIN
       Sales.SalesOrderHeader SOH INNER JOIN
          Sales.SalesOrderDetail DET ON SOH.SalesOrderID = DET.SalesOrderID INNER JOIN
          Production.Product P ON DET.ProductID = P.ProductID 
          ON PS.ProductSubcategoryID = P.ProductSubcategoryID INNER JOIN
       Production.ProductCategory PC ON PS.ProductCategoryID = PC.ProductCategoryID
    WHERE (SOH.OrderDate BETWEEN ('20020101') AND ('20031231'))
    GROUP BY DATEPART(yy, SOH.OrderDate), PC.Name, PS.Name, 
       'Q' + DATENAME(qq, SOH.OrderDate), PS.ProductSubcategoryID
    

    쿼리 작성기 단추를 클릭하고 쿼리 작성기에서 쿼리를 만든 다음 쿼리 실행 단추를 사용하여 유효성을 검사할 수도 있습니다.

  11. 마침을 클릭합니다.

    이제 데이터 집합 디자이너에는 DataTable1에 대한 DataTable 정의가 표시됩니다. 이때 필드 이름은 쿼리의 열 및 열 별칭(Category, Subcategory, Year, QtrSales)에 따라 지정됩니다. 데이터를 보고서에 바인딩할 때 이러한 필드를 사용합니다.

    참고

    데이터 테이블의 필드를 변경해야 하는 경우 데이터 집합 디자이너 페이지에서 DataTable1 머리글이나 DataTable1TableAdapter 머리글을 마우스 오른쪽 단추로 클릭하고 구성을 선택합니다. 이렇게 하면 TableAdapter 구성 마법사가 다시 시작됩니다.

  12. DataSet1 파일을 저장합니다.

보고서 마법사를 사용하여 새 보고서 정의 파일을 추가하려면

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

  2. 새 항목 추가 대화 상자에서 보고서 마법사를 선택합니다.

  3. 이름Sales Orders.rdlc를 입력한 다음 추가를 클릭합니다.

    그래픽 디자인 화면이 대화 상자 뒤에 열립니다.

  4. 데이터 집합 속성 페이지의 데이터 소스 드롭다운 목록에서 사용자가 만든 데이터 집합을 선택합니다.

    사용자가 만든 DataTable을 사용하여 사용 가능한 데이터 집합 상자가 자동으로 업데이트됩니다.

  5. 다음을 클릭합니다.

  6. 필드 정렬 페이지에서 다음을 수행합니다.

    1. 사용 가능한 필드Category행 그룹 상자로 끌어 옵니다.

    2. 사용 가능한 필드Subcategory행 그룹 상자의 Category 아래로 끌어 옵니다.

    3. 사용 가능한 필드Year열 그룹 상자로 끌어 옵니다.

    4. 사용 가능한 필드Qtr열 그룹 상자의 Year 아래로 끌어 옵니다.

    5. 사용 가능한 필드Sales 상자로 끌어 옵니다.

  7. 다음을 두 차례 클릭하고 마침을 클릭합니다.

    .rdlc 파일이 만들어져 보고서 디자이너에서 열립니다. 디자인한 테이블릭스가 이제 디자인 화면에 표시됩니다.

보고서에 제목을 추가하려면

  1. 디자이너 화면에서 테이블릭스를 클릭하여 열 핸들과 행 핸들이 테이블 위와 옆에 표시되도록 합니다.

    참고

    핸들은 테이블릭스의 위와 옆에 표시되는 회색 상자입니다. 핸들을 사용하여 열 그룹, 행 그룹 및 테이블릭스 자체에서 다양한 동작을 수행할 수 있습니다. 테이블릭스 위쪽을 가로지르는 핸들이 열 핸들이고, 테이블릭스 옆쪽을 세로로 내려오는 핸들이 행 핸들입니다. 열 핸들과 행 핸들이 만나는 위치의 핸들이 모퉁이 핸들입니다.

  2. 모퉁이 핸들을 클릭하여 전체 테이블릭스를 선택하고 교차 화살표를 표시합니다.

  3. 교차 화살표를 끌어 테이블릭스를 디자인 화면에서 아래로 이동합니다.

  4. 도구 상자에서 텍스트 상자 항목을 디자인 화면에서 테이블릭스 위의 영역으로 끈 다음 교차 화살표를 끌어 배치합니다.

  5. 텍스트 상자가 선택된 상태에서 Company Sales를 입력합니다. 필요한 경우 테두리를 끌어 텍스트 상자를 확장합니다.

  6. 텍스트 상자가 선택된 상태에서 보고서 서식 도구 모음의 굵게 단추를 클릭하고 글꼴 크기 상자에서 16pt를 선택합니다.

  7. 텍스트 상자가 선택된 상태에서 보고서 서식 도구 모음의 전경색 단추를 클릭합니다.

  8. 색 선택 대화 상자에서 짙은 감색을 선택하고 확인을 클릭합니다.

폼에 ReportViewer 컨트롤을 추가하려면

  1. 솔루션 탐색기에서 Form1.vb를 클릭합니다.

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

  3. 도구 상자의 보고 섹션에서 ReportViewer 컨트롤을 폼으로 끕니다.

  4. 오른쪽 위 모퉁이에 있는 스마트 태그 문자 모양을 클릭하여 ReportViewer1 컨트롤의 스마트 태그 패널을 엽니다. 보고서 선택 드롭다운 목록을 클릭하고 SimpleReport.Sales Orders.rdlc를 선택합니다.

  5. 스마트 태그 패널에서 부모 컨테이너에서 도킹을 클릭합니다.

    이 연습의 나머지 부분에서 응용 프로그램을 빌드하고 언제든지 폼에서 보고서를 볼 수 있습니다. 보고서 디자인의 증분 변경 내용이 최종 보고서에 주는 영향을 확인하려면 다음 절차 각각의 마지막 단계로 보고서를 빌드하고 봅니다.

  6. (선택 사항) F5 키를 눌러 응용 프로그램을 빌드하고 폼에서 보고서를 봅니다.

통화 필드의 형식을 지정하려면

  1. Sales Orders.rdlc 파일의 보고서 디자이너 창에서 [Sum(Sales)] 값이 있는 왼쪽 위의 셀을 마우스 오른쪽 단추로 클릭한 다음 텍스트 상자 속성을 클릭합니다.

  2. 숫자 탭을 선택합니다.

  3. 범주 목록에서 통화를 선택합니다.

  4. 기호 목록에서 **영어(영국)**를 선택합니다.

  5. 확인을 클릭하여 대화 상자를 닫습니다.

  6. [Sum(Sales)] 값이 있는 다른 모든 셀에 대해 동일한 단계를 수행합니다.

  7. (선택 사항) F5 키를 눌러 응용 프로그램을 빌드하고 보고서를 봅니다. 숫자 형식의 변경을 관찰합니다. 통화 변환이 수행되지 않고 숫자 형식만 변경되었습니다.

테이블릭스 레이아웃의 형식을 지정하려면

  1. Sales Orders.rdlc 파일의 보고서 디자이너 창에서 커서를 끌어 테이블릭스의 왼쪽 위 모퉁이에 있는 비어 있는 두 셀을 선택합니다.

  2. 선택된 셀을 마우스 오른쪽 단추로 클릭하고 셀 병합을 선택합니다.

  3. 병합된 셀을 마우스 오른쪽 단추로 클릭하고 텍스트 상자 속성을 선택합니다.

  4. 테두리 탭을 클릭합니다. 미리 보기 영역에서 테두리 토글 단추를 클릭하여 위쪽 테두리와 왼쪽 테두리를 제거합니다.

  5. 확인을 클릭합니다.

  6. 테이블릭스를 클릭하여 핸들을 표시합니다. 머리글이 Subcategory인 열의 열 핸들 오른쪽을 끌어서 열 너비를 확장합니다. 이런 식으로 머리글 텍스트가 줄 바꿈되는 것을 방지할 수 있습니다.

  7. F5 키를 눌러 응용 프로그램을 빌드하고 보고서를 봅니다.

참고 항목

참조

ReportViewer.Drillthrough

LocalReport.SubreportProcessing

ReportViewer.Drillthrough

LocalReport.SubreportProcessing

개념

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

관련 자료

Designing and Implementing Reports Using Report Designer (Reporting Services)

샘플 및 연습