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;
}
}
- 生成pdf,使用itext
- iText生成PDF
- itext 生成pdf
- itext 生成pdf
- 使用itext生成pdf
- iText生成PDF
- IText 生成PDF
- itext生成pdf
- iText生成PDF入门
- iText生成PDF入门
- iText生成pdf文书
- iText 生成pdf分页
- iText生成PDF学习
- itext 生成pdf 代码
- itext 生成pdf文档
- iText生成pdf
- Itext生成pdf细节
- itext 生成pdf文档
- 记录linux使用中碰到的命令,问题
- 创投日报:10月16日收录投融资项目11起
- 贴身保姆来了,让你出门在外也能保持衣冠楚楚丨钛空舱最生活
- Android实践 -- Android Wi-Fi 直连 传输数据
- iOS开发:给UIWebview的导航栏添加返回、关闭按钮
- itext生成pdf
- Android使用ViewStub提高布局性能
- Android工程师之Android面试大纲
- img
- C#编程入门3_表达式和运算符
- ImportError: No module named PIL
- hadoop入门十(HDFS基本原理和操作)
- windows下部署tomcat集群(Apache+mod_jk)
- HDU 5968:异或密码