Browse Source

excel output tuning(variant merge border)

TonyKang 7 năm trước cách đây
mục cha
commit
dd4e2f7777

+ 8 - 5
modules/reports/util/rpt_excel_util.js

@@ -341,7 +341,7 @@ function writeSheets(pageData, paperSize, sharedStrList, stylesObj, isSinglePage
 function writeSheet(pageData, sheetData, paperSize, sharedStrList, stylesObj){
     let rst = [], xPos = [], yPos = [], yMultiPos = [], headerStr = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';
     let cacheBorderCell = {};
-    let currentPageMergePos = null;
+    let currentPageMergePos = null; //在 JV.PAGING_OPTION_INFINITY 场合应用
     let private_pre_analyze_pos = function(){
         let cell, pos;
         let self_analyze_sheet_pos = function (theShtData, theXPos, theYPos) {
@@ -487,7 +487,10 @@ function writeSheet(pageData, sheetData, paperSize, sharedStrList, stylesObj){
         return rst;
     };
     let private_chkAndGetMergeLine = function(cell, sheetBorder, borderStr, needFurtherChk) {
-        let rst = 0, mergeBorder = pageData[JV.BAND_PROP_MERGE_BAND];
+        let rst = 0,
+            mergeBorder = (sheetData[JV.PROP_PAGE_MERGE_BORDER])?sheetData[JV.PROP_PAGE_MERGE_BORDER]:pageData[JV.BAND_PROP_MERGE_BAND],
+            mergeBand = pageData[JV.BAND_PROP_MERGE_BAND]
+        ;
         if (sheetBorder[borderStr] && sheetBorder[borderStr][JV.PROP_LINE_WEIGHT] !== undefined) {
             rst = sheetBorder[borderStr][JV.PROP_LINE_WEIGHT];
         }
@@ -500,7 +503,7 @@ function writeSheet(pageData, sheetData, paperSize, sharedStrList, stylesObj){
                     for (let i = 0; i < topSide.length; i++) {
                         if (cell[JV.PROP_AREA][JV.PROP_TOP] >= topSide[i]) {
                             if (cell[JV.PROP_AREA][JV.PROP_BOTTOM] <= bottomSide[i]) {
-                                let destStyle = pageData[JV.NODE_STYLE_COLLECTION][mergeBorder[JV.PROP_STYLE][JV.PROP_ID]];
+                                let destStyle = pageData[JV.NODE_STYLE_COLLECTION][mergeBand[JV.PROP_STYLE][JV.PROP_ID]];
                                 rst = destStyle[borderStr][JV.PROP_LINE_WEIGHT];
                                 break;
                             }
@@ -509,13 +512,13 @@ function writeSheet(pageData, sheetData, paperSize, sharedStrList, stylesObj){
                         }
                     }
                 } else {
-                    let destStyle = pageData[JV.NODE_STYLE_COLLECTION][mergeBorder[JV.PROP_STYLE][JV.PROP_ID]];
+                    let destStyle = pageData[JV.NODE_STYLE_COLLECTION][mergeBand[JV.PROP_STYLE][JV.PROP_ID]];
                     rst = destStyle[borderStr][JV.PROP_LINE_WEIGHT];
                 }
             }
         } else {
             if (cell[JV.PROP_AREA][borderStr] === mergeBorder[borderStr]) {
-                let destStyle = pageData[JV.NODE_STYLE_COLLECTION][mergeBorder[JV.PROP_STYLE][JV.PROP_ID]];
+                let destStyle = pageData[JV.NODE_STYLE_COLLECTION][mergeBand[JV.PROP_STYLE][JV.PROP_ID]];
                 if (needFurtherChk) {
                     if (cell[JV.PROP_AREA][JV.PROP_TOP] >= mergeBorder[JV.PROP_TOP] &&
                         cell[JV.PROP_AREA][JV.PROP_BOTTOM] <= mergeBorder[JV.PROP_BOTTOM]) {

BIN
web/building_saas/img/FirstPageSimple.cur


BIN
web/building_saas/img/LastPageSimple.cur


BIN
web/building_saas/img/NextPageSimple.cur


BIN
web/building_saas/img/PreviousPageSimple.cur


+ 17 - 11
web/building_saas/report/js/rpt_main.js

@@ -87,16 +87,16 @@ let zTreeOprObj = {
                         } else {
                             canvas.height = size[1] + 50;
                         }
-                        me.showPage(0, canvas);
+                        me.showPage(1, canvas);
                     }
                 }, null, null
             );
         }
     },
-    showPage: function (pageStep, canvas) {
+    showPage: function (pageNum, canvas) {
         let me = zTreeOprObj;
-        if (me.currentPage + pageStep >= 1 && me.currentPage + pageStep <= me.maxPages) {
-            me.currentPage = me.currentPage + pageStep;
+        if (pageNum >= 1 && pageNum <= me.maxPages) {
+            me.currentPage = pageNum;
             JpcCanvasOutput.cleanCanvas(canvas);
             JpcCanvasOutput.drawPageBorder(me.currentRptPageRst, canvas, getScreenDPI());
             JpcCanvasOutput.drawToCanvas(me.currentRptPageRst, canvas, me.currentPage);
@@ -106,12 +106,14 @@ let zTreeOprObj = {
 
 let canvasOprObj = {
     canvasOnMouseMove: function (event) {
-        let x = event.offsetX - JpcCanvasOutput.offsetX,
-            canvas = event.originalTarget
-        ;
-        if (x < 200) {
+        let x = event.offsetX - JpcCanvasOutput.offsetX, canvas = event.originalTarget;
+        if (x < 80) {
+            canvas.style.cursor = "url(/web/building_saas/img/FirstPageSimple.cur), auto";
+        } else if (x < 200) {
             // canvas.style.cursor = "e-resize";
             canvas.style.cursor = "url(/web/building_saas/img/PreviousPageSimple.cur), auto";
+        } else if ((canvas.width - x) < 80) {
+            canvas.style.cursor = "url(/web/building_saas/img/LastPageSimple.cur), auto";
         } else if ((canvas.width - x) < 200) {
             // canvas.style.cursor = "w-resize";
             canvas.style.cursor = "url(/web/building_saas/img/NextPageSimple.cur), auto";
@@ -123,10 +125,14 @@ let canvasOprObj = {
         let x = event.offsetX - JpcCanvasOutput.offsetX,
             //y = event.offsetY - JpcCanvasOutput.offsetY,
             canvas = event.originalTarget;
-        if (x < 300) {
-            zTreeOprObj.showPage(-1, canvas);
-        } else if ((canvas.width - x) < 300) {
+        if (x < 80) {
             zTreeOprObj.showPage(1, canvas);
+        } else if (x < 200) {
+            zTreeOprObj.showPage(zTreeOprObj.currentPage - 1, canvas);
+        } else if ((canvas.width - x) < 80) {
+            zTreeOprObj.showPage(zTreeOprObj.maxPages, canvas);
+        } else if ((canvas.width - x) < 200) {
+            zTreeOprObj.showPage(zTreeOprObj.currentPage + 1, canvas);
         }
     }
 };