# 기타 함수

## Content

### Lookup

지정한 데이터 집합에서 지정한 필드의 맨 처음 일치하는 값을 반환합니다.
**구문**
Lookup(`source`, `destination`, `result`, `dataset`)
**인수**

* `source` \- 현재 범위에서 평가하고 조회할 키를 지정하는 식입니다\.
* `destination` \- 데이터 집합의 각 행에 대해 평가하고 일치시킬 열을 지정하는 식입니다\.
* `result` \- 데이터 집합의 행에 대해 평가하고\(여기서 `source = destination`) 반환할 값을 지정하는 식입니다.
* `dataset` \- 보고서에서 데이터 집합의 이름을 나타내는 문자열입니다\.

**예시**
[표 형식 보고서 시작하기 데모](/activereportsjs/demos/Reports/GetStartedWithTabularReports/purejs)에서는 다음 식을 사용하여 `Products` 데이터 집합에 바인딩된 표 내의 `Categories` 데이터 집합에서 범주 이름을 표시합니다.

```js
{Lookup(categoryId, categoryId, categoryName, "Categories")}
```

### LookupSet

지정한 데이터 집합에서 지정한 필드의 일치하는 값을 모두 반환합니다.
**구문**
LookupSet(`source`, `destination`, `result`, `dataset`)
**인수**

* `source` \- 현재 범위에서 평가하고 조회할 키를 지정하는 식입니다\.
* `destination` \- 데이터 집합의 각 행에 대해 평가하고 일치시킬 열을 지정하는 식입니다\.
* `result` \- 데이터 집합의 행에 대해 평가하고\(여기서 `source = destination`) 반환할 값을 지정하는 식입니다.
* `dataset` \- 보고서에서 데이터 집합의 이름을 나타내는 문자열입니다\.

**예시**
다음 식을 사용하여 현재 범위의 `TerritoryID` 값을 사용하여 모든 매장을 찾을 수 있습니다.

```js
{LookupSet(TerritoryID, TerritoryID, StoreName, "Stores")}
```

### Previous

지정한 범위 내 항목의 이전 인스턴스에서 지정한 식의 값을 반환합니다.
**구문**
Previous(`expression`, [`scope`])
**인수**

* `expression` \- 요약 값을 계산할 식
* `scope` \- 선택적 계산 범위

**예시**
다음 식을 사용하여 현재 범위 내 `SalesCount` 필드의 이전 값을 반환할 수 있습니다.

```js
{Previous(SalesCount)}
```

### RowNumber

지정한 범위에서 행의 실행 개수를 반환합니다.
**구문**
RowNumber([`scope`])
**인수**

* `scope` \- 선택적 계산 범위

### GroupIndex

그룹화 인스턴스의 0부터 시작하는 인덱스를 반환합니다.
**구문**
GroupIndex([`group name`])
**인수**

* `group name`— 인덱스를 반환할 그룹의 이름을 지정합니다. 생략하면 함수는 기본적으로 가장 가까운 그룹의 인덱스를 반환합니다.

### Join

배열에 포함된 하위 문자열을 조인하여 만든 문자열을 반환합니다.
**구문**
Join(`sourcearray`, [ \`\`\`delimiter\`\`\` ])
**인수**

* `sourcearray` \- 조인할 문자열을 포함한 배열입니다\.
* `delimiter` \- 반환된 문자열에서 하위 문자열을 구분하는 선택적 문자입니다\. 생략하면 공백 문자\(" "\)가 사용됩니다\.

**예시**

다음 식을 사용하면 현재 `CategoryID` 값을 사용하여 범주에서 제품 목록을 표시할 수 있습니다.

```js
{Join(LookupSet(CategoryId, CategoryId, ProductName, "Products"), ",")}
```

### IndexOf

**구문**
배열이나 문자열에서 주어진 요소를 찾을 수 있는 첫 번째 인덱스를 반환하거나, 존재하지 않는 경우 `-1`을 반환합니다.
IndexOf(`source`, `searchElement`)
**인수**

* `source` – `IndexOf` 함수가 요소를 검색할 소스입니다. 소스는 배열 또는 문자열일 수 있습니다. 소스가 배열인 경우 메서드는 배열 요소 중에서 해당 요소를 검색합니다. 소스가 문자열인 경우 메서드는 문자열의 문자 중에서 요소를 검색합니다.
* `searchElement` – 메소드가 `source`에서 검색할 요소입니다.

**예시**
다음 표현식은 `ContinentName` 필드의 현재 값이 다중 값 매개변수 `pContinent`의 값에 포함되어 있는지 확인합니다.

```js
{IndexOf(@pContinent, ContinentName) >= 0}
```

### Partition

계산된 일련의 범위 내에서 숫자가 발생하는 지점을 나타내는 문자열을 반환합니다.
**구문**
Partition(`number`, `start`, `stop`, `interval`)
**인수**

* `number` \- 범위에 대해 평가하려는 숫자입니다\.
* `start` \- 전체 숫자 범위가 시작되는 숫자입니다\. 이 숫자는 0보다 작을 수 없습니다\.
* `stop` \- 전체 숫자 범위가 끝나는 숫자입니다\. 이 숫자는 `start`보다 작거나 같을 수 없습니다.
* `interval` \- 한 범위와 다음 범위 사이 차이를 나타내는 숫자입니다\. 이 숫자는 1보다 작을 수 없습니다\.

**예시**
다음 식을 사용하여 Freight 필드의 현재 값이 속하는 범위를 표시할 수 있습니다.

```js
{Partition(Freight, 0, 500, 50)}
```

### Level

재귀 계층 구조의 현재 깊이 수준을 반환합니다
**구문**
Level([`scope`])
**인수**

* `scope` \- 선택적 계산 범위\.

**예시**
[대화형 계층 구조](https://www.grapecity.com/activereportsjs/demos/Reports/InteractiveHierarchy/purejs) 데모에서는 상점 이름을 표시하는 텍스트 상자의 왼쪽 패딩에 다음 표현식을 사용합니다.

```js
{CStr(Level() * 12 + 12)}pt
```