JS前臺分分頁打印

 //插件打印
        function Printing() {
            var all_length = KStarForm.koContentModel.MXList().length;//總長度--會改變
            var all_length_BB = KStarForm.koContentModel.MXList().length;//總長度--固定
            var pageSize = 27;                                        //頁面明細個數
            var count = Math.ceil(all_length / pageSize);             //頁數(向上取整,有小數就整數部分加1)

            //校驗
            if (KStarForm.koContentModel.MXList().length == 0) {
                alert("無數據不可以打印!");
                return;
            } else {
                //校驗
                for (var i = 0; i < KStarForm.koContentModel.MXList().length; i++) {
                    if (KStarForm.koContentModel.MXList()[i].AccessoriesNumber() == null || KStarForm.koContentModel.MXList()[i].AccessoriesNumber() == "") {
                        KStar.Modaldialog.alert({ msg: "第" + (i + 1) + "行的配件編號為空,請刪除或者補充!" });
                        IndexToRed(i)
                        return false;
                    } else if (KStarForm.koContentModel.MXList()[i].MouldName_NumberAndName().trim() == null || KStarForm.koContentModel.MXList()[i].MouldName_NumberAndName().trim() == "") {
                        KStar.Modaldialog.alert({ msg: "第" + (i + 1) + "行模具名稱的不能為空!" });
                        IndexToRed(i)
                        return false;
                    } else if (KStarForm.koContentModel.MXList()[i].Customer_KJ() == null || KStarForm.koContentModel.MXList()[i].Customer_KJ() == "" || KStarForm.koContentModel.MXList()[i].Customer_KJ() == "[]") {
                        KStar.Modaldialog.alert({ msg: "第" + (i + 1) + "行的客戶不能為空!" });
                        IndexToRed(i)
                        return false;
                    } else if (KStarForm.koContentModel.MXList()[i].StandardNumber() == null || KStarForm.koContentModel.MXList()[i].StandardNumber() == "" || parseInt(KStarForm.koContentModel.MXList()[i].StandardNumber()) <= 0) {
                        KStar.Modaldialog.alert({ msg: "第" + (i + 1) + "行的標準套數需要大於0!" });
                        IndexToRed(i)
                        return false;
                    } else if (KStarForm.koContentModel.MXList()[i].StockNumber() == null || KStarForm.koContentModel.MXList()[i].StockNumber() == "" || parseInt(KStarForm.koContentModel.MXList()[i].StockNumber()) <= 0) {
                        KStar.Modaldialog.alert({ msg: "第" + (i + 1) + "行的入庫存數需要大於0!" });
                        IndexToRed(i)
                        return false;
                    } else if (KStarForm.koContentModel.MXList()[i].Unit().trim() == null || KStarForm.koContentModel.MXList()[i].Unit().trim() == "") {
                        KStar.Modaldialog.alert({ msg: "第" + (i + 1) + "行的單位不能為空!" });
                        IndexToRed(i)
                        return false;
                    }
                }

            }
            var showStr = '';
            var win;
            //分頁打印
            for (var i = 0; i < count; i++) {
                //打印HTML
                showStr += '<body style="margin:0;padding:0;display:block;">';//解決打印多出一頁空白頁問題
                showStr += '<div style="page-break-after:always;width:750px;">';//強制分頁
                showStr += '<table style="border:1px solid #ddd;width:750px;border-collapse:collapse;border-spacing:0;padding:10px;">';
                showStr += '<caption>';
                showStr += '<b style="font-size:28px;">模具移交單</b>';
                showStr += '<div style="margin-top:30px;">';
                if (count == (i + 1)) {
                    //最後一頁
                    showStr += '<div style="float:left;">行數:' + all_length_BB + '-' + all_length + '</div>';
                } else {
                    showStr += '<div style="float:left;">行數:' + all_length_BB + '-' + 30 + '</div>';
                }
               
                showStr += '<div style="float:right;">頁數:' + count + '-' + (i + 1) + '</div>';
                showStr += '</div">';
                showStr += '</caption>';
                showStr += '<thead>';
                showStr += '<tr style="text-align:center;height:30px;">';
                showStr += '<td style="border: 1px solid;">配件編號</td>';
                showStr += '<td style="border: 1px solid;">客戶</td>';
                showStr += '<td style="border: 1px solid;width:160px;">備注</td>';
                showStr += '<td style="border: 1px solid;">模具名稱</td>';
                showStr += '<td style="border: 1px solid;">標準套數</td>';
                showStr += '<td style="border: 1px solid;">入庫存數</td>';
                showStr += '</tr>';
                showStr += '</thead>';
                showStr += '<tbody>';
                if (all_length < pageSize) {
                    for (var j = 0; j < all_length; j++) {
                        showStr += '<tr style="text-align:center;height:28px;">'
                        showStr += '<td style="border: 1px solid;">' + KStarForm.koContentModel.MXList()[i * pageSize + j].AccessoriesNumber() + '</td>'
                        showStr += '<td style="border: 1px solid;">' + JSON.parse(KStarForm.koContentModel.MXList()[i * pageSize + j].Customer_KJ())[0].id + '</td>'
                        showStr += '<td style="border: 1px solid;width:160px;">' + KStarForm.koContentModel.MXList()[i * pageSize + j].Remark() + '</td>'
                        showStr += '<td style="border: 1px solid;">' + KStarForm.koContentModel.MXList()[i * pageSize + j].MouldName_NumberAndName().substring(KStarForm.koContentModel.MXList()[i * pageSize + j].MouldName_NumberAndName().indexOf('-') + 1) + '</td>'
                        showStr += '<td style="border: 1px solid;">' + KStarForm.koContentModel.MXList()[i * pageSize + j].StandardNumber() + '</td>'
                        showStr += '<td style="border: 1px solid;">' + KStarForm.koContentModel.MXList()[i * pageSize + j].StockNumber() + '</td>'
                        showStr += '</tr>'
                    }
                } else {
                    for (var j = 0; j < pageSize; j++) {
                        showStr += '<tr style="text-align:center;height:28px;">'
                        showStr += '<td style="border: 1px solid;">' + KStarForm.koContentModel.MXList()[i * pageSize + j].AccessoriesNumber() + '</td>'
                        showStr += '<td style="border: 1px solid;">' + JSON.parse(KStarForm.koContentModel.MXList()[i * pageSize + j].Customer_KJ())[0].id + '</td>'
                        showStr += '<td style="border: 1px solid;">' + KStarForm.koContentModel.MXList()[i * pageSize + j].Remark() + '</td>'
                        showStr += '<td style="border: 1px solid;">' + KStarForm.koContentModel.MXList()[i * pageSize + j].MouldName_NumberAndName().substring(KStarForm.koContentModel.MXList()[i * pageSize + j].MouldName_NumberAndName().indexOf('-') + 1) + '</td>'
                        showStr += '<td style="border: 1px solid;">' + KStarForm.koContentModel.MXList()[i * pageSize + j].StandardNumber() + '</td>'
                        showStr += '<td style="border: 1px solid;">' + KStarForm.koContentModel.MXList()[i * pageSize + j].StockNumber() + '</td>'
                        showStr += '</tr>'
                    }
                    all_length -= pageSize;
                }

                showStr += '</tbody>'
                showStr += '</table>'
                showStr += '<div style="text-align:center;font-size:20px;width:750px;margin-top:40px;height:30px;">'
                showStr += '<div style="width:25%;float:left;"><b>移交人:&nbsp;</b></div>'
                showStr += '<div style="width:25%;float:left;"><b>移交日期:&nbsp;</b></div>'
                showStr += '<div style="width:25%;float:left;"><b>簽收人:&nbsp;</b></div>'
                showStr += '<div style="width:25%;float:left;"><b>簽收日期:&nbsp;</b></div>'
                showStr += '</div>'
                showStr += '</div>';
            }
            showStr += '</body>';
            win = window.open('打印.html');
            //輸出
            win.document.write(showStr);
            //調用瀏覽器打印 Ctrl + P
            win.print();

        }

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章