보고서 작성기 함수-LookupSet 함수Report Builder Functions - LookupSet Function

이름/값 쌍을 포함하는 데이터 집합에서 지정된 이름과 일치하는 값 집합을 반환합니다.Returns the set of matching values for the specified name from a dataset that contains name/value pairs.

참고

SQL Server Data Tools의 보고서 작성기 및 보고서 디자이너에서 페이지를 매긴 보고서 정의(.rdl) 파일을 만들고 수정할 수 있습니다.You can create and modify paginated report definition (.rdl) files in Report Builder and in Report Designer in SQL Server Data Tools. 각 제작 환경에서는 보고서 및 관련 항목을 만들고, 열고, 저장할 수 있는 여러 방법을 제공합니다.Each authoring environment provides different ways to create, open, and save reports and related items.

구문Syntax


LookupSet(source_expression, destination_expression, result_expression, dataset)  

매개 변수Parameters

source_expressionsource_expression
(Variant) 현재 범위에서 평가되고, 조회할 키 또는 이름을 지정하는 식입니다.(Variant) An expression that is evaluated in the current scope and that specifies the name or key to look up. =Fields!ID.Value)을 입력합니다.For example, =Fields!ID.Value.

destination_expressiondestination_expression
(Variant) 데이터 집합의 각 행에 대해 평가되고, 일치시킬 키 또는 이름을 지정하는 식입니다.(Variant) An expression that is evaluated for each row in a dataset and that specifies the name or key to match on. =Fields!CustomerID.Value)을 입력합니다.For example, =Fields!CustomerID.Value.

result_expressionresult_expression
(Variant) source_expression = destination_expression인 데이터 집합의 행에 대해 계산되고 검색할 값을 지정하는 식입니다.(Variant) An expression that is evaluated for the row in the dataset where source_expression = destination_expression, and that specifies the value to retrieve. =Fields!PhoneNumber.Value)을 입력합니다.For example, =Fields!PhoneNumber.Value.

데이터 집합(dataset)dataset
보고서의 데이터 집합 이름을 지정하는 상수입니다.A constant that specifies the name of a dataset in the report. 예를 들면 "ContactInformation"입니다.For example, "ContactInformation".

반환 값Return

VariantArray를 반환하거나, 일치하는 항목이 없으면 Nothing 을 반환합니다.Returns a VariantArray, or Nothing if there is no match.

주의Remarks

LookupSet 를 사용하여 일 대 다 관계의 이름/값 쌍에 대한 지정된 데이터 집합에서 값 집합을 검색할 수 있습니다.Use LookupSet to retrieve a set of values from the specified dataset for a name/value pair where there is a 1-to-many relationship. 예를 들어 테이블에 있는 고객 식별자의 경우 LookupSet 을 사용하여 데이터 영역에 바인딩되지 않은 데이터 집합에서 해당 고객에 대해 연결된 전화 번호를 모두 검색할 수 있습니다.For example, for a customer identifier in a table, you can use LookupSet to retrieve all the associated phone numbers for that customer from a dataset that is not bound to the data region.

LookupSet 은 다음을 수행합니다.LookupSet does the following:

  • 현재 범위에서 원본 식을 평가합니다.Evaluates the source expression in the current scope.

  • 지정된 데이터 집합의 데이터 정렬을 기반으로 필터가 적용된 후 지정된 데이터 집합의 각 행에 대해 대상 식을 평가합니다.Evaluates the destination expression for each row of the specified dataset after filters have been applied, based on the collation of the specified dataset.

  • 원본 식과 대상 식의 일치 항목을 찾을 때마다 데이터 집합의 해당 행에 대해 결과 식을 평가합니다.For each match of source expression and destination expression, evaluates the result expression for that row in the dataset.

  • 결과 식 값의 집합을 반환합니다.Returns the set of result expression values.

    일 대 일 관계의 이름/값 쌍을 포함하는 데이터 집합에서 지정된 이름에 대한 단일 값을 검색하려면 Lookup 함수(보고서 작성기 및 SSRS)를 사용하고,To retrieve a single value from a dataset with name/value pairs for a specified name where there is a 1-to-1 relationship, use Lookup Function (Report Builder and SSRS). 호출할 조회 값 집합을 사용 하 여 Multilookup 함수 ( 보고서 작성기 및 SSRS ) .To call Lookup for a set of values, use Multilookup Function (Report Builder and SSRS).

    다음과 같은 제한 사항이 있습니다.The following restrictions apply:

  • LookupSet 은 모든 필터 식이 적용된 후 평가됩니다.LookupSet is evaluated after all filter expressions are applied.

  • 조회 수준이 하나만 지원됩니다.Only one level of lookup is supported. 원본, 대상 또는 결과 식에는 조회 함수에 대한 참조가 포함될 수 없습니다.A source, destination, or result expression cannot include a reference to a lookup function.

  • 원본 식과 대상 식의 데이터 형식이 같아야 합니다.Source and destination expressions must evaluate to the same data type.

  • 원본, 대상 및 결과 식에는 보고서 또는 그룹 변수에 대한 참조가 포함될 수 없습니다.Source, destination, and result expressions cannot include references to report or group variables.

  • LookupSet 은 다음 보고서 항목에 대한 식으로 사용할 수 없습니다.LookupSet cannot be used as an expression for the following report items:

    • 데이터 원본에 대한 동적 연결 문자열Dynamic connection strings for a data source.

    • 데이터 집합의 계산된 필드Calculated fields in a dataset.

    • 데이터 집합의 쿼리 매개 변수Query parameters in a dataset.

    • 데이터 집합의 필터Filters in a dataset.

    • 보고서 매개 변수Report parameters.

    • Report.Language 속성입니다.The Report.Language property.

    자세한 내용은 집계 함수 참조(보고서 작성기 및 SSRS)합계, 집계 및 기본 제공 컬렉션의 식 범위(보고서 작성기 및 SSRS)를 참조하세요.For more information, see Aggregate Functions Reference (Report Builder and SSRS) and Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS).

예제Example

다음 예에서는 영업 지역 식별자 TerritoryGroupID를 포함하는 데이터 집합에 테이블이 바인딩되어 있다고 가정합니다.In the following example, assume the table is bound to a dataset that includes a sales territory identifier TerritoryGroupID. "Stores"라는 별도의 데이터 집합에는 지역의 모든 매장 목록과 지역 식별자 ID 및 매장 이름 StoreName이 포함되어 있습니다.A separate dataset called "Stores" contains the list of all stores in a territory and includes the territory identifier ID and the name of the store StoreName.

다음 식에서 LookupSet 는 TerritoryGroupID 값을 "Stores" 데이터 집합에 있는 각 행의 ID와 비교합니다.In the following expression, LookupSet compares the value TerritoryGroupID to ID for each row in the dataset called "Stores". 일치 항목을 찾을 때마다 해당 행에 대한 StoreName 필드의 값이 결과 집합에 추가됩니다.For each match, the value of the StoreName field for that row is added to the result set.

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

예제Example

LookupSet 은 개체 컬렉션을 반환하므로 결과 식을 입력란에 직접 표시할 수 없습니다.Because LookupSet returns a collection of objects, you cannot display the result expression directly in a text box. 컬렉션에 있는 각 개체의 값을 문자열로 연결할 수 있습니다.You can concatenate the value of each object in the collection as a string.

Visual BasicVisual Basic 함수 Join 을 사용하여 개체 집합에서 구분된 문자열을 만들 수 있습니다.Use the Visual BasicVisual Basic function Join create a delimited string from a set of objects. 개체를 한 줄로 결합하려면 쉼표를 구분 기호로 사용합니다.Use a comma as a separator to combine the objects in a single line. 일부 렌더러에서는 Visual BasicVisual Basic 줄 바꿈(vbCrLF)을 구분 기호로 사용하여 각 값을 새 줄에 나열할 수 있습니다.In some renderers, you might use a Visual BasicVisual Basic line feed (vbCrLF) as a separator to list each value on a new line.

입력란의 Value 속성으로 사용된 다음 식은 Join 을 사용하여 목록을 만듭니다.The following expression, when it is used as the Value property for a text box, uses Join to create a list.

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

예제Example

몇 번만 렌더링되는 입력란의 경우 입력란에 값을 표시하는 HTML을 생성하기 위해 사용자 지정 코드를 추가하도록 선택할 수도 있습니다.For text boxes that only render a few times, you might choose to add custom code to generate HTML to display values in a text box. 입력란에 HTML을 표시하려면 추가 처리 작업이 필요하므로 수천 번 렌더링되는 입력란의 경우에는 이러한 선택이 적합하지 않습니다.HTML in a text box requires extra processing, so this would not be a good choice for a text box that is rendered thousands of times.

다음 Visual BasicVisual Basic 함수를 보고서 정의의 Code 블록에 복사합니다.Copy the following Visual BasicVisual Basic functions to a Code block in a report definition. MakeListresult_expression 에서 반환되는 개체 배열을 사용하고 HTML 태그를 사용하여 정렬되지 않은 목록을 만듭니다.MakeList takes the object array that is returned in result_expression and builds an unordered list by using HTML tags. Length 는 개체 배열의 항목 수를 반환합니다.Length returns the number of items in the object array.

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  

예제Example

HTML을 생성하려면 함수를 호출해야 합니다.To generate the HTML, you must call the function. 다음 식을 입력란의 Value 속성에 붙여넣고 텍스트의 태그 형식을 HTML로 설정합니다.Paste the following expression in the Value property for the text box and set the markup type for text to HTML. 자세한 내용은 보고서에 HTML 추가(보고서 작성기 및 SSRS)를 참조하세요.For more information, see Add HTML into a Report (Report Builder and SSRS).

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

관련 항목:See Also

보고서 (에 사용 되는 식 보고서 작성기 및 SSRS ) Expression Uses in Reports (Report Builder and SSRS)
식 예 ( 보고서 작성기 및 SSRS ) Expression Examples (Report Builder and SSRS)
식 (의 데이터 형식 보고서 작성기 및 SSRS ) Data Types in Expressions (Report Builder and SSRS)
합계, 집계 및 기본 제공 컬렉션 (에 대 한 식 범위 보고서 작성기 및 SSRS )Expression Scope for Totals, Aggregates, and Built-in Collections (Report Builder and SSRS)