浏览代码

报表,合计相关问题

MaiXinRong 5 年之前
父节点
当前提交
65c5d23271
共有 1 个文件被更改,包括 19 次插入6 次删除
  1. 19 6
      app/reports/rpt_component/jpc_flow_tab.js

+ 19 - 6
app/reports/rpt_component/jpc_flow_tab.js

@@ -14,7 +14,7 @@ const JpcAreaHelper = require('./helper/jpc_helper_area');
 const fsUtil = require('../public/fsUtil');
 const strUtil = require('../public/stringUtil');
 const fontWidthMap = require('./helper/jpc_helper_font_width');
-
+const bc = require('../../lib/base_calc.js');
 
 const JpcFlowTabSrv = function() {};
 JpcFlowTabSrv.prototype.createNew = function() {
@@ -244,12 +244,19 @@ 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]);
+                    //     const sv = JpcFieldHelper.getValue(data_fields[di], me.segments[i][j]);
+                    //     if (sv) {
+                    //         rowGrandTotal[di] = rowGrandTotal[di] + parseFloat(parseFloat(sv).toFixed(precisionAmt));
+                    //     }
+                    // }
                     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]);
-                        const sv = JpcFieldHelper.getValue(data_fields[di], me.segments[i][j]);
+                        let sv = JpcFieldHelper.getValue(data_fields[di], me.segments[i][j]);
                         if (sv) {
-                            rowGrandTotal[di] = rowGrandTotal[di] + parseFloat(parseFloat(sv).toFixed(precisionAmt));
+                            if (typeof sv === 'string') sv = parseFloat(sv);
+                            rowGrandTotal[di] = bc.add(rowGrandTotal[di] ? rowGrandTotal[di] : 0, sv ? sv: 0);
                         }
                     }
                 }
@@ -285,7 +292,13 @@ JpcFlowTabSrv.prototype.createNew = function() {
                         }
                     }
                     // sumV += parseFloat(JpcFieldHelper.getValue(data_field, segDataIdx[si]));
-                    sumV += parseFloat(parseFloat(JpcFieldHelper.getValue(data_field, segDataIdx[si])).toFixed(precisionAmt));
+
+                    let sv = JpcFieldHelper.getValue(data_field, segDataIdx[si]);
+                    if (sv) {
+                        if (typeof sv === 'string') sv = parseFloat(sv);
+                        sumV = bc.add(sumV, sv ? sv : 0);
+                    }
+                    //sumV += parseFloat(parseFloat(JpcFieldHelper.getValue(data_field, segDataIdx[si])).toFixed(precisionAmt));
                 }
                 // me.group_sum_values[segIdx][j].push(sumV);
                 me.group_sum_values[segIdx][me.group_sum_fields[j][JV.PROP_SUM_KEY]].push(sumV);