Translate

[jqGrid] Pivot Grid 소개







실습 jqGrid 버전: CDN 제공하는 v4.6 버전으로 테스트



피벗 테이블이란?

 - 피벗 테이블이란 원하는 보고서를 얻기위해 스프레드시트 또는 데이터베이스 테이블에서 선택한 열과 행의 데이터를 재구성하고 요약할 수 있는 프로그램 도구라고 말할 수 있다.
 - 피벗 테이블은 실제로 스프레드시트나 데이터베이스 자체를 변경하지 않는다. 데이터베이스 용어에서 피벗은 다른 관점에서 데이터를 보기 위해 데이터를 돌리는것이다.





jqPivotGrid 란?
1004lucifer
 - jqPivotGrid는 jqGrid와 함께 사용하여 피벗 그리드를 만들 수 있는 구성요소이다.


카테고리이름/제품이름/국가/가격/수량 필드가 있는 판매 데이터의 다음과 같은 표가 있다고 가정해 보자.
이 데이터를 편집, 검색, 삭제 하려면 jqGrid 기능을 이용해 작업이 가능하다.


다음 질문에 답해야 한다면 무엇을 해야 하는가?

1. 각 카테고리의 주문 금액은 얼마인가?
2. 특정 국가의 각 주문량은 얼마인가?
3. 특정 국가의 각 카테고리와 제품의 주문금액과 수량은 얼마나 되는가?


jqPivotGrid를 사용하여 보고서를 만들면 다음과 같이 표시가 된다.

1004lucifer






jqPivotGrid 사용

 - jqPivotGrid는 jqGrid를 상속하므로 column resizing, formatter, cell renderers, row/cell events 등 익숙한 대부분의 기능을 사용할 수 있다.
 - jqPivotGrid는 jqGrid에서 제공하지 않는 합계 및 피벗 기능을 원할 때 사용할 수 있다.
1004lucifer
데이터를 카테고리 및 국가로 구분하려면 x와 y 축(dimension)을 구성하기만 하면 된다.
xDimension : [{
    dataName: 'CategoryName'
}],
yDimension : [ {
    dataName: 'Country'
}]
멀티레벨을 지원하며, x와 y 축에서 기술 가능하다.
두개 이상의 레벨에서 x축/y축을 설정하면 열/행의 그룹화가 자동으로 수행된다.


이제 데이터에 대한 x/y 축을 이해했으니 셀값을 집계할 차례다.
sum, min, max, count 등등 여러 종류의 집계 기능을 제공한다.
향후 릴리즈에서는 자체 집계함수를 제공한다.
aggregates : [{
    member : 'Price', 
    aggregator : 'sum', 
    width:50,
    label:'Sum'
},{
    member : 'Quantity', 
    aggregator : 'count', 
    width:50, 
    label: 'Count'
}]
위 예제와 같이 'Price', 'Quantity' 에 대한 멀티 데이터필드 집계를 할 수 있다.
모든 필요한 집계를 설정하여 쉽게 작업을 할 수 있다.
1004lucifer
행/열에 대한 총합을 표시하는 설정은 매우 쉽다. ('rowTotals:true' or 'colTotals:true')
그룹합계는 rowTotals 또는 colTotals 설정을 통해서도 사용할 수 있다.

피벗 그리드는 JSON데이터를 데이터소스로 사용하며, 추후 사용가능한 데이터소스를 확장할 예정이다.






참고
 - http://www.trirand.com/jqgridwiki/doku.php?id=wiki:pivotdescription

댓글