4단원: 모두 선택 옵션을 사용하여 다중값 매개 변수 추가

업데이트: 2006년 12월 12일

이 단원에서는 SalesOrderIDDayoftheWeek 매개 변수를 단일 값 매개 변수에서 다중값 매개 변수로 변경합니다. 다중값 매개 변수를 사용하면 두 개 이상의 보고서 매개 변수 값을 선택할 수 있습니다. 보고서 매개 변수 SalesOrderID를 수정하려면 AdventureWorks 데이터 집합에 대한 쿼리를 변경하여 단일 값과 같은 값이 아닌 선택한 값 집합의 @SalesPersonID를 테스트하고 보고서 매개 변수 다중값 속성을 확인합니다. DayoftheWeek 보고서 매개 변수를 수정하려면 다중값 속성을 확인하고 새 데이터 집합에서 사용 가능한 값을 설정한 다음 기본값에 대한 식을 제공합니다. 새 데이터 집합을 만들어 DayoftheWeek 매개 변수에 대해 사용 가능한 값을 제공합니다. 마지막으로 텍스트 상자를 보고서에 추가하여 DayoftheWeek 선택 항목에 대한 매개 변수 값을 표시합니다.

Sales Orders 보고서를 열려면

  1. SQL Server Business Intelligence Development Studio에서 이전 단원에서 만든 Tutorial Report Server 프로젝트를 엽니다.

  2. 솔루션 탐색기에서 Sales Orders 보고서를 두 번 클릭합니다. 보고서가 레이아웃 뷰에서 열립니다.

  3. 데이터 탭을 클릭합니다.

데이터 집합 쿼리를 수정하여 값 집합의 포함 내용을 테스트하려면

  1. 데이터 집합 드롭다운 목록에서 AdventureWorks를 선택합니다.

  2. @SalesPersonID 테스트를 같음(= (@SalesPersonID))에서 포함((IN (@SalesPersonID))으로 변경하여 기존 쿼리의 WHERE 절을 수정합니다.

    이 데이터 집합에 대한 쿼리 문자열을 다음 쿼리로 바꿉니다.

    SELECT S.OrderDate, DATENAME(weekday, S.OrderDate) as Weekday,
        S.SalesOrderNumber, S.TotalDue, C.FirstName, C.LastName
    FROM    HumanResources.Employee E INNER JOIN
            Person.Contact C ON E.ContactID = C.ContactID INNER JOIN
            Sales.SalesOrderHeader S ON E.EmployeeID = S.SalesPersonID
    WHERE
       (
       S.OrderDate BETWEEN (@StartDate) AND (@EndDate) 
       AND
       S.SalesPersonID IN (@SalesPersonID)
       )
    
  3. 실행(!) 단추를 클릭합니다. 쿼리 매개 변수를 입력하라는 메시지가 표시되면 다음 표를 사용하여 값을 입력합니다. 쿼리 디자이너에서는 다중값 매개 변수를 테스트할 수 없습니다.

    @StartDate

    20010101

    @EndDate

    20030101

    @SalesPersonID

    286

  4. 확인을 클릭합니다. SalesPersonID = 286인 영업 사원 Ranjit Varkey Chudakatil에 대한 결과 집합이 나타납니다.

보고서 매개 변수 SalesPersonID의 속성을 설정하려면

  1. 보고서 메뉴에서 보고서 매개 변수를 선택합니다. 보고서 매개 변수 대화 상자가 열립니다.

  2. 매개 변수 창에서 SalesPersonID를 선택합니다.

  3. 속성 섹션에서 다중값을 선택합니다.

  4. 프롬프트 입력란에 **Select Sales Persons:**를 입력합니다.

  5. 확인을 클릭합니다.

  6. 미리 보기 탭을 클릭합니다. 보고서에 영업 사원 이름이 있는 드롭다운 목록이 표시됩니다.

[!참고] (모두 선택) 값은 다중값 매개 변수의 사용 가능한 값 드롭다운 목록에 첫 번째 값으로 제공됩니다. 이 확인란을 사용하여 모든 값을 선택하거나 선택 취소합니다.

[!참고] 모두 선택 옵션은 SQL Server 2005 서비스 팩 1에서 사용할 수 없었지만 SQL Server 2005 서비스 팩 2에서 복원되었습니다.

DaysoftheWeek의 사용 가능한 값에 대한 새 데이터 집합을 추가하려면

  1. 데이터 탭의 데이터 집합 드롭다운 목록에서 <새 데이터 집합>을 선택합니다.

  2. 데이터 원본을 AdventureWorks 데이터 원본으로 설정합니다.

  3. 이름 필드에 WeekDaysfromQuery를 입력합니다.

  4. 다음 쿼리 문자열을 쿼리 창에 붙여 넣습니다.

    SET DATEFIRST 1;
    SELECT DISTINCT 
       DATEPART(weekday, S.OrderDate) as WeekDayNumber,
       DATENAME(weekday, S.OrderDate) as Weekday
       FROM Sales.SalesOrderHeader S
    Order by WeekDayNumber
    

    DATEFIRST는 첫 번째 요일로 사용하려는 요일을 설정합니다. 예를 들어 SET DATEFIRST 7은 일요일이 첫 번째 요일이 되도록 요일의 순서를 변경합니다. 자세한 내용은 SET DATEFIRST(Transact-SQL)를 참조하십시오.

    이 자습서에서는 월요일이 첫 번째 요일입니다.

  5. 확인을 클릭합니다.

  6. 쿼리 디자이너 도구 모음에서 실행(!) 단추를 클릭합니다. 결과 집합에 서수와 요일이 표시됩니다.

보고서 매개 변수 DayoftheWeek의 속성을 설정하려면

  1. 보고서 메뉴에서 보고서 매개 변수를 선택합니다. 보고서 매개 변수 대화 상자가 열립니다.

  2. 매개 변수 창에서 DayoftheWeek를 선택합니다. 이 매개 변수는 2단원에서 만들었습니다.

  3. 속성 섹션에서 다중값을 선택합니다.

  4. 프롬프트 입력란에 **Filter on which days of the week:**를 입력합니다.

  5. 사용 가능한 값 섹션의 데이터 집합 드롭다운 목록에서 WeekDaysfromQuery를 선택합니다.

  6. 값 필드 드롭다운 목록에서 Weekday를 선택합니다.

  7. 레이블 필드 드롭다운 목록에서 Weekday를 선택합니다.

    기본값의 경우 첫 번째 값 입력란에 Saturday를 입력하고 두 번째 값 입력란에 Sunday를 입력합니다.

  8. 확인을 클릭합니다.

    DayoftheWeek 매개 변수가 다중값이기 때문에 보고서를 미리 보려면 테이블 데이터 영역에 대해 정의된 필터 식에서 IN 연산자를 사용하도록 변경해야 합니다.

다중값 매개 변수를 사용하도록 필터를 변경하려면

  1. 레이아웃 뷰에서 테이블을 선택합니다. 회색 윤곽선이 있는 테이블이 나타납니다.

  2. 테이블 윤곽선을 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다. 테이블 속성 대화 상자가 열립니다.

  3. 필터 탭을 클릭합니다.

  4. 식 열의 드롭다운 목록에서 값이 =Fields!Weekday.Value인지 확인합니다.

  5. 연산자를 등호(=)에서 In 연산자로 변경합니다.

  6. 값 입력란의 드롭다운 목록에서 값이 =Parameters!DayoftheWeek.Value인지 확인합니다.

  7. 확인을 클릭합니다.

    테이블의 필터가 In 연산자를 사용하여 Weekday 필드의 값을 DayoftheWeek 매개 변수의 값과 비교하도록 설정됩니다. 보고서 매개 변수에 대해 다중값을 선택하면 필터는 테이블의 각 행을 테스트하여 Weekday 필드가 DayoftheWeek 컬렉션에 있는지 확인합니다.

  8. 미리 보기 탭을 클릭합니다. 보고서에 기본값이 SaturdaySunday인 보고서 매개 변수 DaysoftheWeek가 표시됩니다.

[!참고] 이전 절차에서 언급한 예외를 제외하고 (모두 선택) 값은 다중값 매개 변수의 사용 가능한 값 드롭다운 목록에서 첫 번째 값으로 제공됩니다. 이 확인란을 사용하여 모든 값을 선택하거나 선택 취소합니다.

텍스트 상자를 추가하여 매개 변수 값을 표시하려면

  1. 레이아웃 뷰에서 테이블을 선택합니다. 아래쪽 화살표 키를 여러 번 눌러 테이블을 아래로 이동하고 보고서 높이를 확장합니다.

  2. 도구 상자에서 테이블 위로 텍스트 상자를 끕니다. 텍스트 상자의 한 가장자리를 선택하고 너비를 확장하여 테이블 너비와 일치시킵니다.

  3. 다음 식을 텍스트 상자에 붙여 넣습니다.

    ="From " & Parameters!StartDate.Value & " to " & 
    Parameters!EndDate.Value & vbCrLf & "For the following " & 
    Parameters!DayoftheWeek.Count & " days of the week: " & 
    Join(Parameters!DayoftheWeek.Value,", ") & vbCrLf &
    "First and last selected salespersons: " & 
    Parameters!SalesPersonID.Label(0) & " and " & 
    Parameters!SalesPersonID.Label(Parameters!SalesPersonID.Count-1)
    

    이 식에 대해 참고해야 할 몇 가지 사항이 있습니다.

    • 값 대신 매개 변수 레이블을 참조할 수 있습니다. 예를 들어 Parameters!SalesPersonID.Value 대신 Parameters!SalesPersonID.Label을 참조할 수 있습니다.
    • 매개 변수 컬렉션의 개별 멤버의 경우 0부터 시작하는 인덱스를 사용합니다(예: Parameters!SalesPersonID.Label(0)).
    • 전체 컬렉션의 경우 인덱스를 사용하지 않습니다(예: Parameters!SalesPersonID.Value).
    • 값의 개수를 알려면 Parameters!SalesPersonID.Count를 사용합니다.
    • 매개 변수가 다중값인지 여부를 알 수도 있습니다(예: Parameters!SalesPersonID.IsMultivalue).
    • Visual Basic Join 함수를 사용하여 다중값 매개 변수에서 선택된 값을 모두 연결할 수 있습니다(예: Join(Parameters!DayoftheWeek.Value,", ")).
  4. 미리 보기를 클릭합니다. 보고서 보기를 클릭하는 경우 매개 변수에서 선택한 값이 텍스트 상자에 표시되는지 확인합니다.

다음 단계

보고서 매개 변수 속성을 단일 값에서 다중값으로 성공적으로 변경했으며, 다중값 매개 변수 컬렉션을 사용하여 필요한 쿼리, 필터 및 식 변경 사항을 수행했으며, 식에 다중값 매개 변수를 사용하는 방법을 배웠습니다. 다음 단원에서는 Boolean 매개 변수를 만들어 보고서를 어느 정도 상세하게 볼지를 제어하는 방법을 배웁니다. 5단원: 행 표시 유형을 제어하는 매개 변수 추가를 참조하십시오.

변경 내역

릴리스 내역

2006년 12월 12일

변경된 내용
  • 모두 선택 옵션이 SP2에서 복원되었다는 정보를 추가했습니다.

참고 항목

작업

1단원: 매개 변수 자습서로 보고서 서버 프로젝트 만들기

관련 자료

Reporting Services의 매개 변수 작업

도움말 및 정보

SQL Server 2005 지원 받기