1단원: 공유 데이터 집합 만들기 및 보고서 매개 변수 구성(SSRS)

이 단원에서는 Employee_Sales_Summary_2008R2 보고서에 대한 데이터 집합 쿼리 매개 변수를 기준으로 공유 데이터 집합을 만들고 보고서 매개 변수를 구성합니다.

학습 내용

이 자습서에서는 다음 작업 방법을 배웁니다.

  • 시작할 기본 보고서의 복사본을 만듭니다.

  • 프로젝트 및 보고서에 여러 공유 데이터 집합을 추가합니다.

  • 각 데이터 집합 쿼리 매개 변수에 대해 자동으로 만들어지는 보고서 매개 변수를 구성합니다.

  • 보고서의 용도를 설명하는 시나리오 설명을 보고서 사용자에게 추가합니다.

  • 데이터 원본 및 데이터 집합 쿼리 정보를 표시하는 조건부로 숨겨진 텍스트를 추가합니다.

  • 보고서 사용자가 선택한 매개 변수 값을 표시하는 조건부로 숨겨진 텍스트를 추가합니다.

  • 보고서 설명을 표시할 조건부로 숨겨진 텍스트를 추가합니다.

  • 보고서 제목을 추가합니다.

  • 보고서를 미리 보고 확인합니다.

  • 보고서를 배포합니다.

이 자습서에 소요되는 예상 시간: 15분

요구 사항

요구 사항에 대한 자세한 내용은 AdventureWorks 2008R2 예제 보고서의 사전 요구 사항(SSRS)을 참조하십시오.

이 단원을 수행하려면 이전 단원인 보고서 서버 프로젝트 및 AdventureWorks2008R2_Base 보고서 만들기(SSRS)를 완료해야 합니다.

일반 팁 목록은 보고서 디자인 팁(보고서 작성기 3.0 및 SSRS)을 참조하십시오.

프로젝트를 열고 보고서의 복사본을 만들려면

  1. Business Intelligence Development Studio에서 보고서 서버 프로젝트 AdventureWorks 2008R2 예제 보고서를 엽니다.

  2. 솔루션 탐색기에서 다음을 수행합니다.

    1. AdventureWorks2008R2_Base.rdl 보고서를 마우스 오른쪽 단추로 클릭한 다음 복사를 클릭합니다.

    2. 프로젝트 노드를 마우스 오른쪽 단추로 클릭한 다음 붙여넣기를 클릭합니다.

    3. 복사한 보고서의 이름을 Employee_Sales_Summary_2008R2.rdl로 바꿉니다.

공유 데이터 집합 만들기

이 보고서 프로젝트에서는 공유 데이터 원본 AdventureWorks2008R2를 기준으로 하는 4개의 공유 데이터 집합을 사용합니다.

EmployeeSalesYearOverYear2008R2 만들기

전년동기대비 판매의 공유 데이터 집합을 추가하려면

  1. 솔루션 탐색기에서 이름이 EmployeeSalesYearOverYear2008R2인 공유 데이터 집합을 추가합니다.

    이 데이터에서 "어떻게 계절별 판매량을 전년동기대비로 비교할 수 있습니까?"란 질문의 대답을 확인할 수 있습니다.

    보고서에서 꺾은선형 차트와 스파크라인 차트가 이 데이터를 표시합니다.

  2. AdventureWorks2008R2 공유 데이터 원본을 가리키고 다음 쿼리를 추가합니다.

    SELECT   P.FirstName + ' ' + P.LastName AS Employee, 
       DATEPART(Year, SOH.OrderDate) AS [Year], 
       DATEPART(Month, SOH.OrderDate) AS MonthNumber, 
       DATENAME(Month, SOH.OrderDate) AS [Month], 
       SUM(DET.LineTotal) AS Sales
    FROM [Sales].[SalesPerson] SP 
       INNER JOIN [Sales].[SalesOrderHeader] SOH ON SP.[BusinessEntityID] = SOH.[SalesPersonID]
       INNER JOIN Sales.SalesOrderDetail DET ON SOH.SalesOrderID = DET.SalesOrderID
       INNER JOIN [Sales].[SalesTerritory] ST ON SP.[TerritoryID] = ST.[TerritoryID] 
       INNER JOIN [HumanResources].[Employee] E ON SOH.[SalesPersonID] = E.[BusinessEntityID] 
       INNER JOIN [Person].[Person] P ON P.[BusinessEntityID] = SP.[BusinessEntityID]
    WHERE (DATEPART(Year, SOH.OrderDate) <= @ReportYear - 1 OR
       DATEPART(Year, SOH.OrderDate) = @ReportYear AND DATEPART(Month, SOH.OrderDate) <= @ReportMonth) AND 
       (SOH.SalesPersonID = (@EmployeeID))
    GROUP BY P.FirstName + ' ' + P.LastName, SOH.SalesPersonID, 
       DATEPART(Year, SOH.OrderDate), DATEPART(Month, SOH.OrderDate), 
       DATENAME(Month, SOH.OrderDate)
    

    솔루션 탐색기에 공유 데이터 집합이 나타납니다.

  3. 보고서 데이터 창에서 이름이 EmployeeSalesYearOverYear2008R2인 데이터 집합을 만듭니다.

  4. 데이터 집합 속성 대화 상자에서 공유 데이터 집합 사용을 선택하고 솔루션 탐색기에서 방금 만든 데이터 집합을 클릭합니다.

    데이터 집합 쿼리에는 쿼리 변수 @ReportMonth, @ReportYear@EmployeeID가 포함되어 있습니다.

  5. 데이터 집합 속성에서 각 쿼리 변수에 대해 데이터 집합 매개 변수가 만들어졌는지 확인합니다.

  6. 보고서 데이터 창에서 각 데이터 집합 매개 변수에 대해 보고서 매개 변수가 만들어졌는지 확인합니다.

보고서 데이터 창의 데이터 집합은 솔루션 탐색기의 공유 데이터 집합에 대한 참조입니다. 보고서가 게시된 후에는 참조가 보고서 서버 또는 SharePoint 사이트의 공유 데이터 집합을 가리킵니다.

EmployeeSalesDetail2008R2 만들기

각 판매 주문 데이터를 포함하는 공유 데이터 집합을 추가하려면

  1. 솔루션 탐색기에서 이름이 EmployeeSalesDetail2008R2인 공유 데이터 집합을 추가합니다.

    이 데이터에서 "전체 달 및 각 범주에 대해 할당된 판매량 목표를 달성하고 있습니까?"란 질문의 대답을 확인할 수 있습니다.

    보고서에서 행렬 및 포함된 표시기가 이 데이터를 표시합니다.

  2. AdventureWorks2008R2 공유 데이터 원본 및 다음 쿼리를 사용합니다.

    SELECT PER.FirstName + ' ' + PER.LastName AS Employee,
       PS.Name AS Subcategory, SUM(DET.LineTotal) AS Sales, 
       SOH.SalesOrderID,  SOH.SalesOrderNumber, 
       P.Name AS Product, 
       SUM(DET.OrderQty) AS OrderQty, DET.UnitPrice, 
       PC.Name AS Category
    FROM Sales.SalesOrderHeader SOH 
       INNER JOIN [Sales].[SalesPerson] SP ON SP.[BusinessEntityID] = SOH.[SalesPersonID]
       INNER JOIN Sales.SalesOrderDetail DET ON SOH.SalesOrderID = DET.SalesOrderID
       INNER JOIN [HumanResources].[Employee] E ON SOH.[SalesPersonID] = E.[BusinessEntityID] 
       INNER JOIN [Person].[Person] PER ON PER.[BusinessEntityID] = SP.[BusinessEntityID]
       INNER JOIN Production.Product P ON DET.ProductID = P.ProductID 
       INNER JOIN Production.ProductSubcategory PS ON P.ProductSubcategoryID = PS.ProductSubcategoryID 
       INNER JOIN Production.ProductCategory PC ON PS.ProductCategoryID = PC.ProductCategoryID
    WHERE (DATEPART(Year, SOH.OrderDate) = @ReportYear) AND 
       (DATEPART(Month, SOH.OrderDate) = @ReportMonth) AND 
        (SOH.SalesPersonID = @EmployeeID)
    GROUP BY PER.FirstName + ' ' + PER.LastName, 
       DATEPART(Month, SOH.OrderDate), SOH.SalesOrderID, SOH.SalesOrderNumber, 
       P.Name, PS.Name, DET.UnitPrice, PC.Name
    

    솔루션 탐색기에 공유 데이터 집합이 나타납니다.

  3. 보고서 데이터 창에서 이름이 EmployeeSalesDetail2008R2인 데이터 집합을 만듭니다.

  4. 데이터 집합 속성 대화 상자에서 공유 데이터 집합 사용을 선택하고 솔루션 탐색기에서 방금 만든 데이터 집합을 클릭합니다.

EmpSalesMonth2008R2 만들기

전월대비 판매의 공유 데이터 집합을 추가하려면

  1. 솔루션 탐색기에서 이름이 EmpSalesMonth2008R2인 공유 데이터 집합을 추가합니다.

    이 데이터에서 "어떻게 이달의 범주별 판매량을 이전 연도의 동월 판매량과 비교할 수 있습니까?"란 질문의 대답을 확인할 수 있습니다.

    보고서에서 세로 막대형 차트와 데이터 막대 차트가 이 데이터를 표시합니다.

  2. AdventureWorks2008R2 공유 데이터 원본 및 다음 쿼리를 사용합니다.

    SELECT PER.FirstName + ' ' + PER.LastName AS Employee, 
       DATEPART(Year, SOH.OrderDate) AS [Year], 
       DATEPART(Month, SOH.OrderDate) AS [MonthNumber], 
       DATENAME(Month, SOH.OrderDate) AS [Month], 
       PC.Name AS Category, SUM(DET.LineTotal) AS Sales
    FROM Sales.SalesOrderHeader SOH 
       INNER JOIN [Sales].[SalesPerson] SP ON SP.[BusinessEntityID] = SOH.[SalesPersonID]
       INNER JOIN Sales.SalesOrderDetail DET ON SOH.SalesOrderID = DET.SalesOrderID
       INNER JOIN [HumanResources].[Employee] E ON SOH.[SalesPersonID] = E.[BusinessEntityID] 
       INNER JOIN [Person].[Person] PER ON PER.[BusinessEntityID] = SP.[BusinessEntityID]
       INNER JOIN Production.Product P ON DET.ProductID = P.ProductID 
       INNER JOIN Production.ProductSubcategory PS ON P.ProductSubcategoryID = PS.ProductSubcategoryID 
       INNER JOIN Production.ProductCategory PC ON PS.ProductCategoryID = PC.ProductCategoryID
    WHERE
       (DATEPART(Year, SOH.OrderDate) <= @ReportYear) 
       AND (DATEPART(Month, SOH.OrderDate) = @ReportMonth)  
       AND (SOH.SalesPersonID = @EmployeeID)
    GROUP BY PER.FirstName + ' ' + PER.LastName, 
       DATEPART(Year, SOH.OrderDate), DATEPART(Month, SOH.OrderDate), 
       DATENAME(Month, SOH.OrderDate), PC.Name
    

    솔루션 탐색기에 공유 데이터 집합이 나타납니다.

  3. 보고서 데이터 창에서 이름이 EmpSalesMonth2008R2인 데이터 집합을 만듭니다.

  4. 데이터 집합 속성 대화 상자에서 공유 데이터 집합 사용을 선택하고 솔루션 탐색기에서 방금 만든 데이터 집합을 클릭합니다.

SalesEmployees2008R2 만들기

직원의 사용 가능한 값 목록에 대한 데이터 집합을 만들려면

  1. 솔루션 탐색기에서 이름이 SalesEmployees2008R2인 공유 데이터 집합을 추가합니다.

    이 데이터는 @EmployeeID 매개 변수에 대한 유효한 값을 제공합니다.

  2. AdventureWorks2008R2 공유 데이터 원본 및 다음 쿼리를 사용합니다.

    SELECT s.[BusinessEntityID], p.[FirstName] + N' ' + p.LastName AS Employee, e.[JobTitle]
    FROM [Sales].[SalesPerson] s
       INNER JOIN [HumanResources].[Employee] e ON e.[BusinessEntityID] = s.[BusinessEntityID]
       INNER JOIN [Person].[Person] p ON p.[BusinessEntityID] = s.[BusinessEntityID]
    

    솔루션 탐색기에 공유 데이터 집합이 나타납니다.

  3. 보고서 데이터 창에서 이름이 SalesEmployees2008R2인 데이터 집합을 만듭니다.

  4. 데이터 집합 속성 대화 상자에서 공유 데이터 집합 사용을 선택하고 솔루션 탐색기에서 방금 만든 데이터 집합을 클릭합니다.

보고서 매개 변수 구성

공유 데이터 집합에는 ReportYear, ReportMonth 및 EmployeeID에 대한 쿼리 변수가 있는 데이터 집합 쿼리가 포함되어 있습니다. 각 쿼리 변수에 대해 해당 보고서 매개 변수가 자동으로 생성됩니다. 기본적으로 각 보고서 매개 변수에 대한 속성이 문자열 데이터 형식, 단일 값 및 기본값 없음 또는 유효한 값 목록에 대해 설정됩니다. 필요한 경우 각 매개 변수를 직접 구성해야 합니다.

매개 변수 순서 변경

보고서 뷰어 도구 모음에 대한 매개 변수의 순서를 변경하려면

  1. 보고서 데이터 창에서 ShowAll을 클릭합니다.

  2. 보고서 데이터 창 도구 막대에서 매개 변수가 목록의 맨 마지막에 배치될 때까지 아래로 이동을 클릭합니다.

  3. ReportMonth를 클릭합니다.

  4. 매개 변수가 목록의 맨 처음에 배치될 때까지 위로 이동을 클릭합니다.

ReportMonth 구성

개별적으로 지정한 값 집합의 값만 허용하도록 @ReportMonth를 구성합니다. 기본값은 이러한 값 중 하나가 되어야 합니다. 그렇지 않으면 보고서가 자동으로 실행되지 않습니다.

보고서 매개 변수 @ReportMonth를 구성하려면

  1. 보고서 데이터 창에서 매개 변수를 확장합니다.

  2. @ReportMonth에 대한 매개 변수 속성을 엽니다.

  3. 일반 페이지에서 데이터 형식정수로 변경합니다.

  4. 사용 가능한 값 페이지에서 값 지정을 선택합니다.

  5. 12개월 각각에 대한 항목을 추가합니다. 레이블을 월 이름으로 설정하고 을 월의 서수 값으로 설정합니다. 예를 들어 첫 번째 항목은 January 및 1이고, 마지막 항목은 December 및 12입니다. 모두 12개의 값을 채웁니다.

  6. 기본값 페이지에서 값 지정을 선택합니다. 에서 7을 입력합니다.

이렇게 하면 기본값이 July로 설정됩니다. 보고서 매개 변수마다 기본값이 있을 경우에는 보고서를 처음으로 볼 때 보고서가 자동으로 실행됩니다.

ReportYear 구성

보고서 매개 변수 @ReportYear를 구성하려면

  1. @ReportYear에 대한 매개 변수 속성을 엽니다.

  2. 일반 페이지에서 데이터 형식정수로 변경합니다.

  3. 기본값 페이지에서 값 지정을 선택합니다.

  4. 값을 추가합니다. 에서 2007을 입력합니다.

EmployeeID 구성

보고서 매개 변수 @EmployeeID를 구성하려면

  1. @EmployeeID에 대한 매개 변수 속성을 엽니다.

  2. 일반 페이지에서 프롬프트를 Employee로 변경합니다.

  3. 데이터 형식정수로 변경합니다.

  4. 사용 가능한 값 페이지에서 쿼리에서 값 가져오기를 선택합니다.

  5. 데이터 집합에서 SalesEmployees2008R2를 선택합니다.

  6. 에서 BusinessEntityID를 선택합니다.

  7. 레이블에서 Employee를 선택합니다.

  8. 기본값 페이지에서 값 지정을 선택합니다. 에서 283을 입력합니다. 이 값은 David Campbell의 직원 ID입니다.

시나리오 설명 추가

시나리오 설명을 추가하려면

  • 시나리오 설명 입력란에서 기존 텍스트를 다음 텍스트로 바꿉니다.

    As a salesperson for AdventureWorks, I want to know how my sales compare to seasonal sales in previous years.

    The line and sparkline charts show year over year sales for all categories.

    The matrix with indicators shows current sales compared to quotas. Change quota values on the reportviewer toolbar.

    The column and databar charts show sales in each category.

다음 단원에서는 텍스트의 단어에서 관련 데이터 영역으로의 링크를 지정합니다.

데이터 원본, 데이터 집합 및 매개 변수 값 표시

사용자가 각 보고서 매개 변수에 대해 선택한 데이터 집합 쿼리 명령 텍스트 및 값을 표시할 수 있습니다. 이러한 경우 보고서를 좀 더 단순하게 하려면 이 정보를 마지막 페이지의 조건부로 숨겨진 사각형 컨테이너에 있는 입력란에 배치합니다.

사각형을 추가하려면

  1. 보고서 아래쪽의 페이지 바닥글 위에 사각형을 추가합니다.

  2. 사각형 속성에서 다음을 수행합니다.

    1. 일반 페이지에서 앞에 페이지 나누기 추가를 선택합니다.

    2. 표시 유형 페이지의 식에 따라 표시 또는 숨기기를 선택하고 다음을 입력합니다. =NOT Parameters!ShowAll.Value

다음 단계에서는 각 단계를 완료할 때 각 입력란을 사각형에 추가합니다. 필요에 맞게 사각형을 확장합니다. 사각형을 컨테이너로 사용하면 간단하게 모든 입력란을 하나의 단위로 이동할 수 있습니다.

매개 변수 값을 표시하는 입력란을 추가하려면

  1. 보고서 본문에 있는 별도의 줄에 다음 텍스트를 포함하는 입력란을 추가합니다.

    1. Report Month: [@ReportMonth] [@ReportMonth.Label]

    2. Report Year: [@ReportYear]

    3. EmployeeID: [@EmployeeID] [@EmployeeID.Label]

  2. 입력란을 사각형으로 끌고 필요한 대로 크기를 조정합니다.

데이터 원본 및 데이터 집합 정보를 표시하는 입력란을 추가하려면

  1. 보고서 본문에 다음 텍스트를 포함하는 이름이 DataSourceandDatasets인 입력란을 추가합니다.

    1. 데이터 원본 AdventureWorks2008R2:

    2. 다음 값을 포함하는 이름이 AdventureWorks2008R2인 자리 표시자를 만듭니다. =DataSources!AdventureWorks2008R2.DataSourceReference

    3. 데이터 집합 EmployeeSalesYearOverYear2008R2:

    4. 다음 값을 포함하는 이름이 EmployeeSalesYearOverYear2008R2인 자리 표시자를 만듭니다. =DataSets!EmployeeSalesYearOverYear2008R2.CommandText.

    5. 데이터 집합 EmployeeSalesDetail2008R2:

    6. 다음 값을 포함하는 이름이 EmployeeSalesDetail2008R2인 자리 표시자를 만듭니다. =DataSets! EmployeeSalesDetail2008R2.CommandText.

    7. 데이터 집합 EmpSalesMonth2008R2:

    8. 다음 값을 포함하는 이름이 EmpSalesMonth2008R2인 자리 표시자를 만듭니다. =DataSets! EmpSalesMonth2008R2.CommandText.

  2. 필요에 맞게 텍스트의 서식을 지정합니다. 예를 들어, 데이터 집합 이름에 밑줄을 넣습니다.

  3. 입력란을 사각형으로 끌고 필요한 대로 크기를 조정합니다.

설명 추가

설명을 추가하려면

  1. 페이지 바닥글에서 설명 입력란의 텍스트를 다음 텍스트로 바꿉니다.

    Purpose: Summary report. Displays year over year sales for all categories, for individual categories, and for quotas. Includes charts (line, sparkline, column with scale breaks, databar), tablix (toggle rows, row group, indicators at table and group level), group and report variables, rectangle containers, shared datasets, shared data source, custom code for chart line color, bookmarks, drilthrough action, multivalue parameters, and parameters to control conditional visibility of text boxes and toggle rows.

  2. 보고서 배경을 클릭하여 속성 창에서 보고서 속성을 표시합니다.

  3. 설명에 설명 텍스트를 붙여 넣습니다.

보고서 제목 추가

보고서 제목을 추가하려면

  1. 페이지 머리글에서 두 줄로 된 다음 텍스트를 포함하는 입력란을 추가합니다.

    Sales Report for [@EmployeeID.Label]

    [@ReportMonth.Label], [@ReportYear]

  2. 필요에 맞게 서식을 지정합니다.

보고서 미리 보기

보고서를 미리 보고 확인하려면

  1. 보고서를 미리 봅니다.

  2. 보고서가 자동으로 실행되는지 확인합니다.

  3. 보고서 뷰어 도구 모음에서 다음을 확인합니다.

    1. Report Month에 모든 월의 드롭다운 목록이 있습니다. 기본적으로 값은 July입니다.

    2. Report Year의 기본값은 2007입니다.

    3. Employee에 모든 직원 이름에 대한 드롭다운 목록이 있습니다. 기본적으로 값은 David Campbell입니다.

  4. 페이지 머리글에 로고, 보고서 이름 및 보고서 제목이 표시됩니다.

  5. 토글을 클릭하면 시나리오 텍스트가 표시됩니다.

  6. ShowAll을 True로 설정하고 보고서를 실행하면 보고서의 마지막 페이지에 매개 변수 값, 데이터 원본과 데이터 집합 정보 및 설명이 표시됩니다.

보고서 배포

보고서를 배포하려면

  1. 솔루션 탐색기에서 프로젝트를 마우스 오른쪽 단추로 클릭한 다음 배포를 클릭합니다. BI Development Studio 상태 줄 또는 출력 창에서 오류를 확인합니다.

    [!참고]

    보고서는 공유 데이터 집합에 따라 다르기 때문에 처음에 보고서를 배포할 때 전체 프로젝트를 배포해야 합니다.

  2. 브라우저에서 보고서 서버 또는 SharePoint 사이트로 이동하고 공유 데이터 원본, 공유 데이터 집합 및 보고서가 올바른 폴더에 나타나며 보고서를 볼 수 있는지 확인합니다.

다음 단계

보고서 프로젝트 및 기본 보고서 만들기 작업을 완료했습니다. 이제 예제 보고서를 만들 수 있습니다. 자세한 내용은 자습서: AdventureWorks 2008R2 예제 보고서 만들기(SSRS)를 참조하십시오.