From 90c26818f48e5ca5ec4ed35a7402040dc6f36bc5 Mon Sep 17 00:00:00 2001 From: jackchenyang <874821510@qq.com> Date: Wed, 29 May 2024 18:21:13 +0800 Subject: [PATCH] 122121 --- HJGL/.vs/HJGL/v17/.suo | Bin 1057280 -> 1079808 bytes .../TestPackageManageAudit.aspx.cs | 1555 ++++++++++------- .../WeldingManage/JointInfo.aspx.cs | 39 +- 3 files changed, 923 insertions(+), 671 deletions(-) diff --git a/HJGL/.vs/HJGL/v17/.suo b/HJGL/.vs/HJGL/v17/.suo index 69bfa29ca04d6d74aa5c398ac85f2cce199e6e49..55007dd2c5c578535f4261334c906af66b905c73 100644 GIT binary patch delta 63207 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
f5mkfmD8@&Ed+82T_OR%1p%T+Q}w#2$(s};(< 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 MrH{wPpLah07g<8V!vFvP delta 56514 zcmeEv3qVxWy8o=b_w1S3^I!xdL&6b}2#H2QL?axD)D&?IrHGdI#rsgQjBpU6j|O zoDZr6Z2@fsy$X5_v=-EV-D58^;RnInT8Oq)y>)N9d)Dn|&)`PSMDHYFl2Bx={zgz3 zTj*ud6;~Q@2VQ((M6m3F(h557Z7+qzJ|*dNE%_d-CAFA3Be>HECo(}ee!+~g7sw6j2)Ye~%XIgH zoM@KmD6a(l4F@Yx{uT5Jwr@w-2eb~vpA(0VOV8D#|?5Qefjs17f^9u?YxG8Fsepf|7`g>op!0^;|{ zxaX9BYxFu@8IC;-dJr_5f8Nc(i}=fV`wqs%f59;V-2l1~^bTkSs5i(3I_Evd`uuj^ zmK%-NEaaEtvA3XHgGb|Ybt6DHbm8G(d9kA-FYRc41@CARXqC=eB*kgnyBfRya`!%h zn}4f&`Fr_q8Ls`M?&V+fZ|&ZZc-b#?FR#ombuZ`q-|XH9T*M#pd%Cv}*Pg3BXA&iU zG84*&rAYiPZ`!czz{VrPqGI`xcIdSBAimv1PV8R~>H+d@AC~93C3r!vV401wHz)_x z2jm9z1?7VJf$~88LHQuSe>O|1(s^yZEjl(%b(FHp?X!)05)|N_I#k-puspd3?+I&`~86JXbiLGAO`NmHfQ*EG4wgZ za$11>t{}dh7%cgXi?RI#=o{SkD9S~kCqYX(_Y{UMesHV0*Z+RFyLhDwtE2c_l&98B;>E6F%`>sp& zIVXPrIu3H<{(O)Fbm5X~KEd|KpcpibfODT>`!mqzprfE?@HtJ-=jAszb{d4uYc8C^ zh7LEa#YJbZ*&1X(`!O6lhwY{ty~nQ2s7{E_VKT37pm)5ht{LESu~OE7?sKuJEP=k} z#Ra5}%QcYBO#_G4SXiv1X^)p_INJ%-Ie1k%O106#?2Lr* zHg~l1TPJhu}>+P~SSx2cWk=`$2Dm?!&iiN7>X7 zO+B|4$CgS|u#)+GaV()apJn2HL8k;VxVA6NEPh)d^nGsJ=zk7xCV?wfya$aTY zDQ2>qN$%a|%<>|+diKciV)>5Kax$vCLg)Q{$1UDhg!aO6vv>TPxe`Wp@IgP|l}7J( zFZbl9y`{B%=#?>Ia`o4>W>%Rc&~ll@Qb|WkDmgamC9;o$7)TVAEV}&@L8-1Q9mh;M z&MvK*9_TF{|90R}6Z-IyPETd=-o;~W-h{C^vJY=-8bo6Uu*ylYZ#tXE>~#Nh*3-oJ zI1OtW%5-`<>tkXuI2L;GSm{G-PUUE!a)#ndM;|BAed*}jYw7EBmP0q4VjTosGn#ZG zn_}p}--NHca67w2I^WcAR9eV9@>Tf$dL4aV$iAO?BN}Ku*N6D=G0l1F(lI?9$3}yi z#`H{V^D)h@`>ip}`}NW>or?P|9n%#Mv=;~U<2V@$;$wOR=qZpNv*hN-xZoz7>~+ZndD!l7$pgD#KO1!5l4JbdzBrZ( z>JQ@kUiaU_v-k%872;q~@Wh=c2L`tXq5LcQeRyzx7|OdqBSE8r$Goflp4cw%n83gH z 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 C=`=V1 diff --git a/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx.cs index 4b98b02..243c16f 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx.cs @@ -11,6 +11,7 @@ using System.Web.UI; using System.Web.UI.WebControls; using System.Windows.Forms; using BLL; +using FineUIPro.Web.Common.ProjectSet; using Model; using Newtonsoft.Json.Linq; using NPOI.HSSF.UserModel; @@ -18,8 +19,8 @@ using NPOI.SS.UserModel; using NPOI.SS.Util; using NPOI.XSSF.Streaming; using NPOI.XSSF.UserModel; -using static System.Windows.Forms.VisualStyles.VisualStyleElement; using BorderStyle = NPOI.SS.UserModel.BorderStyle; +using HorizontalAlignment = NPOI.SS.UserModel.HorizontalAlignment; namespace FineUIPro.Web.WeldingProcess.TestPackageManage { @@ -1217,7 +1218,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage ws.SetColumnWidth(14, 10 * 256); ws.SetColumnWidth(15, 10 * 256); ws.SetColumnWidth(16, 10 * 256); - ws.SetColumnWidth(17, 6 * 256); + ws.SetColumnWidth(17, 3 * 256); //设置前3行高度 ws.GetRow(rowIndex + 0).Height = 15 * 20; ws.GetRow(rowIndex + 1).Height = 15 * 20; @@ -1256,10 +1257,10 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage #endregion #region 插入图片 - InsertImage(hssfworkbook, ws, rowIndex + 3, rowIndex + 2, 4, 3, img1, 1.2, 1.8); - InsertImage(hssfworkbook, ws, rowIndex + 3, rowIndex + 3, 4, 4, img2, 1.9, 1.9); - InsertImage(hssfworkbook, ws, rowIndex + 3, rowIndex + 13, 4, 14, img3, 1.5, 1.5); - InsertImage(hssfworkbook, ws, rowIndex + 3, rowIndex + 15, 4, 16, img4, 1.5, 1.5); + InsertImage(hssfworkbook, ws, 3, 2, 4, 3, img1, 1.2, 1.8); + InsertImage(hssfworkbook, ws, 3, 3, 4, 4, img2, 10, 2, 30, 2); + InsertImage(hssfworkbook, ws, 3, 14, 4, 14, img3, 1.5, 2, 8, 2); + InsertImage(hssfworkbook, ws, 3, 15, 4, 15, img4, 3, 2, 35, 2); #endregion #region 试压包头部分 @@ -1351,6 +1352,12 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 9, 13)); RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 2, 16), ws); RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 2, 16), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 2, 2), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 8, 8), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 13, 13), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 14, 14), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 15, 15), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 16, 16), ws); ws.GetRow(rowIndex + 15).GetCell(2).SetCellValue("No\r\n序号"); ws.GetRow(rowIndex + 15).GetCell(3).SetCellValue("P&ID Drawing No.\r\n流程图号"); ws.GetRow(rowIndex + 15).GetCell(9).SetCellValue("Drawing Description\r\n图纸名称"); @@ -1379,15 +1386,16 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage var pageTb = GetPageToTable(dt, dStart, dEnd); int nextRow = 0; int lastRow = 0; - for (int j = 0; j < pageTb.Rows.Count; j++) + int j = 0; + foreach (DataRow dr in pageTb.Rows) { int dataIndex = dataTit + j; ws.GetRow(dataIndex).GetCell(2).SetCellValue($"{j + 1}"); - ws.GetRow(dataIndex).GetCell(3).SetCellValue(pageTb.Rows[i]["PipelineCode"].ToString()); - ws.GetRow(dataIndex).GetCell(9).SetCellValue(pageTb.Rows[i]["SingleNumber"].ToString()); - ws.GetRow(dataIndex).GetCell(14).SetCellValue(pageTb.Rows[i]["DrawingsNum"].ToString()); - ws.GetRow(dataIndex).GetCell(15).SetCellValue(pageTb.Rows[i]["PageNum"].ToString()); - ws.GetRow(dataIndex).GetCell(16).SetCellValue(pageTb.Rows[i]["Remark"].ToString()); + ws.GetRow(dataIndex).GetCell(3).SetCellValue(dr["PipelineCode"].ToString()); + ws.GetRow(dataIndex).GetCell(9).SetCellValue(dr["SingleNumber"].ToString()); + ws.GetRow(dataIndex).GetCell(14).SetCellValue(dr["DrawingsNum"].ToString()); + ws.GetRow(dataIndex).GetCell(15).SetCellValue(dr["PageNum"].ToString()); + ws.GetRow(dataIndex).GetCell(16).SetCellValue(dr["Remark"].ToString()); ws.GetRow(dataIndex).Height = 14 * 20; ws.AddMergedRegion(new CellRangeAddress(rowIndex + dataIndex, rowIndex + dataIndex, 3, 8)); ws.AddMergedRegion(new CellRangeAddress(rowIndex + dataIndex, rowIndex + dataIndex, 9, 13)); @@ -1402,6 +1410,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 16, 16), ws); RegionUtil.SetBorderBottom(1, new CellRangeAddress(dataIndex, dataIndex, 2, 16), ws); nextRow = dataIndex; + j++; } //如果pageData不满足33行数据的情况下,将设置剩余行高 if (pageTb.Rows.Count < 34) @@ -1529,210 +1538,366 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage int rowIndex = 0; var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 10, true, false, "Arial Unicode MS"); - #region 头部 + //查询数据 + string sql = @"select * from ( + select + a.PTP_ID, + a.TestPackageNo, + d.WorkAreaId, + d.WorkAreaCode, + c.PipelineId, + c.PipelineCode, + c.SystemNumber, + a.TestHeat, + a.TestType, + c.SingleNumber, + c.DrawingsNum, + a.Remark, + (select top 1 PageNum from Pipeline_WeldJoint where PipelineId=b.PipelineId order by WeldJointCode) as PageNum + from PTP_TestPackage as a + inner join + PTP_PipelineList as b on a.PTP_ID=b.PTP_ID + left join + Pipeline_Pipeline as c on b.PipelineId=c.PipelineId + left join Project_WorkArea as d on b.WorkAreaId=d.WorkAreaId + ) as t where PTP_ID=@PTP_ID "; + SqlParameter[] parms = new SqlParameter[]{ + new SqlParameter("@PTP_ID",this.tvControlItem.SelectedNodeID) + }; + var dt = SQLHelper.GetDataTableRunText(sql, parms); + //获取试压包第一行记录 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 14, style, 0, 17, true); - ws.GetRow(rowIndex).GetCell(15).SetCellValue("Form No."); - ws.GetRow(rowIndex).GetCell(16).SetCellValue("TP-06"); - //设置列宽度 - ws.SetColumnWidth(0, 3 * 256); - ws.SetColumnWidth(1, 3 * 256); - ws.SetColumnWidth(2, 8 * 256); - ws.SetColumnWidth(3, 5 * 256); - ws.SetColumnWidth(4, 5 * 256); - ws.SetColumnWidth(5, 8 * 256); - ws.SetColumnWidth(6, 8 * 256); - ws.SetColumnWidth(7, 4 * 256); - ws.SetColumnWidth(8, 8 * 256); - ws.SetColumnWidth(9, 8 * 256); - ws.SetColumnWidth(10, 8 * 256); - ws.SetColumnWidth(11, 8 * 256); - ws.SetColumnWidth(12, 1 * 256); - ws.SetColumnWidth(13, 9 * 256); - ws.SetColumnWidth(14, 9 * 256); - ws.SetColumnWidth(15, 10 * 256); - ws.SetColumnWidth(16, 6 * 256); - ws.SetColumnWidth(17, 6 * 256); - //设置前3行高度 - ws.GetRow(0).Height = 15 * 20; - ws.GetRow(1).Height = 15 * 20; - ws.GetRow(2).Height = 14 * 20; + #region 分页数据 + var tbNum = dt.Rows.Count; + var pageNum = tbNum < 34 ? 1 + : Math.Ceiling((float)(tbNum - 34) / 34) + 1; - //设置3-15行的行高度 - for (int i = 3; i < 15; i++) + for (int i = 1; i <= pageNum; i++) { - ws.GetRow(i).Height = 18 * 20; + #region 头部 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 15, style, 0, 17, true); + ws.GetRow(rowIndex).GetCell(15).SetCellValue("Form No."); + ws.GetRow(rowIndex).GetCell(16).SetCellValue("TP-06"); + + #region 设置样式 + //设置列宽度 + ws.SetColumnWidth(0, 3 * 256); + ws.SetColumnWidth(1, 1 * 256); + ws.SetColumnWidth(2, 8 * 256); + ws.SetColumnWidth(3, 5 * 256); + ws.SetColumnWidth(4, 5 * 256); + ws.SetColumnWidth(5, 8 * 256); + ws.SetColumnWidth(6, 8 * 256); + ws.SetColumnWidth(7, 4 * 256); + ws.SetColumnWidth(8, 8 * 256); + ws.SetColumnWidth(9, 8 * 256); + ws.SetColumnWidth(10, 8 * 256); + ws.SetColumnWidth(11, 8 * 256); + ws.SetColumnWidth(12, 1 * 256); + ws.SetColumnWidth(13, 9 * 256); + ws.SetColumnWidth(14, 10 * 256); + ws.SetColumnWidth(15, 10 * 256); + ws.SetColumnWidth(16, 10 * 256); + ws.SetColumnWidth(17, 1 * 256); + //设置前3行高度 + ws.GetRow(rowIndex + 0).Height = 15 * 20; + ws.GetRow(rowIndex + 1).Height = 4 * 20; + ws.GetRow(rowIndex + 2).Height = 14 * 20; + ws.GetRow(rowIndex + 3).Height = 18 * 20; + ws.GetRow(rowIndex + 4).Height = 18 * 20; + ws.GetRow(rowIndex + 5).Height = 18 * 20; + ws.GetRow(rowIndex + 6).Height = 18 * 20; + ws.GetRow(rowIndex + 7).Height = 18 * 20; + ws.GetRow(rowIndex + 8).Height = 18 * 20; + ws.GetRow(rowIndex + 9).Height = 18 * 20; + ws.GetRow(rowIndex + 10).Height = 18 * 20; + ws.GetRow(rowIndex + 11).Height = 18 * 20; + ws.GetRow(rowIndex + 12).Height = 18 * 20; + ws.GetRow(rowIndex + 13).Height = 18 * 20; + ws.GetRow(rowIndex + 14).Height = 18 * 20; + + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 0, rowIndex + 0, 1, 1), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 17, 17), ws); + + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 16, 16), ws); + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 17, 17), ws); + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 2, 16), ws); + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 2, 16), ws); + + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 1, rowIndex + 14, 0, 0), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 2, rowIndex + 14, 1, 1), ws); + + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 2, rowIndex + 14, 16, 16), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 2, rowIndex + 14, 17, 17), ws); + + + RegionUtil.SetBorderLeft(2, new CellRangeAddress(rowIndex + 9, rowIndex + 14, 2, 2), ws); + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 7, rowIndex + 7, 2, 16), ws); + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 8, rowIndex + 8, 2, 16), ws); + #endregion + + #region 插入图片 + InsertImage(hssfworkbook, ws, 3, 2, 4, 3, img1, 1.2, 1.8); + InsertImage(hssfworkbook, ws, 3, 3, 4, 4, img2, 10, 2, 30, 2); + InsertImage(hssfworkbook, ws, 3, 14, 4, 14, img3, 1.5, 2, 8, 2); + InsertImage(hssfworkbook, ws, 3, 15, 4, 15, img4, 3, 2, 35, 2); + #endregion + + #region 试压包头部分 + + string TestPackageNo = string.Empty; + string WorkAreaCode = string.Empty; + string SystemNo = string.Empty; + string TestHeat = string.Empty; + string TestType = string.Empty; + if (dt.Rows.Count > 0) + { + TestPackageNo = dt.Rows[0]["TestPackageNo"].ToString(); + WorkAreaCode = dt.Rows[0]["WorkAreaCode"].ToString(); + SystemNo = dt.Rows[0]["SystemNumber"].ToString(); + TestHeat = dt.Rows[0]["TestHeat"].ToString(); + TestType = dt.Rows[0]["TestType"].ToString(); + } + ws.GetRow(rowIndex + 3).GetCell(5).SetCellValue("巴斯夫(广东)一体化项目"); + var setStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 14, true, true, "Arial Unicode MS"); + ws.GetRow(rowIndex + 3).GetCell(5).CellStyle = setStyle; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 5, 13)); + ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("BASF (GUANGDONG) INTEGRATED PROJECT"); + ws.GetRow(rowIndex + 4).GetCell(5).CellStyle = setStyle; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 5, 13)); + ws.GetRow(rowIndex + 5).GetCell(5).SetCellValue("试压包单线图清单"); + ws.GetRow(rowIndex + 5).GetCell(5).CellStyle = setStyle; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 5, 13)); + ws.GetRow(rowIndex + 6).GetCell(5).SetCellValue("TEST PACKAGE ISOMETRIC LIST"); + ws.GetRow(rowIndex + 6).GetCell(5).CellStyle = setStyle; + + var cellStyle2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 11, false, false, "Arial Unicode MS"); + ws.GetRow(rowIndex + 9).GetCell(2).SetCellValue("Test Package No"); + ws.GetRow(rowIndex + 9).GetCell(2).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 9).GetCell(5).SetCellValue(TestPackageNo); + ws.GetRow(rowIndex + 9).GetCell(5).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 9).GetCell(9).SetCellValue("Area"); + ws.GetRow(rowIndex + 9).GetCell(9).CellStyle = cellStyle2; + ws.GetRow(rowIndex + 9).GetCell(13).SetCellValue(WorkAreaCode); + + ws.GetRow(rowIndex + 10).GetCell(2).SetCellValue("试压包号"); + ws.GetRow(rowIndex + 10).GetCell(2).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 10).GetCell(9).SetCellValue("区域"); + ws.GetRow(rowIndex + 10).GetCell(9).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 11).GetCell(2).SetCellValue("System No"); + ws.GetRow(rowIndex + 11).GetCell(2).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 11).GetCell(5).SetCellValue(SystemNo); + ws.GetRow(rowIndex + 11).GetCell(5).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 11).GetCell(9).SetCellValue("Test Pressure"); + ws.GetRow(rowIndex + 11).GetCell(9).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 11).GetCell(13).SetCellValue(TestHeat); + ws.GetRow(rowIndex + 11).GetCell(13).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 12).GetCell(2).SetCellValue("系统号"); + ws.GetRow(rowIndex + 12).GetCell(2).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 12).GetCell(9).SetCellValue("试验压力"); + ws.GetRow(rowIndex + 12).GetCell(9).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 13).GetCell(9).SetCellValue("Test Type"); + ws.GetRow(rowIndex + 13).GetCell(9).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 13).GetCell(13).SetCellValue(TestType); + ws.GetRow(rowIndex + 13).GetCell(13).CellStyle = cellStyle2; + + ws.GetRow(rowIndex + 14).GetCell(9).SetCellValue("试验方式"); + ws.GetRow(rowIndex + 14).GetCell(9).CellStyle = cellStyle2; + + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 9, rowIndex + 14, 8, 8), ws); + #endregion + #endregion + + #region 表格部分 + //数据表头部分 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 13)); + ws.GetRow(rowIndex + 15).GetCell(0).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None); + ws.GetRow(rowIndex + 15).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.GetRow(rowIndex + 15).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 3, 8)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 9, 13)); + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 2, 16), ws); + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 2, 16), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 2, 2), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 8, 8), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 13, 13), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 14, 14), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 15, 15), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 15, rowIndex + 15, 16, 16), ws); + ws.GetRow(rowIndex + 15).GetCell(2).SetCellValue("No\r\n序号"); + ws.GetRow(rowIndex + 15).GetCell(3).SetCellValue("Isometric Drawing No\r\n单线图号"); + ws.GetRow(rowIndex + 15).GetCell(9).SetCellValue("Line Number No\r\n管线号"); + ws.GetRow(rowIndex + 15).GetCell(14).SetCellValue("Rev\r\n版本"); + ws.GetRow(rowIndex + 15).GetCell(15).SetCellValue("Sheet No.\r\n页码"); + ws.GetRow(rowIndex + 15).GetCell(16).SetCellValue("Remark\r\n备注"); + ws.GetRow(rowIndex + 15).Height = 40 * 20; + + style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 11, false, false, "Arial Unicode MS"); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 16, rowIndex + 50, style, 0, 17, true); + + var dataTit = rowIndex + 16; + + var dStart = 0; + var dEnd = 0; + if (i == 1) + { + dStart = 0; + dEnd = 34; + } + else + { + dStart = i == 2 ? 34 : ((i - 2) * 34) + 34; + dEnd = ((i - 1) * 34) + 34; + } + var pageTb = GetPageToTable(dt, dStart, dEnd); + int nextRow = 0; + int lastRow = 0; + int j = 0; + foreach (DataRow dr in pageTb.Rows) + { + int dataIndex = dataTit + j; + ws.GetRow(dataIndex).GetCell(2).SetCellValue($"{j + 1}"); + ws.GetRow(dataIndex).GetCell(3).SetCellValue(dr["PipelineCode"].ToString()); + ws.GetRow(dataIndex).GetCell(9).SetCellValue(dr["SingleNumber"].ToString()); + ws.GetRow(dataIndex).GetCell(14).SetCellValue(dr["DrawingsNum"].ToString()); + ws.GetRow(dataIndex).GetCell(15).SetCellValue(dr["PageNum"].ToString()); + ws.GetRow(dataIndex).GetCell(16).SetCellValue(dr["Remark"].ToString()); + ws.GetRow(dataIndex).Height = 14 * 20; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + dataIndex, rowIndex + dataIndex, 3, 8)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + dataIndex, rowIndex + dataIndex, 9, 13)); + ws.GetRow(dataIndex).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.GetRow(dataIndex).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + RegionUtil.SetBorderLeft(1, new CellRangeAddress(dataIndex, dataIndex, 2, 16), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 2, 2), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 8, 8), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 13, 13), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 14, 14), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 15, 15), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 16, 16), ws); + RegionUtil.SetBorderBottom(1, new CellRangeAddress(dataIndex, dataIndex, 2, 16), ws); + nextRow = dataIndex; + j++; + } + //如果pageData不满足33行数据的情况下,将设置剩余行高 + if (pageTb.Rows.Count < 34) + { + for (int k = 1; k <= 34 - pageTb.Rows.Count; k++) + { + int dataIndex = rowIndex + nextRow + k; + ws.GetRow(dataIndex).Height = 14 * 20; + ws.GetRow(dataIndex).GetCell(0).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None); + ws.GetRow(dataIndex).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.GetRow(dataIndex).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.AddMergedRegion(new CellRangeAddress(dataIndex, dataIndex, 3, 8)); + ws.AddMergedRegion(new CellRangeAddress(dataIndex, dataIndex, 9, 13)); + RegionUtil.SetBorderLeft(1, new CellRangeAddress(dataIndex, dataIndex, 2, 16), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 2, 2), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 8, 8), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 13, 13), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 14, 14), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 15, 15), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(dataIndex, dataIndex, 16, 16), ws); + RegionUtil.SetBorderBottom(1, new CellRangeAddress(dataIndex, dataIndex, 2, 16), ws); + lastRow = nextRow + k; + } + } + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + lastRow, rowIndex + lastRow, 2, 16), ws); + #endregion + + #region 尾部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 50, rowIndex + 55, style, 0, 17, true); + ws.GetRow(rowIndex + 50).Height = 18 * 20; + ws.GetRow(rowIndex + 51).Height = 18 * 20; + ws.GetRow(rowIndex + 52).Height = 18 * 20; + ws.GetRow(rowIndex + 53).Height = 18 * 20; + ws.GetRow(rowIndex + 54).Height = 18 * 20; + ws.GetRow(rowIndex + 55).Height = 4 * 20; + RegionUtil.SetBorderLeft(2, new CellRangeAddress(rowIndex + 50, rowIndex + 55, 1, 1), ws); + RegionUtil.SetBorderLeft(2, new CellRangeAddress(rowIndex + 50, rowIndex + 55, 18, 18), ws); + + RegionUtil.SetBorderLeft(2, new CellRangeAddress(rowIndex + 50, rowIndex + 54, 2, 2), ws); + RegionUtil.SetBorderLeft(2, new CellRangeAddress(rowIndex + 50, rowIndex + 54, 17, 17), ws); + + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 52, rowIndex + 52, 2, 16), ws); + + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 50, rowIndex + 52, 4, 4), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 50, rowIndex + 52, 6, 6), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 50, rowIndex + 52, 9, 9), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 50, rowIndex + 52, 13, 13), ws); + + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 53, rowIndex + 53, 4, 4), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 53, rowIndex + 53, 4, 4), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 53, rowIndex + 53, 6, 6), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 53, rowIndex + 53, 9, 9), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 53, rowIndex + 53, 13, 13), ws); + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 53, rowIndex + 54, 2, 16), ws); + + RegionUtil.SetBorderTop(2, new CellRangeAddress(rowIndex + 54, rowIndex + 54, 2, 6), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 54, rowIndex + 54, 6, 6), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 54, rowIndex + 54, 9, 9), ws); + RegionUtil.SetBorderRight(2, new CellRangeAddress(rowIndex + 54, rowIndex + 54, 13, 13), ws); + + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex + 55, rowIndex + 55, 1, 17), ws); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 2, 4)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 5, 6)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 7, 9)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 10, 13)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 14, 16)); + + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 53, 2, 4)); + ws.GetRow(rowIndex + 53).GetCell(2).SetCellValue("PREPARED"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 53, 5, 6)); + ws.GetRow(rowIndex + 53).GetCell(5).SetCellValue("REVIEW"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 7, 9)); + ws.GetRow(rowIndex + 53).GetCell(7).SetCellValue("JIANLI"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 10, 13)); + ws.GetRow(rowIndex + 53).GetCell(10).SetCellValue("Worley"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 14, 16)); + ws.GetRow(rowIndex + 53).GetCell(14).SetCellValue("BASF"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 54, rowIndex + 54, 2, 6)); + ws.GetRow(rowIndex + 54).GetCell(2).SetCellValue("CC7"); + + #endregion + + rowIndex = rowIndex + 60; } - - RegionUtil.SetBorderBottom(2, new CellRangeAddress(0, 0, 1, 1), ws); - RegionUtil.SetBorderRight(2, new CellRangeAddress(1, 1, 17, 17), ws); - - RegionUtil.SetBorderTop(2, new CellRangeAddress(1, 1, 16, 16), ws); - RegionUtil.SetBorderTop(2, new CellRangeAddress(1, 1, 17, 17), ws); - RegionUtil.SetBorderTop(2, new CellRangeAddress(1, 1, 2, 16), ws); - RegionUtil.SetBorderTop(2, new CellRangeAddress(2, 2, 2, 16), ws); - - RegionUtil.SetBorderRight(2, new CellRangeAddress(1, 14, 0, 0), ws); - RegionUtil.SetBorderRight(2, new CellRangeAddress(2, 14, 1, 1), ws); - - RegionUtil.SetBorderRight(2, new CellRangeAddress(2, 14, 16, 16), ws); - RegionUtil.SetBorderRight(2, new CellRangeAddress(2, 14, 17, 17), ws); - - - RegionUtil.SetBorderLeft(2, new CellRangeAddress(9, 14, 2, 2), ws); - RegionUtil.SetBorderBottom(2, new CellRangeAddress(7, 7, 2, 16), ws); - RegionUtil.SetBorderBottom(2, new CellRangeAddress(8, 8, 2, 16), ws); - //插入图片 - InsertImage(hssfworkbook, ws, 3, 2, 4, 3, img1, 1.2, 1.8); - InsertImage(hssfworkbook, ws, 3, 3, 4, 4, img2, 1.9, 1.9); - InsertImage(hssfworkbook, ws, 3, 13, 4, 14, img3, 1.5, 1.5); - InsertImage(hssfworkbook, ws, 3, 15, 4, 16, img4, 1.5, 1.5); - - ws.GetRow(rowIndex + 3).GetCell(5).SetCellValue("巴斯夫(广东)一体化项目"); - var setStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 14, true, true, "Arial Unicode MS"); - ws.GetRow(rowIndex + 3).GetCell(5).CellStyle = setStyle; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 5, 13)); - ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("BASF (GUANGDONG) INTEGRATED PROJECT"); - ws.GetRow(rowIndex + 4).GetCell(5).CellStyle = setStyle; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 5, 13)); - ws.GetRow(rowIndex + 5).GetCell(5).SetCellValue("试压包单线图清单"); - ws.GetRow(rowIndex + 5).GetCell(5).CellStyle = setStyle; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 5, 13)); - ws.GetRow(rowIndex + 6).GetCell(5).SetCellValue("TEST PACKAGE ISOMETRIC LIST"); - ws.GetRow(rowIndex + 6).GetCell(5).CellStyle = setStyle; - - var cellStyle2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 11, false, false, "Arial Unicode MS"); - ws.GetRow(rowIndex + 9).GetCell(2).SetCellValue("Test Package No"); - ws.GetRow(rowIndex + 9).GetCell(2).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 9).GetCell(5).SetCellValue("UG-130-FW-HT-001"); - ws.GetRow(rowIndex + 9).GetCell(5).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 9).GetCell(9).SetCellValue("Area"); - ws.GetRow(rowIndex + 9).GetCell(9).CellStyle = cellStyle2; - ws.GetRow(rowIndex + 9).GetCell(13).SetCellValue("C400"); - - ws.GetRow(rowIndex + 10).GetCell(2).SetCellValue("试压包号"); - ws.GetRow(rowIndex + 10).GetCell(2).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 10).GetCell(9).SetCellValue("区域"); - ws.GetRow(rowIndex + 10).GetCell(9).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 11).GetCell(2).SetCellValue("System No"); - ws.GetRow(rowIndex + 11).GetCell(2).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 11).GetCell(5).SetCellValue("FIRE WATER"); - ws.GetRow(rowIndex + 11).GetCell(5).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 11).GetCell(9).SetCellValue("Test Pressure"); - ws.GetRow(rowIndex + 11).GetCell(9).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 11).GetCell(13).SetCellValue("2"); - ws.GetRow(rowIndex + 11).GetCell(13).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 12).GetCell(2).SetCellValue("系统号"); - ws.GetRow(rowIndex + 12).GetCell(2).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 12).GetCell(9).SetCellValue("试验压力"); - ws.GetRow(rowIndex + 12).GetCell(9).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 13).GetCell(9).SetCellValue("Test Type"); - ws.GetRow(rowIndex + 13).GetCell(9).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 13).GetCell(13).SetCellValue("Hydro Test"); - ws.GetRow(rowIndex + 13).GetCell(13).CellStyle = cellStyle2; - - ws.GetRow(rowIndex + 14).GetCell(9).SetCellValue("试验方式"); - ws.GetRow(rowIndex + 14).GetCell(9).CellStyle = cellStyle2; - - #endregion - - #region 表格部分 - - style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 11, true, false, "Arial Unicode MS"); - ws = ExcelCreateRow(ws, hssfworkbook, 15, rowIndex + 49, style, 0, 17, true); - for (int i = 15; i < 50; i++) - { - ws.GetRow(i).Height = 22 * 20; - ws.GetRow(i).GetCell(0).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None); - ws.GetRow(i).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); - ws.GetRow(i).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 3, 8)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 9, 13)); - } - ws.GetRow(15).Height = 30 * 20; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 13)); - //数据表头部分 - ws.GetRow(rowIndex + 15).GetCell(2).SetCellValue("No\r\n序号"); - ws.GetRow(rowIndex + 15).GetCell(3).SetCellValue("Isometric Drawing No.\r\n单线图号"); - ws.GetRow(rowIndex + 15).GetCell(9).SetCellValue("Line Number No\r\n 管线号"); - ws.GetRow(rowIndex + 15).GetCell(14).SetCellValue("Rev\r\n版本"); - ws.GetRow(rowIndex + 15).GetCell(15).SetCellValue("Sheet No.\r\n页码"); - ws.GetRow(rowIndex + 15).GetCell(16).SetCellValue("Remark\r\n备注"); - - #endregion - - #region 尾部 - - //此处的尾部行数需要根据 得到的动态数据量 来计算,默认写死从50行开始。 - ws = ExcelCreateRow(ws, hssfworkbook, 49, rowIndex + 55, style, 0, 17, true); - for (int i = 49; i <= 55; i++) - { - ws.GetRow(i).Height = 18 * 20; - ws.GetRow(i).GetCell(0).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.Medium); - ws.GetRow(i).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.Medium); - ws.GetRow(i).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); - } - - for (int i = 2; i < 17; i++) - { - ws.GetRow(rowIndex + 55).GetCell(i).CellStyle = SetStyle(hssfworkbook, BorderStyle.Medium, BorderStyle.Medium, BorderStyle.None, BorderStyle.None); - } - ws.GetRow(rowIndex + 55).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium, BorderStyle.None); - ws.GetRow(rowIndex + 55).GetCell(16).CellStyle = SetStyle(hssfworkbook, BorderStyle.Medium, BorderStyle.Medium, BorderStyle.None, BorderStyle.None); - ws.GetRow(rowIndex + 55).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.Medium, BorderStyle.None, BorderStyle.Medium); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 2, 4)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 5, 6)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 7, 9)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 10, 13)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 50, rowIndex + 52, 14, 16)); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 53, 2, 4)); - ws.GetRow(rowIndex + 53).GetCell(2).SetCellValue("PREPARED"); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 53, 5, 6)); - ws.GetRow(rowIndex + 53).GetCell(5).SetCellValue("REVIEW"); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 7, 9)); - ws.GetRow(rowIndex + 53).GetCell(7).SetCellValue("JIANLI"); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 10, 13)); - ws.GetRow(rowIndex + 53).GetCell(10).SetCellValue("Worley"); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 53, rowIndex + 54, 14, 16)); - ws.GetRow(rowIndex + 53).GetCell(14).SetCellValue("BASF"); - //合并单元格 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 54, rowIndex + 54, 2, 6)); - ws.GetRow(rowIndex + 54).GetCell(2).SetCellValue("CC7"); #endregion ws.PrintSetup.FitWidth = 1; ws.PrintSetup.FitHeight = 0; ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - + ws.PrintSetup.Scale = 85; ws.FitToPage = true; - //垂直水平居中 ws.VerticallyCenter = true; ws.HorizontallyCenter = true; - //打印边距设置 厘米/3 - ws.SetMargin(MarginType.RightMargin, (double)2.4 / 3); - ws.SetMargin(MarginType.LeftMargin, (double)2.9 / 3); - ws.SetMargin(MarginType.TopMargin, (double)2.4 / 3); - ws.SetMargin(MarginType.BottomMargin, (double)2.4 / 3); + ////打印边距设置 厘米/3 + //ws.SetMargin(MarginType.RightMargin, (double)2.4 / 3); + //ws.SetMargin(MarginType.LeftMargin, (double)2.9 / 3); + //ws.SetMargin(MarginType.TopMargin, (double)2.4 / 3); + //ws.SetMargin(MarginType.BottomMargin, (double)2.4 / 3); //页眉页脚间距 ws.SetMargin(MarginType.HeaderMargin, 0); @@ -2953,340 +3118,345 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage } - //21-管道焊接工作记录SHT 3503-J415 - private void template21_old(XSSFWorkbook hssfworkbook, XSSFSheet ws) - { - #region 头部 - var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 11, true, false, "宋体"); - int rowIndex = 0; - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 3, style, 0, 12, true); - - //设置列宽 - ws.SetColumnWidth(0, 17 * 256); - ws.SetColumnWidth(1, 12 * 256); - ws.SetColumnWidth(2, 10 * 256); - ws.SetColumnWidth(3, 17 * 256); - ws.SetColumnWidth(4, 14 * 256); - ws.SetColumnWidth(5, 12 * 256); - ws.SetColumnWidth(6, 15 * 256); - ws.SetColumnWidth(7, 12 * 256); - ws.SetColumnWidth(8, 13 * 256); - ws.SetColumnWidth(9, 12 * 256); - ws.SetColumnWidth(10, 12 * 256); - ws.SetColumnWidth(11, 17 * 256); - ws.SetColumnWidth(12, 12 * 256); - - ws.AddMergedRegion(new CellRangeAddress(0, 3, 0, 1)); - ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J415-1"); - - ws.AddMergedRegion(new CellRangeAddress(0, 3, 2, 9)); - ws.GetRow(rowIndex).GetCell(2).SetCellValue("管道焊接工作记录\r\nPiping Welding Record"); - - ws.AddMergedRegion(new CellRangeAddress(0, 0, 10, 12)); - ws.AddMergedRegion(new CellRangeAddress(1, 1, 10, 12)); - ws.AddMergedRegion(new CellRangeAddress(2, 2, 10, 12)); - ws.AddMergedRegion(new CellRangeAddress(3, 3, 10, 12)); - - ws.GetRow(rowIndex).GetCell(10).SetCellValue("工程名称:巴斯夫(广东)一体化项目专用化学品二区"); - ws.GetRow(rowIndex + 1).GetCell(10).SetCellValue("Project Name:BASF (Guangdong) Integrated Project"); - ws.GetRow(rowIndex + 2).GetCell(10).SetCellValue("单位工程名称:埋地消防系统"); - ws.GetRow(rowIndex + 3).GetCell(10).SetCellValue("Unit Name:FW"); - - - - - #endregion - - #region 表格部分 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 4, rowIndex + 5, style, 0, 12, true); - - ws.GetRow(rowIndex + 4).Height = 30 * 20; - ws.GetRow(rowIndex + 5).Height = 45 * 20; - //设置表头部分 - ws.AddMergedRegion(new CellRangeAddress(4, 5, 0, 0)); - ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("管道编号/单线号\r\nPiping No./Line No"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 1, 2)); - ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("焊口编号\r\nWeld No."); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 3, 3)); - ws.GetRow(rowIndex + 4).GetCell(3).SetCellValue("焊工代号\r\nWelder's Stamp No."); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 4, 4)); - ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue("规格mm\r\nSpecification\r\nmm"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 5, 5)); - ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("材质\r\nMaterial"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 6, 6)); - ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("焊接位置\r\nWelding\r\nPosition"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 7, 8)); - ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("焊接方法\r\nWelding Process"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 9, 10)); - ws.GetRow(rowIndex + 4).GetCell(9).SetCellValue("焊材牌号\r\nWelding Material Designation"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 11, 11)); - ws.GetRow(rowIndex + 4).GetCell(11).SetCellValue("实际预热温度℃\r\nActual Preheating Temperature ℃"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 12, 12)); - ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue("焊接日期\r\nWelding Date"); - - //这里创建行数据 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 6, rowIndex + 23, style, 0, 12, true); - for (int i = 6; i < 24; i++) - { - ws.GetRow(rowIndex + i).Height = 19 * 20; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 1, 2)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 7, 8)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 9, 10)); - } - - #endregion - - #region 尾部 - style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Left, 11, true, false); - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 24, rowIndex + 30, style, 0, 12, true); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 0, 3)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 4, 8)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 9, 12)); - ws.GetRow(rowIndex + 24).GetCell(0).SetCellValue("建设/监理单位\r\nOwner/Supervision Contractor"); - ws.GetRow(rowIndex + 24).GetCell(4).SetCellValue("总承包单位\r\nGeneral Contractor"); - ws.GetRow(rowIndex + 24).GetCell(9).SetCellValue("施工单位\r\nConstruction Contractor"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 25, rowIndex + 25, 0, 1)); - ws.GetRow(rowIndex + 25).GetCell(0).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - ws.GetRow(rowIndex + 25).Height = 31 * 20; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 25, rowIndex + 25, 9, 12)); - ws.GetRow(rowIndex + 25).GetCell(9).SetCellValue("记录人 :\r\nRecord Prepared by:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 27, rowIndex + 27, 9, 12)); - ws.GetRow(rowIndex + 27).GetCell(9).SetCellValue("质量检查员:\r\nQuality Inspector:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 29, rowIndex + 29, 9, 12)); - ws.GetRow(rowIndex + 27).GetCell(9).SetCellValue("焊接责任工程师:\r\nWelding Engineer:"); - - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 30, 0, 3)); - ws.GetRow(rowIndex + 30).GetCell(0).SetCellValue("日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 30, 4, 8)); - ws.GetRow(rowIndex + 30).GetCell(4).SetCellValue("日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 30, 9, 12)); - ws.GetRow(rowIndex + 30).GetCell(9).SetCellValue("日期Date: 年 月 日"); - - RegionUtil.SetBorderTop(1, new CellRangeAddress(rowIndex + 24, rowIndex + 24, 0, 12), ws); - RegionUtil.SetBorderLeft(1, new CellRangeAddress(rowIndex + 24, rowIndex + 30, 0, 0), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 24, rowIndex + 30, 12, 12), ws); - RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 30, rowIndex + 30, 0, 12), ws); - - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 24, rowIndex + 30, 3, 3), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 24, rowIndex + 30, 8, 8), ws); - - ws.GetRow(rowIndex + 26).Height = ws.GetRow(rowIndex + 28).Height = ws.GetRow(rowIndex + 29).Height = 2 * 20; - #endregion - - ws.PrintSetup.FitWidth = 1; - ws.PrintSetup.FitHeight = 0; - ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - - ws.FitToPage = true; - - //横向打印 - ws.PrintSetup.Landscape = true; - //垂直水平居中 - ws.VerticallyCenter = true; - ws.HorizontallyCenter = true; - //打印边距设置 厘米/3 - ws.SetMargin(MarginType.RightMargin, (double)2.4 / 3); - ws.SetMargin(MarginType.LeftMargin, (double)2.4 / 3); - ws.SetMargin(MarginType.TopMargin, (double)2.9 / 3); - ws.SetMargin(MarginType.BottomMargin, (double)2.4 / 3); - - //页眉页脚间距 - ws.SetMargin(MarginType.HeaderMargin, 0); - ws.SetMargin(MarginType.FooterMargin, 0); - } - //21-管道焊接工作记录SHT 3503-J415 private void template21(XSSFWorkbook hssfworkbook, XSSFSheet ws) { - #region 头部 - var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 15, true, false, "宋体"); - var styleTwo = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Left, 9.5, true, false, "宋体"); - var styleThree = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 9.5, true, false, "宋体"); - var style4 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 10.5, true, false, "宋体"); - int rowIndex = 0; - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 3, style, 0, 14, true); - - //设置列宽 - ws.SetColumnWidth(0, 18 * 256); - ws.SetColumnWidth(1, 9 * 256); - ws.SetColumnWidth(2, 6 * 256); - ws.SetColumnWidth(3, 12 * 256); - ws.SetColumnWidth(4, 18 * 256); - ws.SetColumnWidth(5, 19 * 256); - ws.SetColumnWidth(6, 13 * 256); - ws.SetColumnWidth(7, 13 * 256); - ws.SetColumnWidth(8, 14 * 256); - ws.SetColumnWidth(9, 13 * 256); - ws.SetColumnWidth(10, 13 * 256); - ws.SetColumnWidth(11, 10 * 256); - ws.SetColumnWidth(12, 16 * 256); - ws.SetColumnWidth(13, 14 * 256); - ws.SetColumnWidth(14, 19 * 256); - - ws.AddMergedRegion(new CellRangeAddress(0, 3, 0, 1)); - ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J415-1"); - ws.GetRow(rowIndex).GetCell(0).CellStyle = styleThree; - - ws.AddMergedRegion(new CellRangeAddress(0, 3, 2, 10)); - ws.GetRow(rowIndex).GetCell(2).SetCellValue("管道焊接工作记录\r\nPiping Welding Record"); - - ws.AddMergedRegion(new CellRangeAddress(0, 0, 11, 14)); - ws.AddMergedRegion(new CellRangeAddress(1, 1, 11, 14)); - ws.AddMergedRegion(new CellRangeAddress(2, 2, 11, 14)); - ws.AddMergedRegion(new CellRangeAddress(3, 3, 11, 14)); - - ws.GetRow(rowIndex).GetCell(11).SetCellValue("工程名称:巴斯夫(广东)一体化项目专用化学品二区"); - ws.GetRow(rowIndex + 1).GetCell(11).SetCellValue("Project Name:BASF (Guangdong) Integrated Project"); - ws.GetRow(rowIndex + 2).GetCell(11).SetCellValue("单位工程名称:埋地消防系统"); - ws.GetRow(rowIndex + 3).GetCell(11).SetCellValue("Unit Name:FW"); - ws.GetRow(rowIndex).GetCell(11).CellStyle = ws.GetRow(rowIndex + 1).GetCell(11).CellStyle = ws.GetRow(rowIndex + 2).GetCell(11).CellStyle = ws.GetRow(rowIndex + 3).GetCell(11).CellStyle = styleTwo; - - ws.GetRow(rowIndex).Height = ws.GetRow(rowIndex + 1).Height = ws.GetRow(rowIndex + 2).Height = ws.GetRow(rowIndex + 3).Height = 25 * 20; - //画线 - RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex, rowIndex, 11, 14), ws); - RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 11, 14), ws); - RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 11, 14), ws); - RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 11, 14), ws); - RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 11, 14), ws); - RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 3, rowIndex + 3, 11, 14), ws); + string sql = @" SELECT + WeldSilkId, + a.PipelineCode, + e.WorkAreaCode, + a.WeldJointCode, + a.Specification, + a.Material1Code, + a.WeldingMethodCode, + a.WeldingDate, + a.WeldSilkCode, + a.WeldMatCode, + a.BackingWelderCode, + a.CoverWelderCode, + a.ProjectName, + (select top 1 EnProjectName from Base_Project where ProjectId=b.ProjectId ) as EnProjectName, + (select top 1 WorkAreaName from Project_WorkArea where WorkAreaId=c.WorkAreaId) as WorkAreaName, + (select top 1 EnWorkAreaName from Project_WorkArea where WorkAreaId=c.WorkAreaId) as EnWorkAreaName, + a.IsHotProess,(case a.IsHotProess when 1 then '是' else '否' end) as IsHotProessName,PrepareTemp, + WeldingLocationCode,a.WeldTypeCode, + (SELECT TOP 1 n.NDEReportNo FROM dbo.Batch_NDEItem n WHERE n.TrustBatchItemId= + (SELECT TOP 1 bt.TrustBatchItemId FROM dbo.Batch_BatchTrustItem bt WHERE bt.WeldJointId=a.WeldJointId)) AS NDEReportNo + FROM PTP_TestPackage as b inner join + PTP_PipelineList as c on b.PTP_ID=c.PTP_ID + inner join View_Pipeline_WeldJoint as a on c.PipelineId=a.PipelineId + left join Project_WorkArea as e on e.WorkAreaId=c.WorkAreaId + WHERE Is_hjName='是' and b.PTP_ID=@PTPID and a.projectId=@projectId + "; - - #endregion - - #region 表格部分 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 4, rowIndex + 5, style4, 0, 14, true); - - ws.GetRow(rowIndex + 4).Height = 25 * 20; - ws.GetRow(rowIndex + 5).Height = 25 * 20; - //设置表头部分 - ws.AddMergedRegion(new CellRangeAddress(4, 5, 0, 0)); - ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("管道编号/单线号\r\nPiping No./Line No"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 1, 2)); - ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("焊口编号\r\nWeld No."); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 3, 3)); - ws.GetRow(rowIndex + 4).GetCell(3).SetCellValue("焊接形式\r\nWeld Type."); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 4, 4)); - ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue("焊工代号\r\nWelder's Stamp No."); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 5, 5)); - ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("规格mm\r\nSpecification mm"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 6, 6)); - ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("材质\r\nMaterial"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 7, 7)); - ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("焊接位置\r\nWelding\r\nPosition"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 8, 9)); - ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("焊接方法\r\nWelding Process"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 10, 11)); - ws.GetRow(rowIndex + 4).GetCell(10).SetCellValue("焊材牌号\r\nWelding Material Designation"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 12, 12)); - ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue("实际预热温度℃\r\nActual Preheating Temperature ℃"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 13, 13)); - ws.GetRow(rowIndex + 4).GetCell(13).SetCellValue("焊接日期\r\nWelding Date"); - ws.AddMergedRegion(new CellRangeAddress(4, 5, 14, 14)); - ws.GetRow(rowIndex + 4).GetCell(14).SetCellValue("无损检查报告\r\nNDE Report."); - - ws.GetRow(rowIndex + 4).GetCell(0).CellStyle = ws.GetRow(rowIndex + 4).GetCell(1).CellStyle - = ws.GetRow(rowIndex + 4).GetCell(3).CellStyle = ws.GetRow(rowIndex + 4).GetCell(4).CellStyle - = ws.GetRow(rowIndex + 4).GetCell(5).CellStyle = ws.GetRow(rowIndex + 4).GetCell(6).CellStyle - = ws.GetRow(rowIndex + 4).GetCell(7).CellStyle = ws.GetRow(rowIndex + 4).GetCell(8).CellStyle - = ws.GetRow(rowIndex + 4).GetCell(10).CellStyle = ws.GetRow(rowIndex + 4).GetCell(12).CellStyle - = ws.GetRow(rowIndex + 4).GetCell(13).CellStyle = ws.GetRow(rowIndex + 4).GetCell(14).CellStyle = styleThree; - - //这里创建行数据 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 6, rowIndex + 23, style, 0, 14, true); - for (int i = 6; i < 24; i++) + SqlParameter[] parms = { + new SqlParameter("@PTPID", this.tvControlItem.SelectedNodeID), + new SqlParameter("@projectId", this.CurrUser.LoginProjectId) + }; + DataTable tb = SQLHelper.GetDataTableRunText(sql, parms); + + if (tb.Rows.Count > 0) { - ws.GetRow(rowIndex + i).Height = 19 * 20; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 1, 2)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 8, 9)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 10, 11)); + int rowIndex = 0; + + #region 列宽 + + ws.SetColumnWidth(0, 18 * 256); + ws.SetColumnWidth(1, 9 * 256); + ws.SetColumnWidth(2, 6 * 256); + ws.SetColumnWidth(3, 12 * 256); + ws.SetColumnWidth(4, 18 * 256); + ws.SetColumnWidth(5, 15 * 256); + ws.SetColumnWidth(6, 15 * 256); + ws.SetColumnWidth(7, 13 * 256); + ws.SetColumnWidth(8, 10 * 256); + ws.SetColumnWidth(9, 10 * 256); + ws.SetColumnWidth(10, 13 * 256); + ws.SetColumnWidth(11, 10 * 256); + ws.SetColumnWidth(12, 16 * 256); + ws.SetColumnWidth(13, 14 * 256); + ws.SetColumnWidth(14, 19 * 256); + + #endregion + + var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false); + var headerStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 9, true, false); + + var tbNum = tb.Rows.Count; + var pageNum = + tbNum < 17 ? 1 + : Math.Ceiling((float)(tbNum - 16) / 16) + 1; + + string ProjectName = tb.Rows.Count > 0 ? tb.Rows[0]["ProjectName"].ToString() : ""; + string EnProjectName = tb.Rows.Count > 0 ? tb.Rows[0]["EnProjectName"].ToString() : ""; + string WorkAreaName = tb.Rows.Count > 0 ? tb.Rows[0]["WorkAreaName"].ToString() : ""; + string EnWorkAreaName = tb.Rows.Count > 0 ? tb.Rows[0]["EnWorkAreaName"].ToString() : ""; + //循环页 + for (int i = 1; i <= pageNum; i++) + { + #region 头部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 5, style, 0, 14, true); + //行0 + CellRangeAddress region = new CellRangeAddress(rowIndex, rowIndex + 3, 0, 2); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J415-1"); + ws.GetRow(rowIndex).GetCell(0).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10,true, true); + region = new CellRangeAddress(rowIndex, rowIndex + 3, 3, 10); + ws.AddMergedRegion(region); + string titleStr = i == 1 ? "管道焊接工作记录\r\nPiping Welding Record" : "管道焊接工作记录(续)\r\nPiping Welding Record"; + ws.GetRow(rowIndex).GetCell(3).SetCellValue(titleStr); + ws.GetRow(rowIndex).GetCell(3).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 15, true, true); + region = new CellRangeAddress(rowIndex, rowIndex, 11, 14); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(11).SetCellValue($"工程名称:{ProjectName}"); + ws.GetRow(rowIndex).GetCell(11).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 9.5, true, false); + + //行1 + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 11, 14); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(11).SetCellValue($"Project Name:{EnProjectName}"); + ws.GetRow(rowIndex + 1).GetCell(11).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 9.5, true, false); + + ws.GetRow(rowIndex + 1).Height = 25 * 20; + ws.GetRow(rowIndex + 2).Height = 25 * 20; + ws.GetRow(rowIndex + 3).Height = 25 * 20; + ws.GetRow(rowIndex + 4).Height = 25 * 20; + //行2 + region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 11, 14); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 2).GetCell(11).SetCellValue($"单位工程名称:{WorkAreaName}"); + ws.GetRow(rowIndex + 2).GetCell(11).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10, true, false); + + //行3 + region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 11, 14); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 3).GetCell(11).SetCellValue($"Unit Name:{EnWorkAreaName}"); + ws.GetRow(rowIndex + 3).GetCell(11).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10, true, false); + + //画线 + RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex, rowIndex, 11, 14), ws); + RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 11, 14), ws); + RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 11, 14), ws); + RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 11, 14), ws); + RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 11, 14), ws); + RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 3, rowIndex + 3, 11, 14), ws); + + //行4行5 + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 0, 0); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("管道编号/单线号\r\nPiping No./Line No"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 1, 2); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("焊口编号\r\nWeld No."); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 3, 3); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(3).SetCellValue("焊接形式\r\nWeld Type."); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 4, 4); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue("焊工代号\r\nWelder's Stamp No."); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 5, 5); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("规格mm\r\nSpecification\r\nmm"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 6, 6); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("材质\r\nMaterial"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 7, 7); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("焊接位置\r\nWelding\r\nPosition"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 8, 9); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("焊接方法\r\nWelding Process"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 10, 11); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(10).SetCellValue("焊材牌号\r\nWelding Material Designation"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 12, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue("实际预热温度℃\r\nActual Preheating Temperature ℃"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 13, 13); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(13).SetCellValue("焊接日期\r\nWelding Date"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 5, 14, 14); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(14).SetCellValue("无损检查报告\r\nNDE Report."); + + ws.GetRow(rowIndex + 4).GetCell(0).CellStyle = ws.GetRow(rowIndex + 4).GetCell(1).CellStyle + = ws.GetRow(rowIndex + 4).GetCell(3).CellStyle = ws.GetRow(rowIndex + 4).GetCell(4).CellStyle + = ws.GetRow(rowIndex + 4).GetCell(5).CellStyle = ws.GetRow(rowIndex + 4).GetCell(6).CellStyle + = ws.GetRow(rowIndex + 4).GetCell(7).CellStyle = ws.GetRow(rowIndex + 4).GetCell(8).CellStyle + = ws.GetRow(rowIndex + 4).GetCell(10).CellStyle = ws.GetRow(rowIndex + 4).GetCell(12).CellStyle + = ws.GetRow(rowIndex + 4).GetCell(13).CellStyle = ws.GetRow(rowIndex + 4).GetCell(14).CellStyle + = headerStyle; + + ws.GetRow(rowIndex + 4).Height = 25 * 20; + ws.GetRow(rowIndex + 5).Height = 25 * 20; + #endregion + + #region 表格 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 6, rowIndex + 21, style, 0, 14); + var dataTit = rowIndex + 6; + var tIndex = 5 + 16; + var dStart = 0; + var dEnd = 0; + if (i == 1) + { + dStart = 0; + dEnd = 16; + } + else + { + dStart = i == 2 ? 16 : ((i - 2) * 16) + 16; + dEnd = ((i - 1) * 16) + 16; + } + + //合并单元格 + for (int hb = dataTit; hb <= rowIndex + tIndex; hb++) + { + region = new CellRangeAddress(hb, hb, 1, 2); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 8, 9); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 10, 11); + ws.AddMergedRegion(region); + } + + //获取当前页数据 + var pageTb = GetPageToTable(tb, dStart, dEnd); + int j = 0; + foreach (DataRow dr in pageTb.Rows) + { + int dataIndex = dataTit + j; + //管道编号/单线号 + ws.GetRow(dataIndex).GetCell(0).SetCellValue(dr["PipelineCode"].ToString()); + //焊口编号 + ws.GetRow(dataIndex).GetCell(1).SetCellValue(dr["WeldJointCode"].ToString()); + //焊接形式 + ws.GetRow(dataIndex).GetCell(3).SetCellValue(dr["WeldTypeCode"].ToString()); + //焊工代号 + List welderStr = new List(); + if (!string.IsNullOrWhiteSpace(dr["BackingWelderCode"].ToString())) + { + welderStr.Add(dr["BackingWelderCode"].ToString()); + } + if (!string.IsNullOrWhiteSpace(dr["CoverWelderCode"].ToString())) + { + welderStr.Add(dr["CoverWelderCode"].ToString()); + } + if (welderStr.Count > 0) welderStr = welderStr.GroupBy(x => x).Select(x => x.Key).ToList(); + ws.GetRow(dataIndex).GetCell(4).SetCellValue(string.Join("/", welderStr)); + //规格mm + ws.GetRow(dataIndex).GetCell(5).SetCellValue(dr["Specification"].ToString()); + //材质 + ws.GetRow(dataIndex).GetCell(6).SetCellValue(dr["Material1Code"].ToString()); + //焊接位置 + ws.GetRow(dataIndex).GetCell(7).SetCellValue(dr["WeldingLocationCode"].ToString()); + //焊接方法 + ws.GetRow(dataIndex).GetCell(8).SetCellValue(dr["WeldingMethodCode"].ToString()); + //焊材牌号 + List silkMats = new List(); + if (!string.IsNullOrWhiteSpace(dr["WeldSilkCode"].ToString())) + { + silkMats.Add(dr["WeldSilkCode"].ToString()); + } + if (!string.IsNullOrWhiteSpace(dr["WeldMatCode"].ToString())) + { + silkMats.Add(dr["WeldMatCode"].ToString()); + } + if (silkMats.Count > 0) silkMats = silkMats.GroupBy(x => x).Select(x => x.Key).ToList(); + ws.GetRow(dataIndex).GetCell(10).SetCellValue(string.Join("/", silkMats)); + //实际预热温度 + ws.GetRow(dataIndex).GetCell(12).SetCellValue(dr["PrepareTemp"].ToString()); + //焊接日期 + ws.GetRow(dataIndex).GetCell(13).SetCellValue(dr["WeldingDate"].ToString()); + //无损检查报告 + ws.GetRow(dataIndex).GetCell(14).SetCellValue(dr["NDEReportNo"].ToString()); + j++; + ws.GetRow(dataIndex).Height = 20 * 20; + } + + + for (int k = rowIndex + 6; k <= rowIndex + 21; k++) + { + ws.GetRow(k).Height = 20 * 20; + } + rowIndex += tIndex; + + + #endregion + + #region 尾部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 7, style, 0, 14, false); + + //合并单元格 + for (int hb = rowIndex + 1; hb <= rowIndex + 7; hb++) + { + for (int c = 0; c <= 14; c++) + { + if (hb >= rowIndex + 1 && hb <= rowIndex + 6) + { + ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true, false); + } + if (hb == rowIndex + 7) + { + ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 10, true, false); + } + } + region = new CellRangeAddress(hb, hb, 0, 3); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 4, 9); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 10, 14); + ws.AddMergedRegion(region); + } + + //行1 + ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("建设/监理单位"); + ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue("总承包单位\r\nGeneral Contractor"); + ws.GetRow(rowIndex + 1).GetCell(10).SetCellValue("施工单位\r\nConstruction Contractor"); + //行2 + ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("专业工程师\r\nDiscipline Engineer:"); + ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue("专业工程师\r\nDiscipline Engineer:"); + ws.GetRow(rowIndex + 2).GetCell(10).SetCellValue("记录人 :\r\nRecord Prepared by:"); + //行3 + ws.GetRow(rowIndex + 4).GetCell(10).SetCellValue("质量检查员:\r\nQuality Inspector:"); + //行5 + ws.GetRow(rowIndex + 6).GetCell(10).SetCellValue("焊接责任工程师:\r\nWelding Engineer:"); + //行6 + ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("日期Date: 年 月 日"); + ws.GetRow(rowIndex + 7).GetCell(4).SetCellValue("日期Date: 年 月 日"); + ws.GetRow(rowIndex + 7).GetCell(10).SetCellValue("日期Date: 年 月 日"); + + #endregion + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 8, rowIndex + 9, style, 0, 14, false); + rowIndex += 10; + ws.SetRowBreak(rowIndex - 1); + } + + ws.PrintSetup.FitWidth = 1; + ws.PrintSetup.FitHeight = 0; + ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; + ws.FitToPage = true; + + //横向打印 + ws.PrintSetup.Landscape = true; + //垂直水平居中 + ws.VerticallyCenter = true; + ws.HorizontallyCenter = true; + //打印边距设置 厘米/3 + ws.SetMargin(MarginType.RightMargin, (double)2.4 / 3); + ws.SetMargin(MarginType.LeftMargin, (double)2.4 / 3); + ws.SetMargin(MarginType.TopMargin, (double)2.9 / 3); + ws.SetMargin(MarginType.BottomMargin, (double)2.4 / 3); + + //页眉页脚间距 + ws.SetMargin(MarginType.HeaderMargin, 0); + ws.SetMargin(MarginType.FooterMargin, 0); } - - #endregion - - #region 尾部 - style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Left, 11, true, false); - var style1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 11, true, false); - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 24, rowIndex + 30, style, 0, 14, true); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 0, 4)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 5, 9)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 10, 14)); - ws.GetRow(rowIndex + 24).GetCell(0).SetCellValue("建设/监理单位\r\nOwner/Supervision Contractor"); - ws.GetRow(rowIndex + 24).GetCell(0).CellStyle = style1; - ws.GetRow(rowIndex + 24).GetCell(5).SetCellValue("总承包单位\r\nGeneral Contractor"); - ws.GetRow(rowIndex + 24).GetCell(5).CellStyle = style1; - ws.GetRow(rowIndex + 24).GetCell(10).SetCellValue("施工单位\r\nConstruction Contractor"); - ws.GetRow(rowIndex + 24).GetCell(10).CellStyle = style1; - RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 24, rowIndex + 24, 0, 14), ws); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 25, rowIndex + 25, 0, 1)); - ws.GetRow(rowIndex + 25).GetCell(0).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - ws.GetRow(rowIndex + 25).Height = 31 * 20; - ws.GetRow(rowIndex + 27).Height = 31 * 20; - ws.GetRow(rowIndex + 29).Height = 31 * 20; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 25, rowIndex + 25, 5, 6)); - ws.GetRow(rowIndex + 25).GetCell(5).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 25, rowIndex + 25, 10, 14)); - ws.GetRow(rowIndex + 25).GetCell(10).SetCellValue("记录人 :\r\nRecord Prepared by:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 27, rowIndex + 27, 10, 14)); - ws.GetRow(rowIndex + 27).GetCell(10).SetCellValue("质量检查员:\r\nQuality Inspector:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 29, rowIndex + 29, 10, 14)); - ws.GetRow(rowIndex + 29).GetCell(10).SetCellValue("焊接责任工程师:\r\nWelding Engineer:"); - - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 30, 0, 4)); - ws.GetRow(rowIndex + 30).GetCell(0).SetCellValue("日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 30, 5, 9)); - ws.GetRow(rowIndex + 30).GetCell(5).SetCellValue("日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 30, 10, 14)); - ws.GetRow(rowIndex + 30).GetCell(10).SetCellValue("日期Date: 年 月 日"); - - RegionUtil.SetBorderTop(1, new CellRangeAddress(rowIndex + 24, rowIndex + 24, 0, 14), ws); - RegionUtil.SetBorderLeft(1, new CellRangeAddress(rowIndex + 24, rowIndex + 30, 0, 0), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 24, rowIndex + 30, 14, 14), ws); - RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 30, rowIndex + 30, 0, 14), ws); - - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 24, rowIndex + 30, 4, 4), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 24, rowIndex + 30, 9, 9), ws); - - ws.GetRow(rowIndex + 26).Height = ws.GetRow(rowIndex + 28).Height = 5 * 20; - #endregion - - ws.PrintSetup.FitWidth = 1; - ws.PrintSetup.FitHeight = 0; - ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - ws.PrintSetup.Scale = 85; - ws.FitToPage = true; - //横向打印 - ws.PrintSetup.Landscape = true; - //垂直水平居中 - ws.VerticallyCenter = true; - ws.HorizontallyCenter = true; - //打印边距设置 厘米/3 - ws.SetMargin(MarginType.RightMargin, (double)2.4 / 3); - ws.SetMargin(MarginType.LeftMargin, (double)2.4 / 3); - ws.SetMargin(MarginType.TopMargin, (double)2.9 / 3); - ws.SetMargin(MarginType.BottomMargin, (double)2.4 / 3); - - //页眉页脚间距 - ws.SetMargin(MarginType.HeaderMargin, 0); - ws.SetMargin(MarginType.FooterMargin, 0); } //22-射线检测比例确认表SHT 3503-J412-2007 @@ -5255,138 +5425,217 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage int rowIndex = 0; var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 10, true, false, "Arial Unicode MS"); - #region 头部 + string sql = @"select + a.PTP_ID, + a.TestPackageNo, + a.OperationMedium, + a.PurgingMedium, + a.CleaningMedium, + '' as SubSystemName, + '' as SubSystemNo, + b.PipelineId, + (select PipelineCode from Pipeline_Pipeline where PipelineId=b.PipelineId) as PipelineCode, + (select d.MaterialCode from Pipeline_Pipeline as c inner join Base_Material as d on c.MainMaterialId=d.MaterialId + where PipelineId=b.PipelineId ) as MaterialCode, + e.ProjectName, + e.EnProjectName, + (select UnitName from Base_Unit where UnitId=a.UnitId) as UnitName, + (select UnitCode from Base_Unit where UnitId=a.UnitId) as UnitCode + from PTP_TestPackage as a inner join + PTP_PipelineList as b on a.PTP_ID=b.PTP_ID + left join Base_Project as e on a.ProjectId=e.ProjectId + where a.PTP_ID=@PTP_ID and a.projectId=@projectId + "; - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 7, style, 0, 6, true); - //设置头部行高 - ws.GetRow(rowIndex).Height = 20 * 20 * 5; - ws.GetRow(rowIndex + 1).Height = 20 * 20; - ws.GetRow(rowIndex + 2).Height = 20 * 20; - ws.GetRow(rowIndex + 3).Height = 20 * 20 * 2; - ws.GetRow(rowIndex + 4).Height = 20 * 20; - ws.GetRow(rowIndex + 5).Height = 20 * 20 * 2; - ws.GetRow(rowIndex + 6).Height = 20 * 20; - ws.GetRow(rowIndex + 7).Height = 20 * 20 * 2; - //设置列宽 - ws.SetColumnWidth(0, 24 * 256); - ws.SetColumnWidth(1, 9 * 256); - ws.SetColumnWidth(2, 14 * 256); - ws.SetColumnWidth(3, 19 * 256); - ws.SetColumnWidth(4, 14 * 256); - ws.SetColumnWidth(5, 5 * 256); - ws.SetColumnWidth(6, 9 * 256); - - //合并单元格和填充单元格值 - for (int i = 0; i < 3; i++) + SqlParameter[] parmas = { - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 0, 1)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 2, 3)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 4, 6)); - } + new SqlParameter("@projectId",this.CurrUser.LoginProjectId), + new SqlParameter("@PTP_ID",tvControlItem.SelectedNodeID) + }; + DataTable dt = SQLHelper.GetDataTableRunText(sql, parmas); + var tbNum = dt.Rows.Count; + var pageNum = tbNum < 16 ? 1 + : Math.Ceiling((float)(tbNum - 16) / 16) + 1; - ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J408"); - var style1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 14, true, true, "Arial Unicode MS"); - style1.WrapText = true; - ws.GetRow(rowIndex).GetCell(2).CellStyle = style1; - ws.GetRow(rowIndex).GetCell(2).SetCellValue("管道吹扫/清洗检验记录(I)\nPipline Flushing and Blowing Inspection Record(I)"); - - var style2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 10, true, false, "Arial Unicode MS"); - style2.WrapText = true; - ws.GetRow(rowIndex).GetCell(4).CellStyle = style2; - ws.GetRow(rowIndex).GetCell(4).SetCellValue(" 项目名称:巴斯夫(广东)一体化项目\n Project Name:BASF (Guangdong) Integrated Project\n\n\n\n 单位名称:Citral\n Unit Name:Citral"); - - ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("子系统名称 Subsystem Name"); - ws.GetRow(rowIndex + 1).GetCell(2).SetCellValue("子系统编号 Subsystem No."); - ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue("试压包号 Test Package No."); - - ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("Fire Water"); - ws.GetRow(rowIndex + 2).GetCell(2).SetCellValue("UG-FW"); - ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue("UG-130-FW-HT-001"); - - for (int i = 3; i < 8; i++) + string projectName = dt.Rows.Count > 0 ? dt.Rows[0]["ProjectName"].ToString() : ""; + string enprojectName = dt.Rows.Count > 0 ? dt.Rows[0]["EnProjectName"].ToString() : ""; + string unitName = dt.Rows.Count > 0 ? dt.Rows[0]["UnitName"].ToString() : ""; + string unitCode = dt.Rows.Count > 0 ? dt.Rows[0]["unitCode"].ToString() : ""; + string subSystemName= dt.Rows.Count > 0 ? dt.Rows[0]["SubSystemName"].ToString() : ""; + string subSystemNo= dt.Rows.Count > 0 ? dt.Rows[0]["SubSystemNo"].ToString() : ""; + string testPackNo= dt.Rows.Count > 0 ? dt.Rows[0]["TestPackageNo"].ToString() : ""; + for (int i =1; i <= pageNum; i++) { - if (i == 3 || i == 5 || i == 7) - ws.GetRow(rowIndex + i).Height = 20 * 20 * 2; + #region 头部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 9, style, 0, 6, true); + //设置头部行高 + ws.GetRow(rowIndex).Height = 13 * 20; + ws.GetRow(rowIndex + 1).Height = 22 * 20; + ws.GetRow(rowIndex + 2).Height = 56 * 20; + ws.GetRow(rowIndex + 3).Height = 12 * 20; + ws.GetRow(rowIndex + 4).Height = 12 * 20; + ws.GetRow(rowIndex + 5).Height = 27 * 20; + ws.GetRow(rowIndex + 6).Height = 26 * 20; + ws.GetRow(rowIndex + 7).Height = 36 * 20; + ws.GetRow(rowIndex + 8).Height = 26 * 20; + ws.GetRow(rowIndex + 9).Height = 26 * 20; + //设置列宽 + ws.SetColumnWidth(0, 19 * 256); + ws.SetColumnWidth(1, 9 * 256); + ws.SetColumnWidth(2, 16 * 256); + ws.SetColumnWidth(3, 15 * 256); + ws.SetColumnWidth(4, 11 * 256); + ws.SetColumnWidth(5, 5 * 256); + ws.SetColumnWidth(6, 9 * 256); + + //合并单元格和填充单元格值 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 0, rowIndex + 2, 0, 1)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 0, rowIndex + 2, 2, 3)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 0, rowIndex + 2, 4, 6)); + + ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J408"); + + var style1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 11, true, true, "Arial"); + style1.WrapText = true; + ws.GetRow(rowIndex).GetCell(2).CellStyle = style1; + ws.GetRow(rowIndex).GetCell(2).SetCellValue("管道吹扫/清洗检验记录(I)\nPipline Flushing and Blowing Inspection Record(I)"); + + var style2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 10, true, false, "Arial"); + style2.WrapText = true; + ws.GetRow(rowIndex).GetCell(4).CellStyle = style2; + ws.GetRow(rowIndex).GetCell(4).SetCellValue($"项目名称:{projectName}\nProject Name:{enprojectName}\n单位名称:{unitName}\n Unit Name:{unitCode}"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 0, 1)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 2, 3)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 4, 6)); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 0, 1)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 2, 3)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 4, 6)); + + ws.GetRow(rowIndex + 3).GetCell(0).SetCellValue("子系统名称 Subsystem Name"); + ws.GetRow(rowIndex + 3).GetCell(2).SetCellValue("子系统编号 Subsystem No."); + ws.GetRow(rowIndex + 3).GetCell(4).SetCellValue("试压包号 Test Package No."); + + ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue(subSystemName); + ws.GetRow(rowIndex + 4).GetCell(2).SetCellValue(subSystemNo); + ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue(testPackNo); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 0, 5)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 0, 5)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 7, 0, 5)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 8, 0, 5)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 9, rowIndex + 9, 0, 5)); + + ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("检查项目及要求\nInspection items and requirements"); + ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue("检查结果\nResult"); + + + var style3 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 9, true, false, "Arial"); + ws.GetRow(rowIndex + 6).GetCell(0).CellStyle = style3; + ws.GetRow(rowIndex + 6).GetCell(0).SetCellValue("管线压力试验检查合格。Pipeline pressure test is acceptable."); + + ws.GetRow(rowIndex + 7).GetCell(0).CellStyle = style3; + ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("与吹扫及清洗无关的安全附件和仪表元件已经拆除或按要求隔离。Safety attachments and instruments not involved in purging and cleaning have been dismantled or isolated as per requirement."); + + ws.GetRow(rowIndex + 8).GetCell(0).CellStyle = style3; + ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue("管线系统内阀门已按要求开启。All piping system valves have been opened."); + + ws.GetRow(rowIndex + 9).GetCell(0).CellStyle = style3; + ws.GetRow(rowIndex + 9).GetCell(0).SetCellValue("不锈钢管线系统清洗用水应符合规范要求。Test use water of stainless steel pipeline shall be in compliance with specification."); + + #endregion + + #region 表格部分 + + var style4 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 10, true, false, "Arial"); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 10, rowIndex + 26, style4, 0, 6, true); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 10, rowIndex + 10, 0, 1)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 10, rowIndex + 10, 5, 6)); + ws.GetRow(rowIndex + 10).GetCell(0).SetCellValue("管道编号\nPipeline No."); + ws.GetRow(rowIndex + 10).GetCell(2).SetCellValue("管线材质\nMaterial"); + ws.GetRow(rowIndex + 10).GetCell(3).SetCellValue("操作介质\nOperation Medium"); + ws.GetRow(rowIndex + 10).GetCell(4).SetCellValue("吹扫介质\nBlowing Meadium"); + ws.GetRow(rowIndex + 10).GetCell(5).SetCellValue("清洗介质\nFlushing Medium"); + var dataTit = rowIndex + 11; + + var dStart = 0; + var dEnd = 0; + if (i == 1) + { + dStart = 0; + dEnd = 15; + } else - ws.GetRow(rowIndex + i).Height = 20 * 20; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 0, 5)); + { + dStart = i == 2 ? 15 : ((i - 2) * 15) + 15; + dEnd = ((i - 1) * 15) + 15; + } + var pageTb = GetPageToTable(dt, dStart, dEnd); + int j = 0; + for (int k = rowIndex + 11; k <= rowIndex + 26; k++) + { + ws.GetRow(k).Height = 20 * 20; + ws.AddMergedRegion(new CellRangeAddress(k, k, 0, 1)); + ws.AddMergedRegion(new CellRangeAddress(k, k, 5, 6)); + } + foreach (DataRow dr in pageTb.Rows) + { + int dataIndex = dataTit + j; + ws.GetRow(dataIndex).GetCell(0).SetCellValue(dr["PipelineCode"].ToString()); + ws.GetRow(dataIndex).GetCell(2).SetCellValue(dr["MaterialCode"].ToString()); + ws.GetRow(dataIndex).GetCell(3).SetCellValue(dr["OperationMedium"].ToString()); + ws.GetRow(dataIndex).GetCell(4).SetCellValue(dr["PurgingMedium"].ToString()); + ws.GetRow(dataIndex).GetCell(5).SetCellValue(dr["CleaningMedium"].ToString()); + j++; + } + + #endregion + + #region 尾部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 27, rowIndex + 34, style, 0, 6, true); + + //合并单元格合和填充值 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 27, rowIndex + 27, 0, 6)); + ws.GetRow(rowIndex + 27).GetCell(0).CellStyle = style2; + ws.GetRow(rowIndex + 27).GetCell(0).SetCellValue("检验方法及结果:\nInspection method and conclusion:"); + ws.GetRow(rowIndex + 27).Height = 32 * 20; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 28, rowIndex + 29, 0, 1)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 28, rowIndex + 29, 2, 3)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 28, rowIndex + 29, 4, 6)); + + ws.GetRow(rowIndex + 29).GetCell(0).SetCellValue("建设/监理单位\nOwner/Construction Supervision Contractor"); + ws.GetRow(rowIndex + 29).GetCell(2).SetCellValue("总承包单位\nGeneral Contractor"); + ws.GetRow(rowIndex + 29).GetCell(4).SetCellValue("施工单位\nConstruction Company"); + ws.GetRow(rowIndex + 28).Height = 13 * 20; + ws.GetRow(rowIndex + 29).Height = 13 * 20; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 34, 0, 1)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 34, 2, 3)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 30, rowIndex + 34, 4, 6)); + + ws.GetRow(rowIndex + 30).GetCell(0).CellStyle = style2; + ws.GetRow(rowIndex + 30).GetCell(0).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date:\n\n"); + ws.GetRow(rowIndex + 30).GetCell(2).CellStyle = style2; + ws.GetRow(rowIndex + 30).GetCell(2).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date:\n\n"); + ws.GetRow(rowIndex + 30).GetCell(4).CellStyle = style2; + ws.GetRow(rowIndex + 30).GetCell(4).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n 质量检查员:\n Quality Inspector:\n\n 班(组)长:\n Leader:\n\n 日期Date:\n\n"); + + ws.GetRow(rowIndex + 30).Height = 40 * 20; + ws.GetRow(rowIndex + 31).Height = 24 * 20; + ws.GetRow(rowIndex + 32).Height = 16 * 20; + ws.GetRow(rowIndex + 33).Height = 26 * 20; + ws.GetRow(rowIndex + 34).Height = 33 * 20; + #endregion + + rowIndex = rowIndex + 12; } - ws.GetRow(rowIndex + 3).GetCell(0).SetCellValue("检查项目及要求\nInspection items and requirements"); - ws.GetRow(rowIndex + 3).GetCell(6).SetCellValue("检查结果\nResult"); - ws.GetRow(rowIndex + 4).GetCell(0).CellStyle = style2; - ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("管线压力试验检查合格。Pipeline pressure test is acceptable."); - - ws.GetRow(rowIndex + 5).GetCell(0).CellStyle = style2; - ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("与吹扫及清洗无关的安全附件和仪表元件已经拆除或按要求隔离。Safety attachments and instruments not involved in purging and cleaning have been dismantled or isolated as per requirement."); - - ws.GetRow(rowIndex + 6).GetCell(0).CellStyle = style2; - ws.GetRow(rowIndex + 6).GetCell(0).SetCellValue("管线系统内阀门已按要求开启。All piping system valves have been opened."); - - ws.GetRow(rowIndex + 7).GetCell(0).CellStyle = style2; - ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("不锈钢管线系统清洗用水应符合规范要求。Test use water of stainless steel pipeline shall be in compliance with specification."); - - #endregion - - #region 表格部分 - - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 8, rowIndex + 24, style, 0, 6, true); - //循环合并单元格和设置行高 - for (int i = 8; i < 25; i++) - { - if (i == 8) - ws.GetRow(rowIndex + i).Height = 30 * 20; - else - ws.GetRow(rowIndex + i).Height = 20 * 20; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 0, 1)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 5, 6)); - } - ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue("管道编号\nPipeline No."); - ws.GetRow(rowIndex + 8).GetCell(2).SetCellValue("管线材质\nMaterial"); - ws.GetRow(rowIndex + 8).GetCell(3).SetCellValue("操作介质\nOperation Medium"); - ws.GetRow(rowIndex + 8).GetCell(4).SetCellValue("吹扫介质\nBlowing Meadium"); - ws.GetRow(rowIndex + 8).GetCell(5).SetCellValue("清洗介质\nFlushing Medium"); - - ws.GetRow(rowIndex + 9).GetCell(0).SetCellValue("1701-130-9062.058-0000"); - ws.GetRow(rowIndex + 9).GetCell(2).SetCellValue("A53-B"); - ws.GetRow(rowIndex + 9).GetCell(3).SetCellValue("Fire Water"); - ws.GetRow(rowIndex + 9).GetCell(4).SetCellValue("Air"); - ws.GetRow(rowIndex + 9).GetCell(5).SetCellValue("Water"); - - #endregion - - #region 尾部 - - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 25, rowIndex + 27, style, 0, 6, true); - //设置行高度 - ws.GetRow(rowIndex + 25).Height = 20 * 20 * 3; - ws.GetRow(rowIndex + 26).Height = 20 * 20 * 3; - ws.GetRow(rowIndex + 27).Height = 20 * 20 * 7; - - //合并单元格合和填充值 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 25, rowIndex + 25, 0, 6)); - ws.GetRow(rowIndex + 25).GetCell(0).CellStyle = style2; - ws.GetRow(rowIndex + 25).GetCell(0).SetCellValue("检验方法及结果:\nInspection method and conclusion:"); - - for (int i = 26; i < 28; i++) - { - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 0, 1)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 2, 3)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 4, 6)); - } - ws.GetRow(rowIndex + 26).GetCell(0).SetCellValue("建设/监理单位\nOwner/Construction Supervision Contractor"); - ws.GetRow(rowIndex + 26).GetCell(2).SetCellValue("总承包单位\nGeneral Contractor"); - ws.GetRow(rowIndex + 26).GetCell(4).SetCellValue("施工单位\nConstruction Company"); - - ws.GetRow(rowIndex + 27).GetCell(0).CellStyle = style2; - ws.GetRow(rowIndex + 27).GetCell(0).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date:"); - ws.GetRow(rowIndex + 27).GetCell(2).CellStyle = style2; - ws.GetRow(rowIndex + 27).GetCell(2).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date:"); - ws.GetRow(rowIndex + 27).GetCell(4).CellStyle = style2; - ws.GetRow(rowIndex + 27).GetCell(4).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n 质量检查员:\n Quality Inspector:\n\n 班(组)长:\n Leader:\n\n 日期Date:"); - - #endregion ws.PrintSetup.FitWidth = 1; ws.PrintSetup.FitHeight = 0; diff --git a/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/JointInfo.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/JointInfo.aspx.cs index 9605a2b..850ae4b 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/JointInfo.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/JointInfo.aspx.cs @@ -1139,55 +1139,58 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage //获取当前页数据 var pageTb = GetPageToTable(tb, dStart, dEnd); - for (int j = 0; j < pageTb.Rows.Count; j++) + int j = 0; + foreach (DataRow dr in pageTb.Rows) { int dataIndex = dataTit + j; //管道编号/单线号 ws.GetRow(dataIndex).GetCell(0).SetCellValue(titleModel.PipelineCode); //焊口编号 - ws.GetRow(dataIndex).GetCell(1).SetCellValue(tb.Rows[i]["WeldJointCode"].ToString()); + ws.GetRow(dataIndex).GetCell(1).SetCellValue(dr["WeldJointCode"].ToString()); //焊接形式 - ws.GetRow(dataIndex).GetCell(3).SetCellValue(tb.Rows[i]["WeldTypeCode"].ToString()); + ws.GetRow(dataIndex).GetCell(3).SetCellValue(dr["WeldTypeCode"].ToString()); //焊工代号 List welderStr = new List(); - if (!string.IsNullOrWhiteSpace(tb.Rows[i]["BackingWelderCode"].ToString())) + if (!string.IsNullOrWhiteSpace(dr["BackingWelderCode"].ToString())) { - welderStr.Add(tb.Rows[i]["BackingWelderCode"].ToString()); + welderStr.Add(dr["BackingWelderCode"].ToString()); } - if (!string.IsNullOrWhiteSpace(tb.Rows[i]["CoverWelderCode"].ToString())) + if (!string.IsNullOrWhiteSpace(dr["CoverWelderCode"].ToString())) { - welderStr.Add(tb.Rows[i]["CoverWelderCode"].ToString()); + welderStr.Add(dr["CoverWelderCode"].ToString()); } if (welderStr.Count > 0) welderStr = welderStr.GroupBy(x => x).Select(x => x.Key).ToList(); ws.GetRow(dataIndex).GetCell(4).SetCellValue(string.Join("/", welderStr)); //规格mm - ws.GetRow(dataIndex).GetCell(5).SetCellValue(tb.Rows[i]["Specification"].ToString()); + ws.GetRow(dataIndex).GetCell(5).SetCellValue(dr["Specification"].ToString()); //材质 - ws.GetRow(dataIndex).GetCell(6).SetCellValue(tb.Rows[i]["Material1Code"].ToString()); + ws.GetRow(dataIndex).GetCell(6).SetCellValue(dr["Material1Code"].ToString()); //焊接位置 - ws.GetRow(dataIndex).GetCell(7).SetCellValue(tb.Rows[i]["WeldingLocationCode"].ToString()); + ws.GetRow(dataIndex).GetCell(7).SetCellValue(dr["WeldingLocationCode"].ToString()); //焊接方法 - ws.GetRow(dataIndex).GetCell(8).SetCellValue(tb.Rows[i]["WeldingMethodCode"].ToString()); + ws.GetRow(dataIndex).GetCell(8).SetCellValue(dr["WeldingMethodCode"].ToString()); //焊材牌号 List silkMats = new List(); - if (!string.IsNullOrWhiteSpace(tb.Rows[i]["WeldSilkCode"].ToString())) + if (!string.IsNullOrWhiteSpace(dr["WeldSilkCode"].ToString())) { - silkMats.Add(tb.Rows[i]["WeldSilkCode"].ToString()); + silkMats.Add(dr["WeldSilkCode"].ToString()); } - if (!string.IsNullOrWhiteSpace(tb.Rows[i]["WeldMatCode"].ToString())) + if (!string.IsNullOrWhiteSpace(dr["WeldMatCode"].ToString())) { - silkMats.Add(tb.Rows[i]["WeldMatCode"].ToString()); + silkMats.Add(dr["WeldMatCode"].ToString()); } if (silkMats.Count > 0) silkMats = silkMats.GroupBy(x => x).Select(x => x.Key).ToList(); ws.GetRow(dataIndex).GetCell(10).SetCellValue(string.Join("/", silkMats)); //实际预热温度 - ws.GetRow(dataIndex).GetCell(12).SetCellValue(tb.Rows[i]["PrepareTemp"].ToString()); + ws.GetRow(dataIndex).GetCell(12).SetCellValue(dr["PrepareTemp"].ToString()); //焊接日期 - ws.GetRow(dataIndex).GetCell(13).SetCellValue(tb.Rows[i]["WeldingDate"].ToString()); + ws.GetRow(dataIndex).GetCell(13).SetCellValue(dr["WeldingDate"].ToString()); //无损检查报告 - ws.GetRow(dataIndex).GetCell(14).SetCellValue(tb.Rows[i]["NDEReportNo"].ToString()); + ws.GetRow(dataIndex).GetCell(14).SetCellValue(dr["NDEReportNo"].ToString()); + j++; } + rowIndex += tIndex; #endregion