====== 그리드 아이템 병합 가이드 ======
그리드 데이터행 아이템 병합에 대한 예시 화면이다.
그리드 use_selectblock 속성을 true로 설정하여 사용자가 마우스로 블럭 선택 기능을 제공합니다.
그리드 on_selectblock 이벤트를 이용하여 블럭 선택한 아이템에 대한 통계 데이터를 표시한다.
블럭 선택된 아이템에 대한 컨텍스트 메뉴에 "병합" 및 "병합해제" 메뉴를 제공한다.
아이템 병합시 병합된 아이템들의 값은 병합 시작 아이템의 값으로 변경된다.
관련 속성으로 use_selectblock, show_selectblockstat, item_merge가 있다.
관련 API로 setitemmergerange, releaseitemmerge, isitemmerge, getitemmergerange가 있다.
관련 이벤트로 on_selectblock가 있다.
===== 예시 =====
그리드를 마우스로 드래그 후, 컨텍스트 메뉴를 통해 병합하세요.
템플릿 위치: /HTML5/COMPONENT/GRID/grid_merge_item
템플릿 파일
* [[xf5projecthome>template/screen/HTML5/COMPONENT/GRID/grid_merge_item.xml|grid_merge_item.xml]]
* [[xf5projecthome>template/screen/HTML5/COMPONENT/GRID/grid_merge_item.js|grid_merge_item.js]]
* [[xf5projecthome>template/template.html?xframe_screen_url=/HTML5/COMPONENT/GRID/grid_merge_item|새창으로 실행]]
echo '';
echo '';
echo '';
==== 화면 스크립트 ====
// 그리드 "on_selectblock" 이벤트
function grdMerge_on_selectblock(objInst, nSelectStat, nStartRow, nStartColumn, nEndRow, nEndColumn, nSumValue, nAvgValue, nCount, nMinValue, nMaxValue)
{
// 그리드 블럭 선택 통계 정보 표시
this.fldSum.settext(nSumValue);
this.fldAvg.settext(nAvgValue);
this.fldCount.settext(nCount);
this.fldMin.settext(nMinValue);
this.fldMax.settext(nMaxValue);
}
// "setitemmergerange" 버튼 이벤트
function btn_setitemmergerange_on_click(objInst)
{
var ret;
// 아이템 병합 처리
ret = this.grdMerge.setitemmergerange(this.fldStartRow.gettext(), this.fldStartCol.gettext(),
this.fldEndRow.gettext(), this.fldEndCol.gettext());
factory.consoleprint("setitemmergerange return = " + ret);
}
// "releaseitemmerge" 버튼 이벤트
function btn_releaseitemmerge_on_click(objInst)
{
var ret;
// 아이템 병합 해제 처리
ret = this.grdMerge.releaseitemmerge(this.fldStartRow.gettext(), this.fldStartCol.gettext(),
this.fldEndRow.gettext(), this.fldEndCol.gettext());
factory.consoleprint("releaseitemmerge return = " + ret);
}
// "isitemmerge" 버튼 이벤트
function btn_isitemmerge_on_click(objInst)
{
var is_merge;
// 아이템이 병합된 아이템인지 구함
is_merge = this.grdMerge.isitemmerge(this.grdMerge.getselectrow(), this.grdMerge.getselectcolumn());
if (is_merge) {
screen.alert("선택한 아이템은 병합된 아이템 입니다.");
}
else {
screen.alert("선택한 아이템은 병합된 아이템이 아닙니다.");
}
}
// "getitemmergerange" 버튼 이벤트
function btn_getitemmergerange_on_click(objInst)
{
var merge_range;
merge_range = this.grdMerge.getitemmergerange(this.grdMerge.getselectrow(), this.grdMerge.getselectcolumn());
if (merge_range) {
screen.alert("선택한 아이템 병합정보: " + merge_range.join(","));
}
else {
screen.alert("선택한 아이템은 병합된 아아템이 아닙니다.");
}
}