itext生成pdf

来源:互联网 发布:日韩明星壁纸软件 编辑:程序博客网 时间:2024/04/29 11:27

共用方法


/// <summary>   
        /// 计算文本长度,区分中英文字符,中文算两个长度,英文算一个长度
        /// </summary>
        /// <param name="Text">需计算长度的字符串</param>
        /// <returns>int</returns>
        public int TextLength(string Text)
        {
            int len = 0;


            for (int i = 0; i < Text.Length; i++)
            {
                byte[] byte_len = Encoding.Default.GetBytes(Text.Substring(i, 1));
                if (byte_len.Length > 1)
                    len += 2;  //如果长度大于1,是中文,占两个字节,+2
                else
                    len += 1;  //如果长度等于1,是英文,占一个字节,+1
            }
            return len;
        }


        /// <summary>
        /// 获取当前时间   时分秒
        /// </summary>
        /// <param name="flag"></param>
        /// <returns></returns>
        public static string GetTimeHMS(bool flag = false)
        {
            string strTime = System.DateTime.Now.ToString();   // 時  間
            int intH = System.DateTime.Now.Hour;
            int intM = System.DateTime.Now.Minute;
            int intS = System.DateTime.Now.Second;
            string strAPM = "上午";
            if (flag) strAPM = "AM";
            if (intH > 12)
            {
                strAPM = "下午";
                if (flag) strAPM = "PM";
                intH = intH - 12;
            }
            string strH = intH.ToString().Length < 2 ? ("0" + intH) : intH.ToString();
            string strM = intM.ToString().Length < 2 ? ("0" + intM) : intM.ToString();
            string strS = intS.ToString().Length < 2 ? ("0" + intS) : intS.ToString();
            strTime = strAPM + "   " + strH + ":" + strM + ":" + strS;
            if (flag) strTime = strH + ":" + strM + ":" + strS + strAPM;
            return strTime;
        }


        /// <summary>
        /// 查無資料畫面
        /// </summary>
        /// <param name="strMsg"></param>
        public void ReturnError(string strMsg)
        {
            string strErr = "  <table border='0' align='center' cellpadding='0' cellspacing='5' >" +
                                 "   <tr><td align='center'><font color='#CC3300' size='2'>" + strMsg + "</font></td></tr>" +
                                  "  <tr> <td align='center'><font size='2'><a href='javascript:window.close();'>關閉視窗</a></font></td></tr>" +
                             " </table>";
            Response.Clear();
            Response.BufferOutput = true;
            Response.AddHeader("Content-type", "text/html;charset=UTF-8");
            Response.Write(strErr);
            Response.Flush();
            Response.End();
        }


        public string Format_AM(double amount, int digit)
        {
            OdrFunctionsService odrfun = new OdrFunctionsService();
            if (amount.ToString().Trim() == "0" || string.IsNullOrWhiteSpace(amount.ToString()))
            {
                return "";
            }
            else
            {
                string tmpstr = odrfun.FormatCurrency(amount, digit, "");
                return tmpstr.Replace("NT$", "");
            }
        }
/// <summary>
        /// 截取字節
        /// </summary>
        /// <param name="str">字符串</param>
        /// <param name="length">長度</param>
        /// <returns></returns>
        public string GetSubString(string str, int length)
        {
            string temp = str;
            int j = 0;
            int k = 0;
            for (int i = 0; i < temp.Length; i++)
            {
                if (Regex.IsMatch(temp.Substring(i, 1), @"[\u4e00-\u9fa5]+"))
                {
                    j += 2;
                }
                else
                {
                    j += 1;
                }
                if (j <= length)
                {
                    k += 1;
                }
                if (j > length)
                {
                    //return temp.Substring(0, k) + "..";
                    return temp.Substring(0, k);
                }
            }
            return temp;
        }


单元格封装


//單元格封裝
        private PdfPCell GetCell(string strCont, Font font, int iBorder = 1, int iAlign = 0, int iPadding = 0, int rowspan = 0, int colspan = 0)
        {
            PdfPCell cell = new PdfPCell(new Phrase(strCont, font));
            if (iBorder == 0)
                cell.Border = PdfPCell.NO_BORDER;
            if (rowspan == 0) 
                cell.Rowspan = 1;
            else 
                cell.Rowspan = rowspan;
            if (colspan == 0)
                cell.Colspan = 1;
            else
                cell.Colspan = colspan;
            cell.HorizontalAlignment = iAlign;
            cell.Padding = iPadding;
            return cell;
        }
        private PdfPCell GetCellMore(string strCont, Font font, int iBorder = 1, int iAlign = 0, int iPadding = 0, int rowspan = 0, int colspan = 0, int intBorderWidLeft = 0, int intBorderWidRight = 0, int intBorderWidTop = 0, int intBorderWidBottom = 0)
        {
            PdfPCell cell = new PdfPCell(new Phrase(strCont, font));
            if (iBorder == 0)
                cell.Border = PdfPCell.NO_BORDER;
            if (rowspan == 0) 
                cell.Rowspan = 1;
            else 
                cell.Rowspan = rowspan;
            if (colspan == 0)
                cell.Colspan = 1;
            else
                cell.Colspan = colspan;
            cell.HorizontalAlignment = iAlign;
            cell.Padding = iPadding;
            cell.BorderWidthLeft = intBorderWidLeft;
            cell.BorderWidthRight = intBorderWidRight;
            cell.BorderWidthTop = intBorderWidTop;
            cell.BorderWidthBottom = intBorderWidBottom;
            return cell;
        }
        private PdfPCell GetCellPaddingMore(string strCont, Font font, int iBorder = 1, int iAlign = 0, int iPadding = 0, int rowspan = 0, int colspan = 0,  int intPaddingBottom = 0, int iPaddingLeft = 0, int iPaddingRight = 0, int intPaddingTop = 0)
        {
            PdfPCell cell = new PdfPCell(new Phrase(strCont, font));
            if (iBorder == 0)
                cell.Border = PdfPCell.NO_BORDER;
            if (rowspan == 0)
                cell.Rowspan = 1;
            else
                cell.Rowspan = rowspan;
            if (colspan == 0)
                cell.Colspan = 1;
            else
                cell.Colspan = colspan;
            cell.HorizontalAlignment = iAlign;
            cell.Padding = iPadding;
            cell.PaddingTop = intPaddingTop;
            cell.PaddingLeft = iPaddingLeft;
            cell.PaddingRight = iPaddingRight;
            cell.PaddingBottom = intPaddingBottom;
            return cell;
        }

逻辑简单


 private void ExportAux1Pdf(EdcardPrintViewModel dataModel, Document doc)
        {
            Font chineseTitle14 = UnicodeFontFactory.GetFontBiaoKaiTi(14, Font.NORMAL, BaseColor.BLACK);
            Font chineseTitle11 = UnicodeFontFactory.GetFontBiaoKaiTi(11, Font.NORMAL, BaseColor.BLACK);
            int padding = 5;//邊距
            int gridN = 0;//格線
            int gridY = 1;
            int center = 1;
            int left = 0;
            int right = 2;
            for (int i = 0, j = dataModel.edcardPrintList.Count; i < j; )
            {
                Paragraph ph = new Paragraph();//段落
                PdfPTable table1 = new PdfPTable(1);//創建一個新表格
                if (i != 0 && i < dataModel.edcardPrintList.Count)
                    doc.NewPage();
                //表頭
                table1.AddCell(this.GetCell("ETA GROUP REGISRATION FORM", chineseTitle14, gridN, center, 1));
                table1.AddCell(this.GetCell("NAME OF TRAVEL AGENT:" + dataModel.COMP_ENM, chineseTitle11, gridN, left, 1));
                table1.AddCell(this.GetCell("GROUP DEPARTURE DATE AND FLIGHT NO. FROM TAIWAN TO AUSTRALIA:" + dataModel.GOGOGO, chineseTitle11, gridN, left, 1));
                table1.AddCell(this.GetCell("GROUP DEPARTURE DATE AND FLIGHT NO. FROM AUSTRALIA TO TAIWAN:" + dataModel.BACK, chineseTitle11, gridN, left, 1));
                table1.AddCell(this.GetCellPaddingMore("APPLICANTS PASSPORT AND TELEPHONE CONTACT DETAILS:", chineseTitle11, gridN, left, 1, 0, 0, 5));
                //表格表頭第一行
                PdfPTable table2 = new PdfPTable(7);
                table2.SetWidths(new float[] { 5f, 15f, 13f, 15f, 12f, 20f,20f });
                table2.AddCell(this.GetCellMore("NO.", chineseTitle11, gridY, center, padding,0,0,1,1,1,0));
                table2.AddCell(this.GetCellMore("PASSPOSR NO.", chineseTitle11, gridY, center, padding, 0, 0, 0, 1, 1, 0));
                table2.AddCell(this.GetCellMore("FAMILY NAME", chineseTitle11, gridY, center, padding, 0, 0, 0, 1, 1, 0));
                table2.AddCell(this.GetCellMore("GIVEN NAME", chineseTitle11, gridY, center, padding, 0, 0, 0, 1, 1, 0));
                table2.AddCell(this.GetCellMore("BRTH_DT ", chineseTitle11, gridY, center, padding, 0, 0, 0, 1, 1, 0));
                table2.AddCell(this.GetCellMore("TELEPHONE NUMBER (WORK/HOME)", chineseTitle11, gridY, center, padding, 0, 2, 0, 1, 1, 0));
                //表格表頭第二行
                table2.AddCell(this.GetCellMore("", chineseTitle11, gridY, center, padding, 0, 0, 1, 1, 0, 0));
                table2.AddCell(this.GetCellMore("", chineseTitle11, gridY, center, padding, 0, 0, 0, 1, 0, 0));
                table2.AddCell(this.GetCellMore("", chineseTitle11, gridY, center, padding, 0, 0, 0, 1, 0, 0));
                table2.AddCell(this.GetCellMore("", chineseTitle11, gridY, center, padding, 0, 0, 0, 1, 0, 0));
                table2.AddCell(this.GetCellMore("生日", chineseTitle11, gridY, center, padding, 0, 0, 0, 1, 0, 0));
                table2.AddCell(this.GetCellMore("聯絡電話(公司/住宅)", chineseTitle11, gridY, center, padding, 0, 2, 0, 1, 0, 0));
                //表格表頭第三行
                table2.AddCell(this.GetCellMore("", chineseTitle11, gridY, center, padding,0, 0, 1, 1, 0, 0));
                table2.AddCell(this.GetCellMore("護 照 號 碼", chineseTitle11, gridY, center, padding,0, 0, 0, 1, 0, 0));
                table2.AddCell(this.GetCellMore("姓", chineseTitle11, gridY, center, padding,0, 0, 0, 1, 0, 0));
                table2.AddCell(this.GetCellMore("名", chineseTitle11, gridY, center, padding,0, 0, 0, 1, 0, 0));
                table2.AddCell(this.GetCellMore("(日月年)", chineseTitle11, gridY, center, padding,0, 0, 0, 1, 0, 0));
                table2.AddCell(this.GetCellMore("(O)", chineseTitle11, gridY, center, padding,0, 0, 0, 1, 1, 0));
                table2.AddCell(this.GetCellMore("(H)", chineseTitle11, gridY, center, padding,0, 0, 0, 1, 1, 0));
                //表格內容
                for (int a = i, b = i + 30; a < b; a++)
                {
                    if (a < dataModel.edcardPrintList.Count)
                    {
                        table2.AddCell(this.GetCell((a + 1).ToString(), chineseTitle11, gridY, right, padding));
                        table2.AddCell(this.GetCell(dataModel.edcardPrintList[a].PASS_NO, chineseTitle11, gridY, right, padding));
                        table2.AddCell(this.GetCell(dataModel.edcardPrintList[a].PAX_ENML, chineseTitle11, gridY, left, padding));
                        table2.AddCell(this.GetCell(dataModel.edcardPrintList[a].PAX_ENMF, chineseTitle11, gridY, left, padding));
                        table2.AddCell(this.GetCell(dataModel.edcardPrintList[a].BRTH_DT, chineseTitle11, gridY, left, padding));
                        table2.AddCell(this.GetCell(dataModel.edcardPrintList[a].O_TEL, chineseTitle11, gridY, left, padding));
                        if (!string.IsNullOrWhiteSpace(dataModel.edcardPrintList[a].M_TEL))
                            table2.AddCell(this.GetCell(dataModel.edcardPrintList[a].M_TEL, chineseTitle11, gridY, left, padding));
                        else
                            table2.AddCell(this.GetCell(dataModel.edcardPrintList[a].H_TEL, chineseTitle11, gridY, left, padding));
                    }
                }
                ph.Add(table1);
                ph.Add(table2);
                doc.Add(ph);
                i += 30;
            }
        }




 private void ExportZ121Pdf(EdcardPrintViewModel dataModel, Document doc)
        {
            Font chineseTitle14 = UnicodeFontFactory.GetFontBiaoKaiTi(14, Font.NORMAL, BaseColor.BLACK);
            Font chineseTitle10 = UnicodeFontFactory.GetFontBiaoKaiTi(10, Font.NORMAL, BaseColor.BLACK);
            int padding = 5;//邊距
            int gridN = 0;//格線
            int gridY = 1;
            int center = 1;
            int left = 0;
            int right = 2;
            int page = 1;//頁次
            int PageOr = dataModel.edcardPrintList.Count % 10;
            int PageNum = dataModel.edcardPrintList.Count / 10;
            if (PageOr > 0)
            {
                PageNum = PageNum + 1;
            }
            for (int i = 0, j = dataModel.edcardPrintList.Count; i < j; )
            {
                Paragraph ph = new Paragraph();//段落
                PdfPTable table1 = new PdfPTable(1);//創建一個新表格
                if (i != 0 && i < dataModel.edcardPrintList.Count)
                {
                    doc.NewPage();
                    page++;
                }
                   
                //紙張表頭
                table1.AddCell(this.GetCell("麗星郵輪白羊星號訂位單", chineseTitle14, gridN, center, padding));
                table1.AddCell(this.GetCell("(同艙房者請將人名照順序填寫,艙房與艙房間請空一行,以示區隔)", chineseTitle10, gridN, center, padding));
                PdfPTable table2 = new PdfPTable(3);
                table2.SetWidths(new float[] { 30f, 30f, 40f });
                //第一行
                table2.AddCell(this.GetCell("", chineseTitle10, gridN, left, 3));
                table2.AddCell(this.GetCell("", chineseTitle10, gridN, left, 3));
                table2.AddCell(this.GetCell("訂位代號:__________________", chineseTitle10, gridN, left, 3));
                //第二行
                table2.AddCell(this.GetCell("出發日期:  月  日", chineseTitle10, gridN, left, 3));
                table2.AddCell(this.GetCell("旅行社及聯絡人:" + dataModel.COMP_FNM, chineseTitle10, gridN, left, 3));
                table2.AddCell(this.GetCell("登機下船地點:基隆市中正路1號", chineseTitle10, gridN, left, 3));
                //第三行
                table2.AddCell(this.GetCell("", chineseTitle10, gridN, left, 3));
                table2.AddCell(this.GetCell("電話:" + dataModel.COMP_TEL, chineseTitle10, gridN, left, 3));
                table2.AddCell(this.GetCell("若表各不夠填寫,請自行影印使用", chineseTitle10, gridN, left, 3));
                //第四行
                table2.AddCell(this.GetCell("行程:□三天二夜 □四天三夜", chineseTitle10, gridN, left, 3));
                table2.AddCell(this.GetCell("FAX:", chineseTitle10, gridN, left, 3));
                table2.AddCell(this.GetCell("頁次:" + page + "/" + PageNum.ToString(), chineseTitle10, gridN, left, 3));
               //表格表頭
                PdfPTable table3 = new PdfPTable(11);
                table3.SetWidths(new float[] { 5f, 10f, 10f, 7f, 8f, 9f, 13f, 15f, 8f, 5f, 11f, });
                table3.AddCell(this.GetCell("NO.", chineseTitle10, gridY, center, padding));
                table3.AddCell(this.GetCell("English Name" + "\n" + "英 文 姓 名", chineseTitle10, gridY, center, padding));
                table3.AddCell(this.GetCell("Chinse Name" + "\n" + "中 文 姓 名", chineseTitle10, gridY, center, padding));
                table3.AddCell(this.GetCell("Sex(F/M)" + "\n" + " 性別 ", chineseTitle10, gridY, center, padding));
                table3.AddCell(this.GetCell("Birthday" + "\n" + "DD/MM/YY", chineseTitle10, gridY, center, padding));
                table3.AddCell(this.GetCell("Nstionality" + "\n" + "國   籍", chineseTitle10, gridY, center, padding));
                table3.AddCell(this.GetCell("Passport Number" + "\n" + "護 照 號 碼", chineseTitle10, gridY, center, padding));
                table3.AddCell(this.GetCell("Expiry(DD/MM/YY)" + "\n" + "護照到期日(日/月/年)", chineseTitle10, gridY, center, padding));
                table3.AddCell(this.GetCell("ID Number" + "\n" + "身份証號", chineseTitle10, gridY, center, padding));
                table3.AddCell(this.GetCell("Cabin" + "\n" + "艙 房", chineseTitle10, gridY, center, padding));
                table3.AddCell(this.GetCell("Optional Tour" + "\n" + "岸 上 風 光", chineseTitle10, gridY, center, padding));
                //表格內容
                for (int a = i, b = i + 10; a < b; a++)
                {
                    if (a < dataModel.edcardPrintList.Count)
                    {
                        table3.AddCell(this.GetCell((a + 1).ToString(), chineseTitle10, gridY, left, padding));
                        table3.AddCell(this.GetCell(dataModel.edcardPrintList[a].PAX_ENML + "\n" + dataModel.edcardPrintList[a].PAX_ENMF, chineseTitle10, gridY, left, padding));
                        table3.AddCell(this.GetCell(dataModel.edcardPrintList[a].PAX_CNM, chineseTitle10, gridY, left, padding));
                        table3.AddCell(this.GetCell(dataModel.edcardPrintList[a].PAX_SEX, chineseTitle10, gridY, left, padding));
                        table3.AddCell(this.GetCell(dataModel.edcardPrintList[a].BRTH_DT, chineseTitle10, gridY, left, padding));
                        table3.AddCell(this.GetCell(dataModel.edcardPrintList[a].NATN_ENM, chineseTitle10, gridY, left, padding));
                        table3.AddCell(this.GetCell(dataModel.edcardPrintList[a].PASS_NO, chineseTitle10, gridY, left, padding));
                        table3.AddCell(this.GetCell(dataModel.edcardPrintList[a].VLDE_DT, chineseTitle10, gridY, left, padding));
                        table3.AddCell(this.GetCell(dataModel.edcardPrintList[a].ID_NO, chineseTitle10, gridY, left, padding));
                        table3.AddCell(this.GetCell(dataModel.edcardPrintList[a].R_NO, chineseTitle10, gridY, left, padding));
                        table3.AddCell(this.GetCell(dataModel.edcardPrintList[a].R_VIEW, chineseTitle10, gridY, left, padding));
                    }
                }
                PdfPTable table4 = new PdfPTable(1);
                table4.AddCell(this.GetCell("付款方式如下:                                                                 " + dataModel.COMP_FNM + "   " + dataModel.COMP_ADD, chineseTitle10, 0, 0, padding));
                table4.AddCell(this.GetCell("1.經訂房即須付訂50%費用", chineseTitle10, 0, 0, padding));
                table4.AddCell(this.GetCell("2.旅行社聯絡人:               電話:             傳真:                       經辦人:_______________________", chineseTitle10, 0, 0, padding));
                ph.Add(table1);
                ph.Add(table2);
                ph.Add(table3);
                ph.Add(table4);
                doc.Add(ph);
                i += 10;
            }
        }

逻辑复杂


public void PordPrint(string id)
        {
            OutpordViewModel dataModel = new OutpordViewModel();
            var ids = id.Split(';');
            if (ids.Length == 10)
            {
                dataModel.PRINT_TYPE = ids[9];
                dataModel.PORD_NO = ids[0];
            }
            else if (ids.Length == 7)
            {
                dataModel.PORD_NO = ids[0];
                dataModel.PRINT_TYPE = ids[6];
            }
            if (dataModel.PRINT_TYPE == "1")
            {
                dataModel = this.PordPrintSubjectAdditionDataList(id);
            }
            else if (dataModel.PRINT_TYPE == "2")
            {
                dataModel = this.PordPrintDetailsDataList(id);
            }


            #region 請款單列印統計
            this._trpordService.UpdateAcntInfo(dataModel.PORD_NO);
            #endregion


            Rectangle reg = new Rectangle(595, 400);//列印PDF紙張的大小
            Document doc = new Document(reg, -65, -65, 30, 10);//列印字體的位置
            try
            {
                string strUrl1 = "";  //定義一個 
                if ((dataModel != null && dataModel.printDataList != null && dataModel.printDataList.Count > 0))
                {
                    string strDateTime = System.DateTime.Now.ToString("yyyyMMddHHmmss");
                    string path = Server.MapPath(@"~\upload\");
                    if (!System.IO.Directory.Exists(path))  // 判斷文件夾是否存在 ,若不存在,則創建
                        System.IO.Directory.CreateDirectory(path);
                    string strWebId = "";
                    string fileStrB = strWebId + strDateTime; // 加密前
                    byte[] result = Encoding.Default.GetBytes(fileStrB);
                    MD5 md5 = new MD5CryptoServiceProvider();
                    byte[] output = md5.ComputeHash(result);
                    string fileName = BitConverter.ToString(output).ToString().Replace("-", "") + ".pdf";//加密后
                    MemoryStream memory = new MemoryStream();
                    FileStream fileStream = new FileStream(path + fileName, FileMode.Create);
                    string strUrl = path + fileName;
                    // 创建写入器实例,PDF 文件将会保存到这里  
                    PdfWriter pdfWriter = PdfWriter.GetInstance(doc, fileStream);
                    //打開文件
                    doc.Open();
                    doc.AddAuthor("");
                    doc.AddCreator("");
                    doc.AddTitle("");
                    doc.AddCreationDate();
                    doc.AddProducer();
                    //畫頁面
                    if (dataModel.PRINT_TYPE == "1")
                    {
                        this.PordPrintPdf1(dataModel, doc);
                    }
                    else if (dataModel.PRINT_TYPE == "2")
                    {
                        this.PordPrintPdf2(dataModel, doc);
                    }
                    //關閉文件
                    doc.Close();
                    strUrl1 = "/upload/" + fileName.ToLower();
                    Response.Redirect(strUrl1);//打開鏈接
                }
                else
                {
                    ReturnError("查無相關資料");
                }


            }
            catch (DocumentException dex)
            {
                throw (dex);
            }
            catch (IOException ioex)
            {
                throw (ioex);
            }
            finally
            {


            }
        }


private void PordPrintPdf1(OutpordViewModel dataModel, Document doc)
        {
            #region 定義變量
            var intPagNum = this.PordPrintPdfPagNum(dataModel,doc);
            Font chineseTitle14 = UnicodeFontFactory.GetFontBiaoKaiTi(14, Font.NORMAL, BaseColor.BLACK);
            Font chineseTitle10 = UnicodeFontFactory.GetFontBiaoKaiTi(10, Font.NORMAL, BaseColor.BLACK);
            int rows = 20;//一頁多少行
            int page = 1;//頁數
            int colspan = 8;//應付帳號合併單元格
            int padding = 0;//間距
            int grid = 0;//框线
            //列印應收金額,“應付帳號”合併單元格
            if (dataModel.SHOW_TP == "3")
            {
                colspan = 10;
            }
            //列印應收金額時,摘要長度為12,其餘為18個長度
            int subdrRowLength = 40;
            if (dataModel.SHOW_TP == "3")
            {
                subdrRowLength = 28;
            }
            #endregion


            #region 列印數據


            #region 明細摘要折行處理
            dataModel.printSubdrDataList = new List<PrintDataList>();
            for (int i = 0, j = dataModel.printDataList.Count; i < j; i++)
            {
                PrintDataList rowModel = new PrintDataList();
                rowModel = dataModel.printDataList[i];
                int subdrLength = this.TextLength(rowModel.STR_PORDD_SUB_DR);
                string strSubdr = rowModel.STR_PORDD_SUB_DR;
                //一行摘要顯示對多subdrRowLength字 
                if (subdrLength > subdrRowLength)
                {
                    //調整金額
                    var LS_SUB_DR = dataModel.printDataList[i].LS_SUB_DR;
                    var LS_CURR_AM = dataModel.printDataList[i].LS_CURR_AM;
                    var LS_RATE_NT = dataModel.printDataList[i].LS_RATE_NT;
                    var LS_COST_QT = dataModel.printDataList[i].LS_COST_QT;
                    var LS_CURR_CD = dataModel.printDataList[i].LS_CURR_CD;
                    var LS_LI_AM = dataModel.printDataList[i].LS_LI_AM;
                    var LS_LI_AR_AM = dataModel.printDataList[i].LS_LI_AR_AM;
                    var LS_IS_RECEIVED = dataModel.printDataList[i].LS_IS_RECEIVED;
                    //抵扣餘額
                    var LS_AMOUNT_DEDUCTED = dataModel.printDataList[i].LS_AMOUNT_DEDUCTED;
                    var LS_DORD_AM = dataModel.printDataList[i].LS_DORD_AM;
                    var LS_DORD_CURR_CD = dataModel.printDataList[i].LS_DORD_CURR_CD;
                    var LS_DORD_RATE_NT = dataModel.printDataList[i].LS_DORD_RATE_NT;
                    //小計
                    var LS_SUB_PAY_AM = dataModel.printDataList[i].LS_SUB_PAY_AM;
                    var ROW_GRID = dataModel.printDataList[i].ROW_GRID;
                    var AR_AM_COUNT = dataModel.printDataList[i].AR_AM_COUNT;
                    var PORDD_ADJ_AM = dataModel.printDataList[i].PORDD_ADJ_AM;
                    //應收帳號
                    var LS_ACCT_NOR = dataModel.printDataList[i].LS_ACCT_NOR;
                    for (int a = 0, b = subdrLength / subdrRowLength + 1; a < b; a++)
                    {
                        rowModel = new PrintDataList();
                        //發生換行動作,除了第一行需要所有數據外,其餘行只需要摘要
                        if (a == 0)
                        {
                            rowModel = dataModel.printDataList[i];
                            //调整金额
                            rowModel.LS_SUB_DR = "";
                            rowModel.LS_CURR_AM = "";
                            rowModel.LS_RATE_NT = "";
                            rowModel.LS_COST_QT = "";
                            rowModel.LS_CURR_CD = "";
                            rowModel.LS_LI_AM = "";
                            rowModel.LS_LI_AR_AM = "";
                            rowModel.LS_IS_RECEIVED = "";
                            //抵扣餘額
                            rowModel.LS_AMOUNT_DEDUCTED = "";
                            rowModel.LS_DORD_AM = "";
                            rowModel.LS_DORD_CURR_CD = "";
                            rowModel.LS_DORD_RATE_NT = "";
                            //小計
                            rowModel.LS_SUB_PAY_AM = "";
                            rowModel.ROW_GRID = "";
                            rowModel.AR_AM_COUNT = "";
                            rowModel.PORDD_ADJ_AM = "";
                            //應收帳號
                            rowModel.LS_ACCT_NOR = "";
                        }
                        else if (!((a + 1) * subdrRowLength <= subdrLength))
                        {
                            //调整金额
                            rowModel.LS_SUB_DR = LS_SUB_DR;
                            rowModel.LS_CURR_AM = LS_CURR_AM;
                            rowModel.LS_RATE_NT = LS_RATE_NT;
                            rowModel.LS_COST_QT = LS_COST_QT;
                            rowModel.LS_CURR_CD = LS_CURR_CD;
                            rowModel.LS_LI_AM = LS_LI_AM;
                            rowModel.LS_LI_AR_AM = LS_LI_AR_AM;
                            rowModel.LS_IS_RECEIVED = LS_IS_RECEIVED;
                            //抵扣餘額
                            rowModel.LS_AMOUNT_DEDUCTED = LS_AMOUNT_DEDUCTED;
                            rowModel.LS_DORD_AM = LS_DORD_AM;
                            rowModel.LS_DORD_CURR_CD = LS_DORD_CURR_CD;
                            rowModel.LS_DORD_RATE_NT = LS_DORD_RATE_NT;
                            //小計
                            rowModel.LS_SUB_PAY_AM = LS_SUB_PAY_AM;
                            rowModel.ROW_GRID = ROW_GRID;
                            rowModel.AR_AM_COUNT = AR_AM_COUNT;
                            rowModel.PORDD_ADJ_AM = PORDD_ADJ_AM;
                            //應收帳號
                            rowModel.LS_ACCT_NOR = LS_ACCT_NOR;
                        }
                        if (!string.IsNullOrWhiteSpace(strSubdr))
                        {
                            rowModel.STR_PORDD_SUB_DR = this.GetSubString(strSubdr, subdrRowLength);
                            strSubdr = strSubdr.Replace(rowModel.STR_PORDD_SUB_DR, "");
                        }
                        dataModel.printSubdrDataList.Add(rowModel);
                    }
                }
                else
                {
                    dataModel.printSubdrDataList.Add(rowModel);
                }
            }
            #endregion


            //減少改動量
            dataModel.printDataList = new List<PrintDataList>();
            dataModel.printDataList = dataModel.printSubdrDataList;
            int PageOr = dataModel.printDataList.Count % rows;
            int PageNum = dataModel.printDataList.Count / rows;
            var strRow = "0";//主要用於標記在畫第幾行的時候滿rows行的
            if (PageOr > 0)
            {
                PageNum = PageNum + 1;
            }
            
            for (int i = 0, j = dataModel.printDataList.Count; i < j; )
            {
                #region 分頁
                Paragraph ph = new Paragraph();
                PdfPTable table1 = new PdfPTable(1);


                if (i != 0 && i < dataModel.printDataList.Count)
                {
                    //分頁
                    doc.NewPage();
                    page++;
                }
                #endregion


                #region 表頭數據
                table1.AddCell(this.GetPordCell(dataModel.SYS_COMP_FNM, chineseTitle14, grid, 1, padding));
                table1.AddCell(this.GetPordCell(dataModel.SYS_COMP_ADDR, chineseTitle10, grid, 1, padding));
                table1.AddCell(this.GetPordCell("TEL:" + dataModel.SYS_COMP_TEL + "  FAX:" + dataModel.SYS_COMP_FAX, chineseTitle10, grid, 1, padding));
                if (dataModel.BPAY_FG.ToUpper() == "TRUE")
                {
                    if (dataModel.DEPT_FG.ToUpper() == "TRUE")
                    {
                        table1.AddCell(this.GetPordCell(" 預付請款單 " + "(" + dataModel.DEPT_NM + ")", chineseTitle14, grid, 1, padding));
                    }
                    else
                    {
                        table1.AddCell(this.GetPordCell(" 預付請款單 ", chineseTitle14, grid, 1, padding));
                    }
                }
                else
                {
                    if (dataModel.DEPT_FG.ToUpper() == "TRUE")
                    {
                        table1.AddCell(this.GetPordCell(" 請 款 單 " + "(" + dataModel.DEPT_NM + ")", chineseTitle14, grid, 1, padding));
                    }
                    else
                    {
                        table1.AddCell(this.GetPordCell(" 請 款 單 ", chineseTitle14, grid, 1, padding));
                    }
                }
                PdfPTable table2 = new PdfPTable(2);
                table2.SetWidths(new float[] { 80f, 20f });
                table2.AddCell(this.GetPordCell("", chineseTitle10, grid, 0, padding));
                table2.AddCell(this.GetPordCell("單    號:" + dataModel.PORD_NO, chineseTitle10, grid, 0, padding));
                table2.AddCell(this.GetPordCell("", chineseTitle10, grid, 0, padding));
                table2.AddCell(this.GetPordCell("日    期:" + dataModel.PORD_DT, chineseTitle10, grid, 0, padding));
                table2.AddCell(this.GetPordCell("應付帳號:" + dataModel.LS_ACCT_NOP + "   " + dataModel.ACCT_NM, chineseTitle10, grid, 0, padding));
                table2.AddCell(this.GetPordCell("時    間:" + dataModel.DATE_TIME, chineseTitle10, grid, 0, padding));
                table2.AddCell(this.GetPordCell("摘  要:" + dataModel.LS_SUB_DR, chineseTitle10, grid, 0, padding));
                table2.AddCell(this.GetPordCell("頁    次:" + page + "/" + PageNum.ToString() + "  " + "(" + dataModel.PRN_QT1 + ")", chineseTitle10, grid, 0, padding));
                #endregion


                #region 數據列循環
                PdfPTable table3 = new PdfPTable(1);
                table3.AddCell(this.GetPordCell("====================================================================================================================", chineseTitle10, grid, 0, padding));
                PdfPTable table4 = new PdfPTable(8);


                #region 數據列表頭
                switch (dataModel.SHOW_TP)
                {
                    case "1":
                        table4.SetWidths(new float[] { 8f, 12f, 35f, 12f, 8f, 7f, 6f, 12f });
                        table4.AddCell(this.GetPordCell("訂單編號", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("團    號", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("摘              要 ", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("單  價", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("幣別", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("匯率", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("數量", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("預付金額", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("---------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------------------------------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("---------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("--------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------", chineseTitle10, grid, 0, padding));
                        break;
                    case "2":
                        table4.SetWidths(new float[] { 8f, 12f, 35f, 12f, 8f, 7f, 6f, 12f });
                        table4.AddCell(this.GetPordCell("訂單編號", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("團    號", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("摘              要 ", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("單  價", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("幣別", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("匯率", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("數量", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("應付金額", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("---------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------------------------------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("---------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("--------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------", chineseTitle10, grid, 0, padding));
                        break;
                    case "3":
                        table4 = new PdfPTable(10);
                        table4.SetWidths(new float[] { 9f, 11f, 25f, 10f, 6f, 8f, 7f, 10f, 10f, 4f });
                        table4.AddCell(this.GetPordCell("訂單編號", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("團號", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("摘 要 ", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("單價", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("幣別", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("匯率", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("數量", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("應付金額", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("應收金額", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("已收", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("----------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("------------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("----------------------------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-----------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("--------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-----------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-----------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("----", chineseTitle10, grid, 0, padding));
                        break;
                    default:
                        break;
                }
                #endregion


                #region 數據列表——作廢 By Vivian 2017/08/10
                //var rowsNum = 0;//畫面rows行後立即跳出循環。
                //for (int a = i, b = (i + rows); a < b; a++)
                //{
                //    if (a < dataModel.printDataList.Count)
                //    {
                //        i++;//寫在前面是為了防止下一頁還列印上一頁最後一行


                //        #region 第一行——應付帳號
                //        if (dataModel.ACCT_NOP_FG == "Y" && dataModel.PROD_PRT_TP == "0" && !string.IsNullOrWhiteSpace(dataModel.printDataList[a].ACCT_NOP))
                //        {
                //            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ACCT_NOP, chineseTitle10, grid, 0, padding, colspan));//合併單元格,應付帳號
                //            rowsNum++;
                //            if (rowsNum == rows)
                //            {
                //                break;
                //            }
                //        }


                //        #endregion


                //        #region 第二行——主檔明細資料
                //        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_OP_SQ, chineseTitle10, grid, 0, padding));
                //        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_GRUP_CD, chineseTitle10, grid, 0, padding));
                //        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].STR_PORDD_SUB_DR, chineseTitle10, grid, 0, padding));
                //        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_CURR_AM, chineseTitle10, grid, 2, padding));
                //        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_CURR_CD, chineseTitle10, grid, 1, padding));
                //        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_RATE_NT, chineseTitle10, grid, 2, padding));
                //        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_COST_QT, chineseTitle10, grid, 2, padding));
                //        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].TMP_LI_AM == "00" ? "0" : dataModel.printDataList[a].TMP_LI_AM, chineseTitle10, grid, 2, padding));
                //        if (dataModel.SHOW_TP == "3")//列印應收金額
                //        {
                //            string LD_ARAM = String.Format("{0:0,0}", Convert.ToDecimal(dataModel.printDataList[a].LI_ARAM.ToString()));
                            
                //            if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a].TMP_LI_AM))
                //                dataModel.LD_ARAM = LD_ARAM == "00" ? "0" : LD_ARAM;
                //            else
                //                dataModel.LD_ARAM = LD_ARAM == "00" ? "" : LD_ARAM;
                //            table4.AddCell(this.GetPordCell(dataModel.LD_ARAM, chineseTitle10, grid, 2, padding));//應收金額
                //            //table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_AR_AM == "00" ? "0" : dataModel.printDataList[a].LI_AR_AM, chineseTitle10, grid, 2, padding));//應收金額
                //            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].IS_RECEIVED, chineseTitle10, grid, 1, padding));//已收
                //        }
                //        rowsNum++;
                //        if (rowsNum == rows)
                //        {
                //            break;
                //        }


                //        #endregion


                //        #region 第三行——應收帳號
                //        var LS_ACCT_NOR = dataModel.printDataList[a].LS_ACCT_NOR;
                //        if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR))
                //        {
                //            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_ACCT_NOR, chineseTitle10, grid, 0, padding, colspan));//合併單元格,應付帳號
                //            rowsNum++;
                //            if (rowsNum == rows)
                //            {
                //                break;
                //            }
                //        }


                //        #endregion


                //        #region 第四行——調整金額資料
                //        var LS_ACCT_NOR1 = dataModel.printDataList[a].LS_ACCT_NOR;
                //        var LS_SUB_DR1 = dataModel.printDataList[a].LS_SUB_DR;
                //        var LS_CURR_AM = dataModel.printDataList[a].LS_CURR_AM;
                //        var LS_CURR_CD = dataModel.printDataList[a].LS_CURR_CD;
                //        var LS_RATE_NT = dataModel.printDataList[a].LS_RATE_NT;
                //        var LS_COST_QT = dataModel.printDataList[a].LS_COST_QT;
                //        var LS_LI_AM = dataModel.printDataList[a].LS_LI_AM;
                //        var LS_LI_AR_AM = dataModel.printDataList[a].LS_LI_AR_AM;
                //        var LS_IS_RECEIVED = dataModel.printDataList[a].LS_IS_RECEIVED;
                //        if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR1) || !string.IsNullOrWhiteSpace(LS_SUB_DR1) || !string.IsNullOrWhiteSpace(LS_CURR_AM)
                //            || !string.IsNullOrWhiteSpace(LS_CURR_CD) || !string.IsNullOrWhiteSpace(LS_RATE_NT) || !string.IsNullOrWhiteSpace(LS_COST_QT)
                //            || !string.IsNullOrWhiteSpace(LS_LI_AM) || !string.IsNullOrWhiteSpace(LS_LI_AR_AM) || !string.IsNullOrWhiteSpace(LS_IS_RECEIVED))
                //        {
                //            table4.AddCell(this.GetPordCell(LS_ACCT_NOR1, chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                //            table4.AddCell(this.GetPordCell(LS_SUB_DR1, chineseTitle10, grid, 0, padding));
                //            table4.AddCell(this.GetPordCell(LS_CURR_AM, chineseTitle10, grid, 2, padding));
                //            table4.AddCell(this.GetPordCell(LS_CURR_CD, chineseTitle10, grid, 1, padding));
                //            table4.AddCell(this.GetPordCell(LS_RATE_NT, chineseTitle10, grid, 2, padding));
                //            table4.AddCell(this.GetPordCell(LS_COST_QT, chineseTitle10, grid, 2, padding));
                //            table4.AddCell(this.GetPordCell(LS_LI_AM, chineseTitle10, grid, 2, padding));
                //            if (dataModel.SHOW_TP == "3")//列印應收金額
                //            {
                //                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_LI_AR_AM, chineseTitle10, grid, 2, padding));//應收金額
                //                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_IS_RECEIVED, chineseTitle10, grid, 1, padding));//已收
                //            }
                //            rowsNum++;
                //            if (rowsNum == rows)
                //            {
                //                break;
                //            }
                //        }


                //        #endregion


                //        #region 第五行——抵扣餘額
                //        var LS_AMOUNT_DEDUCTED = dataModel.printDataList[a].LS_AMOUNT_DEDUCTED;
                //        var LS_DORD_AM = dataModel.printDataList[a].LS_DORD_AM;
                //        var LS_DORD_CURR_CD = dataModel.printDataList[a].LS_DORD_CURR_CD;
                //        var LS_DORD_RATE_NT = dataModel.printDataList[a].LS_DORD_RATE_NT;
                //        if (!string.IsNullOrWhiteSpace(LS_AMOUNT_DEDUCTED) || !string.IsNullOrWhiteSpace(LS_DORD_AM)
                //            || !string.IsNullOrWhiteSpace(LS_DORD_CURR_CD) || !string.IsNullOrWhiteSpace(LS_DORD_RATE_NT))
                //        {
                //            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                //            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_AMOUNT_DEDUCTED, chineseTitle10, grid, 0, padding));
                //            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_AM, chineseTitle10, grid, 2, padding));
                //            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_CURR_CD, chineseTitle10, grid, 1, padding));
                //            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_RATE_NT, chineseTitle10, grid, 2, padding));
                //            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                //            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                //            if (dataModel.SHOW_TP == "3")//列印應收金額
                //            {
                //                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 2));
                //            }
                //            rowsNum++;
                //            if (rowsNum == rows)
                //            {
                //                break;
                //            }
                //        }
                //        #endregion


                //        #region 第六\七行——金額小計橫線
                //        bool flgPintCount = false;
                //        if ((a + 1) < dataModel.printDataList.Count)
                //        {
                //            if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a + 1].ACCT_NOP))
                //            {
                //                flgPintCount = true;
                //            }
                //        }
                //        else//最後一個帳號的小計,調整金額為0
                //        {
                //            if (dataModel.printDataList[dataModel.printDataList.Count - 1].PORDD_ADJ_AM == "0")
                //                flgPintCount = true;
                //        }
                //        if (!string.IsNullOrWhiteSpace(dataModel.PROD_PRT_TP) && dataModel.ACCT_NOP_FG == "Y")
                //        {
                //            var AR_AM_COUNT = dataModel.printDataList[a].AR_AM_COUNT;
                //            var LS_SUB_PAY_AM = dataModel.printDataList[a].LS_SUB_PAY_AM;
                //            if (flgPintCount)//第一個帳號的小計
                //            {
                //                if (!string.IsNullOrWhiteSpace(AR_AM_COUNT) || !string.IsNullOrWhiteSpace(LS_SUB_PAY_AM))
                //                {
                //                    //出現應付帳號都會小計,最後一筆應付帳號不計算
                //                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ROW_GRID, chineseTitle10, grid, 2, padding, 8));
                //                    if (dataModel.SHOW_TP == "3")//應收金額(空白)
                //                    {
                //                        table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                //                    }


                //                    table4.AddCell(this.GetPordCell(AR_AM_COUNT, chineseTitle10, grid, 2, padding, 7));
                //                    table4.AddCell(this.GetPordCell(LS_SUB_PAY_AM, chineseTitle10, grid, 2, padding));
                //                    if (dataModel.SHOW_TP == "3")//應收金額(空白)
                //                    {
                //                        table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                //                    }
                //                    rowsNum += 2;
                //                    if (rowsNum == rows || rowsNum > rows)
                //                        break;
                //                }
                //            }
                //        }
                //        continue;
                //        #endregion
                //    }
                //}
                #endregion


                #region 數據列表
                var rowsNum = 0;//畫面rows行後立即跳出循環。
                
                for (int a = i, b = (i + rows); a < b; a++)
                {
                    if (a < dataModel.printDataList.Count)
                    {
                        if (strRow == "0")
                        {
                            //i++;//防止下一頁還列印上一頁最後一行
                            #region 第一行——應付帳號
                            if (dataModel.ACCT_NOP_FG == "Y" && dataModel.PROD_PRT_TP == "0" && !string.IsNullOrWhiteSpace(dataModel.printDataList[a].ACCT_NOP))
                            {
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ACCT_NOP, chineseTitle10, grid, 0, padding, colspan));//合併單元格,應付帳號
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "1";//當畫到“應付帳號”時剛好滿rows行,這時再畫下一筆時應進入strRow = "1"這個判斷
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "1";
                                    break;
                                }


                                //if (page > intPagNum -1 && rowsNum > 18)
                                //{
                                //    strRow = "1";//當畫到“應付帳號”時剛好滿rows行,這時再畫下一筆時應進入strRow = "1"這個判斷
                                //    break;
                                //}
                            }


                            #endregion


                            #region 第二行——主檔明細資料


                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_OP_SQ, chineseTitle10, grid, 0, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_GRUP_CD, chineseTitle10, grid, 0, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].STR_PORDD_SUB_DR, chineseTitle10, grid, 0, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_CURR_AM, chineseTitle10, grid, 2, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_CURR_CD, chineseTitle10, grid, 1, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_RATE_NT, chineseTitle10, grid, 2, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_COST_QT, chineseTitle10, grid, 2, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].TMP_LI_AM == "00" ? "0" : dataModel.printDataList[a].TMP_LI_AM, chineseTitle10, grid, 2, padding));
                            if (dataModel.SHOW_TP == "3")//列印應收金額
                            {
                                string LD_ARAM = String.Format("{0:0,0}", Convert.ToDecimal(dataModel.printDataList[a].LI_ARAM.ToString()));
                                dataModel.LD_ARAM = LD_ARAM == "00" ? "" : LD_ARAM;
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_AR_AM == "00" ? "" : dataModel.printDataList[a].LI_AR_AM, chineseTitle10, grid, 2, padding));//應收金額
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].IS_RECEIVED, chineseTitle10, grid, 1, padding));//已收
                            }
                            rowsNum++;
                            if (rowsNum == rows)
                            {
                                strRow = "2";
                                break;
                            }
                            else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                            {
                                strRow = "2";
                                break;
                            }


                            //if (page > intPagNum - 1 && rowsNum > 18)
                            //{
                            //    strRow = "2";
                            //    break;
                            //}


                            #endregion


                            #region 第三行——應收帳號
                            var LS_ACCT_NOR = dataModel.printDataList[a].LS_ACCT_NOR;
                            if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR))
                            {
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_ACCT_NOR, chineseTitle10, grid, 0, padding, colspan));//合併單元格,應付帳號
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "3";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "3";
                                    break;
                                }


                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "3";
                                //    break;
                                //}
                            }


                            #endregion


                            #region 第四行——調整金額資料
                            var LS_ACCT_NOR1 = dataModel.printDataList[a].LS_ACCT_NOR;
                            var LS_SUB_DR1 = dataModel.printDataList[a].LS_SUB_DR;
                            var LS_CURR_AM = dataModel.printDataList[a].LS_CURR_AM;
                            var LS_CURR_CD = dataModel.printDataList[a].LS_CURR_CD;
                            var LS_RATE_NT = dataModel.printDataList[a].LS_RATE_NT;
                            var LS_COST_QT = dataModel.printDataList[a].LS_COST_QT;
                            var LS_LI_AM = dataModel.printDataList[a].LS_LI_AM;
                            var LS_LI_AR_AM = dataModel.printDataList[a].LS_LI_AR_AM;
                            var LS_IS_RECEIVED = dataModel.printDataList[a].LS_IS_RECEIVED;
                            if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR1) || !string.IsNullOrWhiteSpace(LS_SUB_DR1) || !string.IsNullOrWhiteSpace(LS_CURR_AM)
                                || !string.IsNullOrWhiteSpace(LS_CURR_CD) || !string.IsNullOrWhiteSpace(LS_RATE_NT) || !string.IsNullOrWhiteSpace(LS_COST_QT)
                                || !string.IsNullOrWhiteSpace(LS_LI_AM) || !string.IsNullOrWhiteSpace(LS_LI_AR_AM) || !string.IsNullOrWhiteSpace(LS_IS_RECEIVED))
                            {
                                table4.AddCell(this.GetPordCell(LS_ACCT_NOR1, chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(LS_SUB_DR1, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(LS_CURR_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(LS_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_COST_QT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_LI_AM, chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_LI_AR_AM, chineseTitle10, grid, 2, padding));//應收金額
                                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_IS_RECEIVED, chineseTitle10, grid, 1, padding));//已收
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "4";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "4";
                                    break;
                                }


                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "4";
                                //    break;
                                //}
                            }


                            #endregion


                            #region 第五行——抵扣餘額
                            var LS_AMOUNT_DEDUCTED = dataModel.printDataList[a].LS_AMOUNT_DEDUCTED;
                            var LS_DORD_AM = dataModel.printDataList[a].LS_DORD_AM;
                            var LS_DORD_CURR_CD = dataModel.printDataList[a].LS_DORD_CURR_CD;
                            var LS_DORD_RATE_NT = dataModel.printDataList[a].LS_DORD_RATE_NT;
                            if (!string.IsNullOrWhiteSpace(LS_AMOUNT_DEDUCTED) || !string.IsNullOrWhiteSpace(LS_DORD_AM)
                                || !string.IsNullOrWhiteSpace(LS_DORD_CURR_CD) || !string.IsNullOrWhiteSpace(LS_DORD_RATE_NT))
                            {
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_AMOUNT_DEDUCTED, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 2));
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "5";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "5";
                                    break;
                                }
                                    


                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "5";
                                //    break;
                                //}
                            }
                            #endregion


                            #region 第六\七行——金額小計橫線
                            i++;
                            strRow = "0";
                            bool flgPintCount = false;
                            if ((a + 1) < dataModel.printDataList.Count)
                            {
                                if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a + 1].ACCT_NOP))
                                {
                                    flgPintCount = true;
                                }
                            }
                            else//最後一個帳號的小計,調整金額為0
                            {
                                if (dataModel.printDataList[dataModel.printDataList.Count - 1].PORDD_ADJ_AM == "0")
                                    flgPintCount = true;
                            }
                            if (!string.IsNullOrWhiteSpace(dataModel.PROD_PRT_TP) && dataModel.ACCT_NOP_FG == "Y")
                            {
                                var AR_AM_COUNT = dataModel.printDataList[a].AR_AM_COUNT;
                                var LS_SUB_PAY_AM = dataModel.printDataList[a].LS_SUB_PAY_AM;
                                if (flgPintCount)//第一個帳號的小計
                                {
                                    if (!string.IsNullOrWhiteSpace(AR_AM_COUNT) || !string.IsNullOrWhiteSpace(LS_SUB_PAY_AM))
                                    {
                                        //出現應付帳號都會小計,最後一筆應付帳號不計算
                                        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ROW_GRID, chineseTitle10, grid, 2, padding, 8));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }


                                        table4.AddCell(this.GetPordCell(AR_AM_COUNT, chineseTitle10, grid, 2, padding, 7));
                                        table4.AddCell(this.GetPordCell(LS_SUB_PAY_AM, chineseTitle10, grid, 2, padding));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }
                                        rowsNum += 2;
                                        if (rowsNum == rows || rowsNum > rows)
                                            break;
                                        else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                            break;


                                        //if (page > intPagNum - 1 && rowsNum > 18)
                                        //{
                                        //    break;
                                        //}
                                    }
                                }
                            }
                            continue;
                            #endregion
                        }
                        else if (strRow == "1")
                        {
                            #region 第二行——主檔明細資料


                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_OP_SQ, chineseTitle10, grid, 0, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_GRUP_CD, chineseTitle10, grid, 0, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].STR_PORDD_SUB_DR, chineseTitle10, grid, 0, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_CURR_AM, chineseTitle10, grid, 2, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_CURR_CD, chineseTitle10, grid, 1, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_RATE_NT, chineseTitle10, grid, 2, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_COST_QT, chineseTitle10, grid, 2, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].TMP_LI_AM == "00" ? "0" : dataModel.printDataList[a].TMP_LI_AM, chineseTitle10, grid, 2, padding));
                            if (dataModel.SHOW_TP == "3")//列印應收金額
                            {
                                string LD_ARAM = String.Format("{0:0,0}", Convert.ToDecimal(dataModel.printDataList[a].LI_ARAM.ToString()));
                                dataModel.LD_ARAM = LD_ARAM == "00" ? "" : LD_ARAM;
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_AR_AM == "00" ? "" : dataModel.printDataList[a].LI_AR_AM, chineseTitle10, grid, 2, padding));//應收金額
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].IS_RECEIVED, chineseTitle10, grid, 1, padding));//已收
                            }
                            rowsNum++;
                            if (rowsNum == rows)
                            {
                                strRow = "2";
                                break;
                            }
                            else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                            {
                                strRow = "2";
                                break;
                            }


                            //if (page > intPagNum - 1 && rowsNum > 18)
                            //{
                            //    strRow = "2";
                            //    break;
                            //}


                            #endregion


                            #region 第三行——應收帳號
                            var LS_ACCT_NOR = dataModel.printDataList[a].LS_ACCT_NOR;
                            if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR))
                            {
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_ACCT_NOR, chineseTitle10, grid, 0, padding, colspan));//合併單元格,應付帳號
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "3";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "3";
                                    break;
                                }


                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "3";
                                //    break;
                                //}
                            }


                            #endregion


                            #region 第四行——調整金額資料
                            var LS_ACCT_NOR1 = dataModel.printDataList[a].LS_ACCT_NOR;
                            var LS_SUB_DR1 = dataModel.printDataList[a].LS_SUB_DR;
                            var LS_CURR_AM = dataModel.printDataList[a].LS_CURR_AM;
                            var LS_CURR_CD = dataModel.printDataList[a].LS_CURR_CD;
                            var LS_RATE_NT = dataModel.printDataList[a].LS_RATE_NT;
                            var LS_COST_QT = dataModel.printDataList[a].LS_COST_QT;
                            var LS_LI_AM = dataModel.printDataList[a].LS_LI_AM;
                            var LS_LI_AR_AM = dataModel.printDataList[a].LS_LI_AR_AM;
                            var LS_IS_RECEIVED = dataModel.printDataList[a].LS_IS_RECEIVED;
                            if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR1) || !string.IsNullOrWhiteSpace(LS_SUB_DR1) || !string.IsNullOrWhiteSpace(LS_CURR_AM)
                                || !string.IsNullOrWhiteSpace(LS_CURR_CD) || !string.IsNullOrWhiteSpace(LS_RATE_NT) || !string.IsNullOrWhiteSpace(LS_COST_QT)
                                || !string.IsNullOrWhiteSpace(LS_LI_AM) || !string.IsNullOrWhiteSpace(LS_LI_AR_AM) || !string.IsNullOrWhiteSpace(LS_IS_RECEIVED))
                            {
                                table4.AddCell(this.GetPordCell(LS_ACCT_NOR1, chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(LS_SUB_DR1, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(LS_CURR_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(LS_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_COST_QT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_LI_AM, chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_LI_AR_AM, chineseTitle10, grid, 2, padding));//應收金額
                                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_IS_RECEIVED, chineseTitle10, grid, 1, padding));//已收
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "4";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "4";
                                    break;
                                }


                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "4";
                                //    break;
                                //}
                            }


                            #endregion


                            #region 第五行——抵扣餘額
                            var LS_AMOUNT_DEDUCTED = dataModel.printDataList[a].LS_AMOUNT_DEDUCTED;
                            var LS_DORD_AM = dataModel.printDataList[a].LS_DORD_AM;
                            var LS_DORD_CURR_CD = dataModel.printDataList[a].LS_DORD_CURR_CD;
                            var LS_DORD_RATE_NT = dataModel.printDataList[a].LS_DORD_RATE_NT;
                            if (!string.IsNullOrWhiteSpace(LS_AMOUNT_DEDUCTED) || !string.IsNullOrWhiteSpace(LS_DORD_AM)
                                || !string.IsNullOrWhiteSpace(LS_DORD_CURR_CD) || !string.IsNullOrWhiteSpace(LS_DORD_RATE_NT))
                            {
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_AMOUNT_DEDUCTED, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 2));
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "5";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "5";
                                    break;
                                }




                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "5";
                                //    break;
                                //}
                            }
                            #endregion


                            #region 第六\七行——金額小計橫線
                            i++;
                            strRow = "0";
                            bool flgPintCount = false;
                            if ((a + 1) < dataModel.printDataList.Count)
                            {
                                if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a + 1].ACCT_NOP))
                                {
                                    flgPintCount = true;
                                }
                            }
                            else//最後一個帳號的小計,調整金額為0
                            {
                                if (dataModel.printDataList[dataModel.printDataList.Count - 1].PORDD_ADJ_AM == "0")
                                    flgPintCount = true;
                            }
                            if (!string.IsNullOrWhiteSpace(dataModel.PROD_PRT_TP) && dataModel.ACCT_NOP_FG == "Y")
                            {
                                var AR_AM_COUNT = dataModel.printDataList[a].AR_AM_COUNT;
                                var LS_SUB_PAY_AM = dataModel.printDataList[a].LS_SUB_PAY_AM;
                                if (flgPintCount)//第一個帳號的小計
                                {
                                    if (!string.IsNullOrWhiteSpace(AR_AM_COUNT) || !string.IsNullOrWhiteSpace(LS_SUB_PAY_AM))
                                    {
                                        //出現應付帳號都會小計,最後一筆應付帳號不計算
                                        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ROW_GRID, chineseTitle10, grid, 2, padding, 8));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }


                                        table4.AddCell(this.GetPordCell(AR_AM_COUNT, chineseTitle10, grid, 2, padding, 7));
                                        table4.AddCell(this.GetPordCell(LS_SUB_PAY_AM, chineseTitle10, grid, 2, padding));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }
                                        rowsNum += 2;
                                        if (rowsNum == rows || rowsNum > rows)
                                            break;
                                        else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                            break;


                                        //if (page > intPagNum - 1 && rowsNum > 18)
                                        //{
                                        //    break;
                                        //}
                                    }
                                }
                            }
                            continue;
                            #endregion
                        }
                        else if (strRow == "2")
                        {
                            #region 第三行——應收帳號
                            var LS_ACCT_NOR = dataModel.printDataList[a].LS_ACCT_NOR;
                            if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR))
                            {
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_ACCT_NOR, chineseTitle10, grid, 0, padding, colspan));//合併單元格,應付帳號
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "3";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "3";
                                    break;
                                }


                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "3";
                                //    break;
                                //}
                            }


                            #endregion


                            #region 第四行——調整金額資料
                            var LS_ACCT_NOR1 = dataModel.printDataList[a].LS_ACCT_NOR;
                            var LS_SUB_DR1 = dataModel.printDataList[a].LS_SUB_DR;
                            var LS_CURR_AM = dataModel.printDataList[a].LS_CURR_AM;
                            var LS_CURR_CD = dataModel.printDataList[a].LS_CURR_CD;
                            var LS_RATE_NT = dataModel.printDataList[a].LS_RATE_NT;
                            var LS_COST_QT = dataModel.printDataList[a].LS_COST_QT;
                            var LS_LI_AM = dataModel.printDataList[a].LS_LI_AM;
                            var LS_LI_AR_AM = dataModel.printDataList[a].LS_LI_AR_AM;
                            var LS_IS_RECEIVED = dataModel.printDataList[a].LS_IS_RECEIVED;
                            if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR1) || !string.IsNullOrWhiteSpace(LS_SUB_DR1) || !string.IsNullOrWhiteSpace(LS_CURR_AM)
                                || !string.IsNullOrWhiteSpace(LS_CURR_CD) || !string.IsNullOrWhiteSpace(LS_RATE_NT) || !string.IsNullOrWhiteSpace(LS_COST_QT)
                                || !string.IsNullOrWhiteSpace(LS_LI_AM) || !string.IsNullOrWhiteSpace(LS_LI_AR_AM) || !string.IsNullOrWhiteSpace(LS_IS_RECEIVED))
                            {
                                table4.AddCell(this.GetPordCell(LS_ACCT_NOR1, chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(LS_SUB_DR1, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(LS_CURR_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(LS_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_COST_QT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_LI_AM, chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_LI_AR_AM, chineseTitle10, grid, 2, padding));//應收金額
                                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_IS_RECEIVED, chineseTitle10, grid, 1, padding));//已收
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "4";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "4";
                                    break;
                                }


                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "4";
                                //    break;
                                //}
                            }


                            #endregion


                            #region 第五行——抵扣餘額
                            var LS_AMOUNT_DEDUCTED = dataModel.printDataList[a].LS_AMOUNT_DEDUCTED;
                            var LS_DORD_AM = dataModel.printDataList[a].LS_DORD_AM;
                            var LS_DORD_CURR_CD = dataModel.printDataList[a].LS_DORD_CURR_CD;
                            var LS_DORD_RATE_NT = dataModel.printDataList[a].LS_DORD_RATE_NT;
                            if (!string.IsNullOrWhiteSpace(LS_AMOUNT_DEDUCTED) || !string.IsNullOrWhiteSpace(LS_DORD_AM)
                                || !string.IsNullOrWhiteSpace(LS_DORD_CURR_CD) || !string.IsNullOrWhiteSpace(LS_DORD_RATE_NT))
                            {
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_AMOUNT_DEDUCTED, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 2));
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "5";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "5";
                                    break;
                                }




                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "5";
                                //    break;
                                //}
                            }
                            #endregion


                            #region 第六\七行——金額小計橫線
                            i++;
                            strRow = "0";
                            bool flgPintCount = false;
                            if ((a + 1) < dataModel.printDataList.Count)
                            {
                                if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a + 1].ACCT_NOP))
                                {
                                    flgPintCount = true;
                                }
                            }
                            else//最後一個帳號的小計,調整金額為0
                            {
                                if (dataModel.printDataList[dataModel.printDataList.Count - 1].PORDD_ADJ_AM == "0")
                                    flgPintCount = true;
                            }
                            if (!string.IsNullOrWhiteSpace(dataModel.PROD_PRT_TP) && dataModel.ACCT_NOP_FG == "Y")
                            {
                                var AR_AM_COUNT = dataModel.printDataList[a].AR_AM_COUNT;
                                var LS_SUB_PAY_AM = dataModel.printDataList[a].LS_SUB_PAY_AM;
                                if (flgPintCount)//第一個帳號的小計
                                {
                                    if (!string.IsNullOrWhiteSpace(AR_AM_COUNT) || !string.IsNullOrWhiteSpace(LS_SUB_PAY_AM))
                                    {
                                        //出現應付帳號都會小計,最後一筆應付帳號不計算
                                        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ROW_GRID, chineseTitle10, grid, 2, padding, 8));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }


                                        table4.AddCell(this.GetPordCell(AR_AM_COUNT, chineseTitle10, grid, 2, padding, 7));
                                        table4.AddCell(this.GetPordCell(LS_SUB_PAY_AM, chineseTitle10, grid, 2, padding));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }
                                        rowsNum += 2;
                                        if (rowsNum == rows || rowsNum > rows)
                                            break;
                                        else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                            break;


                                        //if (page > intPagNum - 1 && rowsNum > 18)
                                        //{
                                        //    break;
                                        //}
                                    }
                                }
                            }
                            continue;
                            #endregion
                        }
                        else if (strRow == "3")
                        {
                            #region 第四行——調整金額資料
                            var LS_ACCT_NOR1 = dataModel.printDataList[a].LS_ACCT_NOR;
                            var LS_SUB_DR1 = dataModel.printDataList[a].LS_SUB_DR;
                            var LS_CURR_AM = dataModel.printDataList[a].LS_CURR_AM;
                            var LS_CURR_CD = dataModel.printDataList[a].LS_CURR_CD;
                            var LS_RATE_NT = dataModel.printDataList[a].LS_RATE_NT;
                            var LS_COST_QT = dataModel.printDataList[a].LS_COST_QT;
                            var LS_LI_AM = dataModel.printDataList[a].LS_LI_AM;
                            var LS_LI_AR_AM = dataModel.printDataList[a].LS_LI_AR_AM;
                            var LS_IS_RECEIVED = dataModel.printDataList[a].LS_IS_RECEIVED;
                            if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR1) || !string.IsNullOrWhiteSpace(LS_SUB_DR1) || !string.IsNullOrWhiteSpace(LS_CURR_AM)
                                || !string.IsNullOrWhiteSpace(LS_CURR_CD) || !string.IsNullOrWhiteSpace(LS_RATE_NT) || !string.IsNullOrWhiteSpace(LS_COST_QT)
                                || !string.IsNullOrWhiteSpace(LS_LI_AM) || !string.IsNullOrWhiteSpace(LS_LI_AR_AM) || !string.IsNullOrWhiteSpace(LS_IS_RECEIVED))
                            {
                                table4.AddCell(this.GetPordCell(LS_ACCT_NOR1, chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(LS_SUB_DR1, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(LS_CURR_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(LS_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_COST_QT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_LI_AM, chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_LI_AR_AM, chineseTitle10, grid, 2, padding));//應收金額
                                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_IS_RECEIVED, chineseTitle10, grid, 1, padding));//已收
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "4";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "4";
                                    break;
                                }


                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "4";
                                //    break;
                                //}
                            }


                            #endregion


                            #region 第五行——抵扣餘額
                            var LS_AMOUNT_DEDUCTED = dataModel.printDataList[a].LS_AMOUNT_DEDUCTED;
                            var LS_DORD_AM = dataModel.printDataList[a].LS_DORD_AM;
                            var LS_DORD_CURR_CD = dataModel.printDataList[a].LS_DORD_CURR_CD;
                            var LS_DORD_RATE_NT = dataModel.printDataList[a].LS_DORD_RATE_NT;
                            if (!string.IsNullOrWhiteSpace(LS_AMOUNT_DEDUCTED) || !string.IsNullOrWhiteSpace(LS_DORD_AM)
                                || !string.IsNullOrWhiteSpace(LS_DORD_CURR_CD) || !string.IsNullOrWhiteSpace(LS_DORD_RATE_NT))
                            {
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_AMOUNT_DEDUCTED, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 2));
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "5";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "5";
                                    break;
                                }




                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "5";
                                //    break;
                                //}
                            }
                            #endregion


                            #region 第六\七行——金額小計橫線
                            i++;
                            strRow = "0";
                            bool flgPintCount = false;
                            if ((a + 1) < dataModel.printDataList.Count)
                            {
                                if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a + 1].ACCT_NOP))
                                {
                                    flgPintCount = true;
                                }
                            }
                            else//最後一個帳號的小計,調整金額為0
                            {
                                if (dataModel.printDataList[dataModel.printDataList.Count - 1].PORDD_ADJ_AM == "0")
                                    flgPintCount = true;
                            }
                            if (!string.IsNullOrWhiteSpace(dataModel.PROD_PRT_TP) && dataModel.ACCT_NOP_FG == "Y")
                            {
                                var AR_AM_COUNT = dataModel.printDataList[a].AR_AM_COUNT;
                                var LS_SUB_PAY_AM = dataModel.printDataList[a].LS_SUB_PAY_AM;
                                if (flgPintCount)//第一個帳號的小計
                                {
                                    if (!string.IsNullOrWhiteSpace(AR_AM_COUNT) || !string.IsNullOrWhiteSpace(LS_SUB_PAY_AM))
                                    {
                                        //出現應付帳號都會小計,最後一筆應付帳號不計算
                                        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ROW_GRID, chineseTitle10, grid, 2, padding, 8));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }


                                        table4.AddCell(this.GetPordCell(AR_AM_COUNT, chineseTitle10, grid, 2, padding, 7));
                                        table4.AddCell(this.GetPordCell(LS_SUB_PAY_AM, chineseTitle10, grid, 2, padding));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }
                                        rowsNum += 2;
                                        if (rowsNum == rows || rowsNum > rows)
                                            break;
                                        else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                            break;


                                        //if (page > intPagNum - 1 && rowsNum > 18)
                                        //{
                                        //    break;
                                        //}
                                    }
                                }
                            }
                            continue;
                            #endregion
                        }
                        else if (strRow == "4")
                        {
                            #region 第五行——抵扣餘額
                            var LS_AMOUNT_DEDUCTED = dataModel.printDataList[a].LS_AMOUNT_DEDUCTED;
                            var LS_DORD_AM = dataModel.printDataList[a].LS_DORD_AM;
                            var LS_DORD_CURR_CD = dataModel.printDataList[a].LS_DORD_CURR_CD;
                            var LS_DORD_RATE_NT = dataModel.printDataList[a].LS_DORD_RATE_NT;
                            if (!string.IsNullOrWhiteSpace(LS_AMOUNT_DEDUCTED) || !string.IsNullOrWhiteSpace(LS_DORD_AM)
                                || !string.IsNullOrWhiteSpace(LS_DORD_CURR_CD) || !string.IsNullOrWhiteSpace(LS_DORD_RATE_NT))
                            {
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_AMOUNT_DEDUCTED, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 2));
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "5";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "5";
                                    break;
                                }




                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "5";
                                //    break;
                                //}
                            }
                            #endregion


                            #region 第六\七行——金額小計橫線
                            i++;
                            strRow = "0";
                            bool flgPintCount = false;
                            if ((a + 1) < dataModel.printDataList.Count)
                            {
                                if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a + 1].ACCT_NOP))
                                {
                                    flgPintCount = true;
                                }
                            }
                            else//最後一個帳號的小計,調整金額為0
                            {
                                if (dataModel.printDataList[dataModel.printDataList.Count - 1].PORDD_ADJ_AM == "0")
                                    flgPintCount = true;
                            }
                            if (!string.IsNullOrWhiteSpace(dataModel.PROD_PRT_TP) && dataModel.ACCT_NOP_FG == "Y")
                            {
                                var AR_AM_COUNT = dataModel.printDataList[a].AR_AM_COUNT;
                                var LS_SUB_PAY_AM = dataModel.printDataList[a].LS_SUB_PAY_AM;
                                if (flgPintCount)//第一個帳號的小計
                                {
                                    if (!string.IsNullOrWhiteSpace(AR_AM_COUNT) || !string.IsNullOrWhiteSpace(LS_SUB_PAY_AM))
                                    {
                                        //出現應付帳號都會小計,最後一筆應付帳號不計算
                                        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ROW_GRID, chineseTitle10, grid, 2, padding, 8));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }


                                        table4.AddCell(this.GetPordCell(AR_AM_COUNT, chineseTitle10, grid, 2, padding, 7));
                                        table4.AddCell(this.GetPordCell(LS_SUB_PAY_AM, chineseTitle10, grid, 2, padding));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }
                                        rowsNum += 2;
                                        if (rowsNum == rows || rowsNum > rows)
                                            break;
                                        else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                            break;


                                        //if (page > intPagNum - 1 && rowsNum > 18)
                                        //{
                                        //    break;
                                        //}
                                    }
                                }
                            }
                            continue;
                            #endregion
                        }
                        else if (strRow == "5")
                        {
                            #region 第六\七行——金額小計橫線
                            i++;
                            strRow = "0";
                            bool flgPintCount = false;
                            if ((a + 1) < dataModel.printDataList.Count)
                            {
                                if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a + 1].ACCT_NOP))
                                {
                                    flgPintCount = true;
                                }
                            }
                            else//最後一個帳號的小計,調整金額為0
                            {
                                if (dataModel.printDataList[dataModel.printDataList.Count - 1].PORDD_ADJ_AM == "0")
                                    flgPintCount = true;
                            }
                            if (!string.IsNullOrWhiteSpace(dataModel.PROD_PRT_TP) && dataModel.ACCT_NOP_FG == "Y")
                            {
                                var AR_AM_COUNT = dataModel.printDataList[a].AR_AM_COUNT;
                                var LS_SUB_PAY_AM = dataModel.printDataList[a].LS_SUB_PAY_AM;
                                if (flgPintCount)//第一個帳號的小計
                                {
                                    if (!string.IsNullOrWhiteSpace(AR_AM_COUNT) || !string.IsNullOrWhiteSpace(LS_SUB_PAY_AM))
                                    {
                                        //出現應付帳號都會小計,最後一筆應付帳號不計算
                                        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ROW_GRID, chineseTitle10, grid, 2, padding, 8));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }


                                        table4.AddCell(this.GetPordCell(AR_AM_COUNT, chineseTitle10, grid, 2, padding, 7));
                                        table4.AddCell(this.GetPordCell(LS_SUB_PAY_AM, chineseTitle10, grid, 2, padding));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }
                                        rowsNum += 2;
                                        if (rowsNum == rows || rowsNum > rows)
                                            break;
                                        else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                            break;


                                        //if (page > intPagNum - 1 && rowsNum > 18)
                                        //{
                                        //    break;
                                        //}
                                    }
                                }
                            }
                            continue;
                            #endregion
                        }
                    }
                }
                #endregion


                #endregion


                #region 表尾數據
                PdfPTable table5 = new PdfPTable(1);
                PdfPTable table6 = new PdfPTable(5);
                PdfPTable table7 = new PdfPTable(1);
                PdfPTable table8 = new PdfPTable(3);
                PdfPTable table9 = new PdfPTable(1);
                PdfPTable table10 = new PdfPTable(6);
                Paragraph blankRow = new Paragraph();
                int rowsBlank = 20 - (dataModel.printDataList.Count - i);
                if (i < dataModel.printDataList.Count)
                {
                    table5.AddCell(this.GetCell("====================================================================================================================", chineseTitle10, grid, 0, padding));
                    table5.AddCell(this.GetPordCell("下 頁 繼 續", chineseTitle10, grid, 1, padding));
                    table5.AddCell(this.GetCell("====================================================================================================================", chineseTitle10, grid, 0, padding));
                }
                else
                {
                    //不夠20行就補空行
                    for (int x = 0, y = rowsBlank; x < y; x++)
                    {
                        blankRow = new Paragraph(18f, " ", chineseTitle10);
                    }
                    table5.AddCell(this.GetPordCell("--------------------------------------------------------------------------------------------------------------------", chineseTitle10, grid, 0, padding));
                    table5.AddCell(this.GetPordCell(dataModel.LS_STR_CURR_CD_AM, chineseTitle10, grid, 0, padding));
                    if (dataModel.oPAY_DR == "匯款")
                    {
                        table6.SetWidths(new float[] { 13f, 30f, 19f, 20f, 18f });
                        table6.AddCell(this.GetPordCell("付款方式:" + dataModel.oPAY_DR, chineseTitle10, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("抬頭:" + dataModel.oACCT_NOP, chineseTitle10, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("匯款帳號:" + dataModel.oBANK_NO, chineseTitle10, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("銀行:" + dataModel.oBANK_NM, chineseTitle10, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("付款日期:" + dataModel.PAID_DT, chineseTitle10, grid, 0, padding));
                    }
                    else
                    {
                        table6 = new PdfPTable(4);
                        table6.SetWidths(new float[] { 15f, 20f, 25f, 20f });
                        table6.AddCell(this.GetPordCell("付款方式:" + dataModel.PAY_DR, chineseTitle10, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("到期日:" + dataModel.ACASH_DT, chineseTitle10, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("抬頭:" + dataModel.PAY_TTL, chineseTitle10, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("付款日:" + dataModel.PAID_DT, chineseTitle10, grid, 2, padding));
                    }
                    table7.AddCell(this.GetPordCell("--------------------------------------------------------------------------------------------------------------------", chineseTitle10, grid, 0, padding));
                    table8.SetWidths(new float[] { 33f, 33f, 34f });
                    if (dataModel.SHOW_TP == "3")
                    {
                        table8.AddCell(this.GetPordCell("應收合計:" + this.Format_AM(Convert.ToInt64(dataModel.LI_AR_AM), 0), chineseTitle10, grid, 0, padding));
                        table8.AddCell(this.GetPordCell("利潤合計:" + this.Format_AM(Convert.ToInt64(dataModel.LI_AM), 0), chineseTitle10, grid, 0, padding));
                        table8.AddCell(this.GetPordCell("應付合計:" + this.Format_AM(Convert.ToInt64(dataModel.LI_AP_AM), 0), chineseTitle10, grid, 0, padding));
                    }
                    else
                    {
                        //LD_TAPAM
                        table8.AddCell(this.GetPordCell("應付合計:" + this.Format_AM(Convert.ToInt64(dataModel.LI_AP_AM), 0), chineseTitle10, grid, 2, padding, 3));
                    }
                    table9.AddCell(this.GetCell("====================================================================================================================", chineseTitle10, grid, 0, padding));
                    if (string.IsNullOrWhiteSpace(dataModel.SIGN_DR))
                    {
                        table10.SetWidths(new float[] { 17f, 17f, 18f, 16f, 16f, 16f });
                        table10.AddCell(this.GetPordCell("主管:", chineseTitle10, grid, 0, padding));
                        table10.AddCell(this.GetPordCell("會計:", chineseTitle10, grid, 0, padding));
                        table10.AddCell(this.GetPordCell("出納:", chineseTitle10, grid, 0, padding));
                    }
                    else
                    {
                        table10 = new PdfPTable(4);
                        table10.SetWidths(new float[] { 52f, 16f, 16f, 16f });
                        table10.AddCell(this.GetPordCell(dataModel.SIGN_DR, chineseTitle10, grid, 0, padding));
                    }
                    table10.AddCell(this.GetPordCell("承辦:" + dataModel.LS_OPEMP_CNM, chineseTitle10, grid, 2, padding));
                    table10.AddCell(this.GetPordCell("業務:" + dataModel.LS_EMP_CNM, chineseTitle10, grid, 2, padding));
                    table10.AddCell(this.GetPordCell("列印人:" + dataModel.PRINTEMP_CNM, chineseTitle10, grid, 2, padding));
                }




                #endregion


                #region 把內容加入紙張


                ph.Add(table1);
                ph.Add(table2);
                ph.Add(table3);
                ph.Add(table4);
                ph.Add(table5);
                ph.Add(table6);
                ph.Add(table7);
                ph.Add(table8);
                ph.Add(table9);
                ph.Add(table10);
                doc.Add(ph);
                #endregion
            }
            


            #endregion
        }


private void PordPrintPdf1(OutpordViewModel dataModel, Document doc)
        {
            #region 定義變量
            var intPagNum = this.PordPrintPdfPagNum(dataModel,doc);
            Font chineseTitle14 = UnicodeFontFactory.GetFontBiaoKaiTi(14, Font.NORMAL, BaseColor.BLACK);
            Font chineseTitle10 = UnicodeFontFactory.GetFontBiaoKaiTi(10, Font.NORMAL, BaseColor.BLACK);
            int rows = 20;//一頁多少行
            int page = 1;//頁數
            int colspan = 8;//應付帳號合併單元格
            int padding = 0;//間距
            int grid = 0;//框线
            //列印應收金額,“應付帳號”合併單元格
            if (dataModel.SHOW_TP == "3")
            {
                colspan = 10;
            }
            //列印應收金額時,摘要長度為12,其餘為18個長度
            int subdrRowLength = 40;
            if (dataModel.SHOW_TP == "3")
            {
                subdrRowLength = 28;
            }
            #endregion


            #region 列印數據


            #region 明細摘要折行處理
            dataModel.printSubdrDataList = new List<PrintDataList>();
            for (int i = 0, j = dataModel.printDataList.Count; i < j; i++)
            {
                PrintDataList rowModel = new PrintDataList();
                rowModel = dataModel.printDataList[i];
                int subdrLength = this.TextLength(rowModel.STR_PORDD_SUB_DR);
                string strSubdr = rowModel.STR_PORDD_SUB_DR;
                //一行摘要顯示對多subdrRowLength字 
                if (subdrLength > subdrRowLength)
                {
                    //調整金額
                    var LS_SUB_DR = dataModel.printDataList[i].LS_SUB_DR;
                    var LS_CURR_AM = dataModel.printDataList[i].LS_CURR_AM;
                    var LS_RATE_NT = dataModel.printDataList[i].LS_RATE_NT;
                    var LS_COST_QT = dataModel.printDataList[i].LS_COST_QT;
                    var LS_CURR_CD = dataModel.printDataList[i].LS_CURR_CD;
                    var LS_LI_AM = dataModel.printDataList[i].LS_LI_AM;
                    var LS_LI_AR_AM = dataModel.printDataList[i].LS_LI_AR_AM;
                    var LS_IS_RECEIVED = dataModel.printDataList[i].LS_IS_RECEIVED;
                    //抵扣餘額
                    var LS_AMOUNT_DEDUCTED = dataModel.printDataList[i].LS_AMOUNT_DEDUCTED;
                    var LS_DORD_AM = dataModel.printDataList[i].LS_DORD_AM;
                    var LS_DORD_CURR_CD = dataModel.printDataList[i].LS_DORD_CURR_CD;
                    var LS_DORD_RATE_NT = dataModel.printDataList[i].LS_DORD_RATE_NT;
                    //小計
                    var LS_SUB_PAY_AM = dataModel.printDataList[i].LS_SUB_PAY_AM;
                    var ROW_GRID = dataModel.printDataList[i].ROW_GRID;
                    var AR_AM_COUNT = dataModel.printDataList[i].AR_AM_COUNT;
                    var PORDD_ADJ_AM = dataModel.printDataList[i].PORDD_ADJ_AM;
                    //應收帳號
                    var LS_ACCT_NOR = dataModel.printDataList[i].LS_ACCT_NOR;
                    for (int a = 0, b = subdrLength / subdrRowLength + 1; a < b; a++)
                    {
                        rowModel = new PrintDataList();
                        //發生換行動作,除了第一行需要所有數據外,其餘行只需要摘要
                        if (a == 0)
                        {
                            rowModel = dataModel.printDataList[i];
                            //调整金额
                            rowModel.LS_SUB_DR = "";
                            rowModel.LS_CURR_AM = "";
                            rowModel.LS_RATE_NT = "";
                            rowModel.LS_COST_QT = "";
                            rowModel.LS_CURR_CD = "";
                            rowModel.LS_LI_AM = "";
                            rowModel.LS_LI_AR_AM = "";
                            rowModel.LS_IS_RECEIVED = "";
                            //抵扣餘額
                            rowModel.LS_AMOUNT_DEDUCTED = "";
                            rowModel.LS_DORD_AM = "";
                            rowModel.LS_DORD_CURR_CD = "";
                            rowModel.LS_DORD_RATE_NT = "";
                            //小計
                            rowModel.LS_SUB_PAY_AM = "";
                            rowModel.ROW_GRID = "";
                            rowModel.AR_AM_COUNT = "";
                            rowModel.PORDD_ADJ_AM = "";
                            //應收帳號
                            rowModel.LS_ACCT_NOR = "";
                        }
                        else if (!((a + 1) * subdrRowLength <= subdrLength))
                        {
                            //调整金额
                            rowModel.LS_SUB_DR = LS_SUB_DR;
                            rowModel.LS_CURR_AM = LS_CURR_AM;
                            rowModel.LS_RATE_NT = LS_RATE_NT;
                            rowModel.LS_COST_QT = LS_COST_QT;
                            rowModel.LS_CURR_CD = LS_CURR_CD;
                            rowModel.LS_LI_AM = LS_LI_AM;
                            rowModel.LS_LI_AR_AM = LS_LI_AR_AM;
                            rowModel.LS_IS_RECEIVED = LS_IS_RECEIVED;
                            //抵扣餘額
                            rowModel.LS_AMOUNT_DEDUCTED = LS_AMOUNT_DEDUCTED;
                            rowModel.LS_DORD_AM = LS_DORD_AM;
                            rowModel.LS_DORD_CURR_CD = LS_DORD_CURR_CD;
                            rowModel.LS_DORD_RATE_NT = LS_DORD_RATE_NT;
                            //小計
                            rowModel.LS_SUB_PAY_AM = LS_SUB_PAY_AM;
                            rowModel.ROW_GRID = ROW_GRID;
                            rowModel.AR_AM_COUNT = AR_AM_COUNT;
                            rowModel.PORDD_ADJ_AM = PORDD_ADJ_AM;
                            //應收帳號
                            rowModel.LS_ACCT_NOR = LS_ACCT_NOR;
                        }
                        if (!string.IsNullOrWhiteSpace(strSubdr))
                        {
                            rowModel.STR_PORDD_SUB_DR = this.GetSubString(strSubdr, subdrRowLength);
                            strSubdr = strSubdr.Replace(rowModel.STR_PORDD_SUB_DR, "");
                        }
                        dataModel.printSubdrDataList.Add(rowModel);
                    }
                }
                else
                {
                    dataModel.printSubdrDataList.Add(rowModel);
                }
            }
            #endregion


            //減少改動量
            dataModel.printDataList = new List<PrintDataList>();
            dataModel.printDataList = dataModel.printSubdrDataList;
            int PageOr = dataModel.printDataList.Count % rows;
            int PageNum = dataModel.printDataList.Count / rows;
            var strRow = "0";//主要用於標記在畫第幾行的時候滿rows行的
            if (PageOr > 0)
            {
                PageNum = PageNum + 1;
            }
            
            for (int i = 0, j = dataModel.printDataList.Count; i < j; )
            {
                #region 分頁
                Paragraph ph = new Paragraph();
                PdfPTable table1 = new PdfPTable(1);


                if (i != 0 && i < dataModel.printDataList.Count)
                {
                    //分頁
                    doc.NewPage();
                    page++;
                }
                #endregion


                #region 表頭數據
                table1.AddCell(this.GetPordCell(dataModel.SYS_COMP_FNM, chineseTitle14, grid, 1, padding));
                table1.AddCell(this.GetPordCell(dataModel.SYS_COMP_ADDR, chineseTitle10, grid, 1, padding));
                table1.AddCell(this.GetPordCell("TEL:" + dataModel.SYS_COMP_TEL + "  FAX:" + dataModel.SYS_COMP_FAX, chineseTitle10, grid, 1, padding));
                if (dataModel.BPAY_FG.ToUpper() == "TRUE")
                {
                    if (dataModel.DEPT_FG.ToUpper() == "TRUE")
                    {
                        table1.AddCell(this.GetPordCell(" 預付請款單 " + "(" + dataModel.DEPT_NM + ")", chineseTitle14, grid, 1, padding));
                    }
                    else
                    {
                        table1.AddCell(this.GetPordCell(" 預付請款單 ", chineseTitle14, grid, 1, padding));
                    }
                }
                else
                {
                    if (dataModel.DEPT_FG.ToUpper() == "TRUE")
                    {
                        table1.AddCell(this.GetPordCell(" 請 款 單 " + "(" + dataModel.DEPT_NM + ")", chineseTitle14, grid, 1, padding));
                    }
                    else
                    {
                        table1.AddCell(this.GetPordCell(" 請 款 單 ", chineseTitle14, grid, 1, padding));
                    }
                }
                PdfPTable table2 = new PdfPTable(2);
                table2.SetWidths(new float[] { 80f, 20f });
                table2.AddCell(this.GetPordCell("", chineseTitle10, grid, 0, padding));
                table2.AddCell(this.GetPordCell("單    號:" + dataModel.PORD_NO, chineseTitle10, grid, 0, padding));
                table2.AddCell(this.GetPordCell("", chineseTitle10, grid, 0, padding));
                table2.AddCell(this.GetPordCell("日    期:" + dataModel.PORD_DT, chineseTitle10, grid, 0, padding));
                table2.AddCell(this.GetPordCell("應付帳號:" + dataModel.LS_ACCT_NOP + "   " + dataModel.ACCT_NM, chineseTitle10, grid, 0, padding));
                table2.AddCell(this.GetPordCell("時    間:" + dataModel.DATE_TIME, chineseTitle10, grid, 0, padding));
                table2.AddCell(this.GetPordCell("摘  要:" + dataModel.LS_SUB_DR, chineseTitle10, grid, 0, padding));
                table2.AddCell(this.GetPordCell("頁    次:" + page + "/" + PageNum.ToString() + "  " + "(" + dataModel.PRN_QT1 + ")", chineseTitle10, grid, 0, padding));
                #endregion


                #region 數據列循環
                PdfPTable table3 = new PdfPTable(1);
                table3.AddCell(this.GetPordCell("====================================================================================================================", chineseTitle10, grid, 0, padding));
                PdfPTable table4 = new PdfPTable(8);


                #region 數據列表頭
                switch (dataModel.SHOW_TP)
                {
                    case "1":
                        table4.SetWidths(new float[] { 8f, 12f, 35f, 12f, 8f, 7f, 6f, 12f });
                        table4.AddCell(this.GetPordCell("訂單編號", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("團    號", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("摘              要 ", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("單  價", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("幣別", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("匯率", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("數量", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("預付金額", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("---------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------------------------------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("---------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("--------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------", chineseTitle10, grid, 0, padding));
                        break;
                    case "2":
                        table4.SetWidths(new float[] { 8f, 12f, 35f, 12f, 8f, 7f, 6f, 12f });
                        table4.AddCell(this.GetPordCell("訂單編號", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("團    號", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("摘              要 ", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("單  價", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("幣別", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("匯率", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("數量", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("應付金額", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("---------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------------------------------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("---------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("--------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------", chineseTitle10, grid, 0, padding));
                        break;
                    case "3":
                        table4 = new PdfPTable(10);
                        table4.SetWidths(new float[] { 9f, 11f, 25f, 10f, 6f, 8f, 7f, 10f, 10f, 4f });
                        table4.AddCell(this.GetPordCell("訂單編號", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("團號", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("摘 要 ", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("單價", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("幣別", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("匯率", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("數量", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("應付金額", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("應收金額", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("已收", chineseTitle10, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("----------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("------------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("----------------------------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-----------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("--------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-----------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-----------", chineseTitle10, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("----", chineseTitle10, grid, 0, padding));
                        break;
                    default:
                        break;
                }
                #endregion


                #region 數據列表——作廢 By Vivian 2017/08/10
                //var rowsNum = 0;//畫面rows行後立即跳出循環。
                //for (int a = i, b = (i + rows); a < b; a++)
                //{
                //    if (a < dataModel.printDataList.Count)
                //    {
                //        i++;//寫在前面是為了防止下一頁還列印上一頁最後一行


                //        #region 第一行——應付帳號
                //        if (dataModel.ACCT_NOP_FG == "Y" && dataModel.PROD_PRT_TP == "0" && !string.IsNullOrWhiteSpace(dataModel.printDataList[a].ACCT_NOP))
                //        {
                //            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ACCT_NOP, chineseTitle10, grid, 0, padding, colspan));//合併單元格,應付帳號
                //            rowsNum++;
                //            if (rowsNum == rows)
                //            {
                //                break;
                //            }
                //        }


                //        #endregion


                //        #region 第二行——主檔明細資料
                //        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_OP_SQ, chineseTitle10, grid, 0, padding));
                //        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_GRUP_CD, chineseTitle10, grid, 0, padding));
                //        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].STR_PORDD_SUB_DR, chineseTitle10, grid, 0, padding));
                //        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_CURR_AM, chineseTitle10, grid, 2, padding));
                //        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_CURR_CD, chineseTitle10, grid, 1, padding));
                //        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_RATE_NT, chineseTitle10, grid, 2, padding));
                //        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_COST_QT, chineseTitle10, grid, 2, padding));
                //        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].TMP_LI_AM == "00" ? "0" : dataModel.printDataList[a].TMP_LI_AM, chineseTitle10, grid, 2, padding));
                //        if (dataModel.SHOW_TP == "3")//列印應收金額
                //        {
                //            string LD_ARAM = String.Format("{0:0,0}", Convert.ToDecimal(dataModel.printDataList[a].LI_ARAM.ToString()));
                            
                //            if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a].TMP_LI_AM))
                //                dataModel.LD_ARAM = LD_ARAM == "00" ? "0" : LD_ARAM;
                //            else
                //                dataModel.LD_ARAM = LD_ARAM == "00" ? "" : LD_ARAM;
                //            table4.AddCell(this.GetPordCell(dataModel.LD_ARAM, chineseTitle10, grid, 2, padding));//應收金額
                //            //table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_AR_AM == "00" ? "0" : dataModel.printDataList[a].LI_AR_AM, chineseTitle10, grid, 2, padding));//應收金額
                //            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].IS_RECEIVED, chineseTitle10, grid, 1, padding));//已收
                //        }
                //        rowsNum++;
                //        if (rowsNum == rows)
                //        {
                //            break;
                //        }


                //        #endregion


                //        #region 第三行——應收帳號
                //        var LS_ACCT_NOR = dataModel.printDataList[a].LS_ACCT_NOR;
                //        if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR))
                //        {
                //            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_ACCT_NOR, chineseTitle10, grid, 0, padding, colspan));//合併單元格,應付帳號
                //            rowsNum++;
                //            if (rowsNum == rows)
                //            {
                //                break;
                //            }
                //        }


                //        #endregion


                //        #region 第四行——調整金額資料
                //        var LS_ACCT_NOR1 = dataModel.printDataList[a].LS_ACCT_NOR;
                //        var LS_SUB_DR1 = dataModel.printDataList[a].LS_SUB_DR;
                //        var LS_CURR_AM = dataModel.printDataList[a].LS_CURR_AM;
                //        var LS_CURR_CD = dataModel.printDataList[a].LS_CURR_CD;
                //        var LS_RATE_NT = dataModel.printDataList[a].LS_RATE_NT;
                //        var LS_COST_QT = dataModel.printDataList[a].LS_COST_QT;
                //        var LS_LI_AM = dataModel.printDataList[a].LS_LI_AM;
                //        var LS_LI_AR_AM = dataModel.printDataList[a].LS_LI_AR_AM;
                //        var LS_IS_RECEIVED = dataModel.printDataList[a].LS_IS_RECEIVED;
                //        if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR1) || !string.IsNullOrWhiteSpace(LS_SUB_DR1) || !string.IsNullOrWhiteSpace(LS_CURR_AM)
                //            || !string.IsNullOrWhiteSpace(LS_CURR_CD) || !string.IsNullOrWhiteSpace(LS_RATE_NT) || !string.IsNullOrWhiteSpace(LS_COST_QT)
                //            || !string.IsNullOrWhiteSpace(LS_LI_AM) || !string.IsNullOrWhiteSpace(LS_LI_AR_AM) || !string.IsNullOrWhiteSpace(LS_IS_RECEIVED))
                //        {
                //            table4.AddCell(this.GetPordCell(LS_ACCT_NOR1, chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                //            table4.AddCell(this.GetPordCell(LS_SUB_DR1, chineseTitle10, grid, 0, padding));
                //            table4.AddCell(this.GetPordCell(LS_CURR_AM, chineseTitle10, grid, 2, padding));
                //            table4.AddCell(this.GetPordCell(LS_CURR_CD, chineseTitle10, grid, 1, padding));
                //            table4.AddCell(this.GetPordCell(LS_RATE_NT, chineseTitle10, grid, 2, padding));
                //            table4.AddCell(this.GetPordCell(LS_COST_QT, chineseTitle10, grid, 2, padding));
                //            table4.AddCell(this.GetPordCell(LS_LI_AM, chineseTitle10, grid, 2, padding));
                //            if (dataModel.SHOW_TP == "3")//列印應收金額
                //            {
                //                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_LI_AR_AM, chineseTitle10, grid, 2, padding));//應收金額
                //                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_IS_RECEIVED, chineseTitle10, grid, 1, padding));//已收
                //            }
                //            rowsNum++;
                //            if (rowsNum == rows)
                //            {
                //                break;
                //            }
                //        }


                //        #endregion


                //        #region 第五行——抵扣餘額
                //        var LS_AMOUNT_DEDUCTED = dataModel.printDataList[a].LS_AMOUNT_DEDUCTED;
                //        var LS_DORD_AM = dataModel.printDataList[a].LS_DORD_AM;
                //        var LS_DORD_CURR_CD = dataModel.printDataList[a].LS_DORD_CURR_CD;
                //        var LS_DORD_RATE_NT = dataModel.printDataList[a].LS_DORD_RATE_NT;
                //        if (!string.IsNullOrWhiteSpace(LS_AMOUNT_DEDUCTED) || !string.IsNullOrWhiteSpace(LS_DORD_AM)
                //            || !string.IsNullOrWhiteSpace(LS_DORD_CURR_CD) || !string.IsNullOrWhiteSpace(LS_DORD_RATE_NT))
                //        {
                //            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                //            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_AMOUNT_DEDUCTED, chineseTitle10, grid, 0, padding));
                //            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_AM, chineseTitle10, grid, 2, padding));
                //            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_CURR_CD, chineseTitle10, grid, 1, padding));
                //            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_RATE_NT, chineseTitle10, grid, 2, padding));
                //            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                //            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                //            if (dataModel.SHOW_TP == "3")//列印應收金額
                //            {
                //                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 2));
                //            }
                //            rowsNum++;
                //            if (rowsNum == rows)
                //            {
                //                break;
                //            }
                //        }
                //        #endregion


                //        #region 第六\七行——金額小計橫線
                //        bool flgPintCount = false;
                //        if ((a + 1) < dataModel.printDataList.Count)
                //        {
                //            if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a + 1].ACCT_NOP))
                //            {
                //                flgPintCount = true;
                //            }
                //        }
                //        else//最後一個帳號的小計,調整金額為0
                //        {
                //            if (dataModel.printDataList[dataModel.printDataList.Count - 1].PORDD_ADJ_AM == "0")
                //                flgPintCount = true;
                //        }
                //        if (!string.IsNullOrWhiteSpace(dataModel.PROD_PRT_TP) && dataModel.ACCT_NOP_FG == "Y")
                //        {
                //            var AR_AM_COUNT = dataModel.printDataList[a].AR_AM_COUNT;
                //            var LS_SUB_PAY_AM = dataModel.printDataList[a].LS_SUB_PAY_AM;
                //            if (flgPintCount)//第一個帳號的小計
                //            {
                //                if (!string.IsNullOrWhiteSpace(AR_AM_COUNT) || !string.IsNullOrWhiteSpace(LS_SUB_PAY_AM))
                //                {
                //                    //出現應付帳號都會小計,最後一筆應付帳號不計算
                //                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ROW_GRID, chineseTitle10, grid, 2, padding, 8));
                //                    if (dataModel.SHOW_TP == "3")//應收金額(空白)
                //                    {
                //                        table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                //                    }


                //                    table4.AddCell(this.GetPordCell(AR_AM_COUNT, chineseTitle10, grid, 2, padding, 7));
                //                    table4.AddCell(this.GetPordCell(LS_SUB_PAY_AM, chineseTitle10, grid, 2, padding));
                //                    if (dataModel.SHOW_TP == "3")//應收金額(空白)
                //                    {
                //                        table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                //                    }
                //                    rowsNum += 2;
                //                    if (rowsNum == rows || rowsNum > rows)
                //                        break;
                //                }
                //            }
                //        }
                //        continue;
                //        #endregion
                //    }
                //}
                #endregion


                #region 數據列表
                var rowsNum = 0;//畫面rows行後立即跳出循環。
                
                for (int a = i, b = (i + rows); a < b; a++)
                {
                    if (a < dataModel.printDataList.Count)
                    {
                        if (strRow == "0")
                        {
                            //i++;//防止下一頁還列印上一頁最後一行
                            #region 第一行——應付帳號
                            if (dataModel.ACCT_NOP_FG == "Y" && dataModel.PROD_PRT_TP == "0" && !string.IsNullOrWhiteSpace(dataModel.printDataList[a].ACCT_NOP))
                            {
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ACCT_NOP, chineseTitle10, grid, 0, padding, colspan));//合併單元格,應付帳號
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "1";//當畫到“應付帳號”時剛好滿rows行,這時再畫下一筆時應進入strRow = "1"這個判斷
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "1";
                                    break;
                                }


                                //if (page > intPagNum -1 && rowsNum > 18)
                                //{
                                //    strRow = "1";//當畫到“應付帳號”時剛好滿rows行,這時再畫下一筆時應進入strRow = "1"這個判斷
                                //    break;
                                //}
                            }


                            #endregion


                            #region 第二行——主檔明細資料


                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_OP_SQ, chineseTitle10, grid, 0, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_GRUP_CD, chineseTitle10, grid, 0, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].STR_PORDD_SUB_DR, chineseTitle10, grid, 0, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_CURR_AM, chineseTitle10, grid, 2, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_CURR_CD, chineseTitle10, grid, 1, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_RATE_NT, chineseTitle10, grid, 2, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_COST_QT, chineseTitle10, grid, 2, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].TMP_LI_AM == "00" ? "0" : dataModel.printDataList[a].TMP_LI_AM, chineseTitle10, grid, 2, padding));
                            if (dataModel.SHOW_TP == "3")//列印應收金額
                            {
                                string LD_ARAM = String.Format("{0:0,0}", Convert.ToDecimal(dataModel.printDataList[a].LI_ARAM.ToString()));
                                dataModel.LD_ARAM = LD_ARAM == "00" ? "" : LD_ARAM;
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_AR_AM == "00" ? "" : dataModel.printDataList[a].LI_AR_AM, chineseTitle10, grid, 2, padding));//應收金額
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].IS_RECEIVED, chineseTitle10, grid, 1, padding));//已收
                            }
                            rowsNum++;
                            if (rowsNum == rows)
                            {
                                strRow = "2";
                                break;
                            }
                            else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                            {
                                strRow = "2";
                                break;
                            }


                            //if (page > intPagNum - 1 && rowsNum > 18)
                            //{
                            //    strRow = "2";
                            //    break;
                            //}


                            #endregion


                            #region 第三行——應收帳號
                            var LS_ACCT_NOR = dataModel.printDataList[a].LS_ACCT_NOR;
                            if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR))
                            {
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_ACCT_NOR, chineseTitle10, grid, 0, padding, colspan));//合併單元格,應付帳號
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "3";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "3";
                                    break;
                                }


                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "3";
                                //    break;
                                //}
                            }


                            #endregion


                            #region 第四行——調整金額資料
                            var LS_ACCT_NOR1 = dataModel.printDataList[a].LS_ACCT_NOR;
                            var LS_SUB_DR1 = dataModel.printDataList[a].LS_SUB_DR;
                            var LS_CURR_AM = dataModel.printDataList[a].LS_CURR_AM;
                            var LS_CURR_CD = dataModel.printDataList[a].LS_CURR_CD;
                            var LS_RATE_NT = dataModel.printDataList[a].LS_RATE_NT;
                            var LS_COST_QT = dataModel.printDataList[a].LS_COST_QT;
                            var LS_LI_AM = dataModel.printDataList[a].LS_LI_AM;
                            var LS_LI_AR_AM = dataModel.printDataList[a].LS_LI_AR_AM;
                            var LS_IS_RECEIVED = dataModel.printDataList[a].LS_IS_RECEIVED;
                            if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR1) || !string.IsNullOrWhiteSpace(LS_SUB_DR1) || !string.IsNullOrWhiteSpace(LS_CURR_AM)
                                || !string.IsNullOrWhiteSpace(LS_CURR_CD) || !string.IsNullOrWhiteSpace(LS_RATE_NT) || !string.IsNullOrWhiteSpace(LS_COST_QT)
                                || !string.IsNullOrWhiteSpace(LS_LI_AM) || !string.IsNullOrWhiteSpace(LS_LI_AR_AM) || !string.IsNullOrWhiteSpace(LS_IS_RECEIVED))
                            {
                                table4.AddCell(this.GetPordCell(LS_ACCT_NOR1, chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(LS_SUB_DR1, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(LS_CURR_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(LS_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_COST_QT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_LI_AM, chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_LI_AR_AM, chineseTitle10, grid, 2, padding));//應收金額
                                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_IS_RECEIVED, chineseTitle10, grid, 1, padding));//已收
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "4";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "4";
                                    break;
                                }


                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "4";
                                //    break;
                                //}
                            }


                            #endregion


                            #region 第五行——抵扣餘額
                            var LS_AMOUNT_DEDUCTED = dataModel.printDataList[a].LS_AMOUNT_DEDUCTED;
                            var LS_DORD_AM = dataModel.printDataList[a].LS_DORD_AM;
                            var LS_DORD_CURR_CD = dataModel.printDataList[a].LS_DORD_CURR_CD;
                            var LS_DORD_RATE_NT = dataModel.printDataList[a].LS_DORD_RATE_NT;
                            if (!string.IsNullOrWhiteSpace(LS_AMOUNT_DEDUCTED) || !string.IsNullOrWhiteSpace(LS_DORD_AM)
                                || !string.IsNullOrWhiteSpace(LS_DORD_CURR_CD) || !string.IsNullOrWhiteSpace(LS_DORD_RATE_NT))
                            {
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_AMOUNT_DEDUCTED, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 2));
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "5";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "5";
                                    break;
                                }
                                    


                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "5";
                                //    break;
                                //}
                            }
                            #endregion


                            #region 第六\七行——金額小計橫線
                            i++;
                            strRow = "0";
                            bool flgPintCount = false;
                            if ((a + 1) < dataModel.printDataList.Count)
                            {
                                if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a + 1].ACCT_NOP))
                                {
                                    flgPintCount = true;
                                }
                            }
                            else//最後一個帳號的小計,調整金額為0
                            {
                                if (dataModel.printDataList[dataModel.printDataList.Count - 1].PORDD_ADJ_AM == "0")
                                    flgPintCount = true;
                            }
                            if (!string.IsNullOrWhiteSpace(dataModel.PROD_PRT_TP) && dataModel.ACCT_NOP_FG == "Y")
                            {
                                var AR_AM_COUNT = dataModel.printDataList[a].AR_AM_COUNT;
                                var LS_SUB_PAY_AM = dataModel.printDataList[a].LS_SUB_PAY_AM;
                                if (flgPintCount)//第一個帳號的小計
                                {
                                    if (!string.IsNullOrWhiteSpace(AR_AM_COUNT) || !string.IsNullOrWhiteSpace(LS_SUB_PAY_AM))
                                    {
                                        //出現應付帳號都會小計,最後一筆應付帳號不計算
                                        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ROW_GRID, chineseTitle10, grid, 2, padding, 8));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }


                                        table4.AddCell(this.GetPordCell(AR_AM_COUNT, chineseTitle10, grid, 2, padding, 7));
                                        table4.AddCell(this.GetPordCell(LS_SUB_PAY_AM, chineseTitle10, grid, 2, padding));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }
                                        rowsNum += 2;
                                        if (rowsNum == rows || rowsNum > rows)
                                            break;
                                        else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                            break;


                                        //if (page > intPagNum - 1 && rowsNum > 18)
                                        //{
                                        //    break;
                                        //}
                                    }
                                }
                            }
                            continue;
                            #endregion
                        }
                        else if (strRow == "1")
                        {
                            #region 第二行——主檔明細資料


                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_OP_SQ, chineseTitle10, grid, 0, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_GRUP_CD, chineseTitle10, grid, 0, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].STR_PORDD_SUB_DR, chineseTitle10, grid, 0, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_CURR_AM, chineseTitle10, grid, 2, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_CURR_CD, chineseTitle10, grid, 1, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_RATE_NT, chineseTitle10, grid, 2, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_COST_QT, chineseTitle10, grid, 2, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].TMP_LI_AM == "00" ? "0" : dataModel.printDataList[a].TMP_LI_AM, chineseTitle10, grid, 2, padding));
                            if (dataModel.SHOW_TP == "3")//列印應收金額
                            {
                                string LD_ARAM = String.Format("{0:0,0}", Convert.ToDecimal(dataModel.printDataList[a].LI_ARAM.ToString()));
                                dataModel.LD_ARAM = LD_ARAM == "00" ? "" : LD_ARAM;
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LI_AR_AM == "00" ? "" : dataModel.printDataList[a].LI_AR_AM, chineseTitle10, grid, 2, padding));//應收金額
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].IS_RECEIVED, chineseTitle10, grid, 1, padding));//已收
                            }
                            rowsNum++;
                            if (rowsNum == rows)
                            {
                                strRow = "2";
                                break;
                            }
                            else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                            {
                                strRow = "2";
                                break;
                            }


                            //if (page > intPagNum - 1 && rowsNum > 18)
                            //{
                            //    strRow = "2";
                            //    break;
                            //}


                            #endregion


                            #region 第三行——應收帳號
                            var LS_ACCT_NOR = dataModel.printDataList[a].LS_ACCT_NOR;
                            if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR))
                            {
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_ACCT_NOR, chineseTitle10, grid, 0, padding, colspan));//合併單元格,應付帳號
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "3";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "3";
                                    break;
                                }


                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "3";
                                //    break;
                                //}
                            }


                            #endregion


                            #region 第四行——調整金額資料
                            var LS_ACCT_NOR1 = dataModel.printDataList[a].LS_ACCT_NOR;
                            var LS_SUB_DR1 = dataModel.printDataList[a].LS_SUB_DR;
                            var LS_CURR_AM = dataModel.printDataList[a].LS_CURR_AM;
                            var LS_CURR_CD = dataModel.printDataList[a].LS_CURR_CD;
                            var LS_RATE_NT = dataModel.printDataList[a].LS_RATE_NT;
                            var LS_COST_QT = dataModel.printDataList[a].LS_COST_QT;
                            var LS_LI_AM = dataModel.printDataList[a].LS_LI_AM;
                            var LS_LI_AR_AM = dataModel.printDataList[a].LS_LI_AR_AM;
                            var LS_IS_RECEIVED = dataModel.printDataList[a].LS_IS_RECEIVED;
                            if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR1) || !string.IsNullOrWhiteSpace(LS_SUB_DR1) || !string.IsNullOrWhiteSpace(LS_CURR_AM)
                                || !string.IsNullOrWhiteSpace(LS_CURR_CD) || !string.IsNullOrWhiteSpace(LS_RATE_NT) || !string.IsNullOrWhiteSpace(LS_COST_QT)
                                || !string.IsNullOrWhiteSpace(LS_LI_AM) || !string.IsNullOrWhiteSpace(LS_LI_AR_AM) || !string.IsNullOrWhiteSpace(LS_IS_RECEIVED))
                            {
                                table4.AddCell(this.GetPordCell(LS_ACCT_NOR1, chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(LS_SUB_DR1, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(LS_CURR_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(LS_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_COST_QT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_LI_AM, chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_LI_AR_AM, chineseTitle10, grid, 2, padding));//應收金額
                                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_IS_RECEIVED, chineseTitle10, grid, 1, padding));//已收
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "4";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "4";
                                    break;
                                }


                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "4";
                                //    break;
                                //}
                            }


                            #endregion


                            #region 第五行——抵扣餘額
                            var LS_AMOUNT_DEDUCTED = dataModel.printDataList[a].LS_AMOUNT_DEDUCTED;
                            var LS_DORD_AM = dataModel.printDataList[a].LS_DORD_AM;
                            var LS_DORD_CURR_CD = dataModel.printDataList[a].LS_DORD_CURR_CD;
                            var LS_DORD_RATE_NT = dataModel.printDataList[a].LS_DORD_RATE_NT;
                            if (!string.IsNullOrWhiteSpace(LS_AMOUNT_DEDUCTED) || !string.IsNullOrWhiteSpace(LS_DORD_AM)
                                || !string.IsNullOrWhiteSpace(LS_DORD_CURR_CD) || !string.IsNullOrWhiteSpace(LS_DORD_RATE_NT))
                            {
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_AMOUNT_DEDUCTED, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 2));
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "5";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "5";
                                    break;
                                }




                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "5";
                                //    break;
                                //}
                            }
                            #endregion


                            #region 第六\七行——金額小計橫線
                            i++;
                            strRow = "0";
                            bool flgPintCount = false;
                            if ((a + 1) < dataModel.printDataList.Count)
                            {
                                if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a + 1].ACCT_NOP))
                                {
                                    flgPintCount = true;
                                }
                            }
                            else//最後一個帳號的小計,調整金額為0
                            {
                                if (dataModel.printDataList[dataModel.printDataList.Count - 1].PORDD_ADJ_AM == "0")
                                    flgPintCount = true;
                            }
                            if (!string.IsNullOrWhiteSpace(dataModel.PROD_PRT_TP) && dataModel.ACCT_NOP_FG == "Y")
                            {
                                var AR_AM_COUNT = dataModel.printDataList[a].AR_AM_COUNT;
                                var LS_SUB_PAY_AM = dataModel.printDataList[a].LS_SUB_PAY_AM;
                                if (flgPintCount)//第一個帳號的小計
                                {
                                    if (!string.IsNullOrWhiteSpace(AR_AM_COUNT) || !string.IsNullOrWhiteSpace(LS_SUB_PAY_AM))
                                    {
                                        //出現應付帳號都會小計,最後一筆應付帳號不計算
                                        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ROW_GRID, chineseTitle10, grid, 2, padding, 8));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }


                                        table4.AddCell(this.GetPordCell(AR_AM_COUNT, chineseTitle10, grid, 2, padding, 7));
                                        table4.AddCell(this.GetPordCell(LS_SUB_PAY_AM, chineseTitle10, grid, 2, padding));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }
                                        rowsNum += 2;
                                        if (rowsNum == rows || rowsNum > rows)
                                            break;
                                        else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                            break;


                                        //if (page > intPagNum - 1 && rowsNum > 18)
                                        //{
                                        //    break;
                                        //}
                                    }
                                }
                            }
                            continue;
                            #endregion
                        }
                        else if (strRow == "2")
                        {
                            #region 第三行——應收帳號
                            var LS_ACCT_NOR = dataModel.printDataList[a].LS_ACCT_NOR;
                            if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR))
                            {
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_ACCT_NOR, chineseTitle10, grid, 0, padding, colspan));//合併單元格,應付帳號
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "3";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "3";
                                    break;
                                }


                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "3";
                                //    break;
                                //}
                            }


                            #endregion


                            #region 第四行——調整金額資料
                            var LS_ACCT_NOR1 = dataModel.printDataList[a].LS_ACCT_NOR;
                            var LS_SUB_DR1 = dataModel.printDataList[a].LS_SUB_DR;
                            var LS_CURR_AM = dataModel.printDataList[a].LS_CURR_AM;
                            var LS_CURR_CD = dataModel.printDataList[a].LS_CURR_CD;
                            var LS_RATE_NT = dataModel.printDataList[a].LS_RATE_NT;
                            var LS_COST_QT = dataModel.printDataList[a].LS_COST_QT;
                            var LS_LI_AM = dataModel.printDataList[a].LS_LI_AM;
                            var LS_LI_AR_AM = dataModel.printDataList[a].LS_LI_AR_AM;
                            var LS_IS_RECEIVED = dataModel.printDataList[a].LS_IS_RECEIVED;
                            if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR1) || !string.IsNullOrWhiteSpace(LS_SUB_DR1) || !string.IsNullOrWhiteSpace(LS_CURR_AM)
                                || !string.IsNullOrWhiteSpace(LS_CURR_CD) || !string.IsNullOrWhiteSpace(LS_RATE_NT) || !string.IsNullOrWhiteSpace(LS_COST_QT)
                                || !string.IsNullOrWhiteSpace(LS_LI_AM) || !string.IsNullOrWhiteSpace(LS_LI_AR_AM) || !string.IsNullOrWhiteSpace(LS_IS_RECEIVED))
                            {
                                table4.AddCell(this.GetPordCell(LS_ACCT_NOR1, chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(LS_SUB_DR1, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(LS_CURR_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(LS_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_COST_QT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_LI_AM, chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_LI_AR_AM, chineseTitle10, grid, 2, padding));//應收金額
                                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_IS_RECEIVED, chineseTitle10, grid, 1, padding));//已收
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "4";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "4";
                                    break;
                                }


                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "4";
                                //    break;
                                //}
                            }


                            #endregion


                            #region 第五行——抵扣餘額
                            var LS_AMOUNT_DEDUCTED = dataModel.printDataList[a].LS_AMOUNT_DEDUCTED;
                            var LS_DORD_AM = dataModel.printDataList[a].LS_DORD_AM;
                            var LS_DORD_CURR_CD = dataModel.printDataList[a].LS_DORD_CURR_CD;
                            var LS_DORD_RATE_NT = dataModel.printDataList[a].LS_DORD_RATE_NT;
                            if (!string.IsNullOrWhiteSpace(LS_AMOUNT_DEDUCTED) || !string.IsNullOrWhiteSpace(LS_DORD_AM)
                                || !string.IsNullOrWhiteSpace(LS_DORD_CURR_CD) || !string.IsNullOrWhiteSpace(LS_DORD_RATE_NT))
                            {
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_AMOUNT_DEDUCTED, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 2));
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "5";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "5";
                                    break;
                                }




                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "5";
                                //    break;
                                //}
                            }
                            #endregion


                            #region 第六\七行——金額小計橫線
                            i++;
                            strRow = "0";
                            bool flgPintCount = false;
                            if ((a + 1) < dataModel.printDataList.Count)
                            {
                                if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a + 1].ACCT_NOP))
                                {
                                    flgPintCount = true;
                                }
                            }
                            else//最後一個帳號的小計,調整金額為0
                            {
                                if (dataModel.printDataList[dataModel.printDataList.Count - 1].PORDD_ADJ_AM == "0")
                                    flgPintCount = true;
                            }
                            if (!string.IsNullOrWhiteSpace(dataModel.PROD_PRT_TP) && dataModel.ACCT_NOP_FG == "Y")
                            {
                                var AR_AM_COUNT = dataModel.printDataList[a].AR_AM_COUNT;
                                var LS_SUB_PAY_AM = dataModel.printDataList[a].LS_SUB_PAY_AM;
                                if (flgPintCount)//第一個帳號的小計
                                {
                                    if (!string.IsNullOrWhiteSpace(AR_AM_COUNT) || !string.IsNullOrWhiteSpace(LS_SUB_PAY_AM))
                                    {
                                        //出現應付帳號都會小計,最後一筆應付帳號不計算
                                        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ROW_GRID, chineseTitle10, grid, 2, padding, 8));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }


                                        table4.AddCell(this.GetPordCell(AR_AM_COUNT, chineseTitle10, grid, 2, padding, 7));
                                        table4.AddCell(this.GetPordCell(LS_SUB_PAY_AM, chineseTitle10, grid, 2, padding));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }
                                        rowsNum += 2;
                                        if (rowsNum == rows || rowsNum > rows)
                                            break;
                                        else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                            break;


                                        //if (page > intPagNum - 1 && rowsNum > 18)
                                        //{
                                        //    break;
                                        //}
                                    }
                                }
                            }
                            continue;
                            #endregion
                        }
                        else if (strRow == "3")
                        {
                            #region 第四行——調整金額資料
                            var LS_ACCT_NOR1 = dataModel.printDataList[a].LS_ACCT_NOR;
                            var LS_SUB_DR1 = dataModel.printDataList[a].LS_SUB_DR;
                            var LS_CURR_AM = dataModel.printDataList[a].LS_CURR_AM;
                            var LS_CURR_CD = dataModel.printDataList[a].LS_CURR_CD;
                            var LS_RATE_NT = dataModel.printDataList[a].LS_RATE_NT;
                            var LS_COST_QT = dataModel.printDataList[a].LS_COST_QT;
                            var LS_LI_AM = dataModel.printDataList[a].LS_LI_AM;
                            var LS_LI_AR_AM = dataModel.printDataList[a].LS_LI_AR_AM;
                            var LS_IS_RECEIVED = dataModel.printDataList[a].LS_IS_RECEIVED;
                            if (!string.IsNullOrWhiteSpace(LS_ACCT_NOR1) || !string.IsNullOrWhiteSpace(LS_SUB_DR1) || !string.IsNullOrWhiteSpace(LS_CURR_AM)
                                || !string.IsNullOrWhiteSpace(LS_CURR_CD) || !string.IsNullOrWhiteSpace(LS_RATE_NT) || !string.IsNullOrWhiteSpace(LS_COST_QT)
                                || !string.IsNullOrWhiteSpace(LS_LI_AM) || !string.IsNullOrWhiteSpace(LS_LI_AR_AM) || !string.IsNullOrWhiteSpace(LS_IS_RECEIVED))
                            {
                                table4.AddCell(this.GetPordCell(LS_ACCT_NOR1, chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(LS_SUB_DR1, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(LS_CURR_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(LS_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_COST_QT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(LS_LI_AM, chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_LI_AR_AM, chineseTitle10, grid, 2, padding));//應收金額
                                    table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_IS_RECEIVED, chineseTitle10, grid, 1, padding));//已收
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "4";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "4";
                                    break;
                                }


                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "4";
                                //    break;
                                //}
                            }


                            #endregion


                            #region 第五行——抵扣餘額
                            var LS_AMOUNT_DEDUCTED = dataModel.printDataList[a].LS_AMOUNT_DEDUCTED;
                            var LS_DORD_AM = dataModel.printDataList[a].LS_DORD_AM;
                            var LS_DORD_CURR_CD = dataModel.printDataList[a].LS_DORD_CURR_CD;
                            var LS_DORD_RATE_NT = dataModel.printDataList[a].LS_DORD_RATE_NT;
                            if (!string.IsNullOrWhiteSpace(LS_AMOUNT_DEDUCTED) || !string.IsNullOrWhiteSpace(LS_DORD_AM)
                                || !string.IsNullOrWhiteSpace(LS_DORD_CURR_CD) || !string.IsNullOrWhiteSpace(LS_DORD_RATE_NT))
                            {
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_AMOUNT_DEDUCTED, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 2));
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "5";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "5";
                                    break;
                                }




                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "5";
                                //    break;
                                //}
                            }
                            #endregion


                            #region 第六\七行——金額小計橫線
                            i++;
                            strRow = "0";
                            bool flgPintCount = false;
                            if ((a + 1) < dataModel.printDataList.Count)
                            {
                                if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a + 1].ACCT_NOP))
                                {
                                    flgPintCount = true;
                                }
                            }
                            else//最後一個帳號的小計,調整金額為0
                            {
                                if (dataModel.printDataList[dataModel.printDataList.Count - 1].PORDD_ADJ_AM == "0")
                                    flgPintCount = true;
                            }
                            if (!string.IsNullOrWhiteSpace(dataModel.PROD_PRT_TP) && dataModel.ACCT_NOP_FG == "Y")
                            {
                                var AR_AM_COUNT = dataModel.printDataList[a].AR_AM_COUNT;
                                var LS_SUB_PAY_AM = dataModel.printDataList[a].LS_SUB_PAY_AM;
                                if (flgPintCount)//第一個帳號的小計
                                {
                                    if (!string.IsNullOrWhiteSpace(AR_AM_COUNT) || !string.IsNullOrWhiteSpace(LS_SUB_PAY_AM))
                                    {
                                        //出現應付帳號都會小計,最後一筆應付帳號不計算
                                        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ROW_GRID, chineseTitle10, grid, 2, padding, 8));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }


                                        table4.AddCell(this.GetPordCell(AR_AM_COUNT, chineseTitle10, grid, 2, padding, 7));
                                        table4.AddCell(this.GetPordCell(LS_SUB_PAY_AM, chineseTitle10, grid, 2, padding));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }
                                        rowsNum += 2;
                                        if (rowsNum == rows || rowsNum > rows)
                                            break;
                                        else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                            break;


                                        //if (page > intPagNum - 1 && rowsNum > 18)
                                        //{
                                        //    break;
                                        //}
                                    }
                                }
                            }
                            continue;
                            #endregion
                        }
                        else if (strRow == "4")
                        {
                            #region 第五行——抵扣餘額
                            var LS_AMOUNT_DEDUCTED = dataModel.printDataList[a].LS_AMOUNT_DEDUCTED;
                            var LS_DORD_AM = dataModel.printDataList[a].LS_DORD_AM;
                            var LS_DORD_CURR_CD = dataModel.printDataList[a].LS_DORD_CURR_CD;
                            var LS_DORD_RATE_NT = dataModel.printDataList[a].LS_DORD_RATE_NT;
                            if (!string.IsNullOrWhiteSpace(LS_AMOUNT_DEDUCTED) || !string.IsNullOrWhiteSpace(LS_DORD_AM)
                                || !string.IsNullOrWhiteSpace(LS_DORD_CURR_CD) || !string.IsNullOrWhiteSpace(LS_DORD_RATE_NT))
                            {
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 0, padding, 2));//合併單元格,前兩列空白
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_AMOUNT_DEDUCTED, chineseTitle10, grid, 0, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_AM, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_CURR_CD, chineseTitle10, grid, 1, padding));
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_DORD_RATE_NT, chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding));
                                if (dataModel.SHOW_TP == "3")//列印應收金額
                                {
                                    table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 2));
                                }
                                rowsNum++;
                                if (rowsNum == rows)
                                {
                                    strRow = "5";
                                    break;
                                }
                                else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                {
                                    strRow = "5";
                                    break;
                                }




                                //if (page > intPagNum - 1 && rowsNum > 18)
                                //{
                                //    strRow = "5";
                                //    break;
                                //}
                            }
                            #endregion


                            #region 第六\七行——金額小計橫線
                            i++;
                            strRow = "0";
                            bool flgPintCount = false;
                            if ((a + 1) < dataModel.printDataList.Count)
                            {
                                if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a + 1].ACCT_NOP))
                                {
                                    flgPintCount = true;
                                }
                            }
                            else//最後一個帳號的小計,調整金額為0
                            {
                                if (dataModel.printDataList[dataModel.printDataList.Count - 1].PORDD_ADJ_AM == "0")
                                    flgPintCount = true;
                            }
                            if (!string.IsNullOrWhiteSpace(dataModel.PROD_PRT_TP) && dataModel.ACCT_NOP_FG == "Y")
                            {
                                var AR_AM_COUNT = dataModel.printDataList[a].AR_AM_COUNT;
                                var LS_SUB_PAY_AM = dataModel.printDataList[a].LS_SUB_PAY_AM;
                                if (flgPintCount)//第一個帳號的小計
                                {
                                    if (!string.IsNullOrWhiteSpace(AR_AM_COUNT) || !string.IsNullOrWhiteSpace(LS_SUB_PAY_AM))
                                    {
                                        //出現應付帳號都會小計,最後一筆應付帳號不計算
                                        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ROW_GRID, chineseTitle10, grid, 2, padding, 8));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }


                                        table4.AddCell(this.GetPordCell(AR_AM_COUNT, chineseTitle10, grid, 2, padding, 7));
                                        table4.AddCell(this.GetPordCell(LS_SUB_PAY_AM, chineseTitle10, grid, 2, padding));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }
                                        rowsNum += 2;
                                        if (rowsNum == rows || rowsNum > rows)
                                            break;
                                        else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                            break;


                                        //if (page > intPagNum - 1 && rowsNum > 18)
                                        //{
                                        //    break;
                                        //}
                                    }
                                }
                            }
                            continue;
                            #endregion
                        }
                        else if (strRow == "5")
                        {
                            #region 第六\七行——金額小計橫線
                            i++;
                            strRow = "0";
                            bool flgPintCount = false;
                            if ((a + 1) < dataModel.printDataList.Count)
                            {
                                if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a + 1].ACCT_NOP))
                                {
                                    flgPintCount = true;
                                }
                            }
                            else//最後一個帳號的小計,調整金額為0
                            {
                                if (dataModel.printDataList[dataModel.printDataList.Count - 1].PORDD_ADJ_AM == "0")
                                    flgPintCount = true;
                            }
                            if (!string.IsNullOrWhiteSpace(dataModel.PROD_PRT_TP) && dataModel.ACCT_NOP_FG == "Y")
                            {
                                var AR_AM_COUNT = dataModel.printDataList[a].AR_AM_COUNT;
                                var LS_SUB_PAY_AM = dataModel.printDataList[a].LS_SUB_PAY_AM;
                                if (flgPintCount)//第一個帳號的小計
                                {
                                    if (!string.IsNullOrWhiteSpace(AR_AM_COUNT) || !string.IsNullOrWhiteSpace(LS_SUB_PAY_AM))
                                    {
                                        //出現應付帳號都會小計,最後一筆應付帳號不計算
                                        table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ROW_GRID, chineseTitle10, grid, 2, padding, 8));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }


                                        table4.AddCell(this.GetPordCell(AR_AM_COUNT, chineseTitle10, grid, 2, padding, 7));
                                        table4.AddCell(this.GetPordCell(LS_SUB_PAY_AM, chineseTitle10, grid, 2, padding));
                                        if (dataModel.SHOW_TP == "3")//應收金額(空白)
                                        {
                                            table4.AddCell(this.GetPordCell("", chineseTitle10, grid, 2, padding, 3));
                                        }
                                        rowsNum += 2;
                                        if (rowsNum == rows || rowsNum > rows)
                                            break;
                                        else if (page > intPagNum - 1 && rowsNum > 16 && rowsNum < 20)
                                            break;


                                        //if (page > intPagNum - 1 && rowsNum > 18)
                                        //{
                                        //    break;
                                        //}
                                    }
                                }
                            }
                            continue;
                            #endregion
                        }
                    }
                }
                #endregion


                #endregion


                #region 表尾數據
                PdfPTable table5 = new PdfPTable(1);
                PdfPTable table6 = new PdfPTable(5);
                PdfPTable table7 = new PdfPTable(1);
                PdfPTable table8 = new PdfPTable(3);
                PdfPTable table9 = new PdfPTable(1);
                PdfPTable table10 = new PdfPTable(6);
                Paragraph blankRow = new Paragraph();
                int rowsBlank = 20 - (dataModel.printDataList.Count - i);
                if (i < dataModel.printDataList.Count)
                {
                    table5.AddCell(this.GetCell("====================================================================================================================", chineseTitle10, grid, 0, padding));
                    table5.AddCell(this.GetPordCell("下 頁 繼 續", chineseTitle10, grid, 1, padding));
                    table5.AddCell(this.GetCell("====================================================================================================================", chineseTitle10, grid, 0, padding));
                }
                else
                {
                    //不夠20行就補空行
                    for (int x = 0, y = rowsBlank; x < y; x++)
                    {
                        blankRow = new Paragraph(18f, " ", chineseTitle10);
                    }
                    table5.AddCell(this.GetPordCell("--------------------------------------------------------------------------------------------------------------------", chineseTitle10, grid, 0, padding));
                    table5.AddCell(this.GetPordCell(dataModel.LS_STR_CURR_CD_AM, chineseTitle10, grid, 0, padding));
                    if (dataModel.oPAY_DR == "匯款")
                    {
                        table6.SetWidths(new float[] { 13f, 30f, 19f, 20f, 18f });
                        table6.AddCell(this.GetPordCell("付款方式:" + dataModel.oPAY_DR, chineseTitle10, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("抬頭:" + dataModel.oACCT_NOP, chineseTitle10, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("匯款帳號:" + dataModel.oBANK_NO, chineseTitle10, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("銀行:" + dataModel.oBANK_NM, chineseTitle10, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("付款日期:" + dataModel.PAID_DT, chineseTitle10, grid, 0, padding));
                    }
                    else
                    {
                        table6 = new PdfPTable(4);
                        table6.SetWidths(new float[] { 15f, 20f, 25f, 20f });
                        table6.AddCell(this.GetPordCell("付款方式:" + dataModel.PAY_DR, chineseTitle10, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("到期日:" + dataModel.ACASH_DT, chineseTitle10, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("抬頭:" + dataModel.PAY_TTL, chineseTitle10, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("付款日:" + dataModel.PAID_DT, chineseTitle10, grid, 2, padding));
                    }
                    table7.AddCell(this.GetPordCell("--------------------------------------------------------------------------------------------------------------------", chineseTitle10, grid, 0, padding));
                    table8.SetWidths(new float[] { 33f, 33f, 34f });
                    if (dataModel.SHOW_TP == "3")
                    {
                        table8.AddCell(this.GetPordCell("應收合計:" + this.Format_AM(Convert.ToInt64(dataModel.LI_AR_AM), 0), chineseTitle10, grid, 0, padding));
                        table8.AddCell(this.GetPordCell("利潤合計:" + this.Format_AM(Convert.ToInt64(dataModel.LI_AM), 0), chineseTitle10, grid, 0, padding));
                        table8.AddCell(this.GetPordCell("應付合計:" + this.Format_AM(Convert.ToInt64(dataModel.LI_AP_AM), 0), chineseTitle10, grid, 0, padding));
                    }
                    else
                    {
                        //LD_TAPAM
                        table8.AddCell(this.GetPordCell("應付合計:" + this.Format_AM(Convert.ToInt64(dataModel.LI_AP_AM), 0), chineseTitle10, grid, 2, padding, 3));
                    }
                    table9.AddCell(this.GetCell("====================================================================================================================", chineseTitle10, grid, 0, padding));
                    if (string.IsNullOrWhiteSpace(dataModel.SIGN_DR))
                    {
                        table10.SetWidths(new float[] { 17f, 17f, 18f, 16f, 16f, 16f });
                        table10.AddCell(this.GetPordCell("主管:", chineseTitle10, grid, 0, padding));
                        table10.AddCell(this.GetPordCell("會計:", chineseTitle10, grid, 0, padding));
                        table10.AddCell(this.GetPordCell("出納:", chineseTitle10, grid, 0, padding));
                    }
                    else
                    {
                        table10 = new PdfPTable(4);
                        table10.SetWidths(new float[] { 52f, 16f, 16f, 16f });
                        table10.AddCell(this.GetPordCell(dataModel.SIGN_DR, chineseTitle10, grid, 0, padding));
                    }
                    table10.AddCell(this.GetPordCell("承辦:" + dataModel.LS_OPEMP_CNM, chineseTitle10, grid, 2, padding));
                    table10.AddCell(this.GetPordCell("業務:" + dataModel.LS_EMP_CNM, chineseTitle10, grid, 2, padding));
                    table10.AddCell(this.GetPordCell("列印人:" + dataModel.PRINTEMP_CNM, chineseTitle10, grid, 2, padding));
                }




                #endregion


                #region 把內容加入紙張


                ph.Add(table1);
                ph.Add(table2);
                ph.Add(table3);
                ph.Add(table4);
                ph.Add(table5);
                ph.Add(table6);
                ph.Add(table7);
                ph.Add(table8);
                ph.Add(table9);
                ph.Add(table10);
                doc.Add(ph);
                #endregion
            }
            


            #endregion
        }


private void PordPrintPdf2(OutpordViewModel dataModel, Document doc)
        {
            #region 定義
            Font chineseTitle14 = UnicodeFontFactory.GetFontBiaoKaiTi(14, Font.NORMAL, BaseColor.BLACK);
            Font chineseTitle11 = UnicodeFontFactory.GetFontBiaoKaiTi(10, Font.NORMAL, BaseColor.BLACK);
            int rows = 19;
            int page = 1;
            int colspan = 8;
            int padding = 0;
            int grid = 0;
            int iRowsNum = 0;//標記上一頁實際列印幾行數據
            int PageOr = dataModel.printDataList.Count % rows;
            int PageNum = dataModel.printDataList.Count / rows;
            if (PageOr > 0)
            {
                PageNum = PageNum + 1;
            }
            #endregion


            for (int i = 0, j = dataModel.printDataList.Count + 3; i < j; )
            {
                #region 分頁
                Paragraph ph = new Paragraph();
                PdfPTable table1 = new PdfPTable(1);
                if (i != 0 && i < dataModel.printDataList.Count || iRowsNum >= 17 && iRowsNum <= 19)
                {
                    //分頁
                    doc.NewPage();
                    page++;
                }
                #endregion


                #region 表頭數據
                table1.AddCell(this.GetPordCell(dataModel.SYS_COMP_FNM, chineseTitle14, grid, 1, padding));
                table1.AddCell(this.GetPordCell(dataModel.SYS_COMP_ADDR, chineseTitle11, grid, 1, padding));
                table1.AddCell(this.GetPordCell("TEL:" + dataModel.SYS_COMP_TEL + "  FAX:" + dataModel.SYS_COMP_FAX, chineseTitle11, grid, 1, padding));
                if (dataModel.BPAY_FG.ToUpper() == "TRUE")
                {
                    if (dataModel.DEPT_FG.ToUpper() == "TRUE")
                    {
                        table1.AddCell(this.GetPordCell(" 預付請款單 " + "(" + dataModel.DEPT_NM + ")", chineseTitle14, grid, 1, padding));
                    }
                    else
                    {
                        table1.AddCell(this.GetPordCell(" 預付請款單 ", chineseTitle14, grid, 1, padding));
                    }
                }
                else
                {
                    if (dataModel.DEPT_FG.ToUpper() == "TRUE")
                    {
                        table1.AddCell(this.GetPordCell(" 請 款 單 " + "(" + dataModel.DEPT_NM + ")", chineseTitle14, grid, 1, padding));
                    }
                    else
                    {
                        table1.AddCell(this.GetPordCell(" 請 款 單 ", chineseTitle14, grid, 1, padding));
                    }
                }
                PdfPTable table2 = new PdfPTable(2);
                table2.SetWidths(new float[] { 80f, 20f });
                table2.AddCell(this.GetPordCell("", chineseTitle11, grid, 0, padding));
                table2.AddCell(this.GetPordCell("單    號:" + dataModel.PORD_NO, chineseTitle11, grid, 0, padding));
                table2.AddCell(this.GetPordCell("", chineseTitle11, grid, 0, padding));
                table2.AddCell(this.GetPordCell("日    期:" + dataModel.PORD_DT, chineseTitle11, grid, 0, padding));
                table2.AddCell(this.GetPordCell("應付帳號:" + dataModel.LS_ACCT_NOP, chineseTitle11, grid, 0, padding));
                table2.AddCell(this.GetPordCell("時    間:" + dataModel.DATE_TIME, chineseTitle11, grid, 0, padding));
                table2.AddCell(this.GetPordCell("摘  要:" + dataModel.LS_SUB_DR, chineseTitle11, grid, 0, padding));
                table2.AddCell(this.GetPordCell("頁    次:" + page + "/" + PageNum.ToString() + "  " + "(" + dataModel.PRN_QT1 + ")", chineseTitle11, grid, 0, padding));
                #endregion


                #region 數據列循環


                #region 表頭欄位
                PdfPTable table3 = new PdfPTable(1);
                table3.AddCell(this.GetPordCell("====================================================================================================================", chineseTitle11, grid, 0, padding));
                PdfPTable table4 = new PdfPTable(8);
                switch (dataModel.SHOW_TP)
                {
                    case "1":
                        table4.SetWidths(new float[] { 8f, 12f, 33f, 13f, 8f, 7f, 6f, 13f });
                        table4.AddCell(this.GetPordCell("訂單編號", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("團    號", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("摘              要 ", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("單  價", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("幣別", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("匯率", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("數量", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("預付金額", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("---------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------------------------------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("--------------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("---------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("--------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("--------------", chineseTitle11, grid, 0, padding));
                        break;
                    case "2":
                        table4.SetWidths(new float[] { 8f, 12f, 33f, 13f, 8f, 7f, 6f, 13f });
                        table4.AddCell(this.GetPordCell("訂單編號", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("團    號", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("摘              要 ", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("單  價", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("幣別", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("匯率", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("數量", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("應付金額", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("---------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------------------------------------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("--------------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("---------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("--------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("--------------", chineseTitle11, grid, 0, padding));
                        break;
                    case "3":
                        table4 = new PdfPTable(10);
                        table4.SetWidths(new float[] { 9f, 11f, 25f, 10f, 6f, 8f, 7f, 10f, 10f, 4f });
                        table4.AddCell(this.GetPordCell("訂單編號", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("團號", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("摘 要 ", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("單價", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("幣別", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("匯率", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("數量", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("應付金額", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("應收金額", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("已收", chineseTitle11, grid, 1, padding));
                        table4.AddCell(this.GetPordCell("----------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("------------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("----------------------------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-----------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("--------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-----------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("-----------", chineseTitle11, grid, 0, padding));
                        table4.AddCell(this.GetPordCell("----", chineseTitle11, grid, 0, padding));
                        break;
                    default:
                        break;
                }
                #endregion


                int rowsNum = 0;//用於判定是否已印夠rows筆
                for (int a = i, b = i+rows; a < b; a++)
                {
                    if (a < dataModel.printDataList.Count)
                    {
                        if (dataModel.printDataList[a].PRINT_TYPE_DATA == "PRINT_PORD")//詳細資料
                        {
                            if (dataModel.SHOW_TP == "3")//列印應收金額
                                colspan = 10;
                            //應付帳號
                            if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a].ACCT_NOP))
                            {
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ACCT_NOP, chineseTitle11, grid, 0, padding, colspan));//合併單元格,應付帳號
                                rowsNum = rowsNum + 1;
                                i = i - 1;
                                if (rows == rowsNum)
                                    break;
                            }
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_OP_SQ, chineseTitle11, grid, 0, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_GRUP_CD, chineseTitle11, grid, 0, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_SUB_CD, chineseTitle11, grid, 0, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LD_AP_AM, chineseTitle11, grid, 2, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_CURR_CD, chineseTitle11, grid, 1, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_RATE_NT, chineseTitle11, grid, 2, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].PORDD_COST_QT, chineseTitle11, grid, 2, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LD_AP_AM1.ToString() == "00" ? "0" : dataModel.printDataList[a].LD_AP_AM1.ToString(), chineseTitle11, grid, 2, padding));
                            if (dataModel.SHOW_TP == "3")//列印應收金額
                            {
                                dataModel.LD_ARAM = String.Format("{0:0,0}", Convert.ToDecimal(dataModel.printDataList[a].LD_ARAM.ToString()));
                                table4.AddCell(this.GetPordCell(dataModel.LD_ARAM == "00" ? "0" : dataModel.LD_ARAM, chineseTitle11, grid, 2, padding));//應收金額
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].IS_RECEIVED, chineseTitle11, grid, 1, padding));//已收
                            }
                            rowsNum = rowsNum + 1;
                            //應收帳號
                            if (!string.IsNullOrWhiteSpace(dataModel.printDataList[a].LS_ACCT_NOR))
                            {
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_ACCT_NOR, chineseTitle11, grid, 0, padding, colspan));//合併單元格,應收帳號
                                rowsNum = rowsNum + 1;
                                i = i - 1;
                                if (rows == rowsNum)
                                    break;
                            }
                        }
                        else if (dataModel.printDataList[a].PRINT_TYPE_DATA == "PRINT_ADJUST_AM")//調整金額
                        {
                            //dataModel.ACCT_NM = dataModel.printDataList[a].LS_ACCT_NOR == "" ? "" : dataModel.printDataList[a].LS_ACCT_NOR;


                            //調整金額
                            table4.AddCell(this.GetPordCell("", chineseTitle11, grid, 0, padding, 2));//合併單元格
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LS_SUB_CD, chineseTitle11, grid, 0, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].ADJ_AM.ToString(), chineseTitle11, grid, 2, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].CURR_CD, chineseTitle11, grid, 1, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].RATE_NT, chineseTitle11, grid, 2, padding));
                            table4.AddCell(this.GetPordCell("1", chineseTitle11, grid, 2, padding));
                            table4.AddCell(this.GetPordCell(dataModel.printDataList[a].AP_AM.ToString(), chineseTitle11, grid, 2, padding));
                            if (dataModel.SHOW_TP == "3")//列印應收金額
                            {
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].LD_ARAM.ToString(), chineseTitle11, grid, 2, padding));//應收金額
                                table4.AddCell(this.GetPordCell(dataModel.printDataList[a].IS_RECEIVED, chineseTitle11, grid, 1, padding));//已收
                            }
                            rowsNum = rowsNum + 1;
                        } 
                    }
                    if (rows == rowsNum)
                        break;
                }


                #endregion


                #region 表尾數據
                PdfPTable table5 = new PdfPTable(1);
                PdfPTable table6 = new PdfPTable(5);
                PdfPTable table7 = new PdfPTable(1);
                PdfPTable table8 = new PdfPTable(3);
                PdfPTable table10 = new PdfPTable(6);
                
                if (i + rows < (dataModel.printDataList.Count -3) || (rowsNum >= 17 && rowsNum <= 19))
                {
                    table5.AddCell(this.GetCell("====================================================================================================================", chineseTitle11, grid, 0, padding));
                    table5.AddCell(this.GetPordCell("下 頁 繼 續", chineseTitle11, grid, 1, padding));
                }
                else
                {
                    table5.AddCell(this.GetPordCell("--------------------------------------------------------------------------------------------------------------------", chineseTitle11, grid, 0, padding));
                    table5.AddCell(this.GetPordCell(dataModel.LS_STR_CURR_CD_AM, chineseTitle11, grid, 0, padding));
                    if (dataModel.oPAY_DR == "匯款")
                    {
                        table6.SetWidths(new float[] { 13f, 30f, 19f, 20f, 18f });
                        table6.AddCell(this.GetPordCell("付款方式:" + dataModel.oPAY_DR, chineseTitle11, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("抬頭:" + dataModel.oACCT_NOP, chineseTitle11, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("匯款帳號:" + dataModel.oBANK_NO, chineseTitle11, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("銀行:" + dataModel.oBANK_NM, chineseTitle11, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("付款日期:" + dataModel.PAID_DT, chineseTitle11, grid, 0, padding));
                    }
                    else
                    {
                        table6 = new PdfPTable(4);
                        table6.SetWidths(new float[] { 20f, 20f, 20f, 20f });
                        table6.AddCell(this.GetPordCell("付款方式:" + dataModel.PAY_DR, chineseTitle11, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("到期日:" + dataModel.ACASH_DT, chineseTitle11, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("抬頭:" + dataModel.PAY_TTL, chineseTitle11, grid, 0, padding));
                        table6.AddCell(this.GetPordCell("付款日:" + dataModel.PAID_DT, chineseTitle11, grid, 2, padding));
                    }
                    table7.AddCell(this.GetPordCell("--------------------------------------------------------------------------------------------------------------------", chineseTitle11, grid, 0, padding));
                    table8.SetWidths(new float[] { 33f, 33f, 34f });
                    if (dataModel.SHOW_TP == "3")
                    {
                        table8.AddCell(this.GetPordCell("應收合計:" + this.Format_AM(Convert.ToInt64(dataModel.LI_TARAM), 0), chineseTitle11, grid, 0, padding));
                        table8.AddCell(this.GetPordCell("利潤合計:" + this.Format_AM(Convert.ToInt64(dataModel.LI_AM), 0), chineseTitle11, grid, 0, padding));
                        table8.AddCell(this.GetPordCell("應付合計:" + this.Format_AM(Convert.ToInt64(dataModel.LD_TAPAM), 0), chineseTitle11, grid, 0, padding));
                    }
                    else
                    {
                        table8.AddCell(this.GetPordCell("應付合計:" + this.Format_AM(Convert.ToInt64(dataModel.LD_TAPAM), 0), chineseTitle11, grid, 2, padding, 3));
                    }
                }
                PdfPTable table9 = new PdfPTable(1);
                table9.AddCell(this.GetCell("====================================================================================================================", chineseTitle11, grid, 0, padding));
                if (string.IsNullOrWhiteSpace(dataModel.SIGN_DR))
                {
                    table10.SetWidths(new float[] { 17f, 17f, 18f, 16f, 16f, 16f });
                    table10.AddCell(this.GetPordCell("主管:", chineseTitle11, grid, 0, padding));
                    table10.AddCell(this.GetPordCell("會計:", chineseTitle11, grid, 0, padding));
                    table10.AddCell(this.GetPordCell("出納:", chineseTitle11, grid, 0, padding));
                }
                else
                {
                    table10 = new PdfPTable(4);
                    table10.SetWidths(new float[] { 61f, 13f, 13f, 13f });
                    table10.AddCell(this.GetPordCell(dataModel.SIGN_DR, chineseTitle11, grid, 0, padding));
                }
                table10.AddCell(this.GetPordCell("承辦:" + dataModel.LS_OPEMP_CNM, chineseTitle11, grid, 0, padding));
                table10.AddCell(this.GetPordCell("業務:" + dataModel.LS_EMP_CNM, chineseTitle11, grid, 0, padding));
                table10.AddCell(this.GetPordCell("列印人:" + dataModel.PRINTEMP_CNM, chineseTitle11, grid, 0, padding));
                #endregion


                #region 添加表格到紙張中
                ph.Add(table1);
                ph.Add(table2);
                ph.Add(table3);
                ph.Add(table4);
                if (i + rows < (dataModel.printDataList.Count-3) || (rowsNum >= 17 && rowsNum <= 19))
                {
                    ph.Add(table5);
                    ph.Add(table9);
                }
                else
                {
                    int rowsBlank = 0;
                    if (rowsNum == 1 || rowsNum == 0)
                        rowsBlank = rows - rowsNum - 7 - 4;
                    else if (rowsNum == 2)
                        rowsBlank = rows - rowsNum - 7 - 3;
                    else if (rowsNum == 3 || rowsNum == 4)
                        rowsBlank = rows - rowsNum - 7 - 2;
                    else if (rowsNum == 5 || rowsNum == 6)
                        rowsBlank = rows - rowsNum - 7 - 1;
                    else if (rowsNum == 7 || rowsNum == 8)
                        rowsBlank = rows - rowsNum - 7;
                    else if (rowsNum == 9 || rowsNum == 10 || rowsNum == 11)
                        rowsBlank = rows - rowsNum - 7 + 1;
                    else if (rowsNum == 12 || rowsNum == 13)
                        rowsBlank = rows - rowsNum - 7 + 2;
                    else if (rowsNum == 14 || rowsNum == 15 || rowsNum == 16)
                        rowsBlank = rows - rowsNum - 7 + 3;
                    else
                        rowsBlank = rows - rowsNum - 7;
                    Paragraph blankRow = new Paragraph();
                    for (int x = 0, y = rowsBlank; x < y; x++)//不夠rows行就補空行
                    {
                        blankRow = new Paragraph(18f, " ", chineseTitle11);
                        ph.Add(blankRow);
                    }
                    ph.Add(table5);
                    ph.Add(table6);
                    ph.Add(table7);
                    ph.Add(table8);
                    ph.Add(table9);
                    ph.Add(table10); 
                }
                doc.Add(ph);
                #endregion


                iRowsNum = rowsNum;
                i += rows;
            }
        }



原创粉丝点击