EAS Cloud (数据行融合实现)

栏目:eas cloud知识作者:金蝶来源:金蝶云社区发布:2024-09-16浏览:1

EAS Cloud (数据行融合实现)

行融合功能实现 - 实现方式 - 加载整个表格的数据 - 加载完成后,获取全部 作为融合判断依据的列的数据 - 通过td的 rowspan 属性 设置该行的显示占用的行数 - 将融合的其他行 通过 hidden 属性 隐藏 ``` js IndexAssess_loadComplete:function(data){ var dimension=waf("#select").wafSelect("getValue"); //如果查询维度为项目 if(dimension==1){ //列名 区域 b1A c1B c1A var columns=["project"]; //调用融合函数 参数 表格ID 融合判断依据 需要融合的列 _private.mergeTable("editgrid","project",columns); //如果查询维度为分期 dimension = 2 }else{ var columns=["project"]; //调用融合函数 参数 表格ID 融合判断依据 需要融合的列 _private.mergeTable("editgrid","project",columns); } } ////////////////////////////////////行融合开始////////////////////////////////// ////////////////////////////////////行融合开始////////////////////////////////// ////////////////////////////////////行融合开始////////////////////////////////// mergeTable: function(tableKey, key, columns) { //此列值相同,则合并 //获取 表格中 列名为Key 的这一列的全部的值 var columnKeyValues = waf('#' + tableKey).wafGrid('getColValue', key, true); var count = 0; if (columnKeyValues.length <= 1) { return; } //将rootID赋值为 处理为 判断依据 var rootId = columnKeyValues[0].value; if (typeof(rootId) == 'object') { //pxh-20190328 if (rootId.id != null) { //对象 rootId = rootId.id; } else { //枚举 rootId = rootId.value; } } //融合行的起始 行ID var beginRowId = columnKeyValues[0].id; for (var i = 0; i < columnKeyValues.length;) { // 处理 对比的列数据 var keyValue = columnKeyValues[i]; var compareValue = keyValue.value; if (typeof(compareValue) == 'object') { if (keyValue.value.id != null) { compareValue = keyValue.value.id; } else { compareValue = keyValue.value.value; } } //判断是否相等 if (rootId == compareValue) { //需要融合的行数 count++; // 游标的移动 i++; // 如果遍历完成 if (i == columnKeyValues.length) { //执行一次 融合行 _private.mergeRowCells(beginRowId, columns, count, tableKey); } } else { //如果判断到不等的情况 则将之前的行进行一次融合 _private.mergeRowCells(beginRowId, columns, count, tableKey); //并将count 重置为 0 count = 0; var index = i; //如果没有遍历结束 if (index < columnKeyValues.length) { //重置 开始行 id beginRowId = columnKeyValues[index].id; // 重置新的比较依据 rootId = columnKeyValues[index].value; if (typeof(columnKeyValues[index].value) == 'object') { if (columnKeyValues[index].value.id != null) { rootId = columnKeyValues[index].value.id; } else { rootId = columnKeyValues[index].value.value; } } } } } }, // 开始行ID 融合列列名数组 融合行数量 编辑表格ID mergeRowCells: function(rowId, columnNameArray, rowspan, tableKey) { //一列一列的 合并 for (var i = 0; i < columnNameArray.length; i++) { _private.mergeRowCell(rowId, columnNameArray[i], rowspan, tableKey); } }, // 合并单列 合并列列名 mergeRowCell: function(rowId, columnName, rowspan, tableKey) { //获取开始合并的td if (!tableKey) { tableKey = _self.getEntryTableKey(); } var td = waf('#' + tableKey).wafGrid('getCellObject', rowId, columnName); if (!rowspan) { rowspan = 0; } //融合行数 waf(td).attr('rowspan', rowspan); var beginRowIndex = waf('#' + tableKey).wafGrid('getRowIndex', rowId) + 1; //从下一行开始,隐藏td for (var i = 0; i < rowspan - 1; i++) { var nextRowId = waf('#' + tableKey).wafGrid('getRowId', beginRowIndex); var td = waf('#' + tableKey).wafGrid('getCellObject', nextRowId, columnName); waf(td).hide(); beginRowIndex = beginRowIndex + 1; } } /////////////////////////////////////行融合结束/////////////////////////////////// /////////////////////////////////////行融合结束/////////////////////////////////// /////////////////////////////////////行融合结束/////////////////////////////////// ```

EAS Cloud (数据行融合实现)

行融合功能实现- 实现方式 - 加载整个表格的数据 - 加载完成后,获取全部 作为融合判断依据的列的数据 - 通过td的 rowspan 属性 ...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息