|
|
@@ -536,6 +536,7 @@ JpcCrossTabSrv.prototype.createNew = function(){
|
|
|
for (let i = 0; i < me.col_fields_idx.length; i++) {
|
|
|
let tab_field = tab_fields[i];
|
|
|
if (!(tab_field[JV.PROP_HIDDEN])) {
|
|
|
+ let mergedRst = [];
|
|
|
let data_field = null;
|
|
|
let map_data_field = JE.F(tab_field[JV.PROP_FIELD_ID], $CURRENT_RPT);
|
|
|
if (typeof me.col_fields_idx[i] !== 'object') {
|
|
|
@@ -560,20 +561,35 @@ JpcCrossTabSrv.prototype.createNew = function(){
|
|
|
} else {
|
|
|
if (colIdx === 0) JpcFieldHelper.resetFormat(tab_field, map_data_field, customizeCfg);
|
|
|
}
|
|
|
- rst.push(me.outputTabField(band, tab_field, data_field, valuesIdx[colIdx], -1, 1, 0, cols, colIdx, unitFactor, false, controls));
|
|
|
+ mergedRst.push(me.outputTabField(band, tab_field, data_field, valuesIdx[colIdx], -1, 1, 0, cols, colIdx, unitFactor, false, controls));
|
|
|
+ //rst.push(me.outputTabField(band, tab_field, data_field, valuesIdx[colIdx], -1, 1, 0, cols, colIdx, unitFactor, false, controls));
|
|
|
//2. output texts
|
|
|
if (firstTextOutput) {
|
|
|
if (tab[JV.PROP_TEXT]) {
|
|
|
+ // mergedRst.push(JpcTextHelper.outputText(tab[JV.PROP_TEXT], band, unitFactor, 1, 0, cols, colIdx, 1, 0));
|
|
|
rst.push(JpcTextHelper.outputText(tab[JV.PROP_TEXT], band, unitFactor, 1, 0, cols, colIdx, 1, 0));
|
|
|
}
|
|
|
if (tab[JV.PROP_TEXTS]) {
|
|
|
for (let j = 0; j < tab[JV.PROP_TEXTS].length; j++) {
|
|
|
+ // mergedRst.push(JpcTextHelper.outputText(tab[JV.PROP_TEXTS][j], band, unitFactor, 1, 0, cols, colIdx, 1, 0));
|
|
|
rst.push(JpcTextHelper.outputText(tab[JV.PROP_TEXTS][j], band, unitFactor, 1, 0, cols, colIdx, 1, 0));
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
firstTextOutput = false;
|
|
|
+ //判断是否需要合并
|
|
|
+ if (tab_field[JV.PROP_IS_MERGE] && mergedRst.length > 1) {
|
|
|
+ let lastCell = mergedRst[mergedRst.length - 1];
|
|
|
+ for (let mergeIdx = mergedRst.length - 2; mergeIdx >= 0; mergeIdx--) {
|
|
|
+ if (lastCell[JV.PROP_VALUE] === mergedRst[mergeIdx][JV.PROP_VALUE]) {
|
|
|
+ mergedRst[mergeIdx][JV.PROP_AREA][JV.PROP_RIGHT] = lastCell[JV.PROP_AREA][JV.PROP_RIGHT];
|
|
|
+ mergedRst.splice(mergeIdx + 1, 1);
|
|
|
+ }
|
|
|
+ lastCell = mergedRst[mergeIdx];
|
|
|
+ }
|
|
|
+ }
|
|
|
+ rst = rst.concat(mergedRst);
|
|
|
}
|
|
|
}
|
|
|
}
|