diff --git a/DataBase/hjglDB_7_2024.05.26-01.bak b/DataBase/hjglDB_7_2024.05.28.bak similarity index 92% rename from DataBase/hjglDB_7_2024.05.26-01.bak rename to DataBase/hjglDB_7_2024.05.28.bak index 8626767..e119040 100644 Binary files a/DataBase/hjglDB_7_2024.05.26-01.bak and b/DataBase/hjglDB_7_2024.05.28.bak differ diff --git a/DataBase/hjglDB_7_2024.05.20.rar b/DataBase/hjglDB_7_2024.05.28.rar similarity index 68% rename from DataBase/hjglDB_7_2024.05.20.rar rename to DataBase/hjglDB_7_2024.05.28.rar index b75bdf5..4b1b163 100644 Binary files a/DataBase/hjglDB_7_2024.05.20.rar and b/DataBase/hjglDB_7_2024.05.28.rar differ diff --git a/HJGL/.vs/HJGL/config/applicationhost.config b/HJGL/.vs/HJGL/config/applicationhost.config index 1963de0..e47cfd0 100644 --- a/HJGL/.vs/HJGL/config/applicationhost.config +++ b/HJGL/.vs/HJGL/config/applicationhost.config @@ -162,7 +162,7 @@ - + @@ -250,7 +250,7 @@ - + diff --git a/HJGL/.vs/HJGL/v17/.suo b/HJGL/.vs/HJGL/v17/.suo index 08ae704..14c418f 100644 Binary files a/HJGL/.vs/HJGL/v17/.suo and b/HJGL/.vs/HJGL/v17/.suo differ diff --git a/HJGL/FineUIPro.Web/WeldingProcess/CheckManage/CheckManage.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/CheckManage/CheckManage.aspx.cs index b5f0b20..6cb9eb9 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/CheckManage/CheckManage.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/CheckManage/CheckManage.aspx.cs @@ -734,15 +734,15 @@ namespace FineUIPro.Web.CheckManage var jointInfo = db.Pipeline_WeldJoint.FirstOrDefault(x => x.WeldJointId == pointBatchItem.WeldJointId); int k_num = 0; - string jot = "K1"; - int indexK = jointInfo.WeldJointCode.LastIndexOf("K"); + string jot = "EX1"; + int indexK = jointInfo.WeldJointCode.LastIndexOf("EX"); if (indexK > 0) { try { k_num = Convert.ToInt32(jointInfo.WeldJointCode.Substring(indexK + 1, 1)) + 1; - jot = "K" + k_num.ToString(); + jot = "EX" + k_num.ToString(); } catch { } } diff --git a/HJGL/FineUIPro.Web/WeldingProcess/CheckManage/RepairAndExpand.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/CheckManage/RepairAndExpand.aspx.cs index a650b26..f69a03a 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/CheckManage/RepairAndExpand.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/CheckManage/RepairAndExpand.aspx.cs @@ -573,19 +573,19 @@ namespace FineUIPro.Web.WeldingProcess.CheckManage if (exp != null) { string exportTrustCode = string.Empty; - if (repairRecord.RepairRecordCode.Substring(repairRecord.RepairRecordCode.Length - 4) == "K1R2") + if (repairRecord.RepairRecordCode.Substring(repairRecord.RepairRecordCode.Length - 5) == "EX1R2") { - exportTrustCode = repairRecord.RepairRecordCode.Substring(0, repairRecord.RepairRecordCode.Length - 4) + "K2R2"; + exportTrustCode = repairRecord.RepairRecordCode.Substring(0, repairRecord.RepairRecordCode.Length - 4) + "EX2R2"; } else { - if (repairRecord.RepairRecordCode.Substring(repairRecord.RepairRecordCode.Length - 4) == "K1R1") + if (repairRecord.RepairRecordCode.Substring(repairRecord.RepairRecordCode.Length - 5) == "EX1R1") { - exportTrustCode = repairRecord.RepairRecordCode.Substring(0, repairRecord.RepairRecordCode.Length - 4) + "K2"; + exportTrustCode = repairRecord.RepairRecordCode.Substring(0, repairRecord.RepairRecordCode.Length - 4) + "EX2"; } else { - exportTrustCode = repairRecord.RepairRecordCode.Substring(0, repairRecord.RepairRecordCode.Length - 2) + "K1"; + exportTrustCode = repairRecord.RepairRecordCode.Substring(0, repairRecord.RepairRecordCode.Length - 2) + "EX1"; } } diff --git a/HJGL/FineUIPro.Web/WeldingProcess/CheckManage/RepairNotice.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/CheckManage/RepairNotice.aspx.cs index 3af7183..58ef0cc 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/CheckManage/RepairNotice.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/CheckManage/RepairNotice.aspx.cs @@ -71,16 +71,17 @@ namespace FineUIPro.Web.WeldingProcess.CheckManage } else { - if (code.Substring(code.Length - 2, 1) == "K") + if (code.Substring(code.Length - 3, 2) == "EX") { - newItem.RepairRecordCode = q.TrustBatchCode.Substring(0, code.Length - 2) + "-" + q.WeldJointCode + "K1R1"; + newItem.RepairRecordCode = q.TrustBatchCode.Substring(0, code.Length - 3) + "-" + q.WeldJointCode + "EX1R1"; } else { - if (q.JudgeGrade == "修磨" || q.JudgeGrade == "异物") + if (q.Remark.Contains("修磨")) { - newItem.RepairRecordCode = q.TrustBatchCode + "-" + q.WeldJointCode + "M1"; + newItem.RepairRecordCode = q.TrustBatchCode + "-" + q.WeldJointCode + "P1"; } + else { newItem.RepairRecordCode = q.TrustBatchCode + "-" + q.WeldJointCode + "R1"; diff --git a/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx b/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx index e16c24b..8327805 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx +++ b/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx @@ -53,7 +53,7 @@ @@ -66,7 +66,8 @@ - + @@ -214,7 +215,7 @@ - /// 加载树 @@ -655,6 +664,11 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage Alert.ShowInTop("请选择打印报表!", MessageBoxIcon.Warning); return; } + if (string.IsNullOrEmpty(this.tvControlItem.SelectedNodeID) ) + { + Alert.ShowInTop("请选择试压包!", MessageBoxIcon.Warning); + return; + } CreateDataExcel(selectValArray); } @@ -663,6 +677,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //1-TP-01-试压包路径表UG-FW-001 private void template1(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); //插入图片部分 var img1 = Server.MapPath("~/res/images/bsf/1.png"); var img2 = Server.MapPath("~/res/images/bsf/2.png"); @@ -1137,6 +1152,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //6-TP-05-P&ID清单UG-FW-001 模版 private void template6(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); //插入图片部分 var img1 = Server.MapPath("~/res/images/bsf/1.png"); var img2 = Server.MapPath("~/res/images/bsf/2.png"); @@ -1146,210 +1162,355 @@ 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); + //获取试压包第一行记录 + + #region 分页数据 + var tbNum = dt.Rows.Count; + var pageNum =tbNum < 34 ? 1 + : Math.Ceiling((float)(tbNum - 34) / 34) + 1; - 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; - - //设置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, 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, 10 * 256); + ws.SetColumnWidth(15, 10 * 256); + ws.SetColumnWidth(16, 10 * 256); + ws.SetColumnWidth(17, 3 * 256); + //设置前3行高度 + ws.GetRow(rowIndex + 0).Height = 15 * 20; + ws.GetRow(rowIndex + 1).Height = 15 * 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 试压包头部分 + + 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 P&ID DRAWING 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(info?.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(info?.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(info?.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(info?.TestPressure); + 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(info?.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("P&ID Drawing No.\r\n流程图号"); + ws.GetRow(rowIndex + 15).GetCell(9).SetCellValue("Drawing Description\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(""); + ws.GetRow(dataIndex).GetCell(9).SetCellValue(""); + 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 P&ID DRAWING 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 = 20 * 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 = 40 * 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("P&ID Drawing No.\r\n流程图号"); - ws.GetRow(rowIndex + 15).GetCell(9).SetCellValue("Drawing Description\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); @@ -1359,6 +1520,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //8-TP-06-单线图清单UG-FW-001 模版 private void template8(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); //插入图片部分 var img1 = Server.MapPath("~/res/images/bsf/1.png"); var img2 = Server.MapPath("~/res/images/bsf/2.png"); @@ -1368,210 +1530,353 @@ 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 试压包头部分 + + 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(info?.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(info?.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(info?.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(info?.TestPressure); + 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(info?.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["SingleNumber"].ToString()); + ws.GetRow(dataIndex).GetCell(9).SetCellValue(dr["PipelineCode"].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); @@ -1581,6 +1886,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //11-TP-07-盲板清单UG-FW-001 private void template11(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); //插入图片部分 var img1 = Server.MapPath("~/res/images/bsf/1.png"); var img2 = Server.MapPath("~/res/images/bsf/2.png"); @@ -1669,12 +1975,12 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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).SetCellValue(info?.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("C400"); + ws.GetRow(rowIndex + 9).GetCell(13).SetCellValue(info?.workAreaCode); ws.GetRow(rowIndex + 10).GetCell(2).SetCellValue("试压包号"); ws.GetRow(rowIndex + 10).GetCell(2).CellStyle = cellStyle2; @@ -1685,13 +1991,13 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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).SetCellValue(info?.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("2"); + ws.GetRow(rowIndex + 11).GetCell(13).SetCellValue(info?.TestPressure); ws.GetRow(rowIndex + 11).GetCell(13).CellStyle = cellStyle2; ws.GetRow(rowIndex + 12).GetCell(2).SetCellValue("系统号"); @@ -1703,7 +2009,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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).SetCellValue(info.TestType); ws.GetRow(rowIndex + 13).GetCell(13).CellStyle = cellStyle2; ws.GetRow(rowIndex + 14).GetCell(9).SetCellValue("试验方式"); @@ -1808,102 +2114,83 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //13-弹簧支吊架安装检验记录SHT 3503-J403 private void template13(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); 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"); - //模拟数据 - var list = new List(); - for (int i = 0; i < 100; i++) + #region 头部 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 1, style, 1, 7, true); + ws.SetColumnWidth(0, 2 * 256); + for (int i = 1; i < 8; i++) { - list.Add(i); + ws.SetColumnWidth(i, 16 * 256); } + ws.GetRow(rowIndex + 1).Height = 20 * 20 * 6; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 1, 2)); + ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("SH/T 3503—J403"); - var tbNum = list.Count; - var pageNum = - tbNum < 17 ? 1 - : Math.Ceiling((float)(tbNum - 17) / 17) + 1; + 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.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 3, 5)); + ws.GetRow(rowIndex + 1).GetCell(3).CellStyle = style1; + ws.GetRow(rowIndex + 1).GetCell(3).SetCellValue("弹簧支/吊架安装检验记录\nSpring Support/Hanger Installation Inspection Record"); - for (int pagnum = 0; pagnum < pageNum; pagnum++) + var style2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 10, false, false, "Arial Unicode MS"); + style2.WrapText = true; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 6, 7)); + ws.GetRow(rowIndex + 1).GetCell(6).CellStyle = style2; + ws.GetRow(rowIndex + 1).GetCell(6).SetCellValue($"工程名称:{info?.projectName}\n\nProject Name:{info?.enProjectName}\n\n单位工程名称:{info?.workAreaName}\nUnit Name:{info?.enWorkAreaName}"); + + #endregion + + #region 表格部分 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 2, rowIndex + 18, style, 1, 7, true); + for (int i = 2; i < 19; i++) { - #region 头部 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 1, style, 1, 7, true); - ws.SetColumnWidth(0, 2 * 256); - for (int i = 1; i < 8; i++) - { - ws.SetColumnWidth(i, 16 * 256); - } - ws.GetRow(rowIndex + 1).Height = 20 * 20 * 6; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 1, 2)); - ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("SH/T 3503—J403"); - - 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.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 3, 5)); - ws.GetRow(rowIndex + 1).GetCell(3).CellStyle = style1; - string titles = pagnum == 0 ? "弹簧支/吊架安装检验记录\nSpring Support/Hanger Installation Inspection Record" : "弹簧支/吊架安装检验记录(续)\nSpring Support/Hanger Installation Inspection Record"; - ws.GetRow(rowIndex + 1).GetCell(3).SetCellValue(titles); - var style2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 10, false, false, "Arial Unicode MS"); - style2.WrapText = true; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 6, 7)); - ws.GetRow(rowIndex + 1).GetCell(6).CellStyle = style2; - ws.GetRow(rowIndex + 1).GetCell(6).SetCellValue(" 工程名称:\n Project Name:\n\n\n 单位工程名称:\n Unit Name:"); - - - #endregion - - #region 表格部分 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 2, rowIndex + 18, style, 1, 7, true); - for (int i = 2; i < 19; i++) - { - if (i == 2) - ws.GetRow(rowIndex + i).Height = 20 * 20 * 4; - else - ws.GetRow(rowIndex + i).Height = 20 * 20 * 2; - } - ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue("管道编号/单线号\nPiping No./Line No."); - ws.GetRow(rowIndex + 2).GetCell(2).SetCellValue("支/吊架位号\nSupport/Hanger Item No."); - ws.GetRow(rowIndex + 2).GetCell(3).SetCellValue("结构型式\nType"); - ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue("位移方向\nDisplacement Direction"); - ws.GetRow(rowIndex + 2).GetCell(5).SetCellValue("设计冷态负荷值\nDesign Cold Load"); - ws.GetRow(rowIndex + 2).GetCell(6).SetCellValue("安装冷态负荷值\nInstallation Cold Load"); - ws.GetRow(rowIndex + 2).GetCell(7).SetCellValue("检查结果\nInspection Result"); - - #endregion - - #region 尾部 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 19, rowIndex + 21, style, 1, 7, true); - - ws.GetRow(rowIndex + 19).Height = 20 * 20 * 2; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 19, rowIndex + 19, 1, 7)); - ws.GetRow(rowIndex + 19).GetCell(1).CellStyle = style2; - ws.GetRow(rowIndex + 19).GetCell(1).SetCellValue(" 备注:\n Remarks:"); - - ws.GetRow(rowIndex + 20).Height = 20 * 20 * 2; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 20, rowIndex + 20, 1, 2)); - ws.GetRow(rowIndex + 20).GetCell(1).SetCellValue("建设/监理单位\nOwner/JianLi Contractor"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 20, rowIndex + 20, 3, 5)); - ws.GetRow(rowIndex + 20).GetCell(3).SetCellValue("总 承 包 单 位\nGeneral Contractor"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 20, rowIndex + 20, 6, 7)); - ws.GetRow(rowIndex + 20).GetCell(6).SetCellValue("施 工 单 位\nConstruction Contractor"); - - ws.GetRow(rowIndex + 21).Height = 20 * 20 * 6; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 21, rowIndex + 21, 1, 2)); - ws.GetRow(rowIndex + 21).GetCell(1).CellStyle = style2; - ws.GetRow(rowIndex + 21).GetCell(1).SetCellValue(" 专业工程师:\n Discipline Engineer:\n\n\n\n\n 日期(DATE): 年 月 日"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 21, rowIndex + 21, 3, 5)); - ws.GetRow(rowIndex + 21).GetCell(3).CellStyle = style2; - ws.GetRow(rowIndex + 21).GetCell(3).SetCellValue(" 专业工程师:\n Discipline Engineer:\n\n\n\n\n 日期(DATE): 年 月 日"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 21, rowIndex + 21, 6, 7)); - ws.GetRow(rowIndex + 21).GetCell(6).CellStyle = style2; - ws.GetRow(rowIndex + 21).GetCell(6).SetCellValue(" 施工班组长:\n Foreman:\n 质量检查员:\n Quality Inspector:\n 专业工程师:\n Discipline Engineer: \n 日期(DATE): 年 月 日"); - - #endregion - - rowIndex += 21; - + if (i == 2) + ws.GetRow(rowIndex + i).Height = 20 * 20 * 4; + else + ws.GetRow(rowIndex + i).Height = 20 * 20 * 2; } + ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue("管道编号/单线号\nPiping No./Line No."); + ws.GetRow(rowIndex + 2).GetCell(2).SetCellValue("支/吊架位号\nSupport/Hanger Item No."); + ws.GetRow(rowIndex + 2).GetCell(3).SetCellValue("结构型式\nType"); + ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue("位移方向\nDisplacement Direction"); + ws.GetRow(rowIndex + 2).GetCell(5).SetCellValue("设计冷态负荷值\nDesign Cold Load"); + ws.GetRow(rowIndex + 2).GetCell(6).SetCellValue("安装冷态负荷值\nInstallation Cold Load"); + ws.GetRow(rowIndex + 2).GetCell(7).SetCellValue("检查结果\nInspection Result"); + + #endregion + + #region 尾部 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 19, rowIndex + 21, style, 1, 7, true); + + ws.GetRow(rowIndex + 19).Height = 20 * 20 * 2; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 19, rowIndex + 19, 1, 7)); + ws.GetRow(rowIndex + 19).GetCell(1).CellStyle = style2; + ws.GetRow(rowIndex + 19).GetCell(1).SetCellValue(" 备注:\n Remarks:"); + + ws.GetRow(rowIndex + 20).Height = 20 * 20 * 2; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 20, rowIndex + 20, 1, 2)); + ws.GetRow(rowIndex + 20).GetCell(1).SetCellValue("建设/监理单位\nOwner/JianLi Contractor"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 20, rowIndex + 20, 3, 5)); + ws.GetRow(rowIndex + 20).GetCell(3).SetCellValue("总 承 包 单 位\nGeneral Contractor"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 20, rowIndex + 20, 6, 7)); + ws.GetRow(rowIndex + 20).GetCell(6).SetCellValue("施 工 单 位\nConstruction Contractor"); + + ws.GetRow(rowIndex + 21).Height = 20 * 20 * 6; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 21, rowIndex + 21, 1, 2)); + ws.GetRow(rowIndex + 21).GetCell(1).CellStyle = style2; + ws.GetRow(rowIndex + 21).GetCell(1).SetCellValue(" 专业工程师:\n Discipline Engineer:\n\n\n\n\n 日期(DATE): 年 月 日"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 21, rowIndex + 21, 3, 5)); + ws.GetRow(rowIndex + 21).GetCell(3).CellStyle = style2; + ws.GetRow(rowIndex + 21).GetCell(3).SetCellValue(" 专业工程师:\n Discipline Engineer:\n\n\n\n\n 日期(DATE): 年 月 日"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 21, rowIndex + 21, 6, 7)); + ws.GetRow(rowIndex + 21).GetCell(6).CellStyle = style2; + ws.GetRow(rowIndex + 21).GetCell(6).SetCellValue(" 施工班组长:\n Foreman:\n 质量检查员:\n Quality Inspector:\n 专业工程师:\n Discipline Engineer: \n 日期(DATE): 年 月 日"); + + #endregion ws.PrintSetup.FitWidth = 1; ws.PrintSetup.FitHeight = 0; @@ -1928,105 +2215,87 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //14-滑动固定管托安装检验记录SHT 3503-J404 private void template14(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); 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"); - //模拟数据 - var list = new List(); - for (int i = 0; i < 100; i++) + #region 头部 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 1, style, 1, 7, true); + ws.SetColumnWidth(0, 2 * 256); + for (int i = 1; i < 8; i++) { - list.Add(i); + ws.SetColumnWidth(i, 16 * 256); } + ws.GetRow(rowIndex + 1).Height = 20 * 20 * 5; - var tbNum = list.Count; - var pageNum = - tbNum < 17 ? 1 - : Math.Ceiling((float)(tbNum - 17) / 17) + 1; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 1, 2)); + ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("SH/T 3503—J404"); - for (int pagnum = 0; pagnum < pageNum; pagnum++) + 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.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 3, 5)); + ws.GetRow(rowIndex + 1).GetCell(3).CellStyle = style1; + ws.GetRow(rowIndex + 1).GetCell(3).SetCellValue("滑动/固定管托安装检验记录\nSliding/Fixed Pipe Shoe Installation Inspection Record"); + + var style2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 10, false, false, "Arial Unicode MS"); + style2.WrapText = true; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 6, 7)); + ws.GetRow(rowIndex + 1).GetCell(6).CellStyle = style2; + ws.GetRow(rowIndex + 1).GetCell(6).SetCellValue($"工程名称:{info?.projectName}\nProject Name:{info?.enProjectName}\n\n单位工程名称:{info?.workAreaName}\n Unit Name:{info?.enWorkAreaName}"); + + #endregion + + #region 表格部分 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 2, rowIndex + 14, style, 1, 7, true); + for (int i = 2; i < 15; i++) { - #region 头部 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 1, style, 1, 7, true); - ws.SetColumnWidth(0, 2 * 256); - for (int i = 1; i < 8; i++) - { - ws.SetColumnWidth(i, 16 * 256); - } - ws.GetRow(rowIndex + 1).Height = 20 * 20 * 5; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 1, 2)); - ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("SH/T 3503—J404"); - - 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.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 3, 5)); - ws.GetRow(rowIndex + 1).GetCell(3).CellStyle = style1; - var titles = pagnum == 0 ? "滑动/固定管托安装检验记录\nSliding/Fixed Pipe Shoe Installation Inspection Record" : "滑动/固定管托安装检验记录(续)\nSliding/Fixed Pipe Shoe Installation Inspection Record"; - ws.GetRow(rowIndex + 1).GetCell(3).SetCellValue(titles); - - var style2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 10, false, false, "Arial Unicode MS"); - style2.WrapText = true; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 6, 7)); - ws.GetRow(rowIndex + 1).GetCell(6).CellStyle = style2; - ws.GetRow(rowIndex + 1).GetCell(6).SetCellValue(" 工程名称:\n Project Name:\n\n\n 单位工程名称:\n Unit Name:"); - - #endregion - - #region 表格部分 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 2, rowIndex + 14, style, 1, 7, true); - for (int i = 2; i < 15; i++) - { - if (i == 2) - ws.GetRow(rowIndex + i).Height = 20 * 20 * 3; - else - ws.GetRow(rowIndex + i).Height = 20 * 20 * 2; - } - ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue("管道编号/单线号\nPiping No./ Line"); - ws.GetRow(rowIndex + 2).GetCell(2).SetCellValue("管托编号\nPipe Shoe No."); - ws.GetRow(rowIndex + 2).GetCell(3).SetCellValue("型 式\nType"); - ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue("位移方向\nDisplacement Direction"); - ws.GetRow(rowIndex + 2).GetCell(5).SetCellValue("设计位移量\nDesign Displacement"); - ws.GetRow(rowIndex + 2).GetCell(6).SetCellValue("安装位移量\nInstallation Displacement"); - ws.GetRow(rowIndex + 2).GetCell(7).SetCellValue("检验结果\nInspection Result"); - - #endregion - - #region 尾部 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 15, rowIndex + 18, style, 1, 7, true); - ws.GetRow(rowIndex + 15).Height = 20 * 20 * 3; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 1, 7)); - ws.GetRow(rowIndex + 15).GetCell(1).CellStyle = style2; - ws.GetRow(rowIndex + 15).GetCell(1).SetCellValue(" 注:本表用于设计温度>350℃管道和低于-29℃管道中,管托有位移要求的滑动和固定管托的安装检验。\nNote: This form is applicable to the installation inspection on sliding/fixed pipe shoes with displacement requirement used in piping at a design temperature above 350℃and in piping at a design temperature below -29℃."); - - ws.GetRow(rowIndex + 16).Height = 20 * 20 * 3; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 1, 7)); - ws.GetRow(rowIndex + 16).GetCell(1).CellStyle = style2; - ws.GetRow(rowIndex + 16).GetCell(1).SetCellValue(" 备注:\n Remarks:"); - - ws.GetRow(rowIndex + 17).Height = 20 * 20 * 3; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 1, 2)); - ws.GetRow(rowIndex + 17).GetCell(1).SetCellValue("建设/监理单位\nOwner/JianLi Contractor"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 3, 5)); - ws.GetRow(rowIndex + 17).GetCell(3).SetCellValue("总 承 包 单 位\nGeneral Contractor"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 6, 7)); - ws.GetRow(rowIndex + 17).GetCell(6).SetCellValue("施 工 单 位\nConstruction Contractor"); - - ws.GetRow(rowIndex + 18).Height = 20 * 20 * 6; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 1, 2)); - ws.GetRow(rowIndex + 18).GetCell(1).CellStyle = style2; - ws.GetRow(rowIndex + 18).GetCell(1).SetCellValue(" 专业工程师:\n Discipline Engineer:\n\n\n\n\n 日期(DATE): 年 月 日"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 3, 5)); - ws.GetRow(rowIndex + 18).GetCell(3).CellStyle = style2; - ws.GetRow(rowIndex + 18).GetCell(3).SetCellValue(" 专业工程师:\n Discipline Engineer:\n\n\n\n\n 日期(DATE): 年 月 日"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 6, 7)); - ws.GetRow(rowIndex + 18).GetCell(6).CellStyle = style2; - ws.GetRow(rowIndex + 18).GetCell(6).SetCellValue(" 施工班组长:\n Foreman:\n 质量检查员:\n Quality Inspector:\n 专业工程师:\n Discipline Engineer: \n 日期(DATE): 年 月 日"); - - #endregion - - rowIndex += 18; - + if (i == 2) + ws.GetRow(rowIndex + i).Height = 20 * 20 * 3; + else + ws.GetRow(rowIndex + i).Height = 20 * 20 * 2; } + ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue("管道编号/单线号\nPiping No./ Line"); + ws.GetRow(rowIndex + 2).GetCell(2).SetCellValue("管托编号\nPipe Shoe No."); + ws.GetRow(rowIndex + 2).GetCell(3).SetCellValue("型 式\nType"); + ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue("位移方向\nDisplacement Direction"); + ws.GetRow(rowIndex + 2).GetCell(5).SetCellValue("设计位移量\nDesign Displacement"); + ws.GetRow(rowIndex + 2).GetCell(6).SetCellValue("安装位移量\nInstallation Displacement"); + ws.GetRow(rowIndex + 2).GetCell(7).SetCellValue("检验结果\nInspection Result"); + + #endregion + + #region 尾部 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 15, rowIndex + 18, style, 1, 7, true); + ws.GetRow(rowIndex + 15).Height = 20 * 20 * 3; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 1, 7)); + ws.GetRow(rowIndex + 15).GetCell(1).CellStyle = style2; + ws.GetRow(rowIndex + 15).GetCell(1).SetCellValue(" 注:本表用于设计温度>350℃管道和低于-29℃管道中,管托有位移要求的滑动和固定管托的安装检验。\nNote: This form is applicable to the installation inspection on sliding/fixed pipe shoes with displacement requirement used in piping at a design temperature above 350℃and in piping at a design temperature below -29℃."); + + ws.GetRow(rowIndex + 16).Height = 20 * 20 * 3; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 1, 7)); + ws.GetRow(rowIndex + 16).GetCell(1).CellStyle = style2; + ws.GetRow(rowIndex + 16).GetCell(1).SetCellValue(" 备注:\n Remarks:"); + + ws.GetRow(rowIndex + 17).Height = 20 * 20 * 3; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 1, 2)); + ws.GetRow(rowIndex + 17).GetCell(1).SetCellValue("建设/监理单位\nOwner/JianLi Contractor"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 3, 5)); + ws.GetRow(rowIndex + 17).GetCell(3).SetCellValue("总 承 包 单 位\nGeneral Contractor"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 6, 7)); + ws.GetRow(rowIndex + 17).GetCell(6).SetCellValue("施 工 单 位\nConstruction Contractor"); + + ws.GetRow(rowIndex + 18).Height = 20 * 20 * 6; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 1, 2)); + ws.GetRow(rowIndex + 18).GetCell(1).CellStyle = style2; + ws.GetRow(rowIndex + 18).GetCell(1).SetCellValue(" 专业工程师:\n Discipline Engineer:\n\n\n\n\n 日期(DATE): 年 月 日"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 3, 5)); + ws.GetRow(rowIndex + 18).GetCell(3).CellStyle = style2; + ws.GetRow(rowIndex + 18).GetCell(3).SetCellValue(" 专业工程师:\n Discipline Engineer:\n\n\n\n\n 日期(DATE): 年 月 日"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 6, 7)); + ws.GetRow(rowIndex + 18).GetCell(6).CellStyle = style2; + ws.GetRow(rowIndex + 18).GetCell(6).SetCellValue(" 施工班组长:\n Foreman:\n 质量检查员:\n Quality Inspector:\n 专业工程师:\n Discipline Engineer: \n 日期(DATE): 年 月 日"); + + #endregion ws.PrintSetup.FitWidth = 1; ws.PrintSetup.FitHeight = 0; @@ -2051,147 +2320,131 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //15-管道补偿器安装检验记录SHT 3503-J405 private void template15(XSSFWorkbook hssfworkbook, XSSFSheet ws) { - //模拟数据 - var list = new List(); - for (int i = 0; i < 100; i++) - { - list.Add(i); - } - - var tbNum = list.Count; - var pageNum = - tbNum < 17 ? 1 - : Math.Ceiling((float)(tbNum - 17) / 17) + 1; - + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); + #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; - for (int pagnum = 0; pagnum < pageNum; pagnum++) + 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, 12 * 256); + ws.SetColumnWidth(12, 12 * 256); + + ws.AddMergedRegion(new CellRangeAddress(0, 3, 0, 1)); + ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J405"); + + ws.AddMergedRegion(new CellRangeAddress(0, 3, 2, 9)); + ws.GetRow(rowIndex).GetCell(2).SetCellValue("管道补偿器安装检验记录\r\nPipe Compensator Installation Inspection 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($"工程名称:{info?.projectName}"); + ws.GetRow(rowIndex + 1).GetCell(10).SetCellValue($"Project Name:{info?.enProjectName}"); + ws.GetRow(rowIndex + 2).GetCell(10).SetCellValue($"单位工程名称:{info?.workAreaName}"); + ws.GetRow(rowIndex + 3).GetCell(10).SetCellValue($"Unit Name:{info?.enWorkAreaName}"); + + + + #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\nCompensator No."); + ws.AddMergedRegion(new CellRangeAddress(4, 5, 3, 3)); + ws.GetRow(rowIndex + 4).GetCell(3).SetCellValue("型式\r\nType"); + ws.AddMergedRegion(new CellRangeAddress(4, 5, 4, 4)); + ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue("规格\r\nSpecification"); + 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\nFixed Support SoacingM"); + ws.AddMergedRegion(new CellRangeAddress(4, 5, 7, 7)); + ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("设计压力\r\nDesign Pressure"); + ws.AddMergedRegion(new CellRangeAddress(4, 5, 8, 8)); + ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("设计温度\r\nDesign Temperature\r\n℃"); + ws.AddMergedRegion(new CellRangeAddress(4, 4, 9, 11)); + ws.GetRow(rowIndex + 4).GetCell(9).SetCellValue("轴/角向预变形量\r\nAxial/Angular Predeformation"); + ws.GetRow(rowIndex + 5).GetCell(9).SetCellValue("单位\r\nUnit"); + ws.GetRow(rowIndex + 5).GetCell(10).SetCellValue("设计值\r\nDesign Value"); + ws.GetRow(rowIndex + 5).GetCell(11).SetCellValue("实测值\r\nActual Value"); + ws.AddMergedRegion(new CellRangeAddress(4, 5, 12, 12)); + ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue("检验结果\r\nInspection Result"); + + //这里创建行数据 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 6, rowIndex + 23, style, 0, 12, true); + for (int i = 6; i < 24; i++) { - #region 头部 - var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 11, true, false, "宋体"); - 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, 12 * 256); - ws.SetColumnWidth(12, 12 * 256); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex+ 0, rowIndex + 3, 0, 1)); - ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J405"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex+0, rowIndex+3, 2, 9)); - ws.GetRow(rowIndex).GetCell(2).SetCellValue("管道补偿器安装检验记录\r\nPipe Compensator Installation Inspection Record"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 0, rowIndex + 0, 10, 12)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 10, 12)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 10, 12)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 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(rowIndex+4, rowIndex+5, 0, 0)); - ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("管道编号/单线号\r\nPiping No./Line No"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex+4, rowIndex + 5, 1, 2)); - ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("补偿器编号\r\nCompensator No."); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 5, 3, 3)); - ws.GetRow(rowIndex + 4).GetCell(3).SetCellValue("型式\r\nType"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 5, 4, 4)); - ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue("规格\r\nSpecification"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 5, 5, 5)); - ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("材质\r\nMaterial"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 5, 6, 6)); - ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("固定支架间距\r\nFixed Support SoacingM"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 5, 7, 7)); - ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("设计压力\r\nDesign Pressure"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 5, 8, 8)); - ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("设计温度\r\nDesign Temperature\r\n℃"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 9, 11)); - ws.GetRow(rowIndex + 4).GetCell(9).SetCellValue("轴/角向预变形量\r\nAxial/Angular Predeformation"); - ws.GetRow(rowIndex + 5).GetCell(9).SetCellValue("单位\r\nUnit"); - ws.GetRow(rowIndex + 5).GetCell(10).SetCellValue("设计值\r\nDesign Value"); - ws.GetRow(rowIndex + 5).GetCell(11).SetCellValue("实测值\r\nActual Value"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 5, 12, 12)); - ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue("检验结果\r\nInspection Result"); - - //这里创建行数据 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 6, rowIndex + 23, style, 0, 12, true); - for (int i = 6; i < 24; i++) - { - ws.GetRow(rowIndex + i).Height = 20 * 20; - } - - #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 = 7 * 20; - #endregion - - rowIndex += 31; + ws.GetRow(rowIndex + i).Height = 20 * 20; } + #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 = 7 * 20; + #endregion + ws.PrintSetup.FitWidth = 1; ws.PrintSetup.FitHeight = 0; ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; @@ -2217,6 +2470,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //16-TP-08-静电接地清单UG-FW-001 private void template16(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); //插入图片部分 var img1 = Server.MapPath("~/res/images/bsf/1.png"); var img2 = Server.MapPath("~/res/images/bsf/2.png"); @@ -2305,12 +2559,12 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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).SetCellValue(info?.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("C400"); + ws.GetRow(rowIndex + 9).GetCell(13).SetCellValue(info?.workAreaCode); ws.GetRow(rowIndex + 10).GetCell(2).SetCellValue("试压包号"); ws.GetRow(rowIndex + 10).GetCell(2).CellStyle = cellStyle2; @@ -2321,13 +2575,13 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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).SetCellValue(info?.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("2"); + ws.GetRow(rowIndex + 11).GetCell(13).SetCellValue(info?.TestPressure); ws.GetRow(rowIndex + 11).GetCell(13).CellStyle = cellStyle2; ws.GetRow(rowIndex + 12).GetCell(2).SetCellValue("系统号"); @@ -2339,7 +2593,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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).SetCellValue(info?.TestType); ws.GetRow(rowIndex + 13).GetCell(13).CellStyle = cellStyle2; ws.GetRow(rowIndex + 14).GetCell(9).SetCellValue("试验方式"); @@ -2443,6 +2697,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //17-管道焊接接头热处理报告SHT 3503-J411 private void template17(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); 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"); @@ -2479,7 +2734,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage style2.WrapText = true; ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 9, 12)); ws.GetRow(rowIndex + 1).GetCell(9).CellStyle = style2; - ws.GetRow(rowIndex + 1).GetCell(9).SetCellValue("工程名称:\nProject Name:\n\n\n单位工程名称:\nUnit Name:"); + ws.GetRow(rowIndex + 1).GetCell(9).SetCellValue($"工程名称:{info?.projectName}\n\nProject Name:{info?.enProjectName}\n\n单位工程名称:{info?.workAreaName}\n\nUnit Name:{info?.enWorkAreaName}"); ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 2, 12)); ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue("Report No."); @@ -2589,6 +2844,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //18-金属材料化学成分检验报告SHT 3503-J129 private void template18(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); 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"); @@ -2623,7 +2879,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage style2.WrapText = true; ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 11, 15)); ws.GetRow(rowIndex + 1).GetCell(11).CellStyle = style2; - ws.GetRow(rowIndex + 1).GetCell(11).SetCellValue(" 工程名称:\n Project Name:\n\n\n 单位工程名称:\n Unit Name:"); + ws.GetRow(rowIndex + 1).GetCell(11).SetCellValue($"工程名称:{info?.projectName}\nProject Name:{info?.enProjectName}\n单位工程名称:{info?.workAreaName}\nUnit Name:{info?.enWorkAreaName}"); for (int i = 2; i < 5; i++) { @@ -2722,6 +2978,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //19-硬度检查报告SHT 3503-J130 private void template19(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); 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"); @@ -2758,7 +3015,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage style2.WrapText = true; ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 10, 12)); ws.GetRow(rowIndex + 1).GetCell(10).CellStyle = style2; - ws.GetRow(rowIndex + 1).GetCell(10).SetCellValue("工程名称:\nProject Name:\n\n\n单位工程名称:\nUnit Name:"); + ws.GetRow(rowIndex + 1).GetCell(10).SetCellValue($"工程名称:{info?.projectName}\nProject Name:{info?.enProjectName}\n单位工程名称:{info?.workAreaName}\nUnit Name:{info?.enWorkAreaName}"); for (int i = 2; i < 6; i++) { @@ -2848,841 +3105,725 @@ 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); + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); - //设置列宽 - 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); + 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 + "; - 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); - - - #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 < 16 ? 1 + : Math.Ceiling((float)(tbNum - 16) / 16) + 1; + + + //循环页 + 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($"工程名称:{info?.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:{info?.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($"单位工程名称:{info?.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:{info?.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.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 - private void template22_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 + 4, style, 0, 20, true); - - //设置列宽 - ws.SetColumnWidth(0, 11 * 256); - ws.SetColumnWidth(1, 5 * 256); - ws.SetColumnWidth(2, 8 * 256); - ws.SetColumnWidth(3, 5 * 256); - ws.SetColumnWidth(4, 5 * 256); - ws.SetColumnWidth(5, 6 * 256); - ws.SetColumnWidth(6, 6 * 256); - ws.SetColumnWidth(7, 6 * 256); - ws.SetColumnWidth(8, 6 * 256); - ws.SetColumnWidth(9, 6 * 256); - ws.SetColumnWidth(10, 6 * 256); - ws.SetColumnWidth(11, 6 * 256); - ws.SetColumnWidth(12, 21 * 256); - - ws.AddMergedRegion(new CellRangeAddress(0, 3, 0, 2)); - ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J412-1-2007"); - - ws.AddMergedRegion(new CellRangeAddress(0, 0, 3, 17)); - ws.GetRow(rowIndex).GetCell(3).SetCellValue("管道焊接接头射线检测比例确认表(一)"); - ws.GetRow(rowIndex).GetCell(3).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 16, true, true); - ws.AddMergedRegion(new CellRangeAddress(1, 2, 3, 17)); - ws.GetRow(rowIndex + 1).GetCell(3).SetCellValue("Pipeline Welding Joints Radiographic Examination Rate Confirmation Form(I)"); - ws.GetRow(rowIndex + 1).GetCell(3).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 16, true, true); - - ws.AddMergedRegion(new CellRangeAddress(0, 3, 18, 20)); - ws.AddMergedRegion(new CellRangeAddress(3, 3, 3, 17)); - - ws.GetRow(rowIndex).GetCell(18).SetCellValue("工程名称:巴斯夫(广东)一体化项目专用化学品二区\nProject Name:BASF (Guangdong) Integrated Project\n单元名称:Citral\nUnit Name:Citral"); - ws.GetRow(rowIndex).GetCell(18).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 11, true, false); - - ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue("共 1 页 第 1 页"); - - ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("执行标准\r\nApplicable code"); - - ws.AddMergedRegion(new CellRangeAddress(4, 4, 1, 5)); - ws.AddMergedRegion(new CellRangeAddress(4, 4, 6, 7)); - ws.AddMergedRegion(new CellRangeAddress(4, 4, 8, 15)); - ws.AddMergedRegion(new CellRangeAddress(4, 4, 16, 17)); - ws.AddMergedRegion(new CellRangeAddress(4, 4, 18, 20)); - ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("NB/T47013.2-2015"); - ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("检测方法\r\nExam. Method"); - ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("射线检测\r\nRT"); - ws.GetRow(rowIndex + 4).GetCell(16).SetCellValue("检测比例\r\nExam. Rate"); - ws.GetRow(rowIndex + 4).GetCell(18).SetCellValue("5%"); - - #endregion - - #region 表格部分 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 5, rowIndex + 6, style, 0, 20, true); - - ws.GetRow(rowIndex + 5).Height = 28 * 20; - ws.GetRow(rowIndex + 6).Height = 42 * 20; - - //设置表头部分 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 6, 0, 1)); - ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("管道编号\r\nPipeline No."); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 6, 2, 2)); - ws.GetRow(rowIndex + 5).GetCell(2).SetCellValue("材质\r\nMaterial"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 3, 4)); - ws.GetRow(rowIndex + 5).GetCell(3).SetCellValue("规 格/Size"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 3, 4)); - ws.GetRow(rowIndex + 6).GetCell(3).SetCellValue("mm"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 5, 8)); - ws.GetRow(rowIndex + 5).GetCell(5).SetCellValue("管道焊接接头\r\nWelding Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 9, 12)); - ws.GetRow(rowIndex + 5).GetCell(9).SetCellValue("施焊焊工\r\nWelder"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 13, 16)); - ws.GetRow(rowIndex + 5).GetCell(13).SetCellValue("检测焊接接头\r\nExanined Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 17, 19)); - ws.GetRow(rowIndex + 5).GetCell(17).SetCellValue("实际检测比例"); - - ws.GetRow(rowIndex + 5).GetCell(20).SetCellValue("检测报告编号"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 5, 6)); - ws.GetRow(rowIndex + 6).GetCell(5).SetCellValue("总数\r\nTotal"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 7, 8)); - ws.GetRow(rowIndex + 6).GetCell(7).SetCellValue("固定口数\r\nField Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 9, 10)); - ws.GetRow(rowIndex + 6).GetCell(9).SetCellValue("焊工代号\r\nWelder No."); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 11, 12)); - ws.GetRow(rowIndex + 6).GetCell(11).SetCellValue("施焊数量\r\nWelded Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 13, 14)); - ws.GetRow(rowIndex + 6).GetCell(13).SetCellValue("总数\r\nTotal Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 15, 16)); - ws.GetRow(rowIndex + 6).GetCell(15).SetCellValue("固定口数\r\nField Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 17, 19)); - ws.GetRow(rowIndex + 6).GetCell(17).SetCellValue("Actual exam. Rate"); - - ws.GetRow(rowIndex + 6).GetCell(20).SetCellValue("Examination Report No."); - - //这里创建行数据 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 7, rowIndex + 16, style, 0, 20, true); - for (int i = 7; i < 15; i++) - { - ws.GetRow(rowIndex + i).Height = 25 * 20; - } - //这里循环数据 - ws.GetRow(rowIndex + 15).GetCell(0).SetCellValue("小计\r\nTotal"); - - #endregion - - #region 尾部 - - ws.GetRow(rowIndex + 16).GetCell(0).SetCellValue("备注\r\nRemark"); - ws.GetRow(rowIndex + 16).GetCell(1).SetCellValue("焊口位置与检测焊口见管道单线图与无损检测报告。\r\nPlease refer to Pipeline Iso-drawing and NDE Report for joints position and examined joints."); - ws.GetRow(rowIndex + 16).GetCell(1).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Left, 10, true, false); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 1, 20)); - - - 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.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 11, true, false); - - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 17, rowIndex + 24, style, 0, 20, true); - - ws.GetRow(rowIndex + 17).GetCell(20).CellStyle = style1; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 0, 3)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 4, 9)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 10, 16)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 17, 20)); - - ws.GetRow(rowIndex + 17).GetCell(0).SetCellValue("建设/监理单位\r\nOwner/Supervision Contractor"); - ws.GetRow(rowIndex + 17).GetCell(4).SetCellValue("总承包单位\r\nGeneral Contractor"); - ws.GetRow(rowIndex + 17).GetCell(10).SetCellValue("检 测 单 位\r\nExamination Contractor"); - ws.GetRow(rowIndex + 17).GetCell(17).SetCellValue("施 工 单 位\r\nConstruction Company"); - ws.GetRow(rowIndex + 17).GetCell(0).CellStyle = ws.GetRow(rowIndex + 17).GetCell(4).CellStyle = ws.GetRow(rowIndex + 17).GetCell(10).CellStyle = ws.GetRow(rowIndex + 17).GetCell(17).CellStyle = style1; - ws.GetRow(rowIndex + 17).Height = 31 * 20; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 0, 3)); - ws.GetRow(rowIndex + 18).GetCell(0).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - ws.GetRow(rowIndex + 18).Height = 31 * 20; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 4, 9)); - ws.GetRow(rowIndex + 18).GetCell(4).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 10, 16)); - ws.GetRow(rowIndex + 18).GetCell(10).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 17, 20)); - ws.GetRow(rowIndex + 18).GetCell(17).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 20, rowIndex + 20, 17, 20)); - ws.GetRow(rowIndex + 20).GetCell(17).SetCellValue("质量检查员:\r\nQuality Inspector:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 22, rowIndex + 22, 17, 20)); - ws.GetRow(rowIndex + 20).GetCell(17).SetCellValue("制表:\r\nPrepared:"); - - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 0, 3)); - ws.GetRow(rowIndex + 24).GetCell(0).SetCellValue("日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 4, 9)); - ws.GetRow(rowIndex + 24).GetCell(4).SetCellValue("日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 10, 16)); - ws.GetRow(rowIndex + 24).GetCell(10).SetCellValue("日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 24, rowIndex + 24, 17, 20)); - ws.GetRow(rowIndex + 24).GetCell(17).SetCellValue("日期Date: 年 月 日"); - ws.GetRow(rowIndex + 19).Height = ws.GetRow(rowIndex + 21).Height = ws.GetRow(rowIndex + 22).Height = ws.GetRow(rowIndex + 23).Height = 2 * 20; - - - RegionUtil.SetBorderTop(1, new CellRangeAddress(rowIndex + 18, rowIndex + 18, 0, 20), ws); - RegionUtil.SetBorderLeft(1, new CellRangeAddress(rowIndex + 18, rowIndex + 24, 0, 0), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 24, 20, 20), ws); - RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 24, rowIndex + 24, 0, 20), ws); - - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 24, 3, 3), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 24, 9, 9), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 24, 16, 16), ws); - - #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); - } - + //22-射线检测比例确认表SHT 3503-J412-2007 private void template22(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, 10.5, true, false, "宋体"); - int rowIndex = 0; - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 4, style, 0, 20, true); + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); - //设置列宽 - ws.SetColumnWidth(0, 13 * 256); - ws.SetColumnWidth(1, 6 * 256); - ws.SetColumnWidth(2, 10 * 256); - ws.SetColumnWidth(3, 5 * 256); - ws.SetColumnWidth(4, 5 * 256); - ws.SetColumnWidth(5, 7 * 256); - ws.SetColumnWidth(6, 7 * 256); - ws.SetColumnWidth(7, 7 * 256); - ws.SetColumnWidth(8, 7 * 256); - ws.SetColumnWidth(9, 7 * 256); - ws.SetColumnWidth(10, 7 * 256); - ws.SetColumnWidth(11, 7 * 256); - ws.SetColumnWidth(12, 7 * 256); - ws.SetColumnWidth(13, 7 * 256); - ws.SetColumnWidth(14, 7 * 256); - ws.SetColumnWidth(15, 7 * 256); - ws.SetColumnWidth(16, 7 * 256); - ws.SetColumnWidth(17, 5 * 256); - ws.SetColumnWidth(18, 7 * 256); - ws.SetColumnWidth(19, 7 * 256); - ws.SetColumnWidth(20, 25 * 256); + string sql = @" + SELECT COUNT(1) AS totalNum, + t.TestPackageNo, + t.PipelineId, + T.PipelineCode, + t.Specification, + t.MaterialCode, + t.WelderCode, + (SELECT COUNT(1) FROM dbo.View_Pipeline_WeldJoint AS jot + WHERE jot.PipelineId=T.PipelineId AND jot.MaterialCode=t.MaterialCode AND jot.Specification=t.Specification + AND jot.WelderCode=t.WelderCode AND jot.JointAttribute='固定F' + ) AS FNum, + SUM(T.NdeNum) AS NdeNum, + SUM(t.FNdeNum) AS FNdeNum, + NdeCode + FROM + ( + SELECT + a.TestPackageNo, + b.PipelineId, + c.PipelineCode, + c.WeldJointId, + c.Specification, + c.MaterialCode, + c.WelderCode, + (SELECT COUNT(1) FROM dbo.Batch_NDEItem nde + LEFT JOIN dbo.Batch_BatchTrustItem trust ON trust.TrustBatchItemId = nde.TrustBatchItemId + WHERE trust.WeldJointId=c.WeldJointId) AS NdeNum, --检测数 - ws.AddMergedRegion(new CellRangeAddress(rowIndex, rowIndex + 3, 0, 2)); - ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J412-1-2007"); + STUFF((SELECT nde.NDEReportNo FROM dbo.Batch_NDEItem nde + LEFT JOIN dbo.Batch_BatchTrustItem trust ON trust.TrustBatchItemId = nde.TrustBatchItemId + WHERE trust.WeldJointId=c.WeldJointId for xml path('')),1,1,'') AS NdeCode, --检测报告编号 - ws.AddMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 3, 17)); - ws.GetRow(rowIndex).GetCell(3).SetCellValue("管道焊接接头射线检测比例确认表(一)"); - ws.GetRow(rowIndex).GetCell(3).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 16, true, true); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 2, 3, 17)); - ws.GetRow(rowIndex + 1).GetCell(3).SetCellValue("Pipeline Welding Joints Radiographic Examination Rate Confirmation Form(I)"); - ws.GetRow(rowIndex + 1).GetCell(3).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 14, true, true); + (SELECT COUNT(1) FROM dbo.Batch_NDEItem nde + LEFT JOIN dbo.Batch_BatchTrustItem trust ON trust.TrustBatchItemId = nde.TrustBatchItemId + LEFT JOIN dbo.Pipeline_WeldJoint j ON j.WeldJointId = trust.WeldJointId + WHERE trust.WeldJointId=c.WeldJointId AND j.JointAttribute='固定F') AS FNdeNum --固定口检测数 + FROM dbo.PTP_TestPackage AS a + INNER JOIN dbo.PTP_PipelineList AS b + ON a.PTP_ID=b.PTP_ID + LEFT JOIN dbo.View_Pipeline_WeldJoint AS C + ON b.PipelineId=c.PipelineId + WHERE b.isAll=1 and b.PTP_ID=@PTPID and a.projectId=@projectId + UNION ALL + SELECT + a.TestPackageNo, + b.PipelineId, + c.PipelineCode, + c.WeldJointId, + c.Specification, + c.MaterialCode, + c.WelderCode, + (SELECT COUNT(1) FROM dbo.Batch_NDEItem nde + LEFT JOIN dbo.Batch_BatchTrustItem trust ON trust.TrustBatchItemId = nde.TrustBatchItemId + WHERE trust.WeldJointId=c.WeldJointId) AS NdeNum, --检测数 - ws.AddMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 18, 20)); - ws.GetRow(rowIndex).GetCell(18).SetCellValue("工程名称:巴斯夫(广东)一体化项目专用化学品二区"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 18, 20)); - ws.GetRow(rowIndex + 1).GetCell(18).SetCellValue("Project Name:BASF (Guangdong) Integrated Project"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 18, 20)); - ws.GetRow(rowIndex + 2).GetCell(18).SetCellValue("单元名称:Citral"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 18, 20)); - ws.GetRow(rowIndex + 3).GetCell(18).SetCellValue("Unit Name:Citral"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 3, 17)); + STUFF((SELECT nde.NDEReportNo FROM dbo.Batch_NDEItem nde + LEFT JOIN dbo.Batch_BatchTrustItem trust ON trust.TrustBatchItemId = nde.TrustBatchItemId + WHERE trust.WeldJointId=c.WeldJointId for xml path('')),1,1,'') AS NdeCode, --检测报告编号 - ws.GetRow(rowIndex).GetCell(18).CellStyle = ws.GetRow(rowIndex + 1).GetCell(18).CellStyle = ws.GetRow(rowIndex + 2).GetCell(18).CellStyle = ws.GetRow(rowIndex + 3).GetCell(18).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Left, 10.5, true, false); - RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex, rowIndex, 18, 20), ws); - RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 18, 20), ws); - RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 18, 20), ws); - RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 18, 20), ws); - RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 18, 20), ws); - RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 3, rowIndex + 3, 18, 20), ws); + (SELECT COUNT(1) FROM dbo.Batch_NDEItem nde + LEFT JOIN dbo.Batch_BatchTrustItem trust ON trust.TrustBatchItemId = nde.TrustBatchItemId + LEFT JOIN dbo.Pipeline_WeldJoint j ON j.WeldJointId = trust.WeldJointId + WHERE trust.WeldJointId=c.WeldJointId AND j.JointAttribute='固定F') AS FNdeNum --固定口检测数 + FROM dbo.PTP_TestPackage AS a + INNER JOIN dbo.PTP_PipelineList AS b + ON a.PTP_ID=b.PTP_ID + LEFT JOIN dbo.View_Pipeline_WeldJoint AS C + ON b.PipelineId=c.PipelineId + WHERE b.isAll=0 and b.PTP_ID=@PTPID and a.projectId=@projectId + AND PATINDEX('%'+c.WeldJointCode+'%',b.WeldJonintCode)>0 + ) AS t + GROUP BY t.TestPackageNo,t.PipelineCode,t.Specification,t.MaterialCode,t.WelderCode, + t.PipelineId,t.NdeCode + "; - - ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue("共 1 页 第 1 页"); - - ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("执行标准\r\nApplicable code"); - - ws.AddMergedRegion(new CellRangeAddress(4, 4, 1, 5)); - ws.AddMergedRegion(new CellRangeAddress(4, 4, 6, 7)); - ws.AddMergedRegion(new CellRangeAddress(4, 4, 8, 15)); - ws.AddMergedRegion(new CellRangeAddress(4, 4, 16, 17)); - ws.AddMergedRegion(new CellRangeAddress(4, 4, 18, 20)); - ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("NB/T47013.2-2015"); - ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("检测方法\r\nExam. Method"); - ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("射线检测\r\nRT"); - ws.GetRow(rowIndex + 4).GetCell(16).SetCellValue("检测比例\r\nExam. Rate"); - ws.GetRow(rowIndex + 4).GetCell(18).SetCellValue("5%"); - - ws.GetRow(rowIndex).Height = 27 * 20; - ws.GetRow(rowIndex + 1).Height = 27 * 20; - ws.GetRow(rowIndex + 2).Height = 15 * 20; - ws.GetRow(rowIndex + 3).Height = 20 * 20; - ws.GetRow(rowIndex + 4).Height = 40 * 20; - - #endregion - - #region 表格部分 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 5, rowIndex + 6, style, 0, 20, true); - - ws.GetRow(rowIndex + 5).Height = 29 * 20; - ws.GetRow(rowIndex + 6).Height = 43 * 20; - - //设置表头部分 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 6, 0, 1)); - ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("管道编号\r\nPipeline No."); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 6, 2, 2)); - ws.GetRow(rowIndex + 5).GetCell(2).SetCellValue("材质\r\nMaterial"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 3, 4)); - ws.GetRow(rowIndex + 5).GetCell(3).SetCellValue("规 格/Size"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 3, 4)); - ws.GetRow(rowIndex + 6).GetCell(3).SetCellValue("mm"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 5, 8)); - ws.GetRow(rowIndex + 5).GetCell(5).SetCellValue("管道焊接接头\r\nWelding Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 9, 12)); - ws.GetRow(rowIndex + 5).GetCell(9).SetCellValue("施焊焊工\r\nWelder"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 13, 16)); - ws.GetRow(rowIndex + 5).GetCell(13).SetCellValue("检测焊接接头\r\nExanined Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 17, 19)); - ws.GetRow(rowIndex + 5).GetCell(17).SetCellValue("实际检测比例"); - - ws.GetRow(rowIndex + 5).GetCell(20).SetCellValue("检测报告编号"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 5, 6)); - ws.GetRow(rowIndex + 6).GetCell(5).SetCellValue("总数\r\nTotal"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 7, 8)); - ws.GetRow(rowIndex + 6).GetCell(7).SetCellValue("固定口数\r\nField Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 9, 10)); - ws.GetRow(rowIndex + 6).GetCell(9).SetCellValue("焊工代号\r\nWelder No."); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 11, 12)); - ws.GetRow(rowIndex + 6).GetCell(11).SetCellValue("施焊数量\r\nWelded Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 13, 14)); - ws.GetRow(rowIndex + 6).GetCell(13).SetCellValue("总数\r\nTotal Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 15, 16)); - ws.GetRow(rowIndex + 6).GetCell(15).SetCellValue("固定口数\r\nField Joints"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 17, 19)); - ws.GetRow(rowIndex + 6).GetCell(17).SetCellValue("Actual exam. Rate"); - - ws.GetRow(rowIndex + 6).GetCell(20).SetCellValue("Examination Report No."); - RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex + 5, rowIndex + 5, 17, 20), ws); - RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 6, rowIndex + 6, 17, 20), ws); - - //这里创建行数据 17-16 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 7, rowIndex + 16, style, 0, 20, true); - for (int i = 7; i < 16; i++) + SqlParameter[] parms = { - ws.GetRow(rowIndex + i).Height = 28 * 20; - if (i == 7) + new SqlParameter("@PTPID",this.tvControlItem.SelectedNodeID), + new SqlParameter("@projectId",this.CurrUser.LoginProjectId) + }; + DataTable tb=SQLHelper.GetDataTableRunText(sql, parms); + var tbNum =tb.Rows.Count; + var pageNum = + tbNum < 8 ? 1 + : Math.Ceiling((float)(tbNum - 8) / 8) + 1; + int rowIndex = 0; + for (int i = 1; i <= pageNum; i++) + { + #region 头部 + var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 10.5, true, false, "宋体"); + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 4, style, 0, 20, true); + + //设置列宽 + ws.SetColumnWidth(0, 13 * 256); + ws.SetColumnWidth(1, 6 * 256); + ws.SetColumnWidth(2, 21 * 256); + ws.SetColumnWidth(3, 6 * 256); + ws.SetColumnWidth(4, 7 * 256); + ws.SetColumnWidth(5, 7 * 256); + ws.SetColumnWidth(6, 7 * 256); + ws.SetColumnWidth(7, 7 * 256); + ws.SetColumnWidth(8, 7 * 256); + ws.SetColumnWidth(9, 7 * 256); + ws.SetColumnWidth(10, 7 * 256); + ws.SetColumnWidth(11, 7 * 256); + ws.SetColumnWidth(12, 7 * 256); + ws.SetColumnWidth(13, 7 * 256); + ws.SetColumnWidth(14, 7 * 256); + ws.SetColumnWidth(15, 7 * 256); + ws.SetColumnWidth(16, 7 * 256); + ws.SetColumnWidth(17, 5 * 256); + ws.SetColumnWidth(18, 7 * 256); + ws.SetColumnWidth(19, 7 * 256); + ws.SetColumnWidth(20, 25 * 256); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex, rowIndex + 3, 0, 2)); + ws.GetRow(rowIndex).GetCell(0).SetCellValue("SH/T 3503-J412-1-2007"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 3, 17)); + ws.GetRow(rowIndex).GetCell(3).SetCellValue("管道焊接接头射线检测比例确认表(一)"); + ws.GetRow(rowIndex).GetCell(3).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 16, true, true); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 2, 3, 17)); + ws.GetRow(rowIndex + 1).GetCell(3).SetCellValue("Pipeline Welding Joints Radiographic Examination Rate Confirmation Form(I)"); + ws.GetRow(rowIndex + 1).GetCell(3).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 14, true, true); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 18, 20)); + ws.GetRow(rowIndex).GetCell(18).SetCellValue($"工程名称:{info?.projectName}"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 18, 20)); + ws.GetRow(rowIndex + 1).GetCell(18).SetCellValue($"Project Name:{info.enProjectName}"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 18, 20)); + ws.GetRow(rowIndex + 2).GetCell(18).SetCellValue($"单元名称:{info.workAreaName}"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 18, 20)); + ws.GetRow(rowIndex + 3).GetCell(18).SetCellValue($"Unit Name:{info.enWorkAreaName}"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 3, 17)); + + ws.GetRow(rowIndex).GetCell(18).CellStyle = ws.GetRow(rowIndex + 1).GetCell(18).CellStyle = ws.GetRow(rowIndex + 2).GetCell(18).CellStyle = ws.GetRow(rowIndex + 3).GetCell(18).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Left, 10.5, true, false); + RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex, rowIndex, 18, 20), ws); + RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 18, 20), ws); + RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 18, 20), ws); + RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 18, 20), ws); + RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 18, 20), ws); + RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 3, rowIndex + 3, 18, 20), ws); + + + ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue($"共 {pageNum} 页 第 {i} 页"); + + ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("执行标准\r\nApplicable code"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 1, 5)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 6, 7)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 8, 15)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 16, 17)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 18, 20)); + ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("NB/T47013.2-2015"); + ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("检测方法\r\nExam. Method"); + ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("射线检测\r\nRT"); + ws.GetRow(rowIndex + 4).GetCell(16).SetCellValue("检测比例\r\nExam. Rate"); + ws.GetRow(rowIndex + 4).GetCell(18).SetCellValue("5%"); + + ws.GetRow(rowIndex).Height = 27 * 20; + ws.GetRow(rowIndex + 1).Height = 27 * 20; + ws.GetRow(rowIndex + 2).Height = 15 * 20; + ws.GetRow(rowIndex + 3).Height = 20 * 20; + ws.GetRow(rowIndex + 4).Height = 40 * 20; + + #endregion + + #region 表格部分 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 5, rowIndex + 6, style, 0, 20, true); + ws.GetRow(rowIndex + 5).Height = 29 * 20; + ws.GetRow(rowIndex + 6).Height = 43 * 20; + var dataTit = rowIndex + 7; + var dStart = 0; + var dEnd = 0; + if (i == 1) { - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + 10, 0, 1)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + 10, 2, 2)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + 10, 3, 4)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + 10, 5, 6)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + 10, 7, 8)); + dStart = 0; + dEnd = 8; } - if (i > 10) + else { - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 0, 1)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 3, 4)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 5, 6)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 7, 8)); + dStart = i == 2 ? 8 : ((i - 2) * 8) + 16; + dEnd = ((i - 1) * 8) + 8; } - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 9, 10)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 11, 12)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 13, 14)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 15, 16)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 17, 19)); + //这里创建行数据 17-16 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 7, rowIndex + 16, style, 0, 20, true); + + #region 设置表头部分 + //设置表头部分 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 6, 0, 1)); + ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("管道编号\r\nPipeline No."); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 6, 2, 2)); + ws.GetRow(rowIndex + 5).GetCell(2).SetCellValue("材质\r\nMaterial"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 3, 4)); + ws.GetRow(rowIndex + 5).GetCell(3).SetCellValue("规 格/Size"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 3, 4)); + ws.GetRow(rowIndex + 6).GetCell(3).SetCellValue("mm"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 5, 8)); + ws.GetRow(rowIndex + 5).GetCell(5).SetCellValue("管道焊接接头\r\nWelding Joints"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 9, 12)); + ws.GetRow(rowIndex + 5).GetCell(9).SetCellValue("施焊焊工\r\nWelder"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 13, 16)); + ws.GetRow(rowIndex + 5).GetCell(13).SetCellValue("检测焊接接头\r\nExanined Joints"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 17, 19)); + ws.GetRow(rowIndex + 5).GetCell(17).SetCellValue("实际检测比例"); + + ws.GetRow(rowIndex + 5).GetCell(20).SetCellValue("检测报告编号"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 5, 6)); + ws.GetRow(rowIndex + 6).GetCell(5).SetCellValue("总数\r\nTotal"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 7, 8)); + ws.GetRow(rowIndex + 6).GetCell(7).SetCellValue("固定口数\r\nField Joints"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 9, 10)); + ws.GetRow(rowIndex + 6).GetCell(9).SetCellValue("焊工代号\r\nWelder No."); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 11, 12)); + ws.GetRow(rowIndex + 6).GetCell(11).SetCellValue("施焊数量\r\nWelded Joints"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 13, 14)); + ws.GetRow(rowIndex + 6).GetCell(13).SetCellValue("总数\r\nTotal Joints"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 15, 16)); + ws.GetRow(rowIndex + 6).GetCell(15).SetCellValue("固定口数\r\nField Joints"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 17, 19)); + ws.GetRow(rowIndex + 6).GetCell(17).SetCellValue("Actual exam. Rate"); + + ws.GetRow(rowIndex + 6).GetCell(20).SetCellValue("Examination Report No."); + RegionUtil.SetBorderBottom(0, new CellRangeAddress(rowIndex + 5, rowIndex + 5, 17, 20), ws); + RegionUtil.SetBorderTop(0, new CellRangeAddress(rowIndex + 6, rowIndex + 6, 17, 20), ws); + + #endregion + + for (int k = rowIndex + 7; k < rowIndex + 16; k++) + { + ws.GetRow(k).Height = 28 * 20; + ws.AddMergedRegion(new CellRangeAddress(k, k, 0, 1)); + ws.AddMergedRegion(new CellRangeAddress(k, k, 3, 4)); + ws.AddMergedRegion(new CellRangeAddress(k, k, 5, 6)); + ws.AddMergedRegion(new CellRangeAddress(k, k, 7, 8)); + ws.AddMergedRegion(new CellRangeAddress(k, k, 9, 10)); + ws.AddMergedRegion(new CellRangeAddress(k, k, 11, 12)); + ws.AddMergedRegion(new CellRangeAddress(k, k, 13, 14)); + ws.AddMergedRegion(new CellRangeAddress(k, k, 15, 16)); + ws.AddMergedRegion(new CellRangeAddress(k, k, 17, 19)); + } + + //获取当前页数据 + 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(2).SetCellValue(dr["MaterialCode"].ToString()); + ws.GetRow(dataIndex).GetCell(3).SetCellValue(dr["Specification"].ToString()); + ws.GetRow(dataIndex).GetCell(5).SetCellValue(dr["totalNum"].ToString()); + ws.GetRow(dataIndex).GetCell(7).SetCellValue(dr["Fnum"].ToString()); + ws.GetRow(dataIndex).GetCell(9).SetCellValue(dr["WelderCode"].ToString()); + ws.GetRow(dataIndex).GetCell(11).SetCellValue(dr["Fnum"].ToString()); + ws.GetRow(dataIndex).GetCell(13).SetCellValue(dr["NdeNum"].ToString()); + ws.GetRow(dataIndex).GetCell(15).SetCellValue(dr["FNdeNum"].ToString()); + string a = string.IsNullOrEmpty(dr["NdeNum"].ToString())?"0": dr["NdeNum"].ToString(); + string b= string.IsNullOrEmpty(dr["Fnum"].ToString()) ? "0" : dr["Fnum"].ToString(); + + if (b == "0") + { + ws.GetRow(dataIndex).GetCell(17).SetCellValue("0%"); + } + else + { + decimal rate = Math.Round((decimal.Parse(a) / decimal.Parse(b)), 2); + ws.GetRow(dataIndex).GetCell(17).SetCellValue($"{rate * 100}%"); + } + ws.GetRow(dataIndex).GetCell(20).SetCellValue(dr["NdeCode"].ToString()); + //模拟数据 + j++; + } + + ws.GetRow(rowIndex + 15).GetCell(0).SetCellValue("小计\r\nTotal"); + + #endregion + + #region 尾部 + + ws.GetRow(rowIndex + 16).GetCell(0).SetCellValue("备注\r\nRemark"); + ws.GetRow(rowIndex + 16).GetCell(1).SetCellValue("焊口位置与检测焊口见管道单线图与无损检测报告。\r\nPlease refer to Pipeline Iso-drawing and NDE Report for joints position and examined joints."); + ws.GetRow(rowIndex + 16).GetCell(1).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Left, 10.5, true, false); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 1, 20)); + ws.GetRow(rowIndex + 16).Height = 29 * 20; + + + style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Left, 10.5, true, false); + var style1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 10.5, true, false); + var style2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Bottom, NPOI.SS.UserModel.HorizontalAlignment.Left, 10.5, true, false); + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 17, rowIndex + 23, style, 0, 20, true); + + ws.GetRow(rowIndex + 17).GetCell(20).CellStyle = style1; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 0, 3)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 4, 9)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 10, 16)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 17, 20)); + + ws.GetRow(rowIndex + 17).GetCell(0).SetCellValue("建设/监理单位\r\nOwner/Supervision Contractor"); + ws.GetRow(rowIndex + 17).GetCell(4).SetCellValue("总承包单位\r\nGeneral Contractor"); + ws.GetRow(rowIndex + 17).GetCell(10).SetCellValue("检 测 单 位\r\nExamination Contractor"); + ws.GetRow(rowIndex + 17).GetCell(17).SetCellValue("施 工 单 位\r\nConstruction Company"); + ws.GetRow(rowIndex + 17).GetCell(0).CellStyle = ws.GetRow(rowIndex + 17).GetCell(4).CellStyle = ws.GetRow(rowIndex + 17).GetCell(10).CellStyle = ws.GetRow(rowIndex + 17).GetCell(17).CellStyle = style1; + ws.GetRow(rowIndex + 17).Height = 33 * 20; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 0, 3)); + ws.GetRow(rowIndex + 18).GetCell(0).SetCellValue("专业工程师\r\nDiscipline Engineer:"); + ws.GetRow(rowIndex + 18).Height = 31 * 20; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 4, 9)); + ws.GetRow(rowIndex + 18).GetCell(4).SetCellValue("专业工程师\r\nDiscipline Engineer:"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 10, 16)); + ws.GetRow(rowIndex + 18).GetCell(10).SetCellValue("专业工程师\r\nDiscipline Engineer:"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 17, 20)); + ws.GetRow(rowIndex + 18).GetCell(17).SetCellValue("专业工程师\r\nDiscipline Engineer:"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 20, rowIndex + 20, 17, 20)); + ws.GetRow(rowIndex + 20).GetCell(17).SetCellValue("质量检查员:\r\nQuality Inspector:"); + ws.GetRow(rowIndex + 20).Height = 31 * 20; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 22, rowIndex + 22, 17, 20)); + ws.GetRow(rowIndex + 22).GetCell(17).SetCellValue("制表:\r\nPrepared:"); + ws.GetRow(rowIndex + 22).Height = 31 * 20; + + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 23, rowIndex + 23, 0, 3)); + ws.GetRow(rowIndex + 23).GetCell(0).SetCellValue("日期Date: 年 月 日"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 23, rowIndex + 23, 4, 9)); + ws.GetRow(rowIndex + 23).GetCell(4).SetCellValue("日期Date: 年 月 日"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 23, rowIndex + 23, 10, 16)); + ws.GetRow(rowIndex + 23).GetCell(10).SetCellValue("日期Date: 年 月 日"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 23, rowIndex + 23, 17, 20)); + ws.GetRow(rowIndex + 23).GetCell(17).SetCellValue("日期Date: 年 月 日"); + ws.GetRow(rowIndex + 23).Height = 29 * 20; + + ws.GetRow(rowIndex + 23).GetCell(0).CellStyle = ws.GetRow(rowIndex + 23).GetCell(4).CellStyle = ws.GetRow(rowIndex + 23).GetCell(10).CellStyle = ws.GetRow(rowIndex + 23).GetCell(17).CellStyle = style2; + + ws.GetRow(rowIndex + 19).Height = ws.GetRow(rowIndex + 21).Height = 14 * 20; + + + RegionUtil.SetBorderTop(1, new CellRangeAddress(rowIndex + 18, rowIndex + 18, 0, 20), ws); + RegionUtil.SetBorderLeft(1, new CellRangeAddress(rowIndex + 18, rowIndex + 23, 0, 0), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 23, 20, 20), ws); + RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 18, rowIndex + 23, 0, 20), ws); + + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 23, 3, 3), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 23, 9, 9), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 23, 16, 16), ws); + + #endregion + rowIndex = rowIndex + 26; } - //这里循环数据 - ws.GetRow(rowIndex + 15).GetCell(0).SetCellValue("小计\r\nTotal"); - //模拟数据 - ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("1701-130-9062.058-0000"); - ws.GetRow(rowIndex + 7).GetCell(2).SetCellValue("A53-B"); - ws.GetRow(rowIndex + 7).GetCell(3).SetCellValue("114"); - ws.GetRow(rowIndex + 7).GetCell(5).SetCellValue("18"); - ws.GetRow(rowIndex + 7).GetCell(7).SetCellValue("1"); - ws.GetRow(rowIndex + 7).GetCell(9).SetCellValue("W7004"); - ws.GetRow(rowIndex + 8).GetCell(9).SetCellValue("W7010"); - ws.GetRow(rowIndex + 9).GetCell(9).SetCellValue("W7011"); - ws.GetRow(rowIndex + 10).GetCell(9).SetCellValue("W7013"); - - ws.GetRow(rowIndex + 7).GetCell(11).SetCellValue("6"); - ws.GetRow(rowIndex + 8).GetCell(11).SetCellValue("3"); - ws.GetRow(rowIndex + 9).GetCell(11).SetCellValue("6"); - ws.GetRow(rowIndex + 10).GetCell(11).SetCellValue("1"); - - ws.GetRow(rowIndex + 7).GetCell(13).SetCellValue("1"); - ws.GetRow(rowIndex + 8).GetCell(13).SetCellValue("3"); - ws.GetRow(rowIndex + 9).GetCell(13).SetCellValue("6"); - ws.GetRow(rowIndex + 10).GetCell(13).SetCellValue("1"); - - ws.GetRow(rowIndex + 7).GetCell(15).SetCellValue("0"); - ws.GetRow(rowIndex + 8).GetCell(15).SetCellValue("0"); - ws.GetRow(rowIndex + 9).GetCell(15).SetCellValue("0"); - ws.GetRow(rowIndex + 10).GetCell(15).SetCellValue("1"); - - ws.GetRow(rowIndex + 7).GetCell(17).SetCellValue("16.87%"); - ws.GetRow(rowIndex + 8).GetCell(17).SetCellValue("100.00%"); - ws.GetRow(rowIndex + 9).GetCell(17).SetCellValue("100.00%"); - ws.GetRow(rowIndex + 10).GetCell(17).SetCellValue("50.00%"); - - ws.GetRow(rowIndex + 7).GetCell(20).SetCellValue("RT-0010"); - ws.GetRow(rowIndex + 8).GetCell(20).SetCellValue("RT-009\r\nRT-0010"); - ws.GetRow(rowIndex + 9).GetCell(20).SetCellValue("RT-0010"); - ws.GetRow(rowIndex + 10).GetCell(20).SetCellValue("RT-037"); - - #endregion - - #region 尾部 - - ws.GetRow(rowIndex + 16).GetCell(0).SetCellValue("备注\r\nRemark"); - ws.GetRow(rowIndex + 16).GetCell(1).SetCellValue("焊口位置与检测焊口见管道单线图与无损检测报告。\r\nPlease refer to Pipeline Iso-drawing and NDE Report for joints position and examined joints."); - ws.GetRow(rowIndex + 16).GetCell(1).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Left, 10.5, true, false); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 1, 20)); - ws.GetRow(rowIndex + 16).Height = 29 * 20; - - - style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Left, 10.5, true, false); - var style1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 10.5, true, false); - var style2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Bottom, NPOI.SS.UserModel.HorizontalAlignment.Left, 10.5, true, false); - - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 17, rowIndex + 23, style, 0, 20, true); - - ws.GetRow(rowIndex + 17).GetCell(20).CellStyle = style1; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 0, 3)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 4, 9)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 10, 16)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 17, 20)); - - ws.GetRow(rowIndex + 17).GetCell(0).SetCellValue("建设/监理单位\r\nOwner/Supervision Contractor"); - ws.GetRow(rowIndex + 17).GetCell(4).SetCellValue("总承包单位\r\nGeneral Contractor"); - ws.GetRow(rowIndex + 17).GetCell(10).SetCellValue("检 测 单 位\r\nExamination Contractor"); - ws.GetRow(rowIndex + 17).GetCell(17).SetCellValue("施 工 单 位\r\nConstruction Company"); - ws.GetRow(rowIndex + 17).GetCell(0).CellStyle = ws.GetRow(rowIndex + 17).GetCell(4).CellStyle = ws.GetRow(rowIndex + 17).GetCell(10).CellStyle = ws.GetRow(rowIndex + 17).GetCell(17).CellStyle = style1; - ws.GetRow(rowIndex + 17).Height = 33 * 20; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 0, 3)); - ws.GetRow(rowIndex + 18).GetCell(0).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - ws.GetRow(rowIndex + 18).Height = 31 * 20; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 4, 9)); - ws.GetRow(rowIndex + 18).GetCell(4).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 10, 16)); - ws.GetRow(rowIndex + 18).GetCell(10).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 17, 20)); - ws.GetRow(rowIndex + 18).GetCell(17).SetCellValue("专业工程师\r\nDiscipline Engineer:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 20, rowIndex + 20, 17, 20)); - ws.GetRow(rowIndex + 20).GetCell(17).SetCellValue("质量检查员:\r\nQuality Inspector:"); - ws.GetRow(rowIndex + 20).Height = 31 * 20; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 22, rowIndex + 22, 17, 20)); - ws.GetRow(rowIndex + 22).GetCell(17).SetCellValue("制表:\r\nPrepared:"); - ws.GetRow(rowIndex + 22).Height = 31 * 20; - - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 23, rowIndex + 23, 0, 3)); - ws.GetRow(rowIndex + 23).GetCell(0).SetCellValue("日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 23, rowIndex + 23, 4, 9)); - ws.GetRow(rowIndex + 23).GetCell(4).SetCellValue("日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 23, rowIndex + 23, 10, 16)); - ws.GetRow(rowIndex + 23).GetCell(10).SetCellValue("日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 23, rowIndex + 23, 17, 20)); - ws.GetRow(rowIndex + 23).GetCell(17).SetCellValue("日期Date: 年 月 日"); - ws.GetRow(rowIndex + 23).Height = 29 * 20; - - ws.GetRow(rowIndex + 23).GetCell(0).CellStyle = ws.GetRow(rowIndex + 23).GetCell(4).CellStyle = ws.GetRow(rowIndex + 23).GetCell(10).CellStyle = ws.GetRow(rowIndex + 23).GetCell(17).CellStyle = style2; - - ws.GetRow(rowIndex + 19).Height = ws.GetRow(rowIndex + 21).Height = 14 * 20; - - - RegionUtil.SetBorderTop(1, new CellRangeAddress(rowIndex + 18, rowIndex + 18, 0, 20), ws); - RegionUtil.SetBorderLeft(1, new CellRangeAddress(rowIndex + 18, rowIndex + 23, 0, 0), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 23, 20, 20), ws); - RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 18, rowIndex + 23, 0, 20), ws); - - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 23, 3, 3), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 23, 9, 9), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 23, 16, 16), ws); - - #endregion ws.PrintSetup.FitWidth = 1; ws.PrintSetup.FitHeight = 0; @@ -3709,6 +3850,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //23-TP-09-超声&PAUT&TOFD检测比例确认表 private void template23(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); #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; @@ -3759,7 +3901,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage ws.GetRow(rowIndex + 1).GetCell(18).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 10, true, false); - ws.GetRow(rowIndex + 1).GetCell(18).SetCellValue("工程名称:巴斯夫(广东)一体化项目专用化学品二区\nProject Name:BASF (Guangdong) Integrated Project\n单元名称:Citral\nUnit Name:Citral"); + ws.GetRow(rowIndex + 1).GetCell(18).SetCellValue($"工程名称:{info?.projectName}\nProject Name:{info?.enProjectName}\n单元名称:{info?.workAreaName}\nUnit Name:{info?.enWorkAreaName}"); ws.GetRow(rowIndex + 4).GetCell(3).SetCellValue("共 1 页 第 1 页"); @@ -3947,6 +4089,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //24-TP-10-渗透&MT检测比例确认表 private void template24(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); 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 头部 @@ -3985,7 +4128,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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"); ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 18, 20)); ws.GetRow(rowIndex + 1).GetCell(18).CellStyle = style2; - ws.GetRow(rowIndex + 1).GetCell(18).SetCellValue("\n 工程名称:巴斯夫(广东)一体化项目\n Project Name:BASF (Guangdong) Integrated Project\n 单元名称:Citral\n Unit Name:Citral"); + ws.GetRow(rowIndex + 1).GetCell(18).SetCellValue($"\n工程名称:{info?.projectName}\n Project Name:{info?.enProjectName}\n 单元名称:{info?.workAreaName}\n Unit Name:{info?.enWorkAreaName}"); ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("执行标准\nApplicable code"); @@ -4153,6 +4296,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //24-TP-10-渗透&MT检测比例确认表 private void template25_1(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); 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 头部 @@ -4191,7 +4335,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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"); ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 18, 20)); ws.GetRow(rowIndex + 1).GetCell(18).CellStyle = style2; - ws.GetRow(rowIndex + 1).GetCell(18).SetCellValue("\n 工程名称:巴斯夫(广东)一体化项目\n Project Name:BASF (Guangdong) Integrated Project\n 单元名称:Citral\n Unit Name:Citral"); + ws.GetRow(rowIndex + 1).GetCell(18).SetCellValue($"\n工程名称:{info?.projectName}\n Project Name:{info?.enProjectName}\n 单元名称:{info?.workAreaName}\n Unit Name:{info?.enWorkAreaName}"); ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("执行标准\nApplicable code"); @@ -4359,218 +4503,348 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //25-管道无损检测结果汇总表SHT 3503-J412-2017 private void template25(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); 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 头部 - - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 3, style, 1, 18, true); - ws.SetColumnWidth(0, 2 * 256); - ws.SetColumnWidth(1, 10 * 256); - ws.SetColumnWidth(2, 8 * 256); - ws.SetColumnWidth(3, 8 * 256); - ws.SetColumnWidth(4, 8 * 256); - ws.SetColumnWidth(5, 8 * 256); - ws.SetColumnWidth(6, 10 * 256); - ws.SetColumnWidth(7, 8 * 256); - ws.SetColumnWidth(8, 8 * 256); - ws.SetColumnWidth(9, 8 * 256); - ws.SetColumnWidth(10, 8 * 256); - ws.SetColumnWidth(11, 10 * 256); - ws.SetColumnWidth(12, 8 * 256); - ws.SetColumnWidth(13, 8 * 256); - ws.SetColumnWidth(14, 8 * 256); - ws.SetColumnWidth(15, 10 * 256); - ws.SetColumnWidth(16, 8 * 256); - ws.SetColumnWidth(17, 8 * 256); - ws.SetColumnWidth(18, 8 * 256); - ws.GetRow(1).Height = 20 * 20 * 5; - ws.GetRow(2).Height = 20 * 20 * 2; - ws.GetRow(3).Height = 20 * 20 * 2; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 1, 5)); - ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("SH/T 3503-J412-1"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 6, 13)); - 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 + 1).GetCell(6).CellStyle = style1; - ws.GetRow(rowIndex + 1).GetCell(6).SetCellValue("管道无损检测结果汇总表\nSummary of Piping NDT Results\n第 页 共 页 Page of "); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 14, 18)); - var style2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 10, false, false, "Arial Unicode MS"); - style2.WrapText = true; - ws.GetRow(rowIndex + 1).GetCell(14).CellStyle = style2; - ws.GetRow(rowIndex + 1).GetCell(14).SetCellValue("工程名称:\nProject Name:\n\n\n\n单位工程名称:\nUnit Name:"); - - ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue("Supervision Contractor"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 2, 5)); - - ws.GetRow(rowIndex + 2).GetCell(6).SetCellValue("Construction Contractor"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 7, 10)); - - ws.GetRow(rowIndex + 2).GetCell(11).SetCellValue("Test Criteria"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 12, 14)); - - ws.GetRow(rowIndex + 2).GetCell(15).SetCellValue("Piping Class"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 16, 18)); - - ws.GetRow(rowIndex + 3).GetCell(1).SetCellValue("Area No."); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 2, 4)); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 6)); - ws.GetRow(rowIndex + 3).GetCell(5).SetCellValue("Test Type No."); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 7, 10)); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 11, 12)); - ws.GetRow(rowIndex + 3).GetCell(11).SetCellValue("Piping No."); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 13, 18)); - - #endregion - - #region 表格部分 - 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"); - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 4, rowIndex + 16, style, 1, 18, true); - - //第一部分表格部分 - ws.GetRow(rowIndex + 4).Height = 18 * 20 * 2; - ws.GetRow(rowIndex + 5).Height = 18 * 20 * 2; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 5, 1, 1)); - ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("Test Method"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 2, 9)); - ws.GetRow(rowIndex + 4).GetCell(2).SetCellValue("Test Quantity Statistics\n(RT Unit:Weld/Film;UT/MT/PT/ Unit:Weld/Meter)"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 10, 18)); - ws.GetRow(rowIndex + 4).GetCell(10).SetCellValue("Non-conformity Statistics\n(RT Unit:Weld/Film;UT/MT/PT/ Unit:Weld/Meter)"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 2, 3)); - ws.GetRow(rowIndex + 5).GetCell(2).SetCellValue("Butt-welded Joint"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 4, 5)); - ws.GetRow(rowIndex + 5).GetCell(4).SetCellValue("Fillet-welded Joint"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 6, 7)); - ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue("Branch Connection"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 8, 9)); - ws.GetRow(rowIndex + 5).GetCell(8).SetCellValue("Groove & Others"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 10, 11)); - ws.GetRow(rowIndex + 5).GetCell(10).SetCellValue("Butt-welded Joint"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 12, 13)); - ws.GetRow(rowIndex + 5).GetCell(12).SetCellValue("Fillet-welded Joint"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 14, 15)); - ws.GetRow(rowIndex + 5).GetCell(14).SetCellValue("Branch Connection"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 16, 18)); - ws.GetRow(rowIndex + 5).GetCell(16).SetCellValue("Groove & Others"); - - ws.GetRow(rowIndex + 6).GetCell(1).SetCellValue("RT"); - ws.GetRow(rowIndex + 7).GetCell(1).SetCellValue("UT"); - ws.GetRow(rowIndex + 8).GetCell(1).SetCellValue("MT"); - ws.GetRow(rowIndex + 9).GetCell(1).SetCellValue("PT"); - - - for (int i = 6; i < 11; i++) + string sql = @"SELECT ROW_NUMBER() OVER(ORDER BY c.PipelineCode,c.WeldJointCode) AS Number, + c.PipelineCode,c.WeldJointCode, c.WelderCode,'/' AS PointBatchCode, '/' AS Remark, + (CASE WHEN c.DetectionTypeCode='RT' THEN c.NDEReportNo ELSE '' END) AS RTNDEReportNo, + (CASE WHEN c.DetectionTypeCode='RT' THEN c.CheckResult ELSE '' END) AS RTCheckResult, + (CASE WHEN c.DetectionTypeCode<>'RT' THEN c.NDEReportNo ELSE '' END) AS PTNDEReportNo, + (CASE WHEN c.DetectionTypeCode<>'RT' THEN c.CheckResult ELSE '' END) AS PTCheckResult + FROM dbo.View_CheckResultSummary c + WHERE c.WeldJointId IN + (SELECT + c.WeldJointId + FROM dbo.PTP_TestPackage AS a + INNER JOIN dbo.PTP_PipelineList AS b + ON a.PTP_ID=b.PTP_ID + LEFT JOIN dbo.Pipeline_WeldJoint AS C + ON b.PipelineId=c.PipelineId + WHERE b.isAll=1 AND a.PTP_ID=@PTPID and a.ProjectId=@ProjectId -- 传试压包ID参数 + UNION ALL + SELECT + c.WeldJointId + FROM dbo.PTP_TestPackage AS a + INNER JOIN dbo.PTP_PipelineList AS b + ON a.PTP_ID=b.PTP_ID + LEFT JOIN dbo.Pipeline_WeldJoint AS C + ON b.PipelineId=c.PipelineId + WHERE b.isAll=0 AND a.PTP_ID=@PTPID and a.ProjectId=@ProjectId -- 传试压包ID参数 + AND PATINDEX('%'+c.WeldJointCode+'%',b.WeldJonintCode)>0) + "; + SqlParameter[] parms = { - ws.GetRow(i).Height = 18 * 20; + new SqlParameter("@PTPID",this.tvControlItem.SelectedNodeID), + new SqlParameter("@ProjectId",this.CurrUser.LoginProjectId) + }; + DataTable tb = SQLHelper.GetDataTableRunText(sql, parms); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 2, 3)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 4, 5)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 6, 7)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 8, 9)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 10, 11)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 12, 13)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 14, 15)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 16, 18)); - if (i == 10) - continue; + - if (i == 6 || i == 7) + var tbNum = tb.Rows.Count; + var pageNum = + tbNum < 5 ? 1 + : Math.Ceiling((float)(tbNum - 5) / 5) + 1; + for (int i = 1; i <= pageNum; i++) + { + #region 头部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 3, style, 1, 18, true); + ws.SetColumnWidth(0, 2 * 256); + ws.SetColumnWidth(1, 10 * 256); + ws.SetColumnWidth(2, 8 * 256); + ws.SetColumnWidth(3, 8 * 256); + ws.SetColumnWidth(4, 8 * 256); + ws.SetColumnWidth(5, 8 * 256); + ws.SetColumnWidth(6, 10 * 256); + ws.SetColumnWidth(7, 8 * 256); + ws.SetColumnWidth(8, 8 * 256); + ws.SetColumnWidth(9, 8 * 256); + ws.SetColumnWidth(10, 8 * 256); + ws.SetColumnWidth(11, 10 * 256); + ws.SetColumnWidth(12, 8 * 256); + ws.SetColumnWidth(13, 8 * 256); + ws.SetColumnWidth(14, 8 * 256); + ws.SetColumnWidth(15, 10 * 256); + ws.SetColumnWidth(16, 8 * 256); + ws.SetColumnWidth(17, 8 * 256); + ws.SetColumnWidth(18, 10 * 256); + ws.GetRow(1).Height = 85 * 20; + ws.GetRow(2).Height = 20 * 20 * 2; + ws.GetRow(3).Height = 20 * 20 * 2; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 1, 5)); + ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("SH/T 3503-J412-1"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 6, 13)); + 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 + 1).GetCell(6).CellStyle = style1; + ws.GetRow(rowIndex + 1).GetCell(6).SetCellValue("管道无损检测结果汇总表\nSummary of Piping NDT Results\n第 页 共 页 Page of "); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 14, 18)); + var style2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 10, false, false, "Arial Unicode MS"); + style2.WrapText = true; + ws.GetRow(rowIndex + 1).GetCell(14).CellStyle = style2; + ws.GetRow(rowIndex + 1).GetCell(14).SetCellValue($"工程名称:{info?.projectName}\nProject Name:{info?.enProjectName}\n单位工程名称:{info?.workAreaName}\nUnit Name:{info?.enWorkAreaName}"); + + ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue("Supervision Contractor"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 2, 5)); + + ws.GetRow(rowIndex + 2).GetCell(6).SetCellValue("Construction Contractor"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 7, 10)); + + ws.GetRow(rowIndex + 2).GetCell(11).SetCellValue("Test Criteria"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 12, 14)); + + ws.GetRow(rowIndex + 2).GetCell(15).SetCellValue("Piping Class"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 16, 18)); + + ws.GetRow(rowIndex + 3).GetCell(1).SetCellValue("Area No."); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 2, 4)); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 6)); + ws.GetRow(rowIndex + 3).GetCell(5).SetCellValue("Test Type No."); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 7, 10)); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 11, 12)); + ws.GetRow(rowIndex + 3).GetCell(11).SetCellValue("Piping No."); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 13, 18)); + + #endregion + + #region 表格部分 + 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"); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 4, rowIndex + 16, style, 1, 18, true); + + //第一部分表格部分 + ws.GetRow(rowIndex + 4).Height = 18 * 20 * 2; + ws.GetRow(rowIndex + 5).Height = 18 * 20 * 2; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 5, 1, 1)); + ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("Test Method"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 2, 9)); + ws.GetRow(rowIndex + 4).GetCell(2).SetCellValue("Test Quantity Statistics\n(RT Unit:Weld/Film;UT/MT/PT/ Unit:Weld/Meter)"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 10, 18)); + ws.GetRow(rowIndex + 4).GetCell(10).SetCellValue("Non-conformity Statistics\n(RT Unit:Weld/Film;UT/MT/PT/ Unit:Weld/Meter)"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 2, 3)); + ws.GetRow(rowIndex + 5).GetCell(2).SetCellValue("Butt-welded Joint"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 4, 5)); + ws.GetRow(rowIndex + 5).GetCell(4).SetCellValue("Fillet-welded Joint"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 6, 7)); + ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue("Branch Connection"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 8, 9)); + ws.GetRow(rowIndex + 5).GetCell(8).SetCellValue("Groove & Others"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 10, 11)); + ws.GetRow(rowIndex + 5).GetCell(10).SetCellValue("Butt-welded Joint"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 12, 13)); + ws.GetRow(rowIndex + 5).GetCell(12).SetCellValue("Fillet-welded Joint"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 14, 15)); + ws.GetRow(rowIndex + 5).GetCell(14).SetCellValue("Branch Connection"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 5, 16, 18)); + ws.GetRow(rowIndex + 5).GetCell(16).SetCellValue("Groove & Others"); + + ws.GetRow(rowIndex + 6).GetCell(1).SetCellValue("RT"); + ws.GetRow(rowIndex + 7).GetCell(1).SetCellValue("UT"); + ws.GetRow(rowIndex + 8).GetCell(1).SetCellValue("MT"); + ws.GetRow(rowIndex + 9).GetCell(1).SetCellValue("PT"); + //第二部分表格部分 + ws.GetRow(rowIndex + 11).Height = 20 * 20 * 3; + + var qq = from x in Funs.DB.View_CheckResultSummary where x.PTP_ID == this.PTP_ID select x; + + // 合格 + var rt = qq.Where(x => x.DetectionTypeCode == "RT" && x.CheckResult == "合格"); + string bRt = "/"; + if (rt.Count() > 0) { - ws.GetRow(rowIndex + i).GetCell(4).SetCellValue("-"); - ws.GetRow(rowIndex + i).GetCell(12).SetCellValue("-"); + bRt = rt.Count().ToString() + "/" + rt.Sum(x => x.TotalFilm).ToString(); + } + + var jpt = qq.Where(x => x.DetectionTypeCode == "PT" && x.CheckResult == "合格" && x.WeldType == "2"); + string ptj = "/"; + if (jpt.Count() > 0) + { + ptj = jpt.Count().ToString(); + } + + var zpt = qq.Where(x => x.DetectionTypeCode == "PT" && x.CheckResult == "合格" && x.WeldType == "3"); + string ptz = "/"; + if (zpt.Count() > 0) + { + ptz = zpt.Count().ToString(); + } + + // 不合格 + var nrt = qq.Where(x => x.DetectionTypeCode == "RT" && x.CheckResult == "不合格"); + + string nbRt = "/"; + if (nrt.Count() > 0) + { + nbRt = nrt.Count().ToString() + "/" + nrt.Sum(x => x.TotalFilm).ToString(); + } + + var njpt = qq.Where(x => x.DetectionTypeCode == "PT" && x.CheckResult == "不合格" && x.WeldType == "2"); + string nptj = "/"; + if (njpt.Count() > 0) + { + nptj = njpt.Count().ToString(); + } + + var nzpt = qq.Where(x => x.DetectionTypeCode == "PT" && x.CheckResult == "不合格" && x.WeldType == "3"); + string nptz = "/"; + if (nzpt.Count() > 0) + { + nptz = nzpt.Count().ToString(); + } + for (int k = 6; k < 11; k++) + { + ws.AddMergedRegion(new CellRangeAddress(k,k,2,3)); + ws.AddMergedRegion(new CellRangeAddress(k, k, 4, 5)); + ws.AddMergedRegion(new CellRangeAddress(k, k, 6, 7)); + ws.AddMergedRegion(new CellRangeAddress(k, k, 8, 9)); + ws.AddMergedRegion(new CellRangeAddress(k, k, 10,11)); + ws.AddMergedRegion(new CellRangeAddress(k, k, 12, 13)); + ws.AddMergedRegion(new CellRangeAddress(k, k, 14, 15)); + ws.AddMergedRegion(new CellRangeAddress(k, k, 16, 18)); + ws.GetRow(k).Height = 18 * 20; + if (k == 10) + break; + //RT值 + if (k == 6) + { + ws.GetRow(rowIndex + k).GetCell(2).SetCellValue(bRt); + ws.GetRow(rowIndex + k).GetCell(10).SetCellValue(nbRt); + } + else + { + ws.GetRow(rowIndex + k).GetCell(2).SetCellValue("/"); + } + if (k == 9) + { + ws.GetRow(rowIndex + k).GetCell(4).SetCellValue(ptj); + ws.GetRow(rowIndex + k).GetCell(6).SetCellValue(ptz); + ws.GetRow(rowIndex + k).GetCell(12).SetCellValue(nptj); + ws.GetRow(rowIndex + k).GetCell(14).SetCellValue(nptz); + } + if (k == 6 || k == 7) + { + ws.GetRow(rowIndex + k).GetCell(4).SetCellValue("-"); + ws.GetRow(rowIndex + k).GetCell(12).SetCellValue("-"); + } + + ws.GetRow(rowIndex + k).GetCell(6).SetCellValue("/"); + ws.GetRow(rowIndex + k).GetCell(8).SetCellValue("/"); + ws.GetRow(rowIndex + k).GetCell(16).SetCellValue("/"); + } + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 1, 2)); + ws.GetRow(rowIndex + 11).GetCell(1).SetCellValue("Line No."); + + ws.GetRow(rowIndex + 11).GetCell(3).SetCellValue("weld No."); + ws.GetRow(rowIndex + 11).GetCell(4).SetCellValue("Welder's Stamp No."); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 5, 6)); + ws.GetRow(rowIndex + 11).GetCell(5).SetCellValue("Test Lot No."); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 7, 8)); + ws.GetRow(rowIndex + 11).GetCell(7).SetCellValue("RT/UT Result"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 9, 10)); + ws.GetRow(rowIndex + 11).GetCell(9).SetCellValue("Report No."); + ws.GetRow(rowIndex + 11).GetCell(11).SetCellValue("MT/PT Result"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 12, 13)); + ws.GetRow(rowIndex + 11).GetCell(12).SetCellValue("Report No."); + ws.GetRow(rowIndex + 11).GetCell(14).SetCellValue("Result"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 15, 16)); + ws.GetRow(rowIndex + 11).GetCell(15).SetCellValue("Report No."); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 17, 18)); + ws.GetRow(rowIndex + 11).GetCell(17).SetCellValue("Remarks"); + var dataTit = rowIndex + 12; + var dStart = 0; + var dEnd = 0; + if (i == 1) + { + dStart = 0; + dEnd = 5; } else { - ws.GetRow(rowIndex + i).GetCell(4).SetCellValue("/"); - ws.GetRow(rowIndex + i).GetCell(12).SetCellValue("/"); + dStart = i == 2 ? 5 : ((i - 2) * 5) + 5; + dEnd = ((i - 1) * 5) + 5; } + //获取当前页数据 + var pageTb = GetPageToTable(tb, dStart, dEnd); + int j = 0; + for (int hb = rowIndex+12; hb < rowIndex+17; hb++) + { + ws.GetRow(hb).Height = 18 * 20; + ws.AddMergedRegion(new CellRangeAddress(hb, hb, 1, 2)); + ws.AddMergedRegion(new CellRangeAddress(hb, hb, 5, 6)); + ws.AddMergedRegion(new CellRangeAddress(hb, hb, 7, 8)); + ws.AddMergedRegion(new CellRangeAddress(hb, hb, 9, 10)); + ws.AddMergedRegion(new CellRangeAddress(hb, hb, 12, 13)); + ws.AddMergedRegion(new CellRangeAddress(hb, hb, 15, 16)); + ws.AddMergedRegion(new CellRangeAddress(hb, hb, 17, 18)); + } + foreach (DataRow dr in pageTb.Rows) + { + var dataIndex = dataTit + j; + ws.GetRow(dataIndex).GetCell(1).SetCellValue(dr["PipelineCode"].ToString()); + ws.GetRow(dataIndex).GetCell(3).SetCellValue(dr["WeldJointCode"].ToString()); + ws.GetRow(dataIndex).GetCell(4).SetCellValue(dr["WelderCode"].ToString()); + ws.GetRow(dataIndex).GetCell(5).SetCellValue(dr["PointBatchCode"].ToString()); + ws.GetRow(dataIndex).GetCell(7).SetCellValue(dr["RTCheckResult"].ToString()); + ws.GetRow(dataIndex).GetCell(9).SetCellValue(dr["RTNDEReportNo"].ToString()); + ws.GetRow(dataIndex).GetCell(11).SetCellValue(dr["PTCheckResult"].ToString()); + ws.GetRow(dataIndex).GetCell(12).SetCellValue(dr["PTNDEReportNo"].ToString()); + ws.GetRow(dataIndex).GetCell(14).SetCellValue(dr[""].ToString()); + ws.GetRow(dataIndex).GetCell(15).SetCellValue(dr[""].ToString()); + ws.GetRow(dataIndex).GetCell(17).SetCellValue(dr["Remark"].ToString()); + j++; + } + #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, rowIndex + 17, rowIndex + 17, style, 1, 18, true); + ws.GetRow(rowIndex + 17).Height = 20 * 20 * 5; + + var setStyle2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 11, false, false, "Arial Unicode MS"); + setStyle2.WrapText = true; + ws.GetRow(rowIndex + 17).GetCell(1).CellStyle = ws.GetRow(rowIndex + 17).GetCell(7).CellStyle = ws.GetRow(rowIndex + 17).GetCell(13).CellStyle = setStyle2; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 1, 6)); + ws.GetRow(rowIndex + 17).GetCell(1).SetCellValue(" Responsible Inspector:"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 7, 12)); + ws.GetRow(rowIndex + 17).GetCell(7).SetCellValue(" Technical Superintendent:\n\n\n\n\n Quality Superintendent:"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 13, 18)); + ws.GetRow(rowIndex + 17).GetCell(13).SetCellValue(" Inspection Agency: (Seal)\n\n\n\n\n Date:"); - ws.GetRow(rowIndex + i).GetCell(2).SetCellValue("/"); - ws.GetRow(rowIndex + i).GetCell(6).SetCellValue("/"); - ws.GetRow(rowIndex + i).GetCell(8).SetCellValue("/"); - ws.GetRow(rowIndex + i).GetCell(10).SetCellValue("/"); - ws.GetRow(rowIndex + i).GetCell(14).SetCellValue("/"); - ws.GetRow(rowIndex + i).GetCell(16).SetCellValue("/"); + #endregion } - //第二部分表格部分 - ws.GetRow(rowIndex + 11).Height = 20 * 20 * 3; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 1, 2)); - ws.GetRow(rowIndex + 11).GetCell(1).SetCellValue("Line No."); - - ws.GetRow(rowIndex + 11).GetCell(3).SetCellValue("weld No."); - ws.GetRow(rowIndex + 11).GetCell(4).SetCellValue("Welder's Stamp No."); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 5, 6)); - ws.GetRow(rowIndex + 11).GetCell(5).SetCellValue("Test Lot No."); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 7, 8)); - ws.GetRow(rowIndex + 11).GetCell(7).SetCellValue("RT/UT Result"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 9, 10)); - ws.GetRow(rowIndex + 11).GetCell(9).SetCellValue("Report No."); - ws.GetRow(rowIndex + 11).GetCell(11).SetCellValue("MT/PT Result"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 12, 13)); - ws.GetRow(rowIndex + 11).GetCell(12).SetCellValue("Report No."); - ws.GetRow(rowIndex + 11).GetCell(14).SetCellValue("Result"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 15, 16)); - ws.GetRow(rowIndex + 11).GetCell(15).SetCellValue("Report No."); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 17, 18)); - ws.GetRow(rowIndex + 11).GetCell(17).SetCellValue("Remarks"); - - for (int i = 12; i < 17; i++) - { - ws.GetRow(rowIndex + i).Height = 18 * 20; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 1, 2)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 5, 6)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 7, 8)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 9, 10)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 12, 13)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 15, 16)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 17, 18)); - } - #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, rowIndex + 17, rowIndex + 17, style, 1, 18, true); - ws.GetRow(rowIndex + 17).Height = 20 * 20 * 5; - - var setStyle2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 11, false, false, "Arial Unicode MS"); - setStyle2.WrapText = true; - ws.GetRow(rowIndex + 17).GetCell(1).CellStyle = ws.GetRow(rowIndex + 17).GetCell(7).CellStyle = ws.GetRow(rowIndex + 17).GetCell(13).CellStyle = setStyle2; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 1, 6)); - ws.GetRow(rowIndex + 17).GetCell(1).SetCellValue(" Responsible Inspector:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 7, 12)); - ws.GetRow(rowIndex + 17).GetCell(7).SetCellValue(" Technical Superintendent:\n\n\n\n\n Quality Superintendent:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 13, 18)); - ws.GetRow(rowIndex + 17).GetCell(13).SetCellValue(" Inspection Agency: (Seal)\n\n\n\n\n Date:"); - #endregion + ws.PrintSetup.FitWidth = 1; ws.PrintSetup.FitHeight = 0; @@ -4598,6 +4872,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //26-管道无损检测数量统计表SHT 3503-J413-2017 private void template26(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); 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"); @@ -4643,7 +4918,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage ws.GetRow(rowIndex + 1).GetCell(4).CellStyle = setStyle; ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 5, 17, 23)); - ws.GetRow(rowIndex + 1).GetCell(17).SetCellValue("工程名称: \n Projeck Name: \n \n \n 单位工程名称:\n Unit Name: "); + ws.GetRow(rowIndex + 1).GetCell(17).SetCellValue($"工程名称:{info?.projectName}\n Project Name:{info?.enProjectName}\n 单位工程名称:{info?.workAreaName}\n Unit Name:{info?.enWorkAreaName}"); var setStyle1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 11, false, false, "Arial Unicode MS"); setStyle1.WrapText = true; ws.GetRow(rowIndex + 1).GetCell(17).CellStyle = setStyle1; @@ -4784,6 +5059,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //27-TP-11-尾项清单UG-FW-001 private void template27(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); //插入图片部分 var img1 = Server.MapPath("~/res/images/bsf/1.png"); var img2 = Server.MapPath("~/res/images/bsf/2.png"); @@ -4856,7 +5132,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 19, 24)); ws.GetRow(rowIndex + 4).GetCell(19).CellStyle = style1; - ws.GetRow(rowIndex + 4).GetCell(19).SetCellValue("C400/D400"); + ws.GetRow(rowIndex + 4).GetCell(19).SetCellValue(info?.workAreaCode); ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 6, 16, 18)); @@ -4865,7 +5141,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 6, 19, 24)); ws.GetRow(rowIndex + 5).GetCell(19).CellStyle = style1; - ws.GetRow(rowIndex + 5).GetCell(19).SetCellValue("UG-130-FW-HT-001"); + ws.GetRow(rowIndex + 5).GetCell(19).SetCellValue(info?.testpackageNo); //画线 RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 6, rowIndex + 6, 0, 24), ws); RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 4, rowIndex + 4, 16, 24), ws); @@ -5007,6 +5283,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //28-TP-12-试压用水(工具)检查清单UG-FW-001 private void template28(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); //插入图片部分 var img1 = Server.MapPath("~/res/images/bsf/1.png"); var img2 = Server.MapPath("~/res/images/bsf/2.png"); @@ -5095,12 +5372,12 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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).SetCellValue(info?.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("C400"); + ws.GetRow(rowIndex + 9).GetCell(13).SetCellValue(info?.workAreaCode); ws.GetRow(rowIndex + 10).GetCell(2).SetCellValue("试压包号"); ws.GetRow(rowIndex + 10).GetCell(2).CellStyle = cellStyle2; @@ -5111,13 +5388,13 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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).SetCellValue(info?.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("2"); + ws.GetRow(rowIndex + 11).GetCell(13).SetCellValue(info?.TestPressure); ws.GetRow(rowIndex + 11).GetCell(13).CellStyle = cellStyle2; ws.GetRow(rowIndex + 12).GetCell(2).SetCellValue("系统号"); @@ -5129,7 +5406,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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).SetCellValue(info?.TestType); ws.GetRow(rowIndex + 13).GetCell(13).CellStyle = cellStyle2; ws.GetRow(rowIndex + 14).GetCell(9).SetCellValue("试验方式"); @@ -5233,7 +5510,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //32-管道系统压力试验记录SHT 3503-J406-2 private void template32(XSSFWorkbook hssfworkbook, XSSFSheet ws) { - + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); 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"); @@ -5269,7 +5546,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage style2.WrapText = true; ws.AddMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 6, 8)); ws.GetRow(rowIndex).GetCell(6).CellStyle = style2; - ws.GetRow(rowIndex).GetCell(6).SetCellValue(" 项目名称:\n Project Name:\n\n\n\n 单位名称:\n Unit Name:"); + ws.GetRow(rowIndex).GetCell(6).SetCellValue($"项目名称:{info?.projectName}\n Project Name:{info?.enProjectName}\n 单位名称:{info?.workAreaName}\n Unit Name:{info?.enWorkAreaName}"); ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("系统名称\nSystem Description"); ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 1, 3)); @@ -5361,141 +5638,214 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //33-管道吹扫清洗记录SHT 3503-J408 UG-FW-001 private void template33(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); 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++) + 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($"项目名称:{info?.projectName}\nProject Name:{info?.enProjectName}\n单位名称:{info?.workAreaName}\n Unit Name:{info?.enWorkAreaName}"); + + 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(""); + ws.GetRow(rowIndex + 4).GetCell(2).SetCellValue(""); + ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue(info?.testpackageNo); + + 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; @@ -5523,7 +5873,7 @@ 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"); - + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); #region 头部 ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 5, style, 0, 8, true); @@ -5558,7 +5908,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage style2.WrapText = true; ws.AddMergedRegion(new CellRangeAddress(rowIndex, rowIndex + 3, 6, 8)); ws.GetRow(rowIndex).GetCell(6).CellStyle = style2; - ws.GetRow(rowIndex).GetCell(6).SetCellValue(" 工程名称:\n Project Name:\n\n 单位工程名称:\n Unit Name:"); + ws.GetRow(rowIndex).GetCell(6).SetCellValue($"工程名称:{info?.projectName}\n Project Name:{info?.enProjectName}\n 单位工程名称:{info?.workAreaName}\n Unit Name:{info?.enWorkAreaName}"); ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 5, 0, 0)); ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("系统名称\nSystem Description"); @@ -5570,7 +5920,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue("系统编号\nSystem No."); ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 5, 6, 8)); - ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue(""); + ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue(info?.SystemNo); #endregion @@ -5681,7 +6031,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //35-TP-13-管道复位记录UG-FW-001 之 sheet1 private void template35_sheet1(XSSFWorkbook hssfworkbook, XSSFSheet ws) { - + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); 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"); @@ -5733,7 +6083,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage var setStyle2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 10, false, false, "Arial Unicode MS"); setStyle2.WrapText = true; ws.GetRow(rowIndex).GetCell(4).CellStyle = setStyle2; - ws.GetRow(rowIndex).GetCell(4).SetCellValue(" Project Name:BASF (Guangdong) Integrated Project\n 项目名称:巴斯夫(广东)一体化项目\n Unit Name:Citral\n 单位名称:Citral"); + ws.GetRow(rowIndex).GetCell(4).SetCellValue($"Project Name:{info?.enProjectName}\n 项目名称:{info?.projectName}\n Unit Name:{info?.enWorkAreaName}\n 单位名称:{info.workAreaName}"); ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue(" Test Package No.试压包号"); for (int i = 3; i < 8; i++) @@ -5826,7 +6176,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //35-TP-13-管道复位记录UG-FW-001 之 sheet2 private void template35_sheet2(XSSFWorkbook hssfworkbook, XSSFSheet ws) { - + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); 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"); var style1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 10, true, false, "Arial Unicode MS"); @@ -5867,7 +6217,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage setStyle2.WrapText = true; ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 2, 6, 8)); ws.GetRow(rowIndex + 1).GetCell(6).CellStyle = setStyle2; - ws.GetRow(rowIndex + 1).GetCell(6).SetCellValue("项目名称:巴斯夫(广东)一体化项目\nProject Name:BASF (Guangdong) Integrated Project\n单位名称:Citral\nUnit Name:Citral"); + ws.GetRow(rowIndex + 1).GetCell(6).SetCellValue($"项目名称:{info?.projectName}\nProject Name:{info?.enProjectName}\n单位名称:{info?.workAreaName}\nUnit Name:{info?.enWorkAreaName}"); //头部列表部分 ws.GetRow(rowIndex + 3).GetCell(0).SetCellValue("子系统名称 Subsystem Name"); @@ -5877,12 +6227,12 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 6, 8)); ws.GetRow(rowIndex + 3).GetCell(6).SetCellValue("试压包号 Test Package No."); - ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("Fire Water"); + ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue(""); ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 1, 5)); - ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("UG-FW"); + ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue(""); ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 6, 8)); - ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("UG-130-FW-HT-001"); + ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue(info.testpackageNo); #endregion @@ -5973,6 +6323,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage //36-TP-14-法兰螺栓扭矩记录表 private void template36(XSSFWorkbook hssfworkbook, XSSFSheet ws) { + var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); //插入图片部分 var img1 = Server.MapPath("~/res/images/bsf/1.png"); var img2 = Server.MapPath("~/res/images/bsf/2.png"); @@ -6033,13 +6384,13 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("试压包号\nTEST PACKAGE NO.:"); ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 7, 7, 13)); - ws.GetRow(rowIndex + 7).GetCell(7).SetCellValue("UG-130-FW-HT-001"); + ws.GetRow(rowIndex + 7).GetCell(7).SetCellValue(info?.testpackageNo); ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 7, 14, 19)); ws.GetRow(rowIndex + 7).GetCell(14).SetCellValue("系统号\nSYSTEM NO.:"); ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 7, 20, 26)); - ws.GetRow(rowIndex + 7).GetCell(20).SetCellValue("UG"); + ws.GetRow(rowIndex + 7).GetCell(20).SetCellValue(info?.SystemNo); #endregion @@ -6385,6 +6736,63 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage #region 私有方法 + public static TestPackageInfoViewModel GetTestPackageInfo(string ptpId) + { + var result = (from a in Funs.DB.PTP_TestPackage + join + b in Funs.DB.PTP_PipelineList on + a.PTP_ID equals b.PTP_ID + join c in Funs.DB.Base_Project on + a.ProjectId equals c.ProjectId + join d in Funs.DB.Project_WorkArea on + b.WorkAreaId equals d.WorkAreaId + where a.PTP_ID == ptpId + select new TestPackageInfoViewModel + { + enProjectName = c.EnProjectName, + projectName = c.ProjectName, + enWorkAreaName = d.EnWorkAreaName, + workAreaName = d.WorkAreaName, + workAreaCode = d.WorkAreaCode, + SystemNo = a.TestPackageName, + testpackageNo = a.TestPackageNo, + TestPressure = a.TestPressure, + TestType = a.TestType + }).FirstOrDefault(); + + return result; + } + /// + /// 查询指定条数分页 + /// + /// + public static DataTable GetPageToTable(DataTable dt, int StartNum, int EndNum) + { + //0页代表每页数据,直接返回 + if (EndNum == 0) return dt; + //数据源为空返回空DataTable + if (dt == null) return new DataTable(); + + DataTable newdt = dt.Copy(); + newdt.Clear();//copy dt的框架 + + if (StartNum >= dt.Rows.Count) + return newdt;//源数据记录数小于等于要显示的记录,直接返回dt + + if (EndNum > dt.Rows.Count) + EndNum = dt.Rows.Count; + for (int i = StartNum; i <= EndNum - 1; i++) + { + DataRow newdr = newdt.NewRow(); + DataRow dr = dt.Rows[i]; + foreach (DataColumn column in dt.Columns) + { + newdr[column.ColumnName] = dr[column.ColumnName]; + } + newdt.Rows.Add(newdr); + } + return newdt; + } /// /// 获取某一列的所有值 /// diff --git a/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/PointManage.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/PointManage.aspx.cs index c8afdf3..8c52f9c 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/PointManage.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/PointManage.aspx.cs @@ -1272,7 +1272,7 @@ namespace FineUIPro.Web.WeldingProcess.TrustManage pointBatchItem.CutDate = System.DateTime.Now;////更新批明细 切除日期 Funs.DB.SubmitChanges(); - BLL.Batch_PointBatchService.UpdateNewKuoOrCutJointNo(pointBatchItem.PointBatchItemId, "C"); + BLL.Batch_PointBatchService.UpdateNewKuoOrCutJointNo(pointBatchItem.PointBatchItemId, "C1"); // 更新批 是否委托:否 var updatePointBatch = BLL.Batch_PointBatchService.GetPointBatchById(this.PointBatchId); if (updatePointBatch != null) diff --git a/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/SelectExpandPoint.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/SelectExpandPoint.aspx.cs index 780539f..0e86dfa 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/SelectExpandPoint.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/TrustManage/SelectExpandPoint.aspx.cs @@ -162,7 +162,7 @@ namespace FineUIPro.Web.WeldingProcess.TrustManage db.SubmitChanges(); ////更新批明细 返修日期 状态 int k_num = 0; - string jot = "K1"; + string jot = "EX1"; Model.Pipeline_WeldJoint jointInfo = null; if (!String.IsNullOrEmpty(weldJointId)) @@ -178,13 +178,13 @@ namespace FineUIPro.Web.WeldingProcess.TrustManage } } - int indexK = jointInfo.WeldJointCode.LastIndexOf("K"); + int indexK = jointInfo.WeldJointCode.LastIndexOf("EX"); if (indexK > 0) { try { k_num = Convert.ToInt32(jointInfo.WeldJointCode.Substring(indexK + 1, 1)) + 1; - jot = "K" + k_num.ToString(); + jot = "EX" + k_num.ToString(); } catch { } } 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 diff --git a/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/WeldReport.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/WeldReport.aspx.cs index e089d08..cf77ec9 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/WeldReport.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/WeldingManage/WeldReport.aspx.cs @@ -1257,7 +1257,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingManage // 判断资质 if (welderQueIsUse == true) { - if (isExistFloor && isExistCell) + if (!string.IsNullOrEmpty(jotId) && isExistFloor && isExistCell) { bool canSave = false; var jot = BLL.Pipeline_WeldJointService.GetWeldJointByWeldJointId(jotId); diff --git a/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/NDTByWelder.aspx b/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/NDTByWelder.aspx index 4b55589..96b2a78 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/NDTByWelder.aspx +++ b/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/NDTByWelder.aspx @@ -13,11 +13,10 @@ ShowHeader="false" Layout="VBox" BoxConfigAlign="Stretch"> + EnableCollapse="true" runat="server" BoxFlex="1" EnableColumnLines="true" + AllowSorting="true" SortField="WelderCode,DetectionRateValue" SortDirection="ASC" OnSort="Grid1_Sort" + AllowPaging="true" IsDatabasePaging="true" PageSize="15" + OnPageIndexChange="Grid1_PageIndexChange" EnableTextSelection="True"> diff --git a/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/NDTByWelder.aspx.designer.cs b/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/NDTByWelder.aspx.designer.cs index af3fb3c..0c0e3ae 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/NDTByWelder.aspx.designer.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/NDTByWelder.aspx.designer.cs @@ -2,16 +2,18 @@ // <自动生成> // 此代码由工具生成。 // -// 对此文件的更改可能会导致不正确的行为,并且如果 -// 重新生成代码,这些更改将会丢失。 +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 // //------------------------------------------------------------------------------ -namespace FineUIPro.Web.WeldingProcess.WeldingReport { - - - public partial class NDTByWelder { - +namespace FineUIPro.Web.WeldingProcess.WeldingReport +{ + + + public partial class NDTByWelder + { + /// /// form1 控件。 /// @@ -20,7 +22,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlForm form1; - + /// /// PageManager1 控件。 /// @@ -29,7 +31,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.PageManager PageManager1; - + /// /// Panel1 控件。 /// @@ -38,7 +40,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Panel Panel1; - + /// /// Grid1 控件。 /// @@ -47,7 +49,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Grid Grid1; - + /// /// Toolbar1 控件。 /// @@ -56,16 +58,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar Toolbar1; - - /// - /// drpProjectId 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.DropDownList drpProjectId; - + /// /// drpUnitId 控件。 /// @@ -74,7 +67,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpUnitId; - + /// /// drpInstallationId 控件。 /// @@ -83,43 +76,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpInstallationId; - - /// - /// ToolbarFill1 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.ToolbarFill ToolbarFill1; - - /// - /// BtnAnalyse 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Button BtnAnalyse; - - /// - /// btnOut 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Button btnOut; - - /// - /// Toolbar2 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Toolbar Toolbar2; - + /// /// drpWorkAreaId 控件。 /// @@ -128,16 +85,34 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpWorkAreaId; - + /// - /// ToolbarFill2 控件。 + /// ToolbarFill1 控件。 /// /// /// 自动生成的字段。 /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// - protected global::FineUIPro.ToolbarFill ToolbarFill2; - + protected global::FineUIPro.ToolbarFill ToolbarFill1; + + /// + /// BtnAnalyse 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button BtnAnalyse; + + /// + /// btnOut 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnOut; + /// /// labNumber 控件。 /// @@ -146,7 +121,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.Label labNumber; - + /// /// ToolbarSeparator1 控件。 /// @@ -155,7 +130,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; - + /// /// ToolbarText1 控件。 /// @@ -164,7 +139,7 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport { /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarText ToolbarText1; - + /// /// ddlPageSize 控件。 /// diff --git a/HJGL/Model/Model.csproj b/HJGL/Model/Model.csproj index 78bcf82..390d058 100644 --- a/HJGL/Model/Model.csproj +++ b/HJGL/Model/Model.csproj @@ -75,10 +75,12 @@ + +