Browse Source

code sync from cost

TonyKang 7 years ago
parent
commit
09fe3b797d

+ 2 - 2
modules/reports/rpt_component/jpc_ex.js

@@ -146,9 +146,9 @@ JpcExSrv.prototype.createNew = function(){
             } else {
                 //
             }
-            me.totalPages = me.flowTab.preSetupPages(rptTpl, dataObj, defProperties, dftPagingOption);
+            me.totalPages = me.flowTab.preSetupPages(rptTpl, dataObj, defProperties, dftPagingOption, me);
             if (me.flowTabEx) {
-                me.exTotalPages = me.flowTabEx.preSetupPages(rptTpl, dataObj, defProperties, dftPagingOption);
+                me.exTotalPages = me.flowTabEx.preSetupPages(rptTpl, dataObj, defProperties, dftPagingOption, me);
                 //console.log('ad-hoc flow pages: ' + me.exTotalPages);
             }
             me.totalPages += me.exTotalPages;

+ 24 - 11
modules/reports/rpt_component/jpc_rte.js

@@ -65,18 +65,31 @@ let JE = {
     },
     getFieldValue: function (field, dataObj, valIdx, dftVal) {
         let rst = dftVal;
-        if (!field.DataNodeName) {
-            //that means this is a self-defined discrete field!
-            field.DataNodeName = JV.DATA_DISCRETE_DATA;
-            let len = dataObj[JV.DATA_DISCRETE_DATA];
-            field.DataSeq = len;
-            dataObj[JV.DATA_DISCRETE_DATA].push([]);
-        }
-        if (dataObj[field.DataNodeName][field.DataSeq].length > valIdx) {
-            rst = dataObj[field.DataNodeName][field.DataSeq][valIdx];
+        if (field.DataNodeName === "NA") {
+            if (!field[JV.PROP_AD_HOC_DATA]) {
+                field[JV.PROP_AD_HOC_DATA] = [];
+            }
+            if (field[JV.PROP_AD_HOC_DATA].length > valIdx) {
+                rst = field[JV.PROP_AD_HOC_DATA][valIdx];
+            } else {
+                if (dftVal === null && field[JV.PROP_AD_HOC_DATA].length > 0) {
+                    rst = field[JV.PROP_AD_HOC_DATA][field[JV.PROP_AD_HOC_DATA].length - 1];
+                }
+            }
         } else {
-            if (dftVal === null && dataObj[field.DataNodeName][field.DataSeq].length > 0) {
-                rst = dataObj[field.DataNodeName][field.DataSeq][dataObj[field.DataNodeName][field.DataSeq].length - 1];
+            if (!field.DataNodeName) {
+                //that means this is a self-defined discrete field!
+                field.DataNodeName = JV.DATA_DISCRETE_DATA;
+                let len = dataObj[JV.DATA_DISCRETE_DATA];
+                field.DataSeq = len;
+                dataObj[JV.DATA_DISCRETE_DATA].push([]);
+            }
+            if (dataObj[field.DataNodeName][field.DataSeq].length > valIdx) {
+                rst = dataObj[field.DataNodeName][field.DataSeq][valIdx];
+            } else {
+                if (dftVal === null && dataObj[field.DataNodeName][field.DataSeq].length > 0) {
+                    rst = dataObj[field.DataNodeName][field.DataSeq][dataObj[field.DataNodeName][field.DataSeq].length - 1];
+                }
             }
         }
         return rst;

+ 29 - 0
modules/reports/util/rpt_construct_data_util.js

@@ -53,6 +53,32 @@ class Rpt_Common{
         }
         return rst;
     };
+    MultiPlus(arrVal, fixFormat) {
+        let rst = [];
+        for (let i = 0; i < arrVal.length; i++) {
+            let valItem = arrVal[i];
+            if (i === 0) {
+                for (let dtl of valItem) {
+                    let value = parseFloat(dtl);
+                    if (fixFormat) value = value.toFixed(fixFormat);
+                    rst.push(value);
+                }
+            } else {
+                for (let j = 0; j < valItem.length; j++) {
+                    if (j < rst.length) {
+                        let value = rst[j] + valItem[j];
+                        if (fixFormat) value = value.toFixed(fixFormat);
+                        rst[j] = value;
+                    } else {
+                        let value = parseFloat(valItem[j]);
+                        if (fixFormat) value = value.toFixed(fixFormat);
+                        rst.push(value);
+                    }
+                }
+            }
+        }
+        return rst;
+    };
     Minus(val1, val2, fixFormat) {
         let rst = [], maxLen = val1.length, minLen = val2.length;
         if (minLen > maxLen) {
@@ -454,6 +480,9 @@ function ext_getFee(feeKey, dtlFeeKey) {
             }
         }
     }
+    for (let i = 0; i < rst.length; i++) {
+        rst[i] = parseFloat(rst[i]);
+    }
     return rst;
 }