From 068f266665b2dfb7f1d0c53645ba634fe8d606f3 Mon Sep 17 00:00:00 2001
From: duhe <226547893@qq.com>
Date: 星期五, 22 三月 2024 15:43:51 +0800
Subject: [PATCH] 销售出库明细报表:雏形

---
 WebTM/views/应收管理/报表分析/Kf_SellOutEntryReport.html  |  221 ++++++++++++++++++++++++++++++++++++++++++++++++------
 WebTM/Properties/PublishProfiles/JFTM.pubxml.user |   11 +-
 2 files changed, 202 insertions(+), 30 deletions(-)

diff --git a/WebTM/Properties/PublishProfiles/JFTM.pubxml.user b/WebTM/Properties/PublishProfiles/JFTM.pubxml.user
index fe9b106..836ddb9 100644
--- a/WebTM/Properties/PublishProfiles/JFTM.pubxml.user
+++ b/WebTM/Properties/PublishProfiles/JFTM.pubxml.user
@@ -18,10 +18,10 @@
       <publishTime>01/28/2016 14:22:24</publishTime>
     </File>
     <File Include="bin/WebTM.dll">
-      <publishTime>03/22/2024 12:09:04</publishTime>
+      <publishTime>03/22/2024 13:59:05</publishTime>
     </File>
     <File Include="bin/WebTM.pdb">
-      <publishTime>03/22/2024 12:09:04</publishTime>
+      <publishTime>03/22/2024 13:59:05</publishTime>
     </File>
     <File Include="HtmlPage1.html">
       <publishTime>04/11/2023 16:34:42</publishTime>
@@ -794,6 +794,9 @@
     <File Include="layuiadmin/treeTable.js">
       <publishTime>04/11/2023 16:34:43</publishTime>
     </File>
+    <File Include="layuiadmin/xlsx.full.min.js">
+      <publishTime>03/22/2024 13:06:24</publishTime>
+    </File>
     <File Include="layuiadmin/zgqCustom/zgqCustom.js">
       <publishTime>04/11/2023 16:34:43</publishTime>
     </File>
@@ -1545,7 +1548,7 @@
       <publishTime>12/15/2023 16:23:31</publishTime>
     </File>
     <File Include="views/index_QiaoYi.html">
-      <publishTime>03/19/2024 16:09:23</publishTime>
+      <publishTime>03/22/2024 13:22:11</publishTime>
     </File>
     <File Include="views/IpadIndex.html">
       <publishTime>03/11/2024 23:12:34</publishTime>
@@ -3423,7 +3426,7 @@
       <publishTime>03/05/2024 12:29:40</publishTime>
     </File>
     <File Include="views/搴旀敹绠$悊/鎶ヨ〃鍒嗘瀽/Kf_SellOutEntryReport.html">
-      <publishTime>03/20/2024 12:05:41</publishTime>
+      <publishTime>03/22/2024 15:12:23</publishTime>
     </File>
     <File Include="views/搴旀敹绠$悊/鎶ヨ〃鍒嗘瀽/Xs_CusBalanceReport.html">
       <publishTime>03/14/2024 11:19:06</publishTime>
diff --git "a/WebTM/views/\345\272\224\346\224\266\347\256\241\347\220\206/\346\212\245\350\241\250\345\210\206\346\236\220/Kf_SellOutEntryReport.html" "b/WebTM/views/\345\272\224\346\224\266\347\256\241\347\220\206/\346\212\245\350\241\250\345\210\206\346\236\220/Kf_SellOutEntryReport.html"
index 127ebf3..a125c27 100644
--- "a/WebTM/views/\345\272\224\346\224\266\347\256\241\347\220\206/\346\212\245\350\241\250\345\210\206\346\236\220/Kf_SellOutEntryReport.html"
+++ "b/WebTM/views/\345\272\224\346\224\266\347\256\241\347\220\206/\346\212\245\350\241\250\345\210\206\346\236\220/Kf_SellOutEntryReport.html"
@@ -3,7 +3,7 @@
 <head>
     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
     <title>閿�鍞嚭搴撴槑缁嗘姤琛�</title>
-    <meta name="renderer" content="webkit">
+    <meta name="renderer" content="webkit" charset="UTF-8">
     <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
     <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1">
     <link rel="stylesheet" href="../../../layuiadmin/layui/css/layui.css" media="all">
@@ -15,6 +15,8 @@
     <script src="../../../layuiadmin/PubCustom.js"></script>
     <script src="../../../layuiadmin/zgqCustom/zgqCustom.js"></script>
     <script src="../../../layuiadmin/HideButton.js"></script>
+    <!--<script src="../../../layuiadmin/xlsx.full.min.js"></script>-->
+    <script src="https://cdn.bootcdn.net/ajax/libs/xlsx/0.18.5/xlsx.full.min.js"></script>
 </head>
 <body>
     <div class="layui-fluid">
@@ -351,31 +353,7 @@
                     data: { "ModRightNameCheck": ModRightNameCheck, "user": sessionStorage["HUserName"] },
                     success: function (result) {
                         if (result.count == 1) {
-                            var dataArray = [];
-                            var HCusID = option.data[0]["HCusID"];
-                            var HPieceQtySum = 0;
-                            var HQtySum = 0;
-                            var HTaxMoneySum = 0;
-                            for (var i = 0; i < option.data.length; i++) {
-                                if (HCusID != option.data[i]["HCusID"]) {
-                                    dataArray.push({ "鏃ユ湡": "", "HCusID": "", "瀹㈡埛": "鍚堣", "HMaterID": "", "鐗╂枡鍚嶇О": "", "浠舵暟": HPieceQtySum, "鏁伴噺": HQtySum, "鍗曚环": "", "閲戦": HTaxMoneySum, "HEmpID": "", "涓氬姟鍛�": "" });
-                                    dataArray.push({ "鏃ユ湡": "", "HCusID": "", "瀹㈡埛": "", "HMaterID": "", "鐗╂枡鍚嶇О": "", "浠舵暟": "", "鏁伴噺": "", "鍗曚环": "", "閲戦": "", "HEmpID": "", "涓氬姟鍛�": "" });
-                                    dataArray.push({ "鏃ユ湡": "", "HCusID": "", "瀹㈡埛": "", "HMaterID": "", "鐗╂枡鍚嶇О": "", "浠舵暟": "", "鏁伴噺": "", "鍗曚环": "", "閲戦": "", "HEmpID": "", "涓氬姟鍛�": "" });
-                                    dataArray.push({ "鏃ユ湡": "", "HCusID": "", "瀹㈡埛": "", "HMaterID": "", "鐗╂枡鍚嶇О": "", "浠舵暟": "", "鏁伴噺": "", "鍗曚环": "", "閲戦": "", "HEmpID": "", "涓氬姟鍛�": "" });
-                                    dataArray.push({ "鏃ユ湡": "", "HCusID": "", "瀹㈡埛": "瀹㈡埛", "HMaterID": "", "鐗╂枡鍚嶇О": "鐗╂枡鍚嶇О", "浠舵暟": "浠舵暟", "鏁伴噺": "鏁伴噺", "鍗曚环": "鍗曚环", "閲戦": "閲戦", "HEmpID": "", "涓氬姟鍛�": "涓氬姟鍛�" });
-                                    HCusID = option.data[i]["HCusID"];
-                                    HPieceQtySum = 0;
-                                    HQtySum = 0;
-                                    HTaxMoneySum = 0;
-                                }
-                                dataArray.push(option.data[i]);
-
-                                HPieceQtySum += option.data[i]["浠舵暟"] * 1;
-                                HQtySum += option.data[i]["鏁伴噺"] * 1;
-                                HTaxMoneySum += option.data[i]["閲戦"] * 1;
-                            }
-
-                            table.exportFile(ins.config.id, dataArray, "xls");
+                            exportAll();
                         } else {
                             layer.alert("褰撳墠妯″潡娌℃湁瀵煎嚭鏉冮檺!", { icon: 5 });
                         }
@@ -544,6 +522,197 @@
                 return res;
             }
             //#endregion
+
+
+
+
+            //#region 瀵煎嚭
+            function oneTable(option) {
+                //鑾峰彇琛ㄥご鏁版嵁
+                var colsList = [];
+                for (var i = 1; i < option.cols[0].length; i++) {
+                    if (option.cols[0][i].hide != true) {
+                        colsList.push(option.cols[0][i]);
+                    }
+                }
+                //鑾峰彇琛屾暟鎹�
+                var listData = [];                             //鑾峰彇琛屾暟鎹�
+                var HCusID = option.data[0]["HCusID"];          //鐢ㄤ簬鍖哄垎涓嶅悓瀹㈡埛
+                var HPieceQtySum = 0;                           //浠舵暟鍚堣
+                var HQtySum = 0;                                //鏁伴噺鍚堣
+                var HTaxMoneySum = 0;                           //閲戦鍚堣
+                for (var i = 0; i < option.data.length; i++) {
+                    if (HCusID != option.data[i]["HCusID"]) {
+                        var sumTemp = { "瀹㈡埛": "鍚堣", "鐗╂枡鍚嶇О": "", "浠舵暟": HPieceQtySum, "鏁伴噺": HQtySum, "鍗曚环": "", "閲戦": HTaxMoneySum, "涓氬姟鍛�": "" };
+                        var emptyTemp = { "瀹㈡埛": "", "鐗╂枡鍚嶇О": "", "浠舵暟": "", "鏁伴噺": "", "鍗曚环": "", "閲戦": "", "涓氬姟鍛�": "" };
+                        var titleTemp = { "瀹㈡埛": "瀹㈡埛", "鐗╂枡鍚嶇О": "鐗╂枡鍚嶇О", "浠舵暟": "浠舵暟", "鏁伴噺": "鏁伴噺", "鍗曚环": "鍗曚环", "閲戦": "閲戦", "涓氬姟鍛�": "涓氬姟鍛�" };
+                        listData.push(sumTemp);
+                        listData.push(emptyTemp);
+                        listData.push(emptyTemp);
+                        listData.push(titleTemp);
+
+                        //璁板綍鏂板鎴风殑鍐呯爜
+                        HCusID = option.data[i]["HCusID"];
+
+                        //鍒濆鍖栦欢鏁板悎璁°�佹暟閲忓悎璁°�侀噾棰濆悎璁�
+                        HPieceQtySum = 0;
+                        HQtySum = 0;
+                        HTaxMoneySum = 0;
+                    }
+                    listData.push(option.data[i]);
+
+                    HPieceQtySum += option.data[i]["浠舵暟"] * 1;
+                    HQtySum += option.data[i]["鏁伴噺"] * 1;
+                    HTaxMoneySum += option.data[i]["閲戦"] * 1;
+                }
+
+
+                //璁剧疆sheet涓殑鏁版嵁
+                let news = [[]];
+                for (var i = 0; i < colsList.length; i++) {
+                    news[0].push(colsList[i].title);
+                }
+                for (var i = 0; i < listData.length; i++) {
+                    news.push([listData[i].瀹㈡埛, listData[i].鐗╂枡鍚嶇О, listData[i].浠舵暟, listData[i].鏁伴噺, listData[i].鍗曚环, listData[i].閲戦, listData[i].涓氬姟鍛榏);
+                }
+
+                //鍒涘缓sheet
+                const sheet = XLSX.utils.aoa_to_sheet(news);
+                return sheet;
+            }
+            function twoTable(option) {
+                //鑾峰彇琛ㄥご鏁版嵁
+                var colsList = [];
+                for (var i = 1; i < option.cols[0].length; i++) {
+                    if (option.cols[0][i].hide != true) {
+                        colsList.push(option.cols[0][i]);
+                    }
+                }
+                //鑾峰彇琛屾暟鎹�
+                var listData = [];                             //鑾峰彇琛屾暟鎹�
+                var HCusID = option.data[0]["HCusID"];          //鐢ㄤ簬鍖哄垎涓嶅悓瀹㈡埛
+                var HPieceQtySum = 0;                           //浠舵暟鍚堣
+                var HQtySum = 0;                                //鏁伴噺鍚堣
+                var HTaxMoneySum = 0;                           //閲戦鍚堣
+                for (var i = 0; i < option.data.length; i++) {
+                    if (HCusID != option.data[i]["HCusID"]) {
+                        var sumTemp = { "瀹㈡埛": "鍚堣", "鐗╂枡鍚嶇О": "", "浠舵暟": HPieceQtySum, "鏁伴噺": HQtySum, "鍗曚环": "", "閲戦": HTaxMoneySum, "涓氬姟鍛�": "" };
+                        var emptyTemp = { "瀹㈡埛": "", "鐗╂枡鍚嶇О": "", "浠舵暟": "", "鏁伴噺": "", "鍗曚环": "", "閲戦": "", "涓氬姟鍛�": "" };
+                        var titleTemp = { "瀹㈡埛": "瀹㈡埛", "鐗╂枡鍚嶇О": "鐗╂枡鍚嶇О", "浠舵暟": "浠舵暟", "鏁伴噺": "鏁伴噺", "鍗曚环": "鍗曚环", "閲戦": "閲戦", "涓氬姟鍛�": "涓氬姟鍛�" };
+                        listData.push(sumTemp);
+                        listData.push(emptyTemp);
+                        listData.push(emptyTemp);
+                        listData.push(titleTemp);
+
+                        //璁板綍鏂板鎴风殑鍐呯爜
+                        HCusID = option.data[i]["HCusID"];
+
+                        //鍒濆鍖栦欢鏁板悎璁°�佹暟閲忓悎璁°�侀噾棰濆悎璁�
+                        HPieceQtySum = 0;
+                        HQtySum = 0;
+                        HTaxMoneySum = 0;
+                    }
+                    listData.push(option.data[i]);
+
+                    HPieceQtySum += option.data[i]["浠舵暟"] * 1;
+                    HQtySum += option.data[i]["鏁伴噺"] * 1;
+                    HTaxMoneySum += option.data[i]["閲戦"] * 1;
+                }
+
+
+                //璁剧疆sheet涓殑鏁版嵁
+                let news = [[]];
+                for (var i = 0; i < colsList.length; i++) {
+                    news[0].push(colsList[i].title);
+                }
+                for (var i = 0; i < listData.length; i++) {
+                    news.push([listData[i].瀹㈡埛, listData[i].鐗╂枡鍚嶇О, listData[i].浠舵暟, listData[i].鏁伴噺, listData[i].鍗曚环, listData[i].閲戦, listData[i].涓氬姟鍛榏);
+                }
+
+                //鍒涘缓sheet
+                const sheet = XLSX.utils.aoa_to_sheet(news);
+                return sheet;
+            }
+            function exportAll() {
+                //鑾峰彇sheet
+                let sheet1 = oneTable(option);
+                let sheet2 = twoTable(option);
+
+                //鍒涘缓excel鏂囨。
+                const wb = XLSX.utils.book_new();
+                XLSX.utils.book_append_sheet(wb, sheet1, "闈炵緤姣�");
+                XLSX.utils.book_append_sheet(wb, sheet2, "缇婃瘺");
+                const workbookBlob = workbook2blob(wb);
+
+                // 瀵煎嚭鏈�鍚庣殑鎬昏〃
+                var ExcelName = "閿�鍞嚭搴撴槑缁嗘姤琛�" + Format(new Date(), "yyyy-MM-dd") + ".xlsx";
+                openDownloadDialog(workbookBlob, ExcelName);
+
+
+                // 灏哹lob瀵硅薄 鍒涘缓bloburl,鐒跺悗鐢╝鏍囩瀹炵幇寮瑰嚭涓嬭浇妗�
+            }
+            //#region 璁剧疆瀵煎嚭鍙傛暟
+            function workbook2blob(workbook) {
+                // 鐢熸垚excel鐨勯厤缃」
+                var wopts = {
+                    // 瑕佺敓鎴愮殑鏂囦欢绫诲瀷
+                    bookType: "xlsx",
+                    // 鏄惁鐢熸垚Shared String Table, 瀹樻柟瑙i噴鏄�, 濡傛灉寮�鍚敓鎴愰�熷害浼氫笅闄�, 浣嗗湪浣庣増鏈琁OS璁惧涓婃湁鏇村ソ鐨勫吋瀹规��
+                    bookSST: false,
+                    type: "binary"
+                };
+                var wbout = XLSX.write(workbook, wopts);
+                // 灏嗗瓧绗︿覆杞珹rrayBuffer
+                function s2ab(s) {
+                    var buf = new ArrayBuffer(s.length);
+                    var view = new Uint8Array(buf);
+                    for (var i = 0; i !== s.length; ++i) view[i] = s.charCodeAt(i) & 0xff;
+                    return buf;
+                }
+                let buf = s2ab(wbout);
+                var blob = new Blob([buf], {
+                    type: "application/octet-stream"
+                });
+                return blob;
+            }
+            //#endregion
+            //#region
+            function openDownloadDialog(blob, fileName) {
+                if (typeof blob === "object" && blob instanceof Blob) {
+                    blob = URL.createObjectURL(blob); // 鍒涘缓blob鍦板潃
+                }
+                var aLink = document.createElement("a");
+                aLink.href = blob;
+                // HTML5add鐨勫睘鎬�, 鎸囧畾淇濆瓨鏂囦欢鍚�, 鍙互涓嶈鍚庣紑, 娉ㄦ剰, 鏈夋椂鍊�
+                aLink.download = fileName || "";
+                var event;
+                if (window.MouseEvent) event = new MouseEvent("click");
+                //   绉诲姩绔�
+                else {
+                    event = document.createEvent("MouseEvents");
+                    event.initMouseEvent(
+                        "click",
+                        true,
+                        false,
+                        window,
+                        0,
+                        0,
+                        0,
+                        0,
+                        0,
+                        false,
+                        false,
+                        false,
+                        false,
+                        0,
+                        null
+                    );
+                }
+                aLink.dispatchEvent(event);
+            }
+            //#endregion
+            //#endregion
+
         });
 
             //#endregion

--
Gitblit v1.9.1