|
@@ -87,7 +87,7 @@ let visualJumbo = {
|
|
|
for (let iCol = 0; iCol < sheet.getColumnCount(); iCol++) {
|
|
|
let cell = sheet.getCell(iRow, iCol);
|
|
|
if (cell.backColor() === 'LightGray' || cell.backColor() === 'LightCyan') {
|
|
|
- visualCommonOprObj.setupBorder(sheet.getCell(iRow, iCol), border);
|
|
|
+ // visualCommonOprObj.setupBorder(sheet.getCell(iRow, iCol), border); //在优化后就不需要在这里硬设边框,原先是不合理的
|
|
|
} else if (cell.backColor() === 'White') {
|
|
|
sheet.addSpan(iRow, 0, 1, sheet.getColumnCount());
|
|
|
break;
|
|
@@ -499,7 +499,6 @@ let visualJumbo = {
|
|
|
sheet = me.tplWorkBook.getActiveSheet();
|
|
|
let selectedRanges = sheet.getSelections();
|
|
|
if (selectedRanges.length > 0) {
|
|
|
- let cell = sheet.getCell(selectedRanges[0].row, selectedRanges[0].col);
|
|
|
if (fontAttr === "自定义") {
|
|
|
fontAttr = {};
|
|
|
fontAttr[JV.FONT_PROPS[JV.FONT_PROP_IDX_NAME]] = "宋体";
|
|
@@ -511,13 +510,37 @@ let visualJumbo = {
|
|
|
fontAttr[JV.FONT_PROPS[JV.FONT_PROP_IDX_STRIKEOUT]] = "F"; //strikeout
|
|
|
fontAttr[JV.FONT_PROPS[JV.FONT_PROP_IDX_ANGLE]] = 0; //angle
|
|
|
}
|
|
|
- me.bandMappingObj.fontAttr[selectedRanges[0].row + "_" + selectedRanges[0].col + "_font"] = fontAttr;
|
|
|
+ /*
|
|
|
+ me.bandMappingObj.fontAttr[selectedRanges[0].row + "_" + selectedRanges[0].col + "_font"] = fontAttr;
|
|
|
+ me._setupFont(fontAttr);
|
|
|
+ if (typeof fontAttr === 'string') {
|
|
|
+ let idx = rpt_tpl_cfg_helper.reportCfg.fontArr.indexOf(fontAttr);
|
|
|
+ fontAttr = rpt_tpl_cfg_helper.reportCfg.fonts[idx];
|
|
|
+ }
|
|
|
+ let cell = sheet.getCell(selectedRanges[0].row, selectedRanges[0].col);
|
|
|
+ me.private_setup_cell_font(cell, fontAttr);
|
|
|
+ /*/
|
|
|
me._setupFont(fontAttr);
|
|
|
if (typeof fontAttr === 'string') {
|
|
|
let idx = rpt_tpl_cfg_helper.reportCfg.fontArr.indexOf(fontAttr);
|
|
|
fontAttr = rpt_tpl_cfg_helper.reportCfg.fonts[idx];
|
|
|
}
|
|
|
- me.private_setup_cell_font(cell, fontAttr);
|
|
|
+ for (let selIdx = 0; selIdx < selectedRanges.length; selIdx++) {
|
|
|
+ let startRow = selectedRanges[selIdx].row;
|
|
|
+ for (let rowIdx = 0; rowIdx < selectedRanges[selIdx].rowCount; rowIdx++) {
|
|
|
+ let startCol = selectedRanges[selIdx].col;
|
|
|
+ for (let colIdx = 0; colIdx < selectedRanges[selIdx].colCount; colIdx++) {
|
|
|
+ if (dom.value === '自定义') {
|
|
|
+ me.bandMappingObj.fontAttr[(startRow + rowIdx) + "_" + (startCol + colIdx) + "_font"] = fontAttr;
|
|
|
+ } else {
|
|
|
+ me.bandMappingObj.fontAttr[(startRow + rowIdx) + "_" + (startCol + colIdx) + "_font"] = dom.value;
|
|
|
+ }
|
|
|
+ let cell = sheet.getCell(startRow + rowIdx, startCol + colIdx);
|
|
|
+ me.private_setup_cell_font(cell, fontAttr);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //*/
|
|
|
}
|
|
|
},
|
|
|
setupCellFont: function () {
|
|
@@ -668,9 +691,38 @@ let visualJumbo = {
|
|
|
borderLine.style = GC.Spread.Sheets.LineStyle.thin;
|
|
|
borderThick.style = GC.Spread.Sheets.LineStyle.thick;
|
|
|
|
|
|
- let cellRange = new GC.Spread.Sheets.CellRange(sheet, selectedRanges[0].row, selectedRanges[0].col, selectedRanges[0].rowCount, selectedRanges[0].colCount);
|
|
|
+ /*
|
|
|
+ let cellRange = new GC.Spread.Sheets.CellRange(sheet, selectedRanges[0].row, selectedRanges[0].col, selectedRanges[0].rowCount, selectedRanges[0].colCount);
|
|
|
|
|
|
- const _setCB = function (lineThick, borderObj) {
|
|
|
+ const _setCB = function (lineThick, borderObj) {
|
|
|
+ if (lineThick === 0) {
|
|
|
+ cellRange.setBorder(borderEmpty, borderObj);
|
|
|
+ } else if (lineThick === 1) {
|
|
|
+ cellRange.setBorder(borderLine, borderObj);
|
|
|
+ } else {
|
|
|
+ cellRange.setBorder(borderThick, borderObj);
|
|
|
+ }
|
|
|
+ };
|
|
|
+ for (let borderLine of borderObj[JV.PROP_BORDER_STYLE]) {
|
|
|
+ switch (borderLine[JV.PROP_POSITION]) {
|
|
|
+ case JV.PROP_LEFT:
|
|
|
+ _setCB(parseInt(borderLine[JV.PROP_LINE_WEIGHT]), {left: true});
|
|
|
+ break;
|
|
|
+ case JV.PROP_RIGHT:
|
|
|
+ _setCB(parseInt(borderLine[JV.PROP_LINE_WEIGHT]), {right: true});
|
|
|
+ break;
|
|
|
+ case JV.PROP_TOP:
|
|
|
+ _setCB(parseInt(borderLine[JV.PROP_LINE_WEIGHT]), {top: true});
|
|
|
+ break;
|
|
|
+ case JV.PROP_BOTTOM:
|
|
|
+ _setCB(parseInt(borderLine[JV.PROP_LINE_WEIGHT]), {bottom: true});
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ /*/
|
|
|
+ const _setCB = function (lineThick, borderObj, cellRange) {
|
|
|
if (lineThick === 0) {
|
|
|
cellRange.setBorder(borderEmpty, borderObj);
|
|
|
} else if (lineThick === 1) {
|
|
@@ -679,24 +731,32 @@ let visualJumbo = {
|
|
|
cellRange.setBorder(borderThick, borderObj);
|
|
|
}
|
|
|
};
|
|
|
- for (let borderLine of borderObj[JV.PROP_BORDER_STYLE]) {
|
|
|
- switch (borderLine[JV.PROP_POSITION]) {
|
|
|
- case JV.PROP_LEFT:
|
|
|
- _setCB(parseInt(borderLine[JV.PROP_LINE_WEIGHT]), {left: true});
|
|
|
- break;
|
|
|
- case JV.PROP_RIGHT:
|
|
|
- _setCB(parseInt(borderLine[JV.PROP_LINE_WEIGHT]), {right: true});
|
|
|
- break;
|
|
|
- case JV.PROP_TOP:
|
|
|
- _setCB(parseInt(borderLine[JV.PROP_LINE_WEIGHT]), {top: true});
|
|
|
- break;
|
|
|
- case JV.PROP_BOTTOM:
|
|
|
- _setCB(parseInt(borderLine[JV.PROP_LINE_WEIGHT]), {bottom: true});
|
|
|
- break;
|
|
|
- default:
|
|
|
- break;
|
|
|
+ let startRow = selectedRanges[0].row;
|
|
|
+ for (let rowIdx = 0; rowIdx < selectedRanges[0].rowCount; rowIdx++) {
|
|
|
+ let startCol = selectedRanges[0].col;
|
|
|
+ for (let colIdx = 0; colIdx < selectedRanges[0].colCount; colIdx++) {
|
|
|
+ let cellRange = new GC.Spread.Sheets.CellRange(sheet, startRow + rowIdx, startCol + colIdx, 1, 1);
|
|
|
+ for (let borderLine of borderObj[JV.PROP_BORDER_STYLE]) {
|
|
|
+ switch (borderLine[JV.PROP_POSITION]) {
|
|
|
+ case JV.PROP_LEFT:
|
|
|
+ _setCB(parseInt(borderLine[JV.PROP_LINE_WEIGHT]), {left: true}, cellRange);
|
|
|
+ break;
|
|
|
+ case JV.PROP_RIGHT:
|
|
|
+ _setCB(parseInt(borderLine[JV.PROP_LINE_WEIGHT]), {right: true}, cellRange);
|
|
|
+ break;
|
|
|
+ case JV.PROP_TOP:
|
|
|
+ _setCB(parseInt(borderLine[JV.PROP_LINE_WEIGHT]), {top: true}, cellRange);
|
|
|
+ break;
|
|
|
+ case JV.PROP_BOTTOM:
|
|
|
+ _setCB(parseInt(borderLine[JV.PROP_LINE_WEIGHT]), {bottom: true}, cellRange);
|
|
|
+ break;
|
|
|
+ default:
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
+ //*/
|
|
|
sheet.resumePaint();
|
|
|
}
|
|
|
},
|
|
@@ -832,15 +892,33 @@ let visualJumbo = {
|
|
|
sheet = me.tplWorkBook.getActiveSheet();
|
|
|
let selectedRanges = sheet.getSelections();
|
|
|
if (selectedRanges.length > 0) {
|
|
|
- // let cell = sheet.getCell(selectedRanges[0].row, selectedRanges[0].col);
|
|
|
- me.bandMappingObj.borderAttr[selectedRanges[0].row + "_" + selectedRanges[0].col + "_border"] = borderAttr;
|
|
|
+ /*
|
|
|
+ // let cell = sheet.getCell(selectedRanges[0].row, selectedRanges[0].col);
|
|
|
+ me.bandMappingObj.borderAttr[selectedRanges[0].row + "_" + selectedRanges[0].col + "_border"] = borderAttr;
|
|
|
+ me._setupBorder(borderAttr);
|
|
|
+ // 然后要设置相关Cell的边框
|
|
|
+ if (typeof borderAttr === 'string') {
|
|
|
+ let idx = rpt_tpl_cfg_helper.reportCfg.borderArr.indexOf(borderAttr);
|
|
|
+ borderAttr = rpt_tpl_cfg_helper.reportCfg.styles[idx];
|
|
|
+ }
|
|
|
+ me._setupCellBorderEx(borderAttr);
|
|
|
+ /*/
|
|
|
me._setupBorder(borderAttr);
|
|
|
- // 然后要设置相关Cell的边框
|
|
|
if (typeof borderAttr === 'string') {
|
|
|
let idx = rpt_tpl_cfg_helper.reportCfg.borderArr.indexOf(borderAttr);
|
|
|
borderAttr = rpt_tpl_cfg_helper.reportCfg.styles[idx];
|
|
|
}
|
|
|
+ for (let selIdx = 0; selIdx < selectedRanges.length; selIdx++) {
|
|
|
+ let startRow = selectedRanges[selIdx].row;
|
|
|
+ for (let rowIdx = 0; rowIdx < selectedRanges[selIdx].rowCount; rowIdx++) {
|
|
|
+ let startCol = selectedRanges[selIdx].col;
|
|
|
+ for (let colIdx = 0; colIdx < selectedRanges[selIdx].colCount; colIdx++) {
|
|
|
+ me.bandMappingObj.borderAttr[(startRow + rowIdx) + "_" + (startCol + colIdx) + "_border"] = dom.value;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
me._setupCellBorderEx(borderAttr);
|
|
|
+ //*/
|
|
|
}
|
|
|
},
|
|
|
changeControlEx: function (dom) {
|
|
@@ -848,14 +926,32 @@ let visualJumbo = {
|
|
|
sheet = me.tplWorkBook.getActiveSheet();
|
|
|
let selectedRanges = sheet.getSelections();
|
|
|
if (selectedRanges.length > 0) {
|
|
|
- me.bandMappingObj.ctrlAttr[selectedRanges[0].row + "_" + selectedRanges[0].col + "_ctrl"] = ctrlAttr;
|
|
|
+ /*
|
|
|
+ me.bandMappingObj.ctrlAttr[selectedRanges[0].row + "_" + selectedRanges[0].col + "_ctrl"] = ctrlAttr;
|
|
|
+ me._setupCtrl(ctrlAttr);
|
|
|
+ // 然后要设置相关Cell的上下左右控制(就是原setupCellAlignment)
|
|
|
+ if (typeof ctrlAttr === 'string') {
|
|
|
+ let idx = rpt_tpl_cfg_helper.reportCfg.controlArr.indexOf(ctrlAttr);
|
|
|
+ ctrlAttr = rpt_tpl_cfg_helper.reportCfg.ctrls[idx];
|
|
|
+ }
|
|
|
+ me._setupCellCtrlEx(ctrlAttr);
|
|
|
+ /*/
|
|
|
me._setupCtrl(ctrlAttr);
|
|
|
- // 然后要设置相关Cell的上下左右控制(就是原setupCellAlignment)
|
|
|
if (typeof ctrlAttr === 'string') {
|
|
|
let idx = rpt_tpl_cfg_helper.reportCfg.controlArr.indexOf(ctrlAttr);
|
|
|
ctrlAttr = rpt_tpl_cfg_helper.reportCfg.ctrls[idx];
|
|
|
}
|
|
|
+ for (let selIdx = 0; selIdx < selectedRanges.length; selIdx++) {
|
|
|
+ let startRow = selectedRanges[selIdx].row;
|
|
|
+ for (let rowIdx = 0; rowIdx < selectedRanges[selIdx].rowCount; rowIdx++) {
|
|
|
+ let startCol = selectedRanges[selIdx].col;
|
|
|
+ for (let colIdx = 0; colIdx < selectedRanges[selIdx].colCount; colIdx++) {
|
|
|
+ me.bandMappingObj.ctrlAttr[(startRow + rowIdx) + "_" + (startCol + colIdx) + "_ctrl"] = dom.value;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
me._setupCellCtrlEx(ctrlAttr);
|
|
|
+ //*/
|
|
|
}
|
|
|
},
|
|
|
changeHAlign: function (dom) {
|