2단원: 보고서에 연계 매개 변수 추가

새 설치: 2006년 7월 17일

연계 매개 변수를 사용하면 자연 관계에 있는 매개 변수 집합의 각 매개 변수에 대해 사용 가능한 값을 필터링할 수 있습니다. AdventureWorks 데이터베이스에서 각 대리점에 구/군/시(City 필드)의 특정 위치에 해당하는 주소가 있는 경우 구/군/시는 시/도(StateProvince 필드)로 그룹화되고, 시/도는 국가 또는 지역(CountryRegion 필드)으로 그룹화되고, 국가 또는 지역은 영업 지역(TerritoryGroup 필드)으로 그룹화됩니다. 가장 넓은 범주인 TerritoryGroup으로 시작해서 가장 구체적인 City까지의 종속 순서를 포함하는 이러한 필드에 대해 4개의 연계 매개 변수를 만들 수 있습니다.

연계 매개 변수가 보고서 도구 모음에 표시되면 보고서를 읽는 사람은 첫 번째 매개 변수에서 값을 선택한 후 다음 매개 변수에 대해 사용 가능한 값을 결정해 나갑니다. 이러한 방식으로 수천 개의 선택을 각 연계 매개 변수에 대한 관리 가능한 개수로 잠재적으로 필터링할 수 있습니다.

연계 매개 변수에는 암시적인 순서가 있습니다. 보고서 디자이너에서 보고서 매개 변수를 보면 매개 변수 창에 매개 변수가 순서대로 나열됩니다. 목록의 첫 번째 매개 변수는 다른 매개 변수에 종속되지 않습니다. 목록의 다음 매개 변수는 연계 매개 변수로 사용되는 경우 그 앞에 오는 매개 변수에 종속됩니다. 보고서 매개 변수 대화 상자에서 제공한 위쪽/아래쪽 화살표 단추를 사용하여 매개 변수의 순서를 바꿀 수 있습니다.

이 단원에서는 4개의 연계 매개 변수(TerritoryGroup, CountryRegion, StateProvince 및 City)를 이전 자습서에서 만든 Sales Orders 보고서에 추가합니다. 그리고 각 매개 변수가 자신의 사용 가능한 값 목록을 채우는 데이터 집합을 만듭니다. 유효한 값 데이터 집합에 대해 쿼리 매개 변수가 있는 쿼리를 만들면 보고서 매개 변수가 자동으로 생성됩니다. 유효한 값 목록에 대한 데이터 집합을 가장 일반적인 것(TerritoryGroup)부터 가장 구체적인 것(Cities)까지 만들기 때문에 종속성에 대해 올바른 순서로 보고서 매개 변수를 만들 것입니다. 마지막 유효한 값 데이터 집합(Cities)의 경우 수동으로 보고서 매개 변수를 만들어 해당 쿼리 매개 변수와 연결하는 방법을 배웁니다.

모든 데이터 집합을 만든 후에 각 보고서 매개 변수에 대한 기본 속성을 수정하고 유효한 값과 기본값 속성이 올바른 데이터 집합과 필드를 가리키도록 설정합니다.

마지막으로 원래 데이터 집합 쿼리에 각 보고서 매개 변수에 대한 쿼리 매개 변수가 포함되도록 수정합니다. 보고서를 실행할 때 각 연계 매개 변수에 대한 값을 차례로 선택하면 다음 매개 변수 목록에 대해 사용 가능한 값, 즉 첫 번째 값을 선택한 후에 유효한 값만 표시됩니다.

절차

ResellersWorldwide 보고서를 열려면

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

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

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

매개 변수 TerritoryGroup의 사용 가능한 값에 대한 데이터 집합을 추가하려면

  1. 데이터 집합 드롭다운 목록에서 <새 데이터 집합>을 클릭합니다. 데이터 집합 대화 상자가 열립니다.

  2. 쿼리 탭의 이름 입력란에 ValidValuesforTerritoryGroup을 입력합니다.

  3. 데이터 원본Resellers인지 확인합니다.

  4. 명령 유형Text인지 확인합니다.

  5. 다음 쿼리를 쿼리 창에 붙여 넣습니다.

    SELECT distinct [Group] as SalesTerritory
       FROM [AdventureWorks].[Sales].[SalesTerritory]
    
  6. 실행(!)을 클릭하여 결과 집합을 봅니다. SalesTerritory 열이 3개의 행인 Europe, North America, Pacific과 함께 표시됩니다.

CountryRegion 매개 변수의 사용 가능한 값에 대한 데이터 집합을 추가하려면

  1. 데이터 집합 드롭다운 목록에서 <새 데이터 집합>을 클릭합니다. 데이터 집합 대화 상자가 열립니다.

  2. 쿼리 탭의 이름 입력란에 ValidValuesforCountryRegion을 입력합니다.

  3. 데이터 원본Resellers인지 확인합니다.

  4. 명령 유형Text인지 확인합니다.

  5. 다음 쿼리를 쿼리 창에 붙여 넣습니다.

    SELECT Distinct CR.Name AS CountryRegion
    FROM Sales.Store AS S
        JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID
        JOIN Person.Address AS A ON A.AddressID = CA.AddressID
        JOIN Person.StateProvince SP ON 
            SP.StateProvinceID = A.StateProvinceID
        JOIN Person.CountryRegion CR ON 
            CR.CountryRegionCode = SP.CountryRegionCode
        JOIN Sales.Customer C on S.CustomerID = C.CustomerID
        JOIN Sales.SalesTerritory T on C.TerritoryID = T.TerritoryID
    WHERE (T.[Group] = (@TerritoryGroup))
    Order by CR.Name
    
  6. 실행(!)을 클릭합니다. 쿼리 매개 변수 정의 대화 상자가 열립니다.

  7. Pacific을 입력합니다.

    결과 집합이 CountryRegion 열과 값이 Australia인 하나의 행과 함께 표시됩니다.

    @TerritoryGroup이라는 쿼리 매개 변수를 정의하는 경우 TerritoryGroup이라는 새 보고서 매개 변수가 생성됩니다.

  8. (옵션) 데이터 집합 드롭다운 목록 옆에서 선택한 데이터 집합 편집() 단추를 클릭한 다음 매개 변수 탭을 클릭합니다. @TerritoryGroup 쿼리 매개 변수가 보고서 매개 변수 TerritoryGroup(=Parameters!TerritoryGroup.Value)의 값에 바인딩되어 있는지 확인합니다.

StateProvince 매개 변수의 사용 가능한 값에 대한 데이터 집합을 추가하려면

  1. 데이터 집합 드롭다운 목록에서 <새 데이터 집합>을 클릭합니다. 데이터 집합 대화 상자가 열립니다.

  2. 쿼리 탭의 이름 필드에 ValidValuesforStateProvince를 입력합니다.

  3. 데이터 원본Resellers인지 확인합니다.

  4. 명령 유형Text인지 확인합니다.

  5. 다음 쿼리를 쿼리 창에 붙여 넣습니다.

    SELECT Distinct SP.Name AS StateProvince
    FROM Sales.Store AS S
        JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID
        JOIN Person.Address AS A ON A.AddressID = CA.AddressID
        JOIN Person.StateProvince SP ON 
            SP.StateProvinceID = A.StateProvinceID
        JOIN Person.CountryRegion CR ON 
            CR.CountryRegionCode = SP.CountryRegionCode
    WHERE (CR.Name = @CountryRegion)
    Order by SP.Name
    
  6. 실행(!)을 클릭하여 결과 집합을 봅니다. 쿼리 매개 변수 정의 대화 상자가 열립니다.

  7. 매개 변수 값 입력란에 Australia를 입력하고 확인을 클릭합니다.

    StateProvince 열이 4개의 행인 New South Wales, Queensland, South Australia, Victoria와 함께 표시됩니다.

City 매개 변수의 사용 가능한 값에 대한 데이터 집합을 추가하려면

  1. 데이터 집합 드롭다운 목록에서 <새 데이터 집합>을 클릭합니다. 데이터 집합 대화 상자가 열립니다.

  2. 쿼리 탭의 이름 필드에 ValidValuesforCity를 입력합니다.

  3. 데이터 원본Resellers인지 확인합니다.

  4. 명령 유형Text인지 확인합니다.

  5. 다음 쿼리를 쿼리 창에 붙여 넣습니다.

    SELECT Distinct A.City 
    FROM Sales.Store AS S
        JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID
        JOIN Person.Address AS A ON A.AddressID = CA.AddressID
        JOIN Person.StateProvince SP ON 
            SP.StateProvinceID = A.StateProvinceID
        JOIN Person.CountryRegion CR ON 
            CR.CountryRegionCode = SP.CountryRegionCode
        JOIN Sales.Customer C on S.CustomerID = C.CustomerID
        JOIN Sales.SalesTerritory T on C.TerritoryID = T.TerritoryID
    WHERE (
        T.[Group] = (@TerritoryGroup) AND
        CR.[Name] = (@CountryRegion) AND
        SP.[Name] = (@StateProvince)
        )
    Order by A.City
    
  6. 실행(!)을 클릭하여 결과 집합을 봅니다. 쿼리 매개 변수 정의 대화 상자가 열립니다.

  7. 매개 변수 값 입력란에서 아래의 표를 사용하여 각 쿼리 매개 변수에 대한 값을 입력합니다.

매개 변수 이름 매개 변수 값

@TerritoryGroup

Pacific

@CountryRegion

Australia

[StateProvince]

Victoria

  1. 확인을 클릭합니다.
    City 열이 3개의 행인 Melbourne, Seaford, South Melbourne과 함께 표시됩니다.

이제 4개의 연계 매개 변수를 만들었습니다. 다음으로는 쿼리 매개 변수에 대해 생성된 보고서 매개 변수의 속성을 편집합니다. 사용 가능한 값의 집합을 검색하는 데 적절한 데이터 집합을 사용하도록 각 매개 변수를 설정합니다.

TerritoryGroup 보고서 매개 변수에 대한 사용 가능한 값을 설정하려면

  1. 보고서 메뉴에서 보고서 매개 변수를 클릭합니다. 보고서 매개 변수 대화 상자가 열리면서 매개 변수 창에서 선택한 TerritoryGroup이 표시됩니다.

  2. 데이터 형식String인지 확인합니다.

  3. 프롬프트 입력란에 **Select a Territory Group:**을 입력합니다.

  4. 확인란이 모두 선택 취소되어 있는지 확인합니다.

  5. 사용 가능한 값 섹션에서 쿼리 사용을 선택합니다.

  6. 데이터 집합 드롭다운 목록에서 ValidValuesforTerritoryGroup을 선택합니다.

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

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

  9. 기본값 섹션에서 쿼리 사용 안 함을 선택합니다.

  10. 입력란에 North America를 입력합니다.

    기본값을 데이터 집합 필드의 특정 값이나 기본값으로 설정합니다. 이 매개 변수 형식이 String이므로 입력란에 값을 직접 입력할 수 있습니다. 다른 데이터 형식의 경우 등호(=)로 시작하는 식을 입력할 수 있습니다.

  11. 확인을 클릭합니다.

  12. (옵션) 미리 보기 탭을 클릭합니다. TerritoryGroup 매개 변수가 기본값 Europe 및 ValidValuesforTerritoryGroup 데이터 집합의 SalesTerritory 필드에 있는 유효한 값과 함께 표시됩니다.

    이 단원의 마지막 절차에서 Resellers 데이터 집합 쿼리를 변경해야 보고서 데이터의 변경 내용이 표시됩니다.

CountryRegion 보고서 매개 변수에 대한 사용 가능한 값을 설정하려면

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

  2. 매개 변수 창에서 CountryRegion을 선택합니다.

  3. 데이터 형식String인지 확인합니다.

  4. 프롬프트 입력란에 **Select a Country/Region:**을 입력합니다.

  5. 확인란이 모두 선택 취소되어 있는지 확인합니다.

  6. 사용 가능한 값 섹션에서 쿼리 사용을 선택합니다.

  7. 데이터 집합 드롭다운 목록에서 ValidValuesforCountryRegion을 선택합니다.

  8. 값 필드 드롭다운 목록에서 CountryRegion을 선택합니다.

  9. 레이블 필드 드롭다운 목록에서 CountryRegion을 선택합니다.

  10. 기본값 섹션에서 쿼리 사용을 선택합니다.

  11. 데이터 집합 드롭다운 목록에서 ValidValuesforCountryRegion을 선택합니다.

  12. 값 필드 드롭다운 목록에서 CountryRegion을 선택합니다.

  13. 확인을 클릭합니다.

  14. (옵션) 미리 보기 탭을 클릭합니다. TerritoryGroup에 대한 값을 선택합니다. CountryRegion 매개 변수의 값을 선택합니다. CountryRegion에 대해 표시된 값이 선택한 Territory 그룹에 대해 유효한지 확인합니다.

StateProvince 보고서 매개 변수에 대한 사용 가능한 값을 설정하려면

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

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

  3. 데이터 형식String인지 확인합니다.

  4. 프롬프트 입력란에 **Select a State/Province:**를 입력합니다.

  5. 확인란이 모두 선택 취소되어 있는지 확인합니다.

  6. 사용 가능한 값 섹션에서 쿼리 사용을 선택합니다.

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

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

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

  10. 기본값 섹션에서 쿼리 사용을 선택합니다.

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

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

  13. 확인을 클릭합니다.

  14. (옵션) 미리 보기 탭을 클릭합니다. TerritoryGroup에 대한 값을 선택합니다. CountryRegion 매개 변수의 값을 선택합니다. StateProvince 매개 변수의 값을 선택합니다. StateProvince에 대해 표시된 값이 선택한 TerritoryGroupCountryRegion에 대해 유효한지 확인합니다.

City 보고서 매개 변수를 만들고 해당 속성을 설정하려면

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

  2. 매개 변수 창에 City라는 보고서 매개 변수가 없어야 합니다.

    매개 변수가 있는 쿼리를 데이터 집합에 대해 정의하면 보고서 매개 변수가 자동으로 생성됩니다. 지금까지 생성된 데이터 집합 쿼리에 @City 쿼리 매개 변수가 없어야 합니다. City라는 보고서 매개 변수를 만들 수 있고 @City 쿼리 매개 변수가 있는 쿼리가 정의되어 있으면 해당 이름(쿼리 매개 변수 지정자 "@"가 없는 이름)이 있는 쿼리 매개 변수가 보고서 매개 변수에 자동으로 바인딩됩니다.

  3. 추가를 클릭합니다. 기본 속성의 보고서 매개 변수가 생성됩니다.

  4. 속성 섹션의 이름 입력란에 City를 입력합니다.

  5. 데이터 형식String인지 확인합니다.

  6. 프롬프트 입력란에 **Select a City:**를 입력합니다.

  7. 확인란이 모두 선택 취소되어 있는지 확인합니다.

  8. 사용 가능한 값 섹션에서 쿼리 사용을 선택합니다.

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

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

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

  12. 기본값 섹션에서 쿼리 사용을 선택합니다.

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

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

  15. 확인을 클릭합니다.

  16. (옵션) 미리 보기 탭을 클릭합니다. TerritoryGroup, CountryRegionStateProvince 매개 변수에 대한 값을 선택합니다. City에 대해 표시되는 매개 변수 값이 선택한 항목에 대해 유효한지 확인합니다.

지금까지 연계 매개 변수 값을 만들었습니다. 이제 선택한 매개 변수가 테이블 데이터를 검색하는 쿼리에 포함되도록 테이블 데이터 영역에 대해 데이터 집합 쿼리에 이러한 값을 포함해야 합니다.

대리점 판매 주문 데이터 집합에 대한 쿼리를 수정하여 기존 쿼리 매개 변수를 포함하려면

  1. 데이터 뷰에서 데이터 집합 드롭다운 목록에 있는 Resellers를 선택합니다. 이전 단원에서 생성된 원래 쿼리 문자열이 쿼리 창에 표시됩니다.

  2. 쿼리 창의 텍스트를 다음 쿼리로 바꿉니다.

    SELECT S.CustomerID, SO.SalesOrderNumber, SO.OrderDate, SO.TotalDue,
        S.Name AS Store, A.City, SP.Name AS State, CR.Name
        AS CountryRegion, 
        SC.ContactID As StoreContactID, T.[Group] As TerritoryGroup
    FROM Sales.Store AS S
        JOIN Sales.CustomerAddress AS CA ON CA.CustomerID = S.CustomerID
        JOIN Person.Address AS A ON A.AddressID = CA.AddressID
        JOIN Person.StateProvince SP ON 
            SP.StateProvinceID = A.StateProvinceID
        JOIN Person.CountryRegion CR ON 
            CR.CountryRegionCode = SP.CountryRegionCode
        JOIN Sales.SalesOrderHeader AS SO ON 
        S.CustomerID = SO.CustomerID
        JOIN Sales.StoreContact SC ON  S.CustomerID = SC.CustomerID
        JOIN Sales.Customer C on S.CustomerID = C.CustomerID
        JOIN Sales.SalesTerritory T on C.TerritoryID = T.TerritoryID
    WHERE(
        (T.[Group] = (@TerritoryGroup))
        AND
        (CR.Name = (@CountryRegion))
         AND
         (SP.Name = (@StateProvince))
        AND
        (A.City = (@City))
       )
    ORDER BY S.CustomerID 
    

    이제 쿼리는 보고서 매개 변수 값을 사용하는 쿼리 매개 변수를 포함합니다.

  3. 실행(!)을 클릭하여 결과 집합을 봅니다. 쿼리 매개 변수 정의 대화 상자가 열립니다.

  4. 매개 변수 값 열에서 아래의 표를 사용하여 각 쿼리 매개 변수에 대한 값을 입력합니다.

매개 변수 이름 매개 변수 값

@TerritoryGroup

Pacific

@CountryRegion

Australia

@StateProvince

Victoria

@City

Melbourne

  1. 확인을 클릭합니다.
    결과 집합에는 Melbourne 시의 대리점에 대한 판매액이 있습니다.
    쿼리 매개 변수를 Resellers 데이터 집합에 대한 쿼리 정의에 추가했을 때 해당 보고서 매개 변수 값으로부터 해당 값을 얻도록 자동으로 설정되었습니다.
  2. (옵션) 데이터 집합 드롭다운 목록 옆에서 선택한 데이터 집합 편집() 단추를 클릭한 다음 매개 변수 탭을 클릭합니다. @TerritoryGroup, @CountryRegion, @StateProvince@City 쿼리 매개 변수가 해당 보고서 매개 변수의 값에 바인딩되어 있는지 확인합니다.

NoRows 값을 설정하려면

  1. 레이아웃 탭을 클릭하여 레이아웃 뷰로 변경합니다.

  2. 테이블 핸들이 표시되도록 테이블을 클릭합니다. 테이블의 모퉁이 핸들을 클릭하여 테이블을 선택합니다. 회색 윤곽선이 있는 테이블이 나타납니다.

  3. 속성 창에서 NoRows 속성을 찾습니다. 다음 텍스트를 인접 텍스트 상자에 붙여 넣습니다.

    There are no resellers in this area.

주 보고서 제목 및 매개 변수 값 텍스트 상자를 만들려면

  1. 레이아웃 탭을 클릭하여 레이아웃 뷰로 변경합니다.

  2. 보고서 처리 타임스탬프가 있는 텍스트 상자를 마우스 오른쪽 단추로 클릭한 다음 을 선택합니다.

  3. 입력란 옆의 식(Fx) 단추를 클릭합니다. 식 편집 대화 상자가 열립니다. 타임스탬프 식을 다음 식으로 바꿉니다.

    ="Report Processed Date: " & 
      Globals!ExecutionTime.ToShortDateString() & " " & 
      Globals!ExecutionTime.ToShortTimeString() & vbCrLf & 
      "Sales Territory for: " 
    & Parameters!TerritoryGroup.Value & ", " 
    & Parameters!CountryRegion.Value & ", "
    & Parameters!StateProvince.Value & ", "
    & Parameters!City.Value
    
  4. 미리 보기를 클릭합니다. 다양한 매개 변수 값을 선택해봅니다. 각 연속 매개 변수를 선택하면 선택한 내용에 따라 사용 가능한 값만 다음 매개 변수의 드롭다운 목록에 표시됩니다. 새 매개 변수를 선택해도 보고서 데이터가 변경되지 않습니다. 새로 선택한 매개 변수를 사용하여 보고서를 다시 처리하려면 보고서 보기를 클릭합니다.

다음 단계

지역별 대리점 판매액을 표시하는 연계 매개 변수가 있는 보고서를 성공적으로 만들었습니다. 다음 단원에서는 매개 변수를 사용하여 테이블 정보 행 및 테이블 그룹의 정렬 방식을 변경하는 방법을 배웁니다. 3단원: 매개 변수를 사용하여 초기 정렬 및 대화형 정렬 변경을 참조하십시오.

참고 항목

관련 자료

Reporting Services의 매개 변수 작업
매개 변수를 사용하여 보고서 데이터 제어

도움말 및 정보

SQL Server 2005 지원 받기