# 제품의 특징

`IBSheet7`은 javascript 기반의 데이터 그리드 컨트롤 컴포넌트 입니다.
10년 이상 쌓아온 전문화된 노하우를 바탕으로 그리드, 차트, 업로드 등 다양한 UI 요소를 표현하기 위한 최고의 컴포넌트 기반 솔루션을 제공합니다.

## 주요한 제품의 기능

### Data 조회 기능

Ajax 통신을 통하여 서버로부터 데이터를 조회합니다.
시트 위에 표현되어야 할 데이터를 `XML` 또는 `JSON` 형태로 가져와 로딩함으로써 기존에 페이지를 리로딩하는 것보다 효율적으로 데이터를 가져올 수 있습니다.

### Data Column Sorting

IBSheet7에 조회되거나 작성된 데이터는 헤더를 클릭하는 동작만으로 서버를 거치지 않고 오름차순/내림차순으로 정렬할 수 있습니다.
ColumnSort 를 사용하여 하나의 컬럼이 아닌 다수의 컬럼을 DB Query의 order by와 같이 동시에 소팅하는 작업도 가능합니다.

[컬럼 소팅 예시]

### Multi-Record Transaction

IBSheet7의 변경된 데이터는 시트 내부적으로 관리됩니다. 따라서 IBSheet7은 최초 조회시 데이터와 변경된 데이터를 동시에 갖고 있다가 저장 메소드 호출되었을 때, 전체 데이터 중에 변경된 데이터를 포함하고 있는 행(Row)을 묶어서 서버로 전달합니다.

[멀티라인 레코드 예시]

### Tree Data

IBSheet7의 특정 컬럼을 트리로 지정하고, 조회되는 데이터도 행(Row)단위로 Level(depth)을 지정해 주면 트리기능을 사용할 수 있습니다.
트리 기능을 사용하는 시트의 경우 행단위로 `Level`값을 갖게되고 이를 통하여 특정 Level까지 자동으로 접거나 펼치는 기능들을 사용할 수 있습니다.
`제약사항` 트리 기능 사용시 소트 기능은 지원되지 않습니다.

[트리 일반 설정 예시]

### Data Column 자동 연산 처리

IBSheet7에서는 Column 간의 연산식을 등록하게 되면 Data가 조회됨과 동시에 등록된 연산식을 통하여 자동으로 연산된 값을 출력합니다.
또한 사용자가 데이터를 변경시에도 연산식 적용이 가능합니다.

[숫자 데이터 소계 사용 예시]

### Column Freezing & Sizing

컬럼의 너비와 개수가 많아서 수평 스크롤바로 이동하며 데이터를 조회하는 경우 틀고정 컬럼의 위치를 사용자가 마우스로 이동하며 데이터를 표현할 수 있습니다.(`Column Freezing`)
컬럼의 너비가 작아서 데이터가 잘려서 표시되는 경우 해당 헤더와 좌측 헤더 사이의 선을 마우스를 이용하여 너비를 사용자가 조정할수 있습니다.(`Column Sizing`)
그리고, 컬럼의 위치를 마우스를 이용하여 움직여서 사용자가 우선으로 생각하는 데이터 컬럼을 앞으로 옮겨와서 보다 편한 UI를 EndUser가 생성할 수 있도록 합니다.

[컬럼 이동 예시]

### Type

각 컬럼의 기능이라 할 수 있는 Type을 제공합니다. 일반적인 `Text` 외에 `CheckBox`, `Combo`, `Popup`, `Image` 등이 제공됩니다.
각각 컬럼에 적용하는 타입에 따라 사용할 수 있는 다양한 기능의 메소드가 제공됩니다.

[다양한 기타 타입 예시]

## 주요 적용 대상 업무

`※` 리스트를 조회하고, 정렬순서를 변경하여 다시 조회하고자 하는 경우가 많은 업무
`※` 리스트 조회 시 조회조건에 따라 화면 Reload가 많고 데이터 양이 많은 업무
`※` 업무적으로 한번에 반드시 여러 건을 입력 / 수정 / 삭제해야 하는 업무
`※` 컬럼간 계산 로직이 많은 업무
`※` 기존 C/S환경과 비슷한 구조로 웹 환경으로 변경하고자 하는 업무