瀏覽代碼

台账分解,查找定位,新增合计行

MaiXinRong 2 年之前
父節點
當前提交
86ab059d2f
共有 2 個文件被更改,包括 17 次插入1 次删除
  1. 7 0
      app/public/js/ledger.js
  2. 10 1
      app/public/js/shares/cs_tools.js

+ 7 - 0
app/public/js/ledger.js

@@ -2474,6 +2474,13 @@ $(document).ready(function() {
                         },
                         afterLocated: function () {
                             posOperationObj.loadCurPosData();
+                        },
+                        calcSum: function (result) {
+                            const sum = { name: '合计' };
+                            for (const r of result) {
+                                sum.quantity = ZhCalc.add(r.quantity, sum.quantity);
+                            }
+                            return sum;
                         }
                     });
                 }

+ 10 - 1
app/public/js/shares/cs_tools.js

@@ -543,6 +543,8 @@ const showSelectTab = function(select, spread, afterShow) {
                     searchResult.push(data);
                 }
             }
+            calculateCompletePercent(searchResult);
+            calculateSum();
             SpreadJsObj.loadSheetData(resultSpread.getActiveSheet(), 'data', searchResult);
         };
         const getCheckFun = function (key) {
@@ -576,8 +578,15 @@ const showSelectTab = function(select, spread, afterShow) {
                 }
             }
             calculateCompletePercent(searchResult);
+            calculateSum();
             SpreadJsObj.loadSheetData(resultSpread.getActiveSheet(), 'data', searchResult);
         };
+        const calculateSum = function () {
+            if (!searchResult || searchResult.length === 0 || !setting.calcSum) return;
+
+            const sum = setting.calcSum(searchResult);
+            if (sum) searchResult.unshift(sum);
+        };
         const calculateCompletePercent = function (searchResult) {
             if (!searchResult) return;
             for (const sr of searchResult) {
@@ -596,7 +605,7 @@ const showSelectTab = function(select, spread, afterShow) {
             if (!data) { return }
 
             const curBills = data[info.row];
-            if (!curBills) { return }
+            if (!curBills || curBills[setting.keyId] === undefined) { return }
 
             SpreadJsObj.locateTreeNode(searchSheet, curBills[setting.keyId], true);
             if (setting.afterLocated) {