프로그래밍개발 header merge이후 cell의 row를 merge했을때...
페이지 정보
작성자 erouse 작성일 2020-10-26 15:41 조회 3,764회 댓글 0건본문
첨부파일
관련링크
header의 merge가 깨집니다.
아니 어떻게 한번도 제대로 된 답을 제공하지 않습니까?
상상코딩말고 실제로 되는지 확인좀 부탁드립니다.
왠만해야 말을않지..........
안되면 그냥 답변 보내지 말아주세요.
찾아보고 안되면 여러가지로 열받으니깐
header.................
//헤더2단
function updateHeaders2()
{
//그리드명 지정
var flex = $scope.wijmoGrid;
if (flex) {
// insert new row if not yet
if (flex.columnHeaders.rows.length === 1) {
flex.columnHeaders.rows.insert(0, new wijmo.grid.Row());
}
var row = flex.columnHeaders.rows[0];
row.allowMerging = true;
// set headings so the cells merge
for (var i = 0; i < flex.columns.length; i++) {
var hdr = '';
switch (flex.columns[i].binding) {
case 'DTPT_CD_NM':
hdr = '상품명';
break;
case 'GRP_VIEW':
hdr = '소속';
break;
case 'EDUCNT':
hdr = '교육진행중';
break;
case 'INGCNT_15':
hdr = '재직';
break;
case 'INGCNT_10':
hdr = '재직';
break;
case 'INGCNT':
hdr = '재직';
break;
case 'SPYCNT_15':
hdr = '휴직';
break;
case 'SPYCNT_10':
hdr = '휴직';
break;
case 'SPYCNT':
hdr = '휴직';
break;
case 'TOT_15':
hdr = '총';
break;
case 'TOT_10':
hdr = '총';
break;
case 'TOT':
hdr = '총';
break;
case 'STPCNT_15':
hdr = '퇴사관리';
break;
case 'STPCNT_10':
hdr = '퇴사관리';
break;
case 'STPCNT':
hdr = '퇴사관리';
break;
case 'STPCNT7':
hdr = '7차월관리';
break;
case 'TOTCNT7':
hdr = '7차월관리';
break;
case 'RYL7':
hdr = '7차월관리';
break;
}
flex.columnHeaders.setCellData(0, i, hdr);
flex.columnHeaders.columns[i].allowMerging = true;
}
---------------------------------------------------------------------------------------------------
조회후 cell merge.............
function mergeColumn(flex) {
/*for(var i=0; i<flex.rows.length;i++){
flex.rows[i].allowMerging = true;
}*/
var mrgRng = [], count = 0;
var mrgClRng = [];
// for loop for getting range for merging column
for (var i = 0; i < flex.rows.length - 1; i++) {
if (flex.rows[i].dataItem.DTPT_CD_NM == flex.rows[i + 1].dataItem.DTPT_CD_NM) {
count++;
var isContain = false;
for (var j = 0; j < mrgRng.length; j++) {
if (mrgRng[j].DTPT_CD_NM == flex.rows[i].dataItem.DTPT_CD_NM) {
mrgRng[j].count = count;
isContain = true;
}
}
if (!isContain) {
mrgRng.push({ row1: i, DTPT_CD_NM: flex.rows[i].dataItem.DTPT_CD_NM, count: count });
}
}
else {
count = 0;
}
if ( gfn_nvl(flex.rows[i].dataItem.RNUM) =="2" || gfn_nvl(flex.rows[i].dataItem.RNUM) =="3" ) {
flex.rows[i].cssClass = 'phoverRow';
clRng = new wijmo.grid.CellRange(i, 1, i, 1);
mrgClRng.push(clRng);
}
}
// creating cell range based on mergernage
for (var i = 0; i < mrgRng.length; i++) {
var mergeMngr = new wijmo.grid.MergeManager(flex),
clRng = new wijmo.grid.CellRange(mrgRng[i].row1, 0, mrgRng[i].row1 + mrgRng[i].count, 0);
mrgClRng.push(clRng);
}
// calling custom merge manager
mergeMngr.getMergedRange = function (panel, r, c) {
if (panel.cellType == wijmo.grid.CellType.Cell) {
for (var i = 0; i < mrgClRng.length; i++) {
if (r >= 0 && mrgClRng[i].contains(r, c)) {
return mrgClRng[i];
}
}
}
return null;
};
flex.mergeManager = mergeMngr;
//전체 수료 인원 색상 변경
flex.rows[flex.rows.length-1].cssClass = 'choverRow';
clRng = new wijmo.grid.CellRange(flex.rows.length-1, 0, flex.rows.length-1, 1);
mrgClRng.push(clRng);
//$scope.wijmoGrid.refresh();
}
------------------------------------------------------------------------------------------------------------
댓글목록
등록된 댓글이 없습니다.