중요 업데이트 알림사용해보기제품구매도움영상문의
RealGrid2v2.6.2

  • 튜토리얼
      • 인디케이터
      • 상태바
      • 체크바
      • 체크바와 데이터 필드의 연동
      • 컨텍스트 메뉴
      • 토스트 메시지 창
      • 커서
      • 열 고정하기
      • 행 고정하기
      • 선택
      • 다중 선택
      • 같은 값의 셀 생략하기
      • 셀 버튼
      • 팝업 메뉴 버튼
      • 셀 병합
      • Lookup 컬럼
      • Lookup 트리
      • 툴팁
      • 그룹헤더 툴팁
      • 화면 표시값 변경하기
      • Place Holder
      • 컬럼 만들기
      • 컬럼 속성 동적 변경하기(visible, editable)
      • 컬럼 너비 자동 조정
      • 데이터 정렬
      • 컬럼 이동
      • 자동 필터링
      • 데이터 필터링
      • 컬럼 레이아웃(컬럼 그룹)
      • 컬럼 레이아웃(컬럼 그룹) 속성 동적 변경하기
      • 컬럼 너비 조절
      • 그룹컬럼 접기
      • 셀 가로병합
      • 레이아웃(추가, 삭제)
      • 라인 편집기
      • 멀티라인 편집기
      • 숫자 편집기
      • 드롭다운 편집기
      • 날짜 편집기
      • 마스크 편집기
      • 입력제한 편집기
      • 행 추가/삽입
      • 행 삭제
      • 행 데이터 수정
      • 행/셀 데이터 가져오기
      • 셀 데이터 수정
      • 헤더 높이
      • 헤더 체크박스 사용
      • 컬럼 푸터
      • 컬럼 푸터 병합
      • 상단 요약 표시
      • 컬럼 헤더 HTML Template
      • 컬럼 레이아웃(그룹 컬럼) 헤더 HTML Template
      • 행 높이
      • 행 그룹핑
      • 그룹핑 API
      • 행 병합 그룹핑
      • 아이템 모델
      • 그리드 동적 높이
      • JSON 데이터 가져오기
      • XML 데이터 가져오기
      • 그리드 Lazy Loading 구현
      • 마스터 디테일 예
      • provider 공유하기
      • 데이터 타입
      • 불린 타입 필드
      • 날짜 타입 필드
      • Object 타입 필드
      • Subtypes
      • 롤백
      • 검색
      • 계산 필드
      • 그리드에서 페이징 처리 1
      • 그리드에서 페이징 처리 2
      • 행 Drag & Drop
      • Grid To Grid
      • 텍스트 렌더러
      • 체크 렌더러
      • 바 렌더러
      • 이미지 렌더러
      • 아이콘 렌더러
      • 도형 렌더러
      • 시그널 렌더러
      • 링크 렌더러
      • HTML 렌더러
      • 바코드 렌더러
      • 커스텀 렌더러 - 이미지버튼
      • 구글차트 연동
      • 하이차트 연동
      • 시리즈 컬럼
      • 스파크 컬럼
      • 행 상태
      • Undo / Redo
      • 복사하기/붙여넣기
      • 병합 일괄 수정
      • RealGrid2 스타일
      • 사용자 스타일 - 개요
      • 바디 영역 스타일
      • 헤더, 풋터, 상태바 스타일
      • 셀, 데이터 영역 스타일
      • 편집 영역 스타일
      • styleName 속성 및 콜백
      • 컬럼 동적 스타일
      • 행 동적 스타일
      • 셀 동적 스타일
      • RealGrid2 테마
      • 포커스 스타일
      • 엑셀 내보내기
      • 행 그룹된 그리드 내보내기
      • 여러 레이아웃으로 구성된 그리드 내보내기
      • 다중 그리드 Excel 내보내기
      • Excel문서에 제목 추가하기
      • 엑셀 스타일
      • 이미지 엑셀 내보내기
      • 사용자 지정 문자 출력
      • 엑셀 시트 보호
      • Mobile FormView
      • 대량 데이터 불러오기
      • 트리뷰
      • 트리 구현 - Array데이터
      • 트리 구현 - Object데이터
      • 트리 구현 - Xml데이터
      • 트리 노드 조작하기
      • 트리 아이콘 1
      • 트리 아이콘 2
      • 트리 이벤트
      • 트리 Lazy Loading
      • 사용자 지정 컬럼 유효성 검사
      • 사용자 지정 행 유효성 검사
      • 전체 유효성 검사
      • 유효성 검사 통과
      • 이벤트 발생 순서
      • 클릭 이벤트
      • 렌더링 완료 이벤트
      • 하이차트 연동 컬럼 선택
      • 하이차트 연동 컬럼 필터링
      • 하이차트 연동 행 선택
      • amchart 연동 체크 선택
      • amchart 연동 행 선택
      • 추천 설정
      • 필드와 컬럼 일괄 생성
      • SPAN(컬럼그룹)
      • 행 상태에 따른 특정 컬럼 편집 제어
      • CheckBar에서 자식 노드 연동하여 체크하기
      • Excel Import
      • Group Footer 표시여부 조작하기
      • 체크바와 관계된 팁
      • 상태바와 관계된 팁
      • 동적 에디터 변경
      • text타입 날짜 편집기
      • ColorPicker 연결
      • 파일 Drag and Drop
      • 셀 병합에서 텍스트를 상단으로 이동
      • 병합된 셀의 합계 계산
      • HEADER와 FOOTER에 여러줄로 표시하기
      • 행 삭제와 관계된 팁

상단 요약 표시(Header Summary)

그리드의 끝에 위치한 footer와 함께 각 컬럼의 합계 및 통계에 대한 값을 그리드 시작 위치에 표시 합니다. gridView.headerSummaries.visible = true로 설정하면 footer와 같은 기능을 가진 bar가 시작 위치에 표시되는 것을 확인 할 수 있습니다.

Column Header Summary

상단에 표시되는 요약을 설정하는 방법은 column.headerSummary 속성에 설정합니다. footer에 요약하는 설정 방법과 동일합니다.

function btnShowHeaderSummary() {
  gridView.headerSummaries.visible = true;
}

function btnHideHeaderSummary() {
  gridView.headerSummaries.visible = false;
}
var columns = [{
    ...
}, {
  "name": "QuantityPerUnit",
  "fieldName": "QuantityPerUnit",
  "width": "100",
  "header": {
      "text": "Quantity / Unit"
  },  
  "headerSummary": {
    "text": "합계: "
  }
}, {
  "name": "Quantity",
  "fieldName": "Quantity",
  "width": "100",
  "header": {
      "text": "Quantity"
  },
  "headerSummary": {
    "expression": "sum",
    "numberFormat": "#,##0"
  },
  "footer": {
      "expression": "sum",
      "numberFormat": "#,##0"
  }
}, {
    ...
}];

Column Header Summary의 동적 계산

상단에 표시되는 요약을 개발자가 계산하여 표시하고 싶은 경우는 column.headerSummary.valueCallback에 설정합니다. OrderID컬럼은 데이터행수/2, Quantity컬럼은 체크한 행들의 합계를 표시합니다. (표시하고 싶은 값을 return 하여 처리합니다.)

var columns = [{
    ...
}, {
  "name": "OrderID",
  "fieldName": "OrderID",
  "width": "80",
  "header": {
      "text": "Order ID"
  },
  "headerSummary": {
    valueCallback: function (grid, column, childIndex, summary, value) {
      //표시하고 싶은 값을 return
      return grid.getSummary("OrderID", "count") / 2;
    }
  }
}, {
    ...
}, {
  "name": "Quantity",
  "fieldName": "Quantity",
  "width": "100",
  "header": {
      "text": "Quantity",
      "styleName": "orange-column"
  },
  "headerSummary": {
    "numberFormat": "#,##0.#",
    valueCallback: function (grid, column, childIndex, summary, value) {
      var prod = grid.getDataSource();
      var checkedRows = grid.getCheckedRows();
      var sum = 0;

      checkedRows.forEach(function(e) {
        sum += prod.getValue(e, column.fieldName);
      });

      return sum;
    }
  },
  "footer": {
      "expression": "sum",
      "numberFormat": "#,##0"
  }
}, {
    ...
}];

Header Summary 여러 행 표시

상단 요약을 여러 행으로 표시할 수 있습니다.

  • options
gridView.setHeaderSummaries({
  visible:true,
  items:[
    {
      //styleName: "blue-column",   개별 css 스타일 적용 필요시
      height: 40
    }, 
    {
      height: 40
    }
  ]
});
  • columns
var columns = [{
    ...
}, {
  "name": "QuantityPerUnit",
  "fieldName": "QuantityPerUnit",
  "width": "100",
  "header": {
      "text": "Quantity / Unit"
  },
  "summaries": [{
    "text": "합계 ==>  ",
  }, {
    "text": "평균 ==>  ",
  }]
}, {
  "name": "Quantity",
  "fieldName": "Quantity",
  "width": "100",
  "header": {
      "text": "Quantity"
  },
  "summaries": [{
    "expression": "sum",
    "numberFormat": "#,##0.00"
  }, {
    "expression": "avg",
    "numberFormat": "#,##0.00"
  }]
}, {
    ...
}];

여러 Header Summary 행의 개별 행 colSpan

여러 행으로 구성된 Header Summary를 각 행마다 colSpan 할 수 있습니다. 이 경우 레이아웃을 사용하여야 하며 colSpan된 셀의 text는 첫번째 컬럼(Country 컬럼)에 설정합니다.

gridView.setHeaderSummaries({
  visible:true,
  items:[
    {
      //styleName: "blue-column",   개별 css 스타일 적용 필요시
      height: 40
    }, 
    {
      height: 40
    }
  ]
});
  • columns
var columns = [{
  "name": "Country",
  "fieldName": "Country",
  "width": "100",
  "header": {
    "text": "Country"
  }
  "summaries": [{
    "text": "합계 ==>  ",
  }, {
    "text": "평균 ==>  ",
  }]
}, {
  ...
}, {
  "name": "Quantity",
  "fieldName": "Quantity",
  "width": "100",
  "header": {
      "text": "Quantity"
  },
  "summaries": [{
    "expression": "sum",
    "numberFormat": "#,##0.00"
  }, {
    "expression": "avg",
    "numberFormat": "#,##0.00"
  }]
}, {
    ...
}];
  • layout

방법 1.

gridView.layoutByColumn("Country").summaryUserSpans = [{ colspan: 3 }, { colspan: 3}];

방법 2.

var layout1 = [
  {
    column: "Country",
    summaryUserSpans: [{ colspan: 3 }, { colspan: 3}]
  },
  "CompanyName",
  "QuantityPerUnit", 
  "Quantity",
  "OrderID",
  "CustomerID",
  "EmployeeID",
  "OrderDate",
  "Phone",
  "ProductName"
];

gridView.setColumnLayout(layout1);

여러 Header Summary 행의 rowSpan, colSpan

여러 행으로 구성된 Header Summary를 rowSpan, colSpan 할 수 있습니다. 이 경우 레이아웃을 사용하여야 하며 span된 셀의 text는 첫번째 컬럼(Country 컬럼)에 설정합니다.

gridView.setHeaderSummaries({
  visible:true,
  items:[
    {
      //styleName: "blue-column",   개별 css 스타일 적용 필요시
      height: 40
    }, 
    {
      height: 40
    }
  ]
});
  • columns
var columns = [{
  "name": "Country",
  "fieldName": "Country",
  "width": "100",
  "header": {
    "text": "Country"
  },
  "summaries": [{
    "text": "합계/평균 ==>"
  }]
}, {
  ...
}, {
  "name": "Quantity",
  "fieldName": "Quantity",
  "width": "100",
  "header": {
      "text": "Quantity"
  },
  "summaries": [{
    "expression": "sum",
    "numberFormat": "#,##0.00"
  }, {
    "expression": "avg",
    "numberFormat": "#,##0.00"
  }]
}, {
    ...
}];
  • layout

방법 1.

gridView.layoutByColumn("Country").summaryUserSpans = [{ rowspan: 2, colspan: 3 }];

방법 2.

var layout1 = [
  {
    column: "Country",
    summaryUserSpans: [{ rowspan: 2, colspan: 3 }]
  },
  "CompanyName",
  "QuantityPerUnit", 
  "Quantity",
  "OrderID",
  "CustomerID",
  "EmployeeID",
  "OrderDate",
  "Phone",
  "ProductName"
];

gridView.setColumnLayout(layout1);