====== 그리드 소계행 다단 소계 가이드 ======
그리드 컴포넌트 소계행 다단 소계 예시 화면이다.
소계 정보는 멀티로 지정이 가능하며, 정의된 순서대로 소계 데이터를 계산하여 표시된다.
소계 정보는 멀티로 지정이 가능하며, 각 소계행은 소계 데이터 계산 기준 소계 정보 인덱스(zero-based) 정보를 가지고 있다.
관련 API로는 deletestatmid, deleteallstatmid, addstatmid, getstatmidcount, getstatmidindex가 있다.
===== 예시 =====
템플릿 위치: /HTML5/COMPONENT/GRID/grid_midstat_multi
템플릿 파일
* [[xf5projecthome>template/screen/HTML5/COMPONENT/GRID/grid_midstat_multi.xml|grid_midstat_multi.xml]]
* [[xf5projecthome>template/screen/HTML5/COMPONENT/GRID/grid_midstat_multi.js|grid_midstat_multi.js]]
* [[xf5projecthome>template/template.html?xframe_screen_url=/HTML5/COMPONENT/GRID/grid_midstat_multi|새창으로 실행]]
echo '';
echo '';
echo '';
==== 화면 스크립트 ====
// "deletestatmid" 버튼 이벤트
function btn_deletestatmid_on_click(objInst)
{
var midstat_index;
// 소계 정보중 마지막 인덱스를 구하여 삭제
midstat_index = grdList.getstatmidcount() - 1;
if (midstat_index >= 0) {
// 특정 소계 정보 및 특정 소계 정보 기준 소계 데이터 삭제
grdList.deletestatmid(midstat_index);
}
}
// "deleteallstatmid" 버튼 이벤트
function btn_deleteallstatmid_on_click(objInst)
{
// 전체 소계 정보 및 소계 데이터 삭제
grdList.deleteallstatmid();
}
// "addstatmid" 버튼 이벤트
function btn_addstatmid_on_click(objInst)
{
var midstat_index;
// 다중소계
// 첫번째 보일 소계는 0, 1번 컬럼 데이터를 기준으로 소계를 보여줌
midstat_index = this.grdList.addstatmid(XFD_GRID_MIDSTAT_SUM, "0,1", "시별 소계(합계)", 1,
factory.rgb(0, 0, 0), factory.rgb(239, 249, 188));
factory.consoleprint("midstat_index = " + midstat_index);
// 두번째 보일 소계는 0번 컬럼 데이터를 기준으로 소계를 보여줌
midstat_index = this.grdList.addstatmid(XFD_GRID_MIDSTAT_SUM, "0", "지역별 소계(합계)", 0,
factory.rgb(0, 0, 0), factory.rgb(254, 240, 201));
factory.consoleprint("midstat_index = " + midstat_index);
// 추가된 소계 정보로 소계가 나타나도록 refresh호출
// 만약 초기 데이터가 없고 조회시에 그리드에 데이터 추가 되는 경우에는 굳이 지금 시점에 refresh할 필요없음.
this.grdList.refresh();
}
// "getstatmidcount" 버튼 이벤트
function btn_getstatmidcount_on_click(objInst)
{
screen.alert("소계 정보 수 = " + grdList.getstatmidcount());
}
// "getstatmidindex" 버튼 이벤트
function btn_getstatmidindex_on_click(objInst)
{
var midstat_info_index, row_index, row_count;
row_count = grdList.getrowcount();
if (row_count == 0) { return; }
row_index = row_count - 1;
midstat_info_index = grdList.getstatmidindex(row_index);
screen.alert(row_index + "행은 소계행입니다. 소계행 정보 인덱스 = " + midstat_info_index);
}