瀏覽代碼

增加group事件

TonyKang 5 年之前
父節點
當前提交
b381560199

+ 48 - 8
app/public/report/js/rpt_main.js

@@ -29,8 +29,8 @@ let rptTplObj = {
             dynamicLoadJs('/public/jspdf/Arial Narrow-italic.js');
             dynamicLoadJs('/public/jspdf/Arial Narrow-italic.js');
             dynamicLoadJs('/public/jspdf/Arial Narrow-bolditalic.js');
             dynamicLoadJs('/public/jspdf/Arial Narrow-bolditalic.js');
 
 
-            dynamicLoadJs('/public/jspdf/SmartSimsun-normal.js');
-            dynamicLoadJs('/public/jspdf/SmartSimsun-bold.js', me.pdfFontSimsunCallBack);
+            // dynamicLoadJs('/public/jspdf/SmartSimsun-normal.js');
+            // dynamicLoadJs('/public/jspdf/SmartSimsun-bold.js', me.pdfFontSimsunCallBack);
         }
         }
     },
     },
     pdfFontSimsunCallBack: function() {
     pdfFontSimsunCallBack: function() {
@@ -530,6 +530,28 @@ let rptControlObj = {
             me.getAllIndividualExcelBook();
             me.getAllIndividualExcelBook();
         }
         }
     },
     },
+    getPdfFontCallback: function(fontProperty) {
+        let me = rptControlObj;
+        rptTplObj.pdfFont['SmartSimsun'].push(fontProperty);
+        if (rptTplObj.pdfFont['SmartSimsun'].length === 2) {
+            me.getPDFEx();
+        }
+    },
+    getPDFPre: function () {
+        let me = rptControlObj;
+        // $.bootstrapLoading.start();
+        if (rptTplObj.pdfFont['SmartSimsun'].length === 2) {
+            me.getPDFEx();
+        } else {
+            // dynamicLoadJs('/public/jspdf/SmartSimsun-normal.js');
+            // dynamicLoadJs('/public/jspdf/SmartSimsun-bold.js', me.pdfFontSimsunCallBack);
+
+            dynamicLoadJs('/public/jspdf/SmartSimsun-normal.js',"normal", me.getPdfFontCallback);
+            dynamicLoadJs('/public/jspdf/SmartSimsun-bold.js',"bold", me.getPdfFontCallback);
+            // dynamicLoadJs('http://d2.smartcost.com.cn/cach/SmartSimsun-normal.js', me.getPdfFontCallback('normal'));
+            // dynamicLoadJs('http://d2.smartcost.com.cn/cach/SmartSimsun-bold.js', me.getPdfFontCallback('bold'));
+        }
+    },
     getPDFEx: function () {
     getPDFEx: function () {
         let me = rptControlObj;
         let me = rptControlObj;
         if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0) {
         if (zTreeOprObj.checkedRptTplNodes && zTreeOprObj.checkedRptTplNodes.length > 0) {
@@ -542,6 +564,7 @@ let rptControlObj = {
                 delete params.orientation; // 打印时有勾选的话,不需要提供方向
                 delete params.orientation; // 打印时有勾选的话,不需要提供方向
                 CommonAjax.postXsrfEx("/tender/report_api/getMultiReports", params, 60000, true, getCookie('csrfToken'),
                 CommonAjax.postXsrfEx("/tender/report_api/getMultiReports", params, 60000, true, getCookie('csrfToken'),
                     function(result){
                     function(result){
+                        // $.bootstrapLoading.end();
                         let pageSize = rptControlObj.getCurrentPageSize();
                         let pageSize = rptControlObj.getCurrentPageSize();
                         for (const signatureRel of result.signatureRelInfo) {
                         for (const signatureRel of result.signatureRelInfo) {
                             signatureRelArr.push(JSON.parse(signatureRel.rel_content));
                             signatureRelArr.push(JSON.parse(signatureRel.rel_content));
@@ -552,9 +575,11 @@ let rptControlObj = {
                         }
                         }
                     },
                     },
                     function(failRst){
                     function(failRst){
+                        // $.bootstrapLoading.end();
                         console.log(failRst);
                         console.log(failRst);
                     },
                     },
                     function(exceptionRst){
                     function(exceptionRst){
+                        // $.bootstrapLoading.end();
                         console.log(exceptionRst);
                         console.log(exceptionRst);
                     }
                     }
                 );
                 );
@@ -563,6 +588,7 @@ let rptControlObj = {
                 let pageSize = rptControlObj.getCurrentPageSize();
                 let pageSize = rptControlObj.getCurrentPageSize();
                 let pageData = zTreeOprObj.currentRptPageRst;
                 let pageData = zTreeOprObj.currentRptPageRst;
                 signatureRelArr.push(ROLE_REL_LIST);
                 signatureRelArr.push(ROLE_REL_LIST);
+                // $.bootstrapLoading.end();
                 JpcJsPDFHelper.outputAsPdf(pageData, pageSize, rpt_names[0], signatureRelArr);
                 JpcJsPDFHelper.outputAsPdf(pageData, pageSize, rpt_names[0], signatureRelArr);
             }
             }
         }
         }
@@ -687,17 +713,31 @@ function downloadReport(urls) {
     private_download();
     private_download();
 }
 }
 
 
-function dynamicLoadJs(url, callback) {
+// function dynamicLoadJs(url, callback) {
+//     let head = document.getElementsByTagName('head')[0];
+//     let script = document.createElement('script');
+//     script.type = 'text/javascript';
+//     script.src = url;
+//     if(callback) {
+//         script.onload = script.onreadystatechange = function () {
+//             if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete"){
+//                 callback();
+//                 script.onload = script.onreadystatechange = null;
+//             }
+//         };
+//     }
+//     head.appendChild(script);
+// }
+
+function dynamicLoadJs(url, type, callback) {
     let head = document.getElementsByTagName('head')[0];
     let head = document.getElementsByTagName('head')[0];
     let script = document.createElement('script');
     let script = document.createElement('script');
     script.type = 'text/javascript';
     script.type = 'text/javascript';
     script.src = url;
     script.src = url;
     if(callback) {
     if(callback) {
-        script.onload = script.onreadystatechange = function () {
-            if (!this.readyState || this.readyState === "loaded" || this.readyState === "complete"){
-                callback();
-                script.onload = script.onreadystatechange = null;
-            }
+        script.onload = script.onreadystatechange = function (event) {
+            callback(type);
+            script.onload = script.onreadystatechange = null;
         };
         };
     }
     }
     head.appendChild(script);
     head.appendChild(script);

+ 26 - 17
app/reports/rpt_component/jpc_flow_tab.js

@@ -1139,7 +1139,7 @@ JpcFlowTabSrv.prototype.createNew = function() {
                 }
                 }
                 me.pageSumValLst.push(rowGrandTotal);
                 me.pageSumValLst.push(rowGrandTotal);
                 // grouping content
                 // grouping content
-                let grpVal_Idx = 0;
+                let grpCntIdx = 0;
                 for (let rowIdx = 0; rowIdx < contentValuesIdx.length; rowIdx++) {
                 for (let rowIdx = 0; rowIdx < contentValuesIdx.length; rowIdx++) {
                     if (contentValuesIdx[rowIdx][1] === JV.DISPLAY_VAL_TYPE_GROUP) {
                     if (contentValuesIdx[rowIdx][1] === JV.DISPLAY_VAL_TYPE_GROUP) {
                         for (let grpIdx = 0; grpIdx < rptTpl[FLOW_NODE_STR][JV.NODE_FLOW_GROUP][JV.PROP_GROUP_LINES].length; grpIdx++) {
                         for (let grpIdx = 0; grpIdx < rptTpl[FLOW_NODE_STR][JV.NODE_FLOW_GROUP][JV.PROP_GROUP_LINES].length; grpIdx++) {
@@ -1155,11 +1155,11 @@ JpcFlowTabSrv.prototype.createNew = function() {
                                         }
                                         }
                                     }
                                     }
                                 }
                                 }
-                                const lineRst = me.outputTabGrpLine(band, grp_line, page, contentValuesIdx[rowIdx], contentValuesIdx.length, rowIdx, 1, 0, unitFactor, true, controls, multiColIdx, grpVal_Idx, $CURRENT_RPT);
-                                grpVal_Idx++;
+                                const lineRst = me.outputTabGrpLine(band, grp_line, page, contentValuesIdx[rowIdx], contentValuesIdx.length, rowIdx, 1, 0, unitFactor, true, controls, multiColIdx, grpCntIdx, $CURRENT_RPT, dataObj);
                                 rst = rst.concat(lineRst);
                                 rst = rst.concat(lineRst);
                             }
                             }
                         }
                         }
+                        grpCntIdx++;
                     }
                     }
                 }
                 }
             }
             }
@@ -1324,7 +1324,7 @@ JpcFlowTabSrv.prototype.createNew = function() {
         }
         }
         return rst;
         return rst;
     };
     };
-    JpcFlowTabResult.outputTabGrpLine = function(band, grp_line, page, grpValueIdx, rows, rowIdx, cols, colIdx, unitFactor, isRow, controls, multiColIdx, grpVal_Idx, $CURRENT_RPT) {
+    JpcFlowTabResult.outputTabGrpLine = function(band, grp_line, page, grpValueIdx, rows, rowIdx, cols, colIdx, unitFactor, isRow, controls, multiColIdx, grpCntIdx, $CURRENT_RPT, $CURRENT_DATA) {
         const me = this;
         const me = this;
         const rst = [];
         const rst = [];
         if (grp_line[JV.PROP_GROUP_SUM_KEYS]) {
         if (grp_line[JV.PROP_GROUP_SUM_KEYS]) {
@@ -1338,13 +1338,11 @@ JpcFlowTabSrv.prototype.createNew = function() {
             }
             }
         }
         }
         if (grp_line[JV.PROP_TEXTS]) {
         if (grp_line[JV.PROP_TEXTS]) {
-            for (let grpIdx = 0; grpIdx < grp_line[JV.PROP_TEXTS].length; grpIdx++) {
-                const txt = grp_line[JV.PROP_TEXTS][grpIdx];
-                const rstCell = JpcTextHelper.outputText(txt, band, unitFactor, rows, rowIdx, cols, colIdx, me.multiCols, multiColIdx);
-                if ($CURRENT_RPT.events[JV.EVENT_TYPE[JV.EVENT_IDX_GRP_ON_CREATE]]) {
-                    me.eventGrpOnCreate(rstCell, JV.EVENT_TYPE[JV.EVENT_IDX_GRP_ON_CREATE], grpIdx, grpVal_Idx, $CURRENT_RPT);
-                }
-                rst.push(rstCell);
+            for (const txt of grp_line[JV.PROP_TEXTS]) {
+                me.checkGrpTxtOutEvent(JV.RUN_TYPE_BEFORE_GROUP_TEXT_OUT, txt, grpCntIdx, $CURRENT_RPT, $CURRENT_DATA);
+                rst.push(JpcTextHelper.outputText(txt, band, unitFactor, rows, rowIdx, cols, colIdx, me.multiCols, multiColIdx));
+                // me.combinePageCells(rst, verticalCombinePos, horizonCombinePos);
+                // 可能会有一个After,但意义不大,用不着
             }
             }
         }
         }
         if (grp_line[JV.PROP_DISCRETE_FIELDS]) {
         if (grp_line[JV.PROP_DISCRETE_FIELDS]) {
@@ -1356,15 +1354,26 @@ JpcFlowTabSrv.prototype.createNew = function() {
         // console.log(rst);
         // console.log(rst);
         return rst;
         return rst;
     };
     };
-    JpcFlowTabResult.eventGrpOnCreate = function(_$CELL, _$GRP_TYPE, _$GRP_OBJ_IDX, _$GRP_VAL_IDX, $CURRENT_RPT) {
-        if ($CURRENT_RPT.events && $CURRENT_RPT.events[JV.EVENT_TYPE[JV.EVENT_IDX_GRP_ON_CREATE]]) {
-            try {
-                eval($CURRENT_RPT.events[JV.EVENT_TYPE[JV.EVENT_IDX_GRP_ON_CREATE]]);
-            } catch (ex) {
-                console.log(ex);
+
+    JpcFlowTabResult.checkGrpTxtOutEvent = function($RUN_TYPE, $TEXT, $TIMES, $CURRENT_RPT, $CURRENT_DATA) {
+        if ($CURRENT_RPT.formulas) {
+            for (let execFmlIdx = 0; execFmlIdx < $CURRENT_RPT.formulas.length; execFmlIdx++) {
+                if ($CURRENT_RPT.formulas[execFmlIdx][JV.PROP_RUN_TYPE] === $RUN_TYPE) {
+                    const expression = $CURRENT_RPT.formulas[execFmlIdx][JV.PROP_EXPRESSION];
+                    if (expression) {
+                        const $ME = $CURRENT_RPT.formulas[execFmlIdx];
+                        const $JE = JE;
+                        try {
+                            eval(expression);
+                        } catch (ex) {
+                            console.log(ex);
+                        }
+                    }
+                }
             }
             }
         }
         }
     };
     };
+
     JpcFlowTabResult.commonTabRestOutput = function(dataObj, page, segIdx, bands, band, unitFactor, tab, multiColIdx, $CURRENT_RPT, customizeCfg) {
     JpcFlowTabResult.commonTabRestOutput = function(dataObj, page, segIdx, bands, band, unitFactor, tab, multiColIdx, $CURRENT_RPT, customizeCfg) {
         const me = this;
         const me = this;
         let rst = [];
         let rst = [];

+ 1 - 0
app/reports/rpt_component/jpc_value_define.js

@@ -213,6 +213,7 @@ module.exports = {
     RUN_TYPE_BEFORE_COMBINE: 'before_combine',
     RUN_TYPE_BEFORE_COMBINE: 'before_combine',
     RUN_TYPE_AFTER_COMBINE: 'after_combine',
     RUN_TYPE_AFTER_COMBINE: 'after_combine',
 
 
+    RUN_TYPE_BEFORE_GROUP_TEXT_OUT: 'before_group_text_output',
 
 
     SIGNATURE_NAME_DUMMY: 'dummy_pic',
     SIGNATURE_NAME_DUMMY: 'dummy_pic',