다음을 통해 공유


LookupSet 함수(보고서 작성기 및 SSRS)

이름/값 쌍을 포함하는 데이터 세트에서 지정된 이름과 일치하는 값 집합을 반환합니다.

참고

SQL Server Data Tools의 보고서 작성기 및 보고서 디자이너에서 보고서 정의(.rdl)를 만들고 수정할 수 있습니다. 각 제작 환경에서는 보고서 및 관련 항목을 만들고, 열고, 저장할 수 있는 여러 방법을 제공합니다. 자세한 내용은 microsoft.com 웹에서 보고서 디자이너 및 Report Builder(SSRS)에서 보고서 디자인을 참조하세요.

구문

  
LookupSet(source_expression, destination_expression, result_expression, dataset)  

매개 변수

source_expression
(Variant) 현재 범위에서 평가되고, 조회할 키 또는 이름을 지정하는 식입니다. 예들 들어 =Fields!ID.Value입니다.

destination_expression
(Variant) 데이터 세트의 각 행에 대해 평가되고, 일치시킬 키 또는 이름을 지정하는 식입니다. 예들 들어 =Fields!CustomerID.Value입니다.

result_expression
(Variant) source_expression 데이터 세트의 행에 대해 평가되는 = 식입니다.destination_expression 검색할 값을 지정합니다. 예들 들어 =Fields!PhoneNumber.Value입니다.

데이터 세트
보고서의 데이터 세트 이름을 지정하는 상수입니다. 예를 들면 "ContactInformation"입니다.

반환 값

VariantArray를 반환하거나, 일치하는 항목이 없으면 Nothing을 반환합니다.

설명

LookupSet을 사용하여 일 대 다 관계의 이름/값 쌍에 대한 지정된 데이터 세트에서 값 집합을 검색할 수 있습니다. 예를 들어 테이블에 있는 고객 식별자의 경우 LookupSet을 사용하여 데이터 영역에 바인딩되지 않은 데이터 세트에서 해당 고객에 대해 연결된 전화 번호를 모두 검색할 수 있습니다.

LookupSet은 다음을 수행합니다.

  • 현재 범위에서 원본 식을 평가합니다.

  • 지정된 데이터 세트의 데이터 정렬을 기반으로 필터가 적용된 후 지정된 데이터 세트의 각 행에 대해 대상 식을 평가합니다.

  • 원본 식과 대상 식의 일치 항목을 찾을 때마다 데이터 세트의 해당 행에 대해 결과 식을 평가합니다.

  • 결과 식 값의 집합을 반환합니다.

일 대 일 관계의 이름/값 쌍을 포함하는 데이터 세트에서 지정된 이름에 대한 단일 값을 검색하려면 Lookup 함수(보고서 작성기 및 SSRS)를 사용합니다. 값 집합을 호출 Lookup 하려면 Multilookup 함수(Report Builder 및 SSRS)를 사용합니다.

다음 제한 사항이 적용됩니다.

  • LookupSet은 모든 필터 식이 적용된 후 평가됩니다.

  • 조회 수준이 하나만 지원됩니다. 원본, 대상 또는 결과 식에는 조회 함수에 대한 참조가 포함될 수 없습니다.

  • 원본 식과 대상 식의 데이터 형식이 같아야 합니다.

  • 원본, 대상 및 결과 식에는 보고서 또는 그룹 변수에 대한 참조가 포함될 수 없습니다.

  • LookupSet은 다음 보고서 항목에 대한 식으로 사용할 수 없습니다.

    • 데이터 원본에 대한 동적 연결 문자열

    • 데이터 세트의 계산된 필드.

    • 데이터 세트의 쿼리 매개 변수.

    • 데이터 세트의 필터.

    • 보고서 매개 변수

    • Report.Language 속성입니다.

자세한 내용은 집계 함수 참조(보고서 작성기 및 SSRS)합계, 집계 및 기본 제공 컬렉션의 식 범위(보고서 작성기 및 SSRS)를 참조하세요.

예제

다음 예에서는 영업 지역 식별자 TerritoryGroupID를 포함하는 데이터 세트에 테이블이 바인딩되어 있다고 가정합니다. "Stores"라는 별도의 데이터 세트에는 지역의 모든 매장 목록과 지역 식별자 ID 및 매장 이름 StoreName이 포함되어 있습니다.

다음 식에서 LookupSet은 TerritoryGroupID 값을 "Stores" 데이터 세트에 있는 각 행의 ID와 비교합니다. 일치 항목을 찾을 때마다 해당 행에 대한 StoreName 필드의 값이 결과 집합에 추가됩니다.

=LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores")  

예제

LookupSet은 개체 컬렉션을 반환하므로 결과 식을 입력란에 직접 표시할 수 없습니다. 컬렉션에 있는 각 개체의 값을 문자열로 연결할 수 있습니다.

Visual Basic 함수 Join 를 사용하여 개체 집합에서 구분된 문자열을 만듭니다. 개체를 한 줄로 결합하려면 쉼표를 구분 기호로 사용합니다. 일부 렌더러에서는 Visual Basic 줄 바꿈(vbCrLF)을 구분 기호로 사용하여 각 값을 새 줄에 나열할 수 있습니다.

다음 식은 텍스트 상자의 Value 속성으로 사용될 때 를 사용하여 Join 목록을 만듭니다.

=Join(LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores"),",")  

예제

몇 번만 렌더링되는 입력란의 경우 입력란에 값을 표시하는 HTML을 생성하기 위해 사용자 지정 코드를 추가하도록 선택할 수도 있습니다. 입력란에 HTML을 표시하려면 추가 처리 작업이 필요하므로 수천 번 렌더링되는 입력란의 경우에는 이러한 선택이 적합하지 않습니다.

다음 Visual Basic 함수를 보고서 정의의 Code 블록에 복사합니다. MakeListresult_expression 에서 반환되는 개체 배열을 사용하고 HTML 태그를 사용하여 정렬되지 않은 목록을 만듭니다. Length 는 개체 배열의 항목 수를 반환합니다.

Function MakeList(ByVal items As Object()) As String  
   If items Is Nothing Then  
      Return Nothing  
   End If  
  
   Dim builder As System.Text.StringBuilder =   
      New System.Text.StringBuilder()  
   builder.Append("<ul>")  
  
   For Each item As Object In items  
      builder.Append("<li>")  
      builder.Append(item)  
   Next  
   builder.Append("</ul>")  
  
   Return builder.ToString()  
End Function  
  
Function Length(ByVal items as Object()) as Integer  
   If items is Nothing Then  
      Return 0  
   End If  
   Return items.Length  
End Function  

예제

HTML을 생성하려면 함수를 호출해야 합니다. 다음 식을 입력란의 Value 속성에 붙여넣고 텍스트의 태그 형식을 HTML로 설정합니다. 자세한 내용은 보고서에 HTML 추가(보고서 작성기 및 SSRS)를 참조하세요.

=Code.MakeList(LookupSet(Fields!TerritoryGroupID.Value, Fields!ID.Value, Fields!StoreName.Value, "Stores"))  

참고 항목

보고서에 사용되는 식(보고서 작성기 및 SSRS)
식 예(보고서 작성기 및 SSRS)
식의 데이터 형식(보고서 작성기 및 SSRS)
합계, 집계 및 기본 제공 컬렉션의 식 범위(보고서 작성기 및 SSRS)