Kaynağa Gözat

page border tuning

TonyKang 7 yıl önce
ebeveyn
işleme
8351c8103f

+ 21 - 3
modules/reports/rpt_component/jpc_ex.js

@@ -208,6 +208,18 @@ JpcExSrv.prototype.createNew = function(){
     };
     JpcResult.outputAsSimpleJSONPage = function(rptTpl, dataObj, bands, page, controls) {
         let me = this, rst = null;
+        function getPageMergeBorder() {
+            let rst = null;
+            if (bands[JV.BAND_PROP_MERGE_BAND]) {
+                let mergedBand = bands[JV.BAND_PROP_MERGE_BAND];
+                rst = {};
+                rst[JV.PROP_LEFT] = parseInt(mergedBand[JV.PROP_LEFT].toFixed(0));
+                rst[JV.PROP_RIGHT] = parseInt(mergedBand[JV.PROP_RIGHT].toFixed(0));
+                rst[JV.PROP_TOP] = parseInt(mergedBand[JV.PROP_TOP].toFixed(0));
+                rst[JV.PROP_BOTTOM] = parseInt(mergedBand[JV.PROP_BOTTOM].toFixed(0));
+            }
+            return rst;
+        }
         if (me.totalPages >= page) {
             rst = {};
             rst[JV.PROP_PAGE_SEQ] = page;
@@ -218,7 +230,7 @@ JpcExSrv.prototype.createNew = function(){
                     if (me.flowTab.paging_option === JV.PAGING_OPTION_INFINITY) {
                         adHocMergePos = {};
                     }
-                    rst.cells = me.flowTab.outputAsSimpleJSONPage(rptTpl, dataObj, page, bands, controls, adHocMergePos, me);
+                    rst[JV.PROP_CELLS] = me.flowTab.outputAsSimpleJSONPage(rptTpl, dataObj, page, bands, controls, adHocMergePos, me);
                     if (adHocMergePos) {
                         adHocMergePos[JV.NODE_PAGE_SIZE] = JpcCommonHelper.getPageSize(rptTpl);
                         rst[JV.PAGE_SPECIAL_MERGE_POS] = adHocMergePos;
@@ -226,14 +238,20 @@ JpcExSrv.prototype.createNew = function(){
 
                 } else {
                     if (!me.isFollowMode) {
-                        rst.cells = me.flowTabEx.outputAsSimpleJSONPage(rptTpl, dataObj, page - (me.totalPages - me.exTotalPages), bands, controls, adHocMergePos, me);
+                        rst[JV.PROP_CELLS] = me.flowTabEx.outputAsSimpleJSONPage(rptTpl, dataObj, page - (me.totalPages - me.exTotalPages), bands, controls, adHocMergePos, me);
                     }
                 }
             } else if (me.crossTab) {
-                rst.cells = me.crossTab.outputAsSimpleJSONPage(rptTpl, dataObj, page, bands, controls, me);
+                rst[JV.PROP_CELLS] = me.crossTab.outputAsSimpleJSONPage(rptTpl, dataObj, page, bands, controls, me);
             } else if (me.billTab) {
                 //
             }
+            if (!(me.flowTab && me.flowTab.paging_option === JV.PAGING_OPTION_INFINITY)) {
+                let pageMergeBorder = getPageMergeBorder();
+                if (pageMergeBorder) {
+                    rst[JV.PROP_PAGE_MERGE_BORDER] = pageMergeBorder;
+                }
+            }
         }
         return rst;
     };

+ 2 - 2
modules/reports/util/rpt_construct_data_util.js

@@ -556,11 +556,11 @@ function sortData(sourceData, sortCfg, prjData) {
                             }
                         } else if (sort[JV.PROP_SORT_TYPE] === 'self_define') {
                             for (let subArr of sortedRstArr) {
-                                console.log(subArr);
+                                // console.log(subArr);
                                 let selfDefFunc = null;
                                 eval('selfDefFunc = ' + sort[JV.PROP_SORT_TYPE_SELF_DEFINE_LOGIC]);
                                 subArr.sort(selfDefFunc);
-                                console.log(subArr);
+                                // console.log(subArr);
                             }
                         }
                     }

+ 1 - 0
public/web/rpt_value_define.js

@@ -243,6 +243,7 @@ const JV = {
     OFFSET_IDX_BOTTOM: 3,
 
     PROP_PAGE_SEQ: "page_seq",
+    PROP_PAGE_MERGE_BORDER: "page_merge_border",
     PROP_CELLS: "cells",
 
     PAGING_OPTION_NORMAL: 'normal',

+ 1 - 1
test/unit/reports/test_tpl_09_1.js

@@ -132,7 +132,7 @@ test('测试 - 测试模板啦: ', function (t) {
                     let maxPages = printCom.totalPages;
                     let pageRst = printCom.outputAsSimpleJSONPageArray(rptTpl, tplData, 1, maxPages, defProperties);
                     if (pageRst) {
-                        fsUtil.wirteObjToFile(pageRst, "D:/GitHome/ConstructionCost/tmp/testBuiltPageResult.js");
+                        // fsUtil.wirteObjToFile(pageRst, "D:/GitHome/ConstructionCost/tmp/testBuiltPageResult.js");
                     } else {
                         console.log("oh! no pages were created!")
                     }

+ 18 - 1
web/building_saas/report/js/jpc_output.js

@@ -175,6 +175,15 @@ let JpcCanvasOutput = {
             private_drawCellText(cell, fonts, controls);
             ctx.restore();
         }
+        function getIniPageMergeBorder(mergedBand) {
+            let rst = {};
+            rst[JV.PROP_LEFT] = mergedBand[JV.PROP_LEFT];
+            rst[JV.PROP_RIGHT] = mergedBand[JV.PROP_RIGHT];
+            rst[JV.PROP_TOP] = mergedBand[JV.PROP_TOP];
+            rst[JV.PROP_BOTTOM] = mergedBand[JV.PROP_BOTTOM];
+            rst[JV.PROP_STYLE] = mergedBand[JV.PROP_STYLE];
+            return rst;
+        }
 
         if (pageObj && pageObj.items.length > 0 && canvas && pageObj.items.length >= pageIdx) {
             let page = pageObj.items[pageIdx - 1],
@@ -182,9 +191,17 @@ let JpcCanvasOutput = {
                 styles = pageObj[JV.NODE_STYLE_COLLECTION],
                 controls = pageObj[JV.NODE_CONTROL_COLLECTION],
                 mergedBand = pageObj[JV.BAND_PROP_MERGE_BAND];
+            let newPageMergeBand = getIniPageMergeBorder(mergedBand);
+            if (page[JV.PROP_PAGE_MERGE_BORDER]) {
+                newPageMergeBand[JV.PROP_LEFT] = page[JV.PROP_PAGE_MERGE_BORDER][JV.PROP_LEFT];
+                newPageMergeBand[JV.PROP_RIGHT] = page[JV.PROP_PAGE_MERGE_BORDER][JV.PROP_RIGHT];
+                newPageMergeBand[JV.PROP_TOP] = page[JV.PROP_PAGE_MERGE_BORDER][JV.PROP_TOP];
+                newPageMergeBand[JV.PROP_BOTTOM] = page[JV.PROP_PAGE_MERGE_BORDER][JV.PROP_BOTTOM];
+            }
             for (let j = 0; j < page.cells.length; j++) {
                 let cell = page.cells[j];
-                private_drawCell(cell, fonts, styles, controls, mergedBand);
+                // private_drawCell(cell, fonts, styles, controls, mergedBand);
+                private_drawCell(cell, fonts, styles, controls, newPageMergeBand);
             }
         }
     },

+ 1 - 0
web/building_saas/report/js/jpc_output_value_define.js

@@ -13,6 +13,7 @@ let JV = {
     NODE_CONTROL_COLLECTION: "control_collection",
 
     BAND_PROP_MERGE_BAND: "MergeBand",
+    PROP_PAGE_MERGE_BORDER: "page_merge_border",
 
     PROP_NAME: "Name",
     PROP_VALUE: "Value",