2단원: 매개 변수를 추가하여 사용 가능한 값 목록 만들기
사용 가능한 값 또는 유효한 값은 사용자에게 보고서 매개 변수에 사용할 수 있는 값 목록을 제공합니다. 보고서 작성자는 데이터 원본의 값 집합을 검색하도록 특별히 설계된 쿼리로부터 유효한 값을 제공하거나 미리 정의한 값 집합을 제공할 수 있습니다. 보고서가 처리될 때 실행되는 데이터 집합 쿼리에 사용 가능한 값 집합을 바인딩하여 데이터베이스에 있는 값만 드롭다운 목록에서 선택할 수 있는지 확인합니다.
이 단원에서는 AdventureWorks2008 데이터베이스의 사용 가능한 영업 사원 이름에 대한 드롭다운 목록을 표시하도록 Sales Orders 보고서를 수정합니다. 선택한 매개 변수 값에 대한 결과 집합에 행이 없는 경우 메시지를 표시하도록 테이블 속성을 설정합니다. 이름을 선택하여 보고서를 검토하는 경우 보고서에 해당 영업 사원에 대한 판매액만 표시됩니다.
기존 데이터 집합을 바꾸려면
보고서 데이터 창에서 데이터 집합 AdventureWorksDataset을 마우스 오른쪽 단추로 클릭한 다음 데이터 집합 속성을 클릭합니다.
[!참고]
보고서 데이터 창이 표시되지 않으면 보기 메뉴에서 보고서 데이터를 클릭합니다.
데이터 원본에서 AdventureWorks_Ref가 선택되어 있는지 확인합니다.
쿼리 유형에서 텍스트가 선택되어 있는지 확인합니다.
쿼리 디자이너 단추를 클릭하여 쿼리 디자이너를 엽니다.
입력란에서 텍스트를 다음 쿼리로 바꿉니다.
SELECT soh.OrderDate AS [Date], DATENAME(weekday, soh.OrderDate) as Weekday, soh.SalesOrderNumber AS [Order], pps.Name AS Subcat, pp.Name as Product, SUM(sd.OrderQty) AS Qty, SUM(sd.LineTotal) AS LineTotal FROM Sales.SalesPerson sp INNER JOIN Sales.SalesOrderHeader AS soh ON sp.BusinessEntityID = soh.SalesPersonID INNER JOIN Sales.SalesOrderDetail AS sd ON sd.SalesOrderID = soh.SalesOrderID INNER JOIN Production.Product AS pp ON sd.ProductID = pp.ProductID INNER JOIN Production.ProductSubcategory AS pps ON pp.ProductSubcategoryID = pps.ProductSubcategoryID INNER JOIN Production.ProductCategory AS ppc ON ppc.ProductCategoryID = pps.ProductCategoryID GROUP BY ppc.Name, soh.OrderDate, soh.SalesOrderNumber, pps.Name, pp.Name, soh.SalesPersonID HAVING ppc.Name = 'Clothing' AND (soh.OrderDate BETWEEN (@StartDate) AND (@EndDate)) AND soh.SalesPersonID = (@BusinessPersonID)
다음 쿼리는 결과 집합을 한 명의 영업 사원으로 제한하는 조건이 추가되었다는 점을 제외하면 이전 쿼리와 동일합니다.
AND soh.SalesPersonID = (@BusinessPersonID)
실행(!) 단추를 클릭합니다. 쿼리 매개 변수를 입력하라는 메시지가 표시되면 다음 표를 사용하여 값을 입력합니다.
@StartDate
20010101
@EndDate
20030101
@BusinessPersonID
290
확인을 클릭합니다.SalesPersonID가 290인 영업 사원 Ranjit Varkey Chudukatil에 대한 결과 집합이 나타납니다.
보고서 매개 변수에 대한 유효한 값 목록을 채우려면
보고서 데이터 창에서 새로 만들기를 클릭하고 데이터 집합을 클릭합니다. 데이터 집합 속성 대화 상자가 열립니다.
이름 필드에 BusinessPersons를 입력합니다. 이 데이터 집합은 SalesPersonID 보고서 매개 변수의 유효한 값 목록을 채우는 데 사용됩니다.
데이터 원본이 AdventureWorks_Ref인지 확인합니다.
쿼리 창에 다음 Transact-SQL 쿼리를 붙여 넣습니다.
SELECT SP.BusinessEntityID, C.FirstName, C.LastName FROM Sales.SalesPerson AS SP INNER JOIN HumanResources.Employee AS E ON E.BusinessEntityID = SP.BusinessEntityID INNER JOIN Person.Person AS C ON C.BusinessEntityID = E.BusinessEntityID ORDER BY SP.BusinessEntityID
확인을 두 번 클릭합니다. BusinessPersons 데이터 집합에 대해 필드 목록이 채워집니다. 이 데이터 집합은 매개 변수 BusinessPersonID에 대한 유효한 값을 제공하는 데 사용됩니다.
BusinessPersons 데이터 집합에는 FirstName 및 LastName이라는 필드가 있습니다. 다음 단계에서 이 두 필드를 Name이라는 하나의 필드로 연결합니다.
보고서 데이터 창에서 계산 필드를 정의하려면
보고서 데이터 창 도구 모음에서 BusinessPersons 데이터 집합을 마우스 오른쪽 단추로 클릭한 다음 계산 필드 추가를 클릭합니다. 표에 새 행이 추가된 데이터 집합 속성의 필드 페이지가 열립니다.
마지막 필드 이름 입력란에 Name을 입력합니다.
필드 원본 입력란에 다음 식을 붙여 넣습니다.
=Fields!LastName.Value & ", " & Fields!FirstName.Value
확인을 클릭합니다.
보고서 데이터 창의 BusinessPersons 데이터 집합 아래에서 데이터 집합의 필드 컬렉션에 새 필드 Name이 나타납니다.
보고서 매개 변수를 사용 가능한 값 목록으로 채우려면
보고서 데이터 창에서 매개 변수 노드를 확장하고 BusinessPersonID를 마우스 오른쪽 단추로 클릭한 다음 매개 변수 속성을 클릭합니다.
프롬프트에서 Select business person:을 입력합니다.
데이터 형식에서 정수를 선택합니다.
사용 가능한 값을 클릭합니다.
쿼리에서 값 가져오기 옵션을 선택합니다.
데이터 집합 드롭다운 목록에서 BusinessPersons를 선택합니다.
값 필드 드롭다운에서 BusinessEntityID를 선택합니다.
레이블 필드 드롭다운에서 Name을 선택합니다.
레이블을 Name으로 선택하면 BusinessEntityID 매개 변수에 대한 유효한 값의 드롭다운 목록에는 이제 영업 사원 번호 대신 각 영업 사원의 이름이 표시됩니다.
기본값을 클릭합니다.
쿼리에서 값 가져오기 옵션을 선택합니다.
데이터 집합 드롭다운 목록에서 BusinessPersons를 선택합니다.
값 필드 드롭다운 목록에서 BusinessEntityID를 선택합니다.
확인을 클릭합니다.
미리 보기 탭을 클릭합니다. 보고서에 영업 사원 이름이 있는 드롭다운 목록이 표시됩니다.
보고서 보기를 클릭합니다. 다른 매개 변수 값을 선택하여 결과를 검토합니다.
다음 단계
매개 변수에 사용할 수 있는 값의 목록이 기존 보고서에 추가되었습니다. 다음 단원에서는 다중값을 갖도록 DayoftheWeek 및 SalesPersonID 매개 변수를 수정합니다. 3단원: 매개 변수를 추가하여 목록에서 여러 값 선택을 참조하십시오.