Explorar o código

修改统计出现的NaN值

TonyKang %!s(int64=6) %!d(string=hai) anos
pai
achega
1cf0e5b5a8

+ 8 - 2
modules/reports/rpt_component/jpc_flow_tab.js

@@ -229,7 +229,10 @@ JpcFlowTabSrv.prototype.createNew = function(){
                     for (let j = 0; j < me.segments[i].length; j++) {
                         //3. start to sum
                         // rowGrandTotal[di] = rowGrandTotal[di] + 1.0 * JpcFieldHelper.getValue(data_fields[di], me.segments[i][j]);
-                        rowGrandTotal[di] = rowGrandTotal[di] + parseFloat(parseFloat(JpcFieldHelper.getValue(data_fields[di], me.segments[i][j])).toFixed(precisionAmt));
+                        let sv = JpcFieldHelper.getValue(data_fields[di], me.segments[i][j]);
+                        if (sv) {
+                            rowGrandTotal[di] = rowGrandTotal[di] + parseFloat(parseFloat(sv).toFixed(precisionAmt));
+                        }
                     }
                 }
                 me.segSumValLst.push(rowGrandTotal);
@@ -966,7 +969,10 @@ JpcFlowTabSrv.prototype.createNew = function(){
                             }
                             // rowGrandTotal[di] = rowGrandTotal[di] + 1.0 * JpcFieldHelper.getValue(page_sum_data_fields[di], contentValuesIdx[rowIdx][2]);
                             if (contentValuesIdx[rowIdx][2] >= 0) {
-                                rowGrandTotal[di] = rowGrandTotal[di] + parseFloat(parseFloat(JpcFieldHelper.getValue(page_sum_data_fields[di], contentValuesIdx[rowIdx][2])).toFixed(precisionAmt));
+                                let psv = JpcFieldHelper.getValue(page_sum_data_fields[di], contentValuesIdx[rowIdx][2]);
+                                if (psv) {
+                                    rowGrandTotal[di] = rowGrandTotal[di] + parseFloat(parseFloat(psv).toFixed(precisionAmt));
+                                }
                             }
                         }
                     }

+ 6 - 2
modules/reports/util/rpt_excel_util.js

@@ -432,9 +432,13 @@ function writeSheet(pageData, sheetData, paperSize, sharedStrList, stylesObj, ap
         return rst;
     };
     let private_getSharedStrIdx = function(val) {
-        let rst = sharedStrList.indexOf(val);
+        let strVal = val;
+        if (val === null) {
+            strVal = "";
+        }
+        let rst = sharedStrList.indexOf(strVal);
         if (rst < 0) {
-            sharedStrList.push(val);
+            sharedStrList.push(strVal);
             rst = sharedStrList.length - 1;
         }
         return rst;

+ 9 - 9
test/unit/reports/test_rpt_test_template.js

@@ -31,9 +31,9 @@ let demoPrjId = - 1;
 // let demoRptId = 337; //19表
 // let demoRptId = 361; //封1
 // let demoRptId = 279; //表04
-// let demoRptId = 261; //封3
-// let demoRptId = 458; //09
-// let demoRptId = 551; //05
+// let demoRptId = 448; //封3
+let demoRptId = 450; //09
+// let demoRptId = 704; //05
 // let demoRptId = 626; //06
 // let demoRptId = 451; //09-1
 // let demoRptId = 452; //04
@@ -42,7 +42,7 @@ let demoPrjId = - 1;
 // let demoRptId = 386; //04
 // let demoRptId = 389; //10
 // let demoRptId = 280; //11-1 暂列金
-let demoRptId = 514; //12
+// let demoRptId = 514; //12
 // let demoRptId = 2260; //测试基本信息
 // let demoRptId = 613; //09-4 2018
 // let demoRptId = 726; //定制:清单子目表
@@ -105,12 +105,12 @@ test('测试 - 测试模板啦: ', function (t) {
                     let pageRst = printCom.outputAsSimpleJSONPageArray(rptTpl, tplData, 1, maxPages, defProperties, customizeCfg);
                     if (pageRst) {
                         // fsUtil.writeObjToFile(pageRst, "D:/GitHome/ConstructionCost/tmp/testBuiltPageResult_测试模板.jsp");
-                        // rpt_xl_util.exportExcel(pageRst, pagesize, "local_test_rpt_excel", true, null, null, function(uuidName){
-                        //     console.log("excel uuid: " + uuidName);
-                        // });
-                        rpt_pdf_util.export_pdf_file(pageRst, pagesize, 'local_test_rpt_pdf', function(uuidName){
-                            console.log("pdf uuid: " + uuidName);
+                        rpt_xl_util.exportExcel(pageRst, pagesize, "local_test_rpt_excel", true, null, null, function(uuidName){
+                            console.log("excel uuid: " + uuidName);
                         });
+                        // rpt_pdf_util.export_pdf_file(pageRst, pagesize, 'local_test_rpt_pdf', function(uuidName){
+                        //     console.log("pdf uuid: " + uuidName);
+                        // });
                     } else {
                         console.log("oh! no pages were created!");
                     }

+ 3 - 3
test/unit/reports/test_tpl_05.js

@@ -26,13 +26,13 @@ cfgCacheUtil.setupDftCache();
 let fsUtil = require("../../../public/fsUtil");
 
 let demoPrjId = - 1;
-// let demoRptId = 551; //05
-let demoRptId = 626; //06
+let demoRptId = 704; //05
+// let demoRptId = 626; //06
 let pagesize = "A4";
 
 // demoPrjId = 720; //QA: DW3
 // demoPrjId = 4563; //QA:
-demoPrjId = 4107; //UAT:
+demoPrjId = 4529; //UAT:
 //*/
 // let userId_Leng = "59cdf14a0034a1000ba52b97"; //小冷User Id 换成_id了
 let userId_Leng = "5b5a66c4a3c23e000dccdd77"; //海珠的 _id