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

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

행 그룹

Row grouping은 데이터 행들을 하나 이상의 지정한 컬럼의 값을 기준으로 구분시켜 계층적인 구조로 표시합니다. 컬럼 헤더를 panel 영역으로 드래깅하면 그 컬럼으로 grouping 합니다. 또는 GridView.groupBy() 함수를 호출해서 grouping할 수도 있습니다.

그룹핑 하기

컬럼 헤더를 panel 영역으로 드래깅하면 그 컬럼으로 grouping 합니다.
또는 GridView.groupBy() 함수를 호출해서 grouping할 수도 있습니다.

gridView.groupPanel.visible = false;

gridView.groupPanel.visible = true;

gridView.groupBy(["Gender", "KorCountry"]);

그룹핑 이벤트

Row grouping되면 Javascript 그리드의 onGrouping(), onGrouped() 이벤트가 발생됩니다.

  • onGrouping()
  • onGroupingChanged()
gridView.onGrouping = function(grid) {
  alert("onGrouping 이벤트가 발생했습니다. true를 반환합니다. false를 반환하면 그룹핑되지 않습니다.");
  return true;
};

gridView.onGrouped = function(grid) {
  alert(
    "onGrouped : isGrouped = " +
      grid.isGrouped() +
      ", isMergedGrouped  = " +
      grid.isMergedGrouped()
  );
};

푸터와 그룹 푸터에 요약값 표시

dataType이 "number"인 경우 요약값을 표시할 수 있습니다. 표시할 수 있는 요약값은 SummaryType에서 확인하세요.

아래 데모는 나이 컬럼은 평균값, 만기금액은 합계로 계산하였습니다.

var columns = [
  ...
  {
    name: "Age",
    fieldName: "Age",
    type: "data",
    width: "40",
    header: {
      text: "나이"
    },
    groupFooter: {
      expression: "avg",
      numberFormat: "#,##0.0",
      styleName: "right-column"
    },
    footer: {
      expression: "avg",
      numberFormat: "#,##0.0",
      styleName: "right-column"
    },
    styleName: "right-column"
  },
  {
    name: "SaveMaturity",
    fieldName: "SaveMaturity",
    type: "data",
    width: "80",
    numberFormat: "#,##0",
    header: {
      text: "만기금액"
    },
    groupFooter: {
      expression: "sum",
      numberFormat: "#,##0",
      styleName: "right-column"
    },
    footer: {
      expression: "sum",
      numberFormat: "#,##0",
      styleName: "right-column"
    },
    styleName: "right-column"
  },
  ...
];

gridView.setColumns(columns);

Group Footer의 동적계산

Group Footer에 표시되는 요약을 개발자가 계산하여 표시하고 싶은 경우는 column.groupFooter.valueCallback에 설정합니다.
(표시하고 싶은 값을 return 하여 처리합니다.)

4번째 인자인 group에 해당 group에 대한 정보들이 들어 있습니다. (ex: children에 해당 그룹의 자식들의 정보가 들어 있습니다.)

var columns = [
  ...
  {
    name: "Age",
    fieldName: "Age",
    type: "data",
    width: "40",
    header: {
      text: "나이",
      styleName: "orange-column"
    },
    groupFooter: {
      valueCallback: function (grid, column, groupFooterIndex, group, value) {
        //계산 후 표시하고 싶은 값을 return
        var groupModel = grid.getGroupModel(group.index);
        return grid.getGroupSummary(groupModel, "Age").count + ' 건';
      },
      styleName: "right-column"
    },
    styleName: "right-column"
  },
  ...
];

gridView.setColumns(columns);

Group Footer를 여러 줄로 표시

Group Footer를 두 줄로 표시하기 위해서는 rowGroup.setFooters([{},{}])로 설정하시면 됩니다.
세 줄로 표시하기 위해서는 [{},{},{}] 로 설정하시면 됩니다.

개별 설정 코드들은 column.groupFooters에서 처리하면 됩니다.

아래 데모는 첫번째 그룹풋터에는 sum을 두번째 그룹풋터에는 avg를 표시한 데모 입니다.

gridView.rowGroup.setFooters([{},{}])

var vc = function (grid, column, groupFooterIndex, group, value) {
  var groupModel = grid.getGroupModel(group.index);
  
  //첫번째 그룹풋터에는 sum을, 두번째 그룹풋터에는 avg를 표시
  if (groupFooterIndex == 0) {
    return grid.getGroupSummary(groupModel, "Age").sum;
  } else if (groupFooterIndex == 1) {
    return grid.getGroupSummary(groupModel, "Age").avg;
  } 
};

var columns = [
  ...
    {
    name: "Gender",
    fieldName: "Gender",
    type: "data",
    width: "50",
    header: {
      text: "성별",
      styleName: "orange-column"
    },
    groupFooters: [{
      text: "합계 : ",
      styleName: "orange-column"
    }, {
      text: "평균 : ",
      styleName: "orange-column"
    }],
  },
  {
    name: "Age",
    fieldName: "Age",
    type: "data",
    width: "40",
    header: {
      text: "나이",
      styleName: "orange-column"
    },
    groupFooters: [{
      valueCallback: vc,
      numberFormat: "#,##0.#",
      styleName: "orange-column"
    }, {
      valueCallback: vc,
      numberFormat: "#,##0.#",
      styleName: "orange-column"
    }],
    styleName: "right-column"
  },
  ...
];

gridView.setColumns(columns);

그룹 푸터 값 표시

아래 옵션들의 설정에 따라 각 행 그룹들은 그룹 푸터를 표시할 수 있습니다.
그룹 푸터에 표시하는 텍스트는 GridBase.setRowGroup 함수에 전달되는 설정 개체의 footerStatement 값으로 지정합니다.
또한, summary mode를 통해 각 행 그룹의 푸터에 표시할 수 있는 값의 종류를 지정할 수도 있습니다.

gridView.setRowGroup({
  footerStatement: "${groupValue}"
});

그룹 헤더 값 표시

아래 옵션들의 설정에 따라 각 행 그룹들은 그룹 헤더를 표시할 수 있습니다.
그룹 헤더에 표시하는 텍스트는 GridBase.setRowGroup 함수에 전달되는 설정 개체의 headerStatement 값으로 지정합니다.
headerStatement의 기본값은 "${groupField}: ${groupValue} - ${rowCount} rows" 입니다.

headerStatement 속성으로는 아래와 같은 값들을 설정할 수 있습니다.

  • groupField
  • fieldHeader
  • groupColumn
  • columnHeader
  • columnFooter
  • groupValue
  • rowCount
gridView.setRowGroup({
  headerStatement: "${groupField}: ${groupValue} - ${rowCount} rows"
});