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/BLL/BLL.csproj.user b/HJGL/BLL/BLL.csproj.user index 07dbd5b..55f44b9 100644 --- a/HJGL/BLL/BLL.csproj.user +++ b/HJGL/BLL/BLL.csproj.user @@ -1,6 +1,6 @@  - ProjectFiles + ShowAllFiles \ No newline at end of file diff --git a/HJGL/FineUIPro.Web/FineUIPro.Web.csproj.user b/HJGL/FineUIPro.Web/FineUIPro.Web.csproj.user index d0ff50b..8d0cdf2 100644 --- a/HJGL/FineUIPro.Web/FineUIPro.Web.csproj.user +++ b/HJGL/FineUIPro.Web/FineUIPro.Web.csproj.user @@ -1,7 +1,7 @@  - ShowAllFiles + ProjectFiles Debug|Any CPU true diff --git a/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx.cs index b9a060a..21e8f6b 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/TestPackageManage/TestPackageManageAudit.aspx.cs @@ -7,6 +7,7 @@ using System.Drawing; using System.Drawing.Imaging; using System.IO; using System.Linq; +using System.Runtime.InteropServices; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; @@ -2288,356 +2289,500 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage private void template13(XSSFWorkbook hssfworkbook, XSSFSheet ws) { var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); + + //模拟数据 + string sql = @"select '' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User"; + SqlParameter[] parms = new SqlParameter[] { new SqlParameter("@PTP_ID", this.tvControlItem.SelectedNodeID) }; + var dt = SQLHelper.GetDataTableRunText(sql, parms); + var tbNum = dt.Rows.Count; + var pageNum = tbNum < 8 ? 1 : Math.Ceiling((float)(tbNum - 8) / 8) + 1; + 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 + 1, style, 1, 7, true); - ws.SetColumnWidth(0, 2 * 256); - for (int i = 1; i < 8; i++) + for (int num = 1; num <= pageNum; num++) { - ws.SetColumnWidth(i, 16 * 256); - } - ws.GetRow(rowIndex + 1).Height = 20 * 20 * 6; + 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"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 1, 2)); - ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("SH/T 3503—J403"); + #region 头部 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex, style, 1, 7, true); - 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"); + //设置列宽度 + ws.SetColumnWidth(0, 2 * 256); + ws.SetColumnWidth(1, 16 * 256); + ws.SetColumnWidth(2, 16 * 256); + ws.SetColumnWidth(3, 16 * 256); + ws.SetColumnWidth(4, 16 * 256); + ws.SetColumnWidth(5, 16 * 256); + ws.SetColumnWidth(6, 19 * 256); + ws.SetColumnWidth(7, 19 * 256); - 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}"); + ws.GetRow(rowIndex).Height = 20 * 20 * 6; - #endregion + ws.AddMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 1, 2)); + ws.GetRow(rowIndex).GetCell(1).SetCellValue("SH/T 3503—J403"); - #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; + 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, rowIndex, 3, 5)); + ws.GetRow(rowIndex).GetCell(3).CellStyle = style1; + ws.GetRow(rowIndex).GetCell(3).SetCellValue("弹簧支/吊架安装检验记录\nSpring Support/Hanger 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, rowIndex, 6, 7)); + ws.GetRow(rowIndex).GetCell(6).CellStyle = style2; + ws.GetRow(rowIndex).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 + 1, rowIndex + 9, style, 1, 7, true); + var dStart = 0; + var dEnd = 0; + if (num == 1) + { + dStart = 0; + dEnd = 8; + } else - ws.GetRow(rowIndex + i).Height = 20 * 20 * 2; + { + dStart = num == 2 ? 8 : ((num - 2) * 8) + 8; + dEnd = ((num - 1) * 8) + 8; + } + var pageTb = GetPageToTable(dt, dStart, dEnd); + int j = 0; + for (int i = 1; i <= 9; i++) + { + if (i == 1) + { + ws.GetRow(rowIndex + i).Height = 20 * 20 * 3; + ws.GetRow(rowIndex + i).GetCell(1).SetCellValue("管道编号/单线号\nPiping No./Line No."); + ws.GetRow(rowIndex + i).GetCell(2).SetCellValue("支/吊架位号\nSupport/Hanger Item No."); + ws.GetRow(rowIndex + i).GetCell(3).SetCellValue("结构型式\nType"); + ws.GetRow(rowIndex + i).GetCell(4).SetCellValue("位移方向\nDisplacement Direction"); + ws.GetRow(rowIndex + i).GetCell(5).SetCellValue("设计冷态负荷值\nDesign Cold Load"); + ws.GetRow(rowIndex + i).GetCell(6).SetCellValue("安装冷态负荷值\nInstallation Cold Load"); + ws.GetRow(rowIndex + i).GetCell(7).SetCellValue("检查结果\nInspection Result"); + } + else + { + ws.GetRow(rowIndex + i).Height = 20 * 20; + if (pageTb.Rows.Count > j) + { + var dr = pageTb.Rows[j]; + ws.GetRow(rowIndex + i).GetCell(1).SetCellValue("模拟数据"); + } + j++; + } + } + + #endregion + + #region 尾部 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 10, rowIndex + 12, style, 1, 7, true); + + ws.GetRow(rowIndex + 10).Height = 20 * 20 * 2; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 10, rowIndex + 10, 1, 7)); + ws.GetRow(rowIndex + 10).GetCell(1).CellStyle = style2; + ws.GetRow(rowIndex + 10).GetCell(1).SetCellValue(" 备注:\n Remarks:"); + + ws.GetRow(rowIndex + 11).Height = 20 * 20 * 2; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 1, 2)); + ws.GetRow(rowIndex + 11).GetCell(1).SetCellValue("建设/监理单位\nOwner/JianLi Contractor"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 3, 5)); + ws.GetRow(rowIndex + 11).GetCell(3).SetCellValue("总 承 包 单 位\nGeneral Contractor"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 6, 7)); + ws.GetRow(rowIndex + 11).GetCell(6).SetCellValue("施 工 单 位\nConstruction Contractor"); + + ws.GetRow(rowIndex + 12).Height = 20 * 20 * 6; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 12, rowIndex + 12, 1, 2)); + ws.GetRow(rowIndex + 12).GetCell(1).CellStyle = style2; + ws.GetRow(rowIndex + 12).GetCell(1).SetCellValue(" 专业工程师:\n Discipline Engineer:\n\n\n\n\n 日期(DATE): 年 月 日"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 12, rowIndex + 12, 3, 5)); + ws.GetRow(rowIndex + 12).GetCell(3).CellStyle = style2; + ws.GetRow(rowIndex + 12).GetCell(3).SetCellValue(" 专业工程师:\n Discipline Engineer:\n\n\n\n\n 日期(DATE): 年 月 日"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 12, rowIndex + 12, 6, 7)); + ws.GetRow(rowIndex + 12).GetCell(6).CellStyle = style2; + ws.GetRow(rowIndex + 12).GetCell(6).SetCellValue(" 施工班组长:\n Foreman:\n 质量检查员:\n Quality Inspector:\n 专业工程师:\n Discipline Engineer: \n 日期(DATE): 年 月 日"); + + #endregion + + rowIndex += 13; + + } - 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; + ws.PrintSetup.Landscape = true; + ws.ForceFormulaRecalculation = true; ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - - 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); - //页眉页脚间距 - ws.SetMargin(MarginType.HeaderMargin, 0); - ws.SetMargin(MarginType.FooterMargin, 0); + //ws.PrintSetup.FitWidth = 1; + //ws.PrintSetup.FitHeight = 0; + //ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; + //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); + ////页眉页脚间距 + //ws.SetMargin(MarginType.HeaderMargin, 0); + //ws.SetMargin(MarginType.FooterMargin, 0); } //14-滑动固定管托安装检验记录SHT 3503-J404 private void template14(XSSFWorkbook hssfworkbook, XSSFSheet ws) { var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); + + //模拟数据 + string sql = @"select '' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User"; + SqlParameter[] parms = new SqlParameter[] { new SqlParameter("@PTP_ID", this.tvControlItem.SelectedNodeID) }; + var dt = SQLHelper.GetDataTableRunText(sql, parms); + var tbNum = dt.Rows.Count; + var pageNum = tbNum < 8 ? 1 : Math.Ceiling((float)(tbNum - 8) / 8) + 1; + 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 + 1, style, 1, 7, true); - ws.SetColumnWidth(0, 2 * 256); - for (int i = 1; i < 8; i++) + for (int num = 1; num <= pageNum; num++) { - ws.SetColumnWidth(i, 16 * 256); - } - ws.GetRow(rowIndex + 1).Height = 20 * 20 * 5; + 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"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 1, 2)); - ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("SH/T 3503—J404"); + #region 头部 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 1, style, 1, 7, true); - 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"); + //设置列宽度 + ws.SetColumnWidth(0, 2 * 256); + ws.SetColumnWidth(1, 16 * 256); + ws.SetColumnWidth(2, 16 * 256); + ws.SetColumnWidth(3, 16 * 256); + ws.SetColumnWidth(4, 16 * 256); + ws.SetColumnWidth(5, 16 * 256); + ws.SetColumnWidth(6, 19 * 256); + ws.SetColumnWidth(7, 19 * 256); + ws.GetRow(rowIndex).Height = 20 * 20 * 5; - 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}"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 1, 2)); + ws.GetRow(rowIndex).GetCell(1).SetCellValue("SH/T 3503—J404"); - #endregion + 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, rowIndex, 3, 5)); + ws.GetRow(rowIndex).GetCell(3).CellStyle = style1; + ws.GetRow(rowIndex).GetCell(3).SetCellValue("滑动/固定管托安装检验记录\nSliding/Fixed Pipe Shoe Installation Inspection Record"); - #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; + 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, rowIndex, 6, 7)); + ws.GetRow(rowIndex).GetCell(6).CellStyle = style2; + ws.GetRow(rowIndex).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 + 1, rowIndex + 9, style, 1, 7, true); + + var dStart = 0; + var dEnd = 0; + if (num == 1) + { + dStart = 0; + dEnd = 8; + } else - ws.GetRow(rowIndex + i).Height = 20 * 20 * 2; + { + dStart = num == 2 ? 8 : ((num - 2) * 8) + 8; + dEnd = ((num - 1) * 8) + 8; + } + var pageTb = GetPageToTable(dt, dStart, dEnd); + int j = 0; + for (int i = 1; i <= 9; i++) + { + if (i == 1) + { + ws.GetRow(rowIndex + i).Height = 20 * 20 * 2; + ws.GetRow(rowIndex + i).GetCell(1).SetCellValue("管道编号/单线号\nPiping No./ Line"); + ws.GetRow(rowIndex + i).GetCell(2).SetCellValue("管托编号\nPipe Shoe No."); + ws.GetRow(rowIndex + i).GetCell(3).SetCellValue("型 式\nType"); + ws.GetRow(rowIndex + i).GetCell(4).SetCellValue("位移方向\nDisplacement Direction"); + ws.GetRow(rowIndex + i).GetCell(5).SetCellValue("设计位移量\nDesign Displacement"); + ws.GetRow(rowIndex + i).GetCell(6).SetCellValue("安装位移量\nInstallation Displacement"); + ws.GetRow(rowIndex + i).GetCell(7).SetCellValue("检验结果\nInspection Result"); + } + else + { + ws.GetRow(rowIndex + i).Height = 20 * 20; + if (pageTb.Rows.Count > j) + { + var dr = pageTb.Rows[j]; + ws.GetRow(rowIndex + i).GetCell(1).SetCellValue("模拟数据"); + } + j++; + } + } + + #endregion + + #region 尾部 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 10, rowIndex + 13, style, 1, 7, true); + ws.GetRow(rowIndex + 10).Height = 20 * 20 * 2; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 10, rowIndex + 10, 1, 7)); + ws.GetRow(rowIndex + 10).GetCell(1).CellStyle = style2; + ws.GetRow(rowIndex + 10).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 + 11).Height = 20 * 20 * 2; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 11, rowIndex + 11, 1, 7)); + ws.GetRow(rowIndex + 11).GetCell(1).CellStyle = style2; + ws.GetRow(rowIndex + 11).GetCell(1).SetCellValue(" 备注:\n Remarks:"); + + ws.GetRow(rowIndex + 12).Height = 20 * 20 * 2; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 12, rowIndex + 12, 1, 2)); + ws.GetRow(rowIndex + 12).GetCell(1).SetCellValue("建设/监理单位\nOwner/JianLi Contractor"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 12, rowIndex + 12, 3, 5)); + ws.GetRow(rowIndex + 12).GetCell(3).SetCellValue("总 承 包 单 位\nGeneral Contractor"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 12, rowIndex + 12, 6, 7)); + ws.GetRow(rowIndex + 12).GetCell(6).SetCellValue("施 工 单 位\nConstruction Contractor"); + + ws.GetRow(rowIndex + 13).Height = 20 * 20 * 6; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 13, rowIndex + 13, 1, 2)); + ws.GetRow(rowIndex + 13).GetCell(1).CellStyle = style2; + ws.GetRow(rowIndex + 13).GetCell(1).SetCellValue(" 专业工程师:\n Discipline Engineer:\n\n\n\n\n 日期(DATE): 年 月 日"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 13, rowIndex + 13, 3, 5)); + ws.GetRow(rowIndex + 13).GetCell(3).CellStyle = style2; + ws.GetRow(rowIndex + 13).GetCell(3).SetCellValue(" 专业工程师:\n Discipline Engineer:\n\n\n\n\n 日期(DATE): 年 月 日"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 13, rowIndex + 13, 6, 7)); + ws.GetRow(rowIndex + 13).GetCell(6).CellStyle = style2; + ws.GetRow(rowIndex + 13).GetCell(6).SetCellValue(" 施工班组长:\n Foreman:\n 质量检查员:\n Quality Inspector:\n 专业工程师:\n Discipline Engineer: \n 日期(DATE): 年 月 日"); + + #endregion + + rowIndex += 14; } - 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; + ws.PrintSetup.Landscape = true; + ws.ForceFormulaRecalculation = true; ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - - 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); - //页眉页脚间距 - ws.SetMargin(MarginType.HeaderMargin, 0); - ws.SetMargin(MarginType.FooterMargin, 0); + //ws.PrintSetup.FitWidth = 1; + //ws.PrintSetup.FitHeight = 0; + //ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; + //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); + + ////页眉页脚间距 + //ws.SetMargin(MarginType.HeaderMargin, 0); + //ws.SetMargin(MarginType.FooterMargin, 0); } //15-管道补偿器安装检验记录SHT 3503-J405 private void template15(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, "宋体"); + + //模拟数据 + string sql = @"select '' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User"; + SqlParameter[] parms = new SqlParameter[] { new SqlParameter("@PTP_ID", this.tvControlItem.SelectedNodeID) }; + var dt = SQLHelper.GetDataTableRunText(sql, parms); + var tbNum = dt.Rows.Count; + var pageNum = tbNum < 16 ? 1 : Math.Ceiling((float)(tbNum - 16) / 16) + 1; + 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, 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++) + for (int num = 1; num <= pageNum; num++) { - ws.GetRow(rowIndex + i).Height = 20 * 20; + #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, 14 * 256);//A + ws.SetColumnWidth(1, 8 * 256);//B + ws.SetColumnWidth(2, 8 * 256);//C + ws.SetColumnWidth(3, 9 * 256);//D + ws.SetColumnWidth(4, 9 * 256);//E + ws.SetColumnWidth(5, 8 * 256);//F + ws.SetColumnWidth(6, 13 * 256);//G + ws.SetColumnWidth(7, 9 * 256);//H + ws.SetColumnWidth(8, 13 * 256);//I + ws.SetColumnWidth(9, 9 * 256);//J + ws.SetColumnWidth(10, 9 * 256);//K + ws.SetColumnWidth(11, 9 * 256);//L + ws.SetColumnWidth(12, 10 * 256);//M + + 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($"工程名称:{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}"); + + ws.GetRow(rowIndex).HeightInPoints = 19.8f; + ws.GetRow(rowIndex + 1).HeightInPoints = 13.8f; + ws.GetRow(rowIndex + 2).HeightInPoints = 25f; + ws.GetRow(rowIndex + 3).HeightInPoints = 28f; + + #endregion + + #region 表格部分 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 4, rowIndex + 5, style, 0, 12, true); + + ws.GetRow(rowIndex + 4).HeightInPoints = 25f; + ws.GetRow(rowIndex + 5).HeightInPoints = 25f; + //设置表头部分 + 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 + 21, style, 0, 12, true); + var dStart = 0; + var dEnd = 0; + if (num == 1) + { + dStart = 0; + dEnd = 16; + } + else + { + dStart = num == 2 ? 16 : ((num - 2) * 16) + 16; + dEnd = ((num - 1) * 16) + 16; + } + var pageTb = GetPageToTable(dt, dStart, dEnd); + int j = 0; + for (int i = 6; i <= 21; i++) + { + ws.GetRow(rowIndex + i).HeightInPoints = 17f; + if (pageTb.Rows.Count > j) + { + var dr = pageTb.Rows[j]; + ws.GetRow(rowIndex + i).GetCell(0).SetCellValue("模拟数据"); + } + j++; + } + + #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 + 22, rowIndex + 28, style, 0, 12, true); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 22, rowIndex + 22, 0, 3)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 22, rowIndex + 22, 4, 8)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 22, rowIndex + 22, 9, 12)); + ws.GetRow(rowIndex + 22).GetCell(0).SetCellValue("建设/监理单位\r\nOwner/Supervision Contractor"); + ws.GetRow(rowIndex + 22).GetCell(4).SetCellValue("总承包单位\r\nGeneral Contractor"); + ws.GetRow(rowIndex + 22).GetCell(9).SetCellValue("施工单位\r\nConstruction Contractor"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 23, rowIndex + 23, 0, 1)); + ws.GetRow(rowIndex + 23).GetCell(0).SetCellValue("专业工程师\r\nDiscipline Engineer:"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 23, rowIndex + 23, 9, 12)); + ws.GetRow(rowIndex + 23).GetCell(9).SetCellValue("记录人 :\r\nRecord Prepared by:"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 25, rowIndex + 25, 9, 12)); + ws.GetRow(rowIndex + 25).GetCell(9).SetCellValue("质量检查员:\r\nQuality Inspector:"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 27, rowIndex + 27, 9, 12)); + ws.GetRow(rowIndex + 25).GetCell(9).SetCellValue("焊接责任工程师:\r\nWelding Engineer:"); + + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 28, rowIndex + 28, 0, 3)); + ws.GetRow(rowIndex + 28).GetCell(0).SetCellValue("日期Date: 年 月 日"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 28, rowIndex + 28, 4, 8)); + ws.GetRow(rowIndex + 28).GetCell(4).SetCellValue("日期Date: 年 月 日"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 28, rowIndex + 28, 9, 12)); + ws.GetRow(rowIndex + 28).GetCell(9).SetCellValue("日期Date: 年 月 日"); + + RegionUtil.SetBorderTop(1, new CellRangeAddress(rowIndex + 22, rowIndex + 22, 0, 12), ws); + RegionUtil.SetBorderLeft(1, new CellRangeAddress(rowIndex + 22, rowIndex + 28, 0, 0), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 22, rowIndex + 28, 12, 12), ws); + RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 28, rowIndex + 28, 0, 12), ws); + + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 22, rowIndex + 28, 3, 3), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 22, rowIndex + 28, 8, 8), ws); + + ws.GetRow(rowIndex + 22).HeightInPoints = 30f; + ws.GetRow(rowIndex + 23).HeightInPoints = 30f; + ws.GetRow(rowIndex + 24).HeightInPoints = 3f; + ws.GetRow(rowIndex + 25).HeightInPoints = 30f; + ws.GetRow(rowIndex + 26).HeightInPoints = 5f; + ws.GetRow(rowIndex + 27).HeightInPoints = 5f; + ws.GetRow(rowIndex + 28).HeightInPoints = 30f; + + #endregion + + rowIndex += 29; } - #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; - - ws.FitToPage = true; - - //横向打印 ws.PrintSetup.Landscape = true; + ws.ForceFormulaRecalculation = true; + ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; //垂直水平居中 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); + //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); } //16-TP-08-静电接地清单UG-FW-001 @@ -2650,220 +2795,271 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage var img3 = Server.MapPath("~/res/images/bsf/3.png"); var img4 = Server.MapPath("~/res/images/bsf/4.png"); + //模拟数据 + string sql = @"select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User"; + SqlParameter[] parms = new SqlParameter[] { new SqlParameter("@PTP_ID", this.tvControlItem.SelectedNodeID) }; + var dt = SQLHelper.GetDataTableRunText(sql, parms); + + var tbNum = dt.Rows.Count; + var pageNum = tbNum < 24 ? 1 : Math.Ceiling((float)(tbNum - 24) / 24) + 1; 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 头部 - - 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, 2 * 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, 10 * 256); - ws.SetColumnWidth(8, 10 * 256); - ws.SetColumnWidth(9, 11 * 256); - ws.SetColumnWidth(10, 9 * 256); - ws.SetColumnWidth(11, 8 * 256); - ws.SetColumnWidth(12, 1 * 256); - ws.SetColumnWidth(13, 9 * 256); - ws.SetColumnWidth(14, 9 * 256); - ws.SetColumnWidth(15, 9 * 256); - ws.SetColumnWidth(16, 8 * 256); - ws.SetColumnWidth(17, 1 * 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 num = 1; num <= pageNum; num++) { - ws.GetRow(i).Height = 18 * 20; + 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 头部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 14, style, 0, 17, true); + ws.GetRow(rowIndex).GetCell(14).SetCellValue("Form No."); + ws.AddMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 14, 15)); + ws.GetRow(rowIndex).GetCell(16).SetCellValue("TP-06"); + //设置列宽度 + ws.SetColumnWidth(0, 2 * 256);//A + ws.SetColumnWidth(1, 1 * 256);//B + ws.SetColumnWidth(2, 5 * 256);//C + ws.SetColumnWidth(3, 4 * 256);//D + ws.SetColumnWidth(4, 4 * 256);//E + ws.SetColumnWidth(5, 5 * 256);//F + ws.SetColumnWidth(6, 5 * 256);//G + ws.SetColumnWidth(7, 5 * 256);//H + ws.SetColumnWidth(8, 6 * 256);//I + ws.SetColumnWidth(9, 7 * 256);//J + ws.SetColumnWidth(10, 6 * 256);//K + ws.SetColumnWidth(11, 6 * 256);//L + ws.SetColumnWidth(12, 1 * 256);//M + ws.SetColumnWidth(13, 6 * 256);//N + ws.SetColumnWidth(14, 6 * 256);//O + ws.SetColumnWidth(15, 6 * 256);//P + ws.SetColumnWidth(16, 7 * 256);//Q + ws.SetColumnWidth(17, 1 * 256);//R + //设置前3行高度 + ws.GetRow(rowIndex).Height = 15 * 20; + ws.GetRow(rowIndex + 1).Height = 15 * 20; + ws.GetRow(rowIndex + 2).Height = 14 * 20; + + //设置3-15行的行高度 + for (int i = rowIndex + 3; i < rowIndex + 15; i++) + { + ws.GetRow(i).Height = 18 * 20; + } + + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex, rowIndex, 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); + //插入图片 + InsertImage(hssfworkbook, ws, rowIndex + 3, 2, rowIndex + 4, 3, img1, 1.2, 1.8); + InsertImage(hssfworkbook, ws, rowIndex + 3, 3, rowIndex + 4, 4, img2, 1.9, 1.9); + InsertImage(hssfworkbook, ws, rowIndex + 3, 13, rowIndex + 4, 14, img3, 1.5, 1.5); + InsertImage(hssfworkbook, ws, rowIndex + 3, 15, rowIndex + 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("LIST OF PIPING ELECTROSTATIC GROUNDING"); + 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; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 13)); + + #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 + 15, rowIndex + 40, style, 0, 17, true); + + var dStart = 0; + var dEnd = 0; + if (num == 1) + { + dStart = 0; + dEnd = 24; + } + else + { + dStart = num == 2 ? 24 : ((num - 2) * 24) + 24; + dEnd = ((num - 1) * 24) + 24; + } + var pageTb = GetPageToTable(dt, dStart, dEnd); + + ws.GetRow(rowIndex + 15).HeightInPoints = 28f; + //数据表头部分 + 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(8).SetCellValue("接头型式\r\nConnection Type"); + ws.GetRow(rowIndex + 15).GetCell(10).SetCellValue("规格\r\nSpecification"); + ws.GetRow(rowIndex + 15).GetCell(13).SetCellValue("材质\r\nMaterial"); + ws.GetRow(rowIndex + 15).GetCell(16).SetCellValue("Remark\r\n备注"); + + int j = 0; + for (int i = 15; i <= 39; i++) + { + ws.GetRow(rowIndex + i).GetCell(0).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None); + ws.GetRow(rowIndex + i).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.GetRow(rowIndex + i).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 3, 7)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 8, 9)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 10, 12)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 13, 15)); + if (i > 15) + { + ws.GetRow(rowIndex + i).HeightInPoints = 18f; + + if (pageTb.Rows.Count > j) + { + var dr = pageTb.Rows[j]; + ws.GetRow(rowIndex + i).GetCell(3).SetCellValue(dr["PTP_ID"].ToString()); + } + j++; + } + } + + + #endregion + + #region 尾部 + + //此处的尾部行数需要根据 得到的动态数据量 来计算,默认写死从50行开始。 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 40, rowIndex + 45, style, 0, 17, true); + for (int i = rowIndex + 40; i <= rowIndex + 45; 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); + } + + ws.GetRow(rowIndex + 40).HeightInPoints = 14f; + ws.GetRow(rowIndex + 41).HeightInPoints = 14f; + ws.GetRow(rowIndex + 42).HeightInPoints = 14f; + + for (int i = 2; i < 17; i++) + { + ws.GetRow(rowIndex + 45).GetCell(i).CellStyle = SetStyle(hssfworkbook, BorderStyle.Medium, BorderStyle.Medium, BorderStyle.None, BorderStyle.None); + } + ws.GetRow(rowIndex + 45).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium, BorderStyle.None); + ws.GetRow(rowIndex + 45).GetCell(16).CellStyle = SetStyle(hssfworkbook, BorderStyle.Medium, BorderStyle.Medium, BorderStyle.None, BorderStyle.None); + ws.GetRow(rowIndex + 45).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.Medium, BorderStyle.None, BorderStyle.Medium); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 40, rowIndex + 42, 2, 4)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 40, rowIndex + 42, 5, 6)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 40, rowIndex + 42, 7, 9)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 40, rowIndex + 42, 10, 13)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 40, rowIndex + 42, 14, 16)); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 43, rowIndex + 43, 2, 4)); + ws.GetRow(rowIndex + 43).GetCell(2).SetCellValue("PREPARED"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 43, rowIndex + 43, 5, 6)); + ws.GetRow(rowIndex + 43).GetCell(5).SetCellValue("REVIEW"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 43, rowIndex + 44, 7, 9)); + ws.GetRow(rowIndex + 43).GetCell(7).SetCellValue("JIANLI"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 43, rowIndex + 44, 10, 13)); + ws.GetRow(rowIndex + 43).GetCell(10).SetCellValue("Worley"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 43, rowIndex + 44, 14, 16)); + ws.GetRow(rowIndex + 43).GetCell(14).SetCellValue("BASF"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 44, rowIndex + 44, 2, 6)); + ws.GetRow(rowIndex + 44).GetCell(2).SetCellValue("CC7"); + #endregion + + rowIndex += 46; + } - 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("LIST OF PIPING ELECTROSTATIC GROUNDING"); - 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; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 13)); - #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, 7)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 8, 9)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 10, 12)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 13, 15)); - } - ws.GetRow(15).Height = 28 * 20; - //数据表头部分 - 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(8).SetCellValue("接头型式\r\nConnection Type"); - ws.GetRow(rowIndex + 15).GetCell(10).SetCellValue("规格\r\nSpecification"); - ws.GetRow(rowIndex + 15).GetCell(13).SetCellValue("材质\r\nMaterial"); - 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.Landscape = false; + ws.ForceFormulaRecalculation = true; ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - - 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); - //页眉页脚间距 - ws.SetMargin(MarginType.HeaderMargin, 0); - ws.SetMargin(MarginType.FooterMargin, 0); + //ws.PrintSetup.FitWidth = 1; + //ws.PrintSetup.FitHeight = 0; + //ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; + //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); + ////页眉页脚间距 + //ws.SetMargin(MarginType.HeaderMargin, 0); + //ws.SetMargin(MarginType.FooterMargin, 0); } @@ -2871,410 +3067,571 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage private void template17(XSSFWorkbook hssfworkbook, XSSFSheet ws) { var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); + + //模拟数据 + string sql = @"select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User"; + SqlParameter[] parms = new SqlParameter[] { new SqlParameter("@PTP_ID", this.tvControlItem.SelectedNodeID) }; + var dt = SQLHelper.GetDataTableRunText(sql, parms); + + var tbNum = dt.Rows.Count; + var pageNum = tbNum < 9 ? 1 : Math.Ceiling((float)(tbNum - 9) / 9) + 1; + 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, 12, true); - ws.SetColumnWidth(0, 2 * 256); - ws.SetColumnWidth(1, 13 * 256); - ws.SetColumnWidth(2, 12 * 256); - ws.SetColumnWidth(3, 12 * 256); - ws.SetColumnWidth(4, 10 * 256); - ws.SetColumnWidth(5, 10 * 256); - ws.SetColumnWidth(6, 10 * 256); - ws.SetColumnWidth(7, 10 * 256); - ws.SetColumnWidth(8, 12 * 256); - ws.SetColumnWidth(9, 12 * 256); - ws.SetColumnWidth(10, 12 * 256); - ws.SetColumnWidth(11, 15 * 256); - ws.SetColumnWidth(12, 15 * 256); - - ws.GetRow(rowIndex + 1).Height = 18 * 20 * 5; - ws.GetRow(rowIndex + 2).Height = 18 * 20; - ws.GetRow(rowIndex + 3).Height = 18 * 20 * 3; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 1, 4)); - ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("SH/T 3503—J411-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, 5, 8)); - ws.GetRow(rowIndex + 1).GetCell(5).CellStyle = style1; - ws.GetRow(rowIndex + 1).GetCell(5).SetCellValue("管道焊接接头热处理报告\nPiping Welded Joint Heat Treatment Report "); - - 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, 9, 12)); - ws.GetRow(rowIndex + 1).GetCell(9).CellStyle = style2; - 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."); - - ws.GetRow(rowIndex + 3).GetCell(1).SetCellValue("Heat Treatment Method"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 2, 6)); - ws.GetRow(rowIndex + 3).GetCell(7).SetCellValue("Heat Treatment Equipment"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 8, 12)); - - #endregion - - #region 表格部分 - - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 4, rowIndex + 12, style, 1, 12, true); - for (int i = 4; i < 13; i++) + for (int num = 1; num <= pageNum; num++) { - ws.GetRow(rowIndex + i).Height = 20 * 20; - if (4 == i) + 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, rowIndex + 2, style, 1, 12, true); + ws.SetColumnWidth(0, 1 * 256);//A + ws.SetColumnWidth(1, 11 * 256);//B + ws.SetColumnWidth(2, 9 * 256);//C + ws.SetColumnWidth(3, 11 * 256);//D + ws.SetColumnWidth(4, 9 * 256);//E + ws.SetColumnWidth(5, 11 * 256);//F + ws.SetColumnWidth(6, 11 * 256);//G + ws.SetColumnWidth(7, 11 * 256);//H + ws.SetColumnWidth(8, 10 * 256);//I + ws.SetColumnWidth(9, 10 * 256);//J + ws.SetColumnWidth(10, 10 * 256);//K + ws.SetColumnWidth(11, 11 * 256);//L + ws.SetColumnWidth(12, 11 * 256);//M + + ws.GetRow(rowIndex).HeightInPoints = 100f; + ws.GetRow(rowIndex + 1).HeightInPoints = 18f; + ws.GetRow(rowIndex + 2).HeightInPoints = 50f; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 1, 4)); + ws.GetRow(rowIndex).GetCell(1).SetCellValue("SH/T 3503—J411-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, rowIndex, 5, 8)); + ws.GetRow(rowIndex).GetCell(5).CellStyle = style1; + var title = num == 1 ? "管道焊接接头热处理报告\nPiping Welded Joint Heat Treatment Report" : "管道焊接接头热处理报告(续)\nPiping Welded Joint Heat Treatment Report(Continued)"; + ws.GetRow(rowIndex).GetCell(5).SetCellValue(title); + + 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, rowIndex, 9, 12)); + ws.GetRow(rowIndex).GetCell(9).CellStyle = style2; + ws.GetRow(rowIndex).GetCell(9).SetCellValue($"工程名称:{info?.projectName}\n\nProject Name:{info?.enProjectName}\n\n单位工程名称:{info?.workAreaName}\n\nUnit Name:{info?.enWorkAreaName}"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 2, 12)); + ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("Report No."); + + ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue("Heat Treatment Method"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 2, 6)); + ws.GetRow(rowIndex + 2).GetCell(7).SetCellValue("Heat Treatment Equipment"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 8, 12)); + + #endregion + + #region 表格部分 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 3, rowIndex + 13, style, 1, 12, true); + for (int i = 3; i <= 13; i++) { - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 1, 1)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 2, 2)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 3, 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 + 1, 8, 8)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 9, 9)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 10, 10)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 11, 11)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 12, 12)); + ws.GetRow(rowIndex + i).Height = 20 * 20; + if (3 == i) + { + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 1, 1)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 2, 2)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 3, 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 + 1, 8, 8)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 9, 9)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 10, 10)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 11, 11)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 12, 12)); + } + if (4 == i) + continue; } - if (5 == i) - continue; + ws.GetRow(rowIndex + 3).GetCell(1).SetCellValue("Piping No./Line No."); + ws.GetRow(rowIndex + 3).GetCell(2).SetCellValue("Weld No."); + ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue("Temp. Measuring Point No."); + ws.GetRow(rowIndex + 3).GetCell(4).SetCellValue("HT Temperature ℃"); + ws.GetRow(rowIndex + 3).GetCell(6).SetCellValue("Holding Time h"); + ws.GetRow(rowIndex + 3).GetCell(8).SetCellValue("Material"); + ws.GetRow(rowIndex + 3).GetCell(9).SetCellValue("Specification"); + ws.GetRow(rowIndex + 3).GetCell(10).SetCellValue("Heat Treatment Date"); + ws.GetRow(rowIndex + 3).GetCell(11).SetCellValue("Recording Curve No."); + ws.GetRow(rowIndex + 3).GetCell(12).SetCellValue("Hardness Report No."); + + ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue("Required"); + ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("Actual"); + ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("Required"); + ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("Actual"); + + + var dStart = 0; + var dEnd = 0; + if (num == 1) + { + dStart = 0; + dEnd = 9; + } + else + { + dStart = num == 2 ? 9 : ((num - 2) * 9) + 9; + dEnd = ((num - 1) * 9) + 9; + } + var pageTb = GetPageToTable(dt, dStart, dEnd); + int j = 0; + for (int i = 5; i <= 13; i++) + { + if (pageTb.Rows.Count > j) + { + var dr = pageTb.Rows[j]; + ws.GetRow(rowIndex + i).GetCell(2).SetCellValue(dr["PTP_ID"].ToString()); + } + j++; + } + + + #endregion + + #region 尾部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 14, rowIndex + 16, style, 1, 12, true); + ws.GetRow(rowIndex + 14).Height = 18 * 20; + ws.GetRow(rowIndex + 15).Height = 18 * 20; + ws.GetRow(rowIndex + 16).Height = 18 * 20 * 4; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 14, rowIndex + 14, 1, 12)); + ws.GetRow(rowIndex + 14).GetCell(1).SetCellValue("Conclusion:"); + ws.GetRow(rowIndex + 14).GetCell(1).CellStyle = style2; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 1, 3)); + ws.GetRow(rowIndex + 15).GetCell(1).SetCellValue("Owner/Supervision Contractor"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 4, 6)); + ws.GetRow(rowIndex + 15).GetCell(4).SetCellValue("General Contractor"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 7, 9)); + ws.GetRow(rowIndex + 15).GetCell(7).SetCellValue("Construction Contractor"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 10, 12)); + ws.GetRow(rowIndex + 15).GetCell(10).SetCellValue("Heat Treatment Contractor"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 1, 3)); + ws.GetRow(rowIndex + 16).GetCell(1).SetCellValue(" Discipline Engineer:\n\n\n\n Date:"); + ws.GetRow(rowIndex + 16).GetCell(1).CellStyle = style2; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 4, 6)); + ws.GetRow(rowIndex + 16).GetCell(4).SetCellValue(" Discipline Engineer:\n\n\n\n Date:"); + ws.GetRow(rowIndex + 16).GetCell(4).CellStyle = style2; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 7, 9)); + ws.GetRow(rowIndex + 16).GetCell(7).SetCellValue(" Foreman:\n Quality Inspector:\n Discipline Engineer:\n\n Date:"); + ws.GetRow(rowIndex + 16).GetCell(7).CellStyle = style2; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 10, 12)); + ws.GetRow(rowIndex + 16).GetCell(10).SetCellValue(" Operator:\n Discipline Engineer:\n\n\n Date:"); + ws.GetRow(rowIndex + 16).GetCell(10).CellStyle = style2; + + #endregion + + rowIndex += 17; + } - ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("Piping No./Line No."); - ws.GetRow(rowIndex + 4).GetCell(2).SetCellValue("Weld No."); - ws.GetRow(rowIndex + 4).GetCell(3).SetCellValue("Temp. Measuring Point No."); - ws.GetRow(rowIndex + 4).GetCell(4).SetCellValue("HT Temperature ℃"); - ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("Holding Time h"); - ws.GetRow(rowIndex + 4).GetCell(8).SetCellValue("Material"); - ws.GetRow(rowIndex + 4).GetCell(9).SetCellValue("Specification"); - ws.GetRow(rowIndex + 4).GetCell(10).SetCellValue("Heat Treatment Date"); - ws.GetRow(rowIndex + 4).GetCell(11).SetCellValue("Recording Curve No."); - ws.GetRow(rowIndex + 4).GetCell(12).SetCellValue("Hardness Report No."); - - ws.GetRow(rowIndex + 5).GetCell(4).SetCellValue("Required"); - ws.GetRow(rowIndex + 5).GetCell(5).SetCellValue("Actual"); - ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue("Required"); - ws.GetRow(rowIndex + 5).GetCell(7).SetCellValue("Actual"); - - #endregion - - #region 尾部 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 13, rowIndex + 15, style, 1, 12, true); - ws.GetRow(rowIndex + 13).Height = 18 * 20; - ws.GetRow(rowIndex + 14).Height = 18 * 20; - ws.GetRow(rowIndex + 15).Height = 18 * 20 * 4; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 13, rowIndex + 13, 1, 12)); - ws.GetRow(rowIndex + 13).GetCell(1).SetCellValue("Conclusion:"); - ws.GetRow(rowIndex + 13).GetCell(1).CellStyle = style2; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 14, rowIndex + 14, 1, 3)); - ws.GetRow(rowIndex + 14).GetCell(1).SetCellValue("Owner/Supervision Contractor"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 14, rowIndex + 14, 4, 6)); - ws.GetRow(rowIndex + 14).GetCell(4).SetCellValue("General Contractor"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 14, rowIndex + 14, 7, 9)); - ws.GetRow(rowIndex + 14).GetCell(7).SetCellValue("Construction Contractor"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 14, rowIndex + 14, 10, 12)); - ws.GetRow(rowIndex + 14).GetCell(10).SetCellValue("Heat Treatment Contractor"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 1, 3)); - ws.GetRow(rowIndex + 15).GetCell(1).SetCellValue(" Discipline Engineer:\n\n\n\n Date:"); - ws.GetRow(rowIndex + 15).GetCell(1).CellStyle = style2; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 4, 6)); - ws.GetRow(rowIndex + 15).GetCell(4).SetCellValue(" Discipline Engineer:\n\n\n\n Date:"); - ws.GetRow(rowIndex + 15).GetCell(4).CellStyle = style2; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 7, 9)); - ws.GetRow(rowIndex + 15).GetCell(7).SetCellValue(" Foreman:\n Quality Inspector:\n Discipline Engineer:\n\n Date:"); - ws.GetRow(rowIndex + 15).GetCell(7).CellStyle = style2; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 10, 12)); - ws.GetRow(rowIndex + 15).GetCell(10).SetCellValue(" Operator:\n Discipline Engineer:\n\n\n Date:"); - ws.GetRow(rowIndex + 15).GetCell(10).CellStyle = style2; - #endregion - - ws.PrintSetup.FitWidth = 1; - ws.PrintSetup.FitHeight = 0; - ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - - ws.FitToPage = true; - - //横向打印 ws.PrintSetup.Landscape = true; + ws.ForceFormulaRecalculation = true; + ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; //垂直水平居中 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); + //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); } //18-金属材料化学成分检验报告SHT 3503-J129 private void template18(XSSFWorkbook hssfworkbook, XSSFSheet ws) { var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); + + + //模拟数据 + string sql = @"select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User"; + SqlParameter[] parms = new SqlParameter[] { new SqlParameter("@PTP_ID", this.tvControlItem.SelectedNodeID) }; + var dt = SQLHelper.GetDataTableRunText(sql, parms); + + var tbNum = dt.Rows.Count; + var pageNum = tbNum < 11 ? 1 : Math.Ceiling((float)(tbNum - 11) / 11) + 1; + 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 + 4, style, 1, 15, true); - ws.SetColumnWidth(0, 2 * 256); - for (int i = 1; i < 16; i++) + for (int num = 1; num <= pageNum; num++) { - if (i == 3 || i == 4) - ws.SetColumnWidth(i, 4 * 256); - else if (i == 15) - ws.SetColumnWidth(i, 8 * 256); - else - ws.SetColumnWidth(i, 5 * 256); - } - ws.GetRow(rowIndex + 1).Height = 20 * 20 * 6; - for (int i = 2; i < 5; i++) - { - ws.GetRow(rowIndex + i).Height = 20 * 20 * 3; - } - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 1, 4)); - ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("SH/T 3503—J129"); + 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.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, 5, 10)); - ws.GetRow(rowIndex + 1).GetCell(5).CellStyle = style1; - ws.GetRow(rowIndex + 1).GetCell(5).SetCellValue("金属材料化学成分检验报告\nMetal Material Chemical Composition Test Report\n\n第 页 共 页 Page of "); + #region 头部 - 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, 11, 15)); - ws.GetRow(rowIndex + 1).GetCell(11).CellStyle = style2; - ws.GetRow(rowIndex + 1).GetCell(11).SetCellValue($"工程名称:{info?.projectName}\nProject Name:{info?.enProjectName}\n单位工程名称:{info?.workAreaName}\nUnit Name:{info?.enWorkAreaName}"); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 3, style, 1, 15, true); - for (int i = 2; i < 5; i++) - { - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 1, 2)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 3, 5)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 6, 7)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 8, 10)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 11, 12)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 13, 15)); - } - ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue("委托单位\nEntrusted by"); - ws.GetRow(rowIndex + 2).GetCell(6).SetCellValue("施工单位\nConstruction Contractor"); - ws.GetRow(rowIndex + 2).GetCell(11).SetCellValue("报告编号\nReport No."); - ws.GetRow(rowIndex + 3).GetCell(1).SetCellValue("检件名称\nTest Piece Description"); - ws.GetRow(rowIndex + 3).GetCell(6).SetCellValue("检验标准\nTest Criteria"); - ws.GetRow(rowIndex + 3).GetCell(11).SetCellValue("被检验材料标准\nMaterial Specification"); - ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("检验方法\nTest Method"); - ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("设备型号\nEquipment Model"); - ws.GetRow(rowIndex + 4).GetCell(11).SetCellValue("检件材质\nTest Piece Material"); - #endregion + ws.SetColumnWidth(0, 1 * 256);//A + ws.SetColumnWidth(1, 5 * 256);//B + ws.SetColumnWidth(2, 5 * 256);//C + ws.SetColumnWidth(3, 4 * 256);//D + ws.SetColumnWidth(4, 4 * 256);//E + ws.SetColumnWidth(5, 6 * 256);//F + ws.SetColumnWidth(6, 6 * 256);//G + ws.SetColumnWidth(7, 6 * 256);//H + ws.SetColumnWidth(8, 6 * 256);//I + ws.SetColumnWidth(9, 6 * 256);//J + ws.SetColumnWidth(10, 6 * 256);//K + ws.SetColumnWidth(11, 6 * 256);//L + ws.SetColumnWidth(12, 6 * 256);//M + ws.SetColumnWidth(13, 5 * 256);//N + ws.SetColumnWidth(14, 5 * 256);//O + ws.SetColumnWidth(15, 8 * 256);//P - #region 表格部分 + //ws.SetColumnWidth(0, 2 * 256); + //for (int i = 1; i < 16; i++) + //{ + // if (i == 3 || i == 4) + // ws.SetColumnWidth(i, 4 * 256); + // else if (i == 15) + // ws.SetColumnWidth(i, 8 * 256); + // else + // ws.SetColumnWidth(i, 5 * 256); + //} - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 5, rowIndex + 17, style, 1, 15, true); - for (int i = 5; i < 18; i++) - { - if (i == 6) + ws.GetRow(rowIndex).Height = 20 * 20 * 6; + + ws.GetRow(rowIndex + 1).HeightInPoints = 50; + ws.GetRow(rowIndex + 2).HeightInPoints = 60; + ws.GetRow(rowIndex + 3).HeightInPoints = 50; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 1, 4)); + ws.GetRow(rowIndex).GetCell(1).SetCellValue("SH/T 3503—J129"); + + 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, rowIndex, 5, 10)); + ws.GetRow(rowIndex).GetCell(5).CellStyle = style1; + ws.GetRow(rowIndex).GetCell(5).SetCellValue($"金属材料化学成分检验报告\nMetal Material Chemical Composition Test Report\n\n第 {num} 页 共 {pageNum} 页 Page of "); + + 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, rowIndex, 11, 15)); + ws.GetRow(rowIndex).GetCell(11).CellStyle = style2; + ws.GetRow(rowIndex).GetCell(11).SetCellValue($"工程名称:{info?.projectName}\nProject Name:{info?.enProjectName}\n单位工程名称:{info?.workAreaName}\nUnit Name:{info?.enWorkAreaName}"); + + for (int i = 1; i < 4; i++) { - ws.GetRow(rowIndex + i).Height = 60 * 20; - continue; - } - if (i == 5) - { - ws.GetRow(rowIndex + i).Height = 60 * 20; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 1, 2)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 3, 4)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 5, 5)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 6, 15)); - } - else - { - ws.GetRow(rowIndex + i).Height = 20 * 20; ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 1, 2)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 3, 4)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 3, 5)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 6, 7)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 8, 10)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 11, 12)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 13, 15)); } + ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("委托单位\nEntrusted by"); + ws.GetRow(rowIndex + 1).GetCell(6).SetCellValue("施工单位\nConstruction Contractor"); + ws.GetRow(rowIndex + 1).GetCell(11).SetCellValue("报告编号\nReport No."); + ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue("检件名称\nTest Piece Description"); + ws.GetRow(rowIndex + 2).GetCell(6).SetCellValue("检验标准\nTest Criteria"); + ws.GetRow(rowIndex + 2).GetCell(11).SetCellValue("被检验材料标准\nMaterial Specification"); + ws.GetRow(rowIndex + 3).GetCell(1).SetCellValue("检验方法\nTest Method"); + ws.GetRow(rowIndex + 3).GetCell(6).SetCellValue("设备型号\nEquipment Model"); + ws.GetRow(rowIndex + 3).GetCell(11).SetCellValue("检件材质\nTest Piece Material"); + #endregion + + #region 表格部分 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 4, rowIndex + 16, style, 1, 15, true); + + var dStart = 0; + var dEnd = 0; + if (num == 1) + { + dStart = 0; + dEnd = 11; + } + else + { + dStart = num == 2 ? 11 : ((num - 2) * 11) + 11; + dEnd = ((num - 1) * 11) + 11; + } + var pageTb = GetPageToTable(dt, dStart, dEnd); + int j = 0; + for (int i = 4; i < 17; i++) + { + + if (i == 5) + { + ws.GetRow(rowIndex + i).HeightInPoints = 70f; + continue; + } + if (i == 4) + { + ws.GetRow(rowIndex + i).HeightInPoints = 60f; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 1, 2)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 3, 4)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i + 1, 5, 5)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 6, 15)); + } + else + { + ws.GetRow(rowIndex + i).HeightInPoints = 20f; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 1, 2)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 3, 4)); + + if (pageTb.Rows.Count > j) + { + var dr = pageTb.Rows[j]; + ws.GetRow(rowIndex + i).GetCell(3).SetCellValue(dr["PTP_ID"].ToString()); + } + j++; + + } + + } + ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("质量证明文件编号/炉批号\nQuality Certificate No./Heat No. or Lot No."); + ws.GetRow(rowIndex + 4).GetCell(3).SetCellValue("检验部位编号\nTest Position No."); + ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("规格\nSpecification"); + ws.GetRow(rowIndex + 4).GetCell(6).SetCellValue("元素含量%\nElement Content"); + + #endregion + + #region 尾部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 17, rowIndex + 23, style, 1, 15, true); + ws.GetRow(rowIndex + 17).Height = 20 * 20 * 4; + ws.GetRow(rowIndex + 23).Height = 90 * 20; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 1, 15)); + ws.GetRow(rowIndex + 17).GetCell(1).SetCellValue(" 检验结论Conclusion:\n 共检验点,符合标准要求点,不符合标准要求点,具体检验部位详见示意图。\n Totally points are tested, where points are conforming and points are nonconforming. For specific test positions, see the sketch."); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 23, rowIndex + 23, 1, 5)); + ws.GetRow(rowIndex + 23).GetCell(1).SetCellValue("\n 试验人Tested by:\n\n\n 资格Qualification:"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 23, rowIndex + 23, 6, 10)); + ws.GetRow(rowIndex + 23).GetCell(6).SetCellValue("\n 审核人Reviewed by:\n\n\n 资格Qualification:"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 23, rowIndex + 23, 11, 15)); + ws.GetRow(rowIndex + 23).GetCell(11).SetCellValue(" 检测单位:(公章)\n\n Inspection Agency: (Official Seal)\n\n 报告日期Date: 年 月 日"); + + ws.GetRow(rowIndex + 17).GetCell(1).CellStyle = ws.GetRow(rowIndex + 23).GetCell(1).CellStyle = ws.GetRow(rowIndex + 23).GetCell(6).CellStyle = ws.GetRow(rowIndex + 23).GetCell(11).CellStyle = style2; + #endregion + + rowIndex += 19; } - ws.GetRow(rowIndex + 5).GetCell(1).SetCellValue("质量证明文件编号/炉批号\nQuality Certificate No./Heat No. or Lot No."); - ws.GetRow(rowIndex + 5).GetCell(3).SetCellValue("检验部位编号\nTest Position No."); - ws.GetRow(rowIndex + 5).GetCell(5).SetCellValue("规格\nSpecification"); - ws.GetRow(rowIndex + 5).GetCell(6).SetCellValue("元素含量%\nElement Content"); - #endregion - - #region 尾部 - - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 18, rowIndex + 19, style, 1, 15, true); - ws.GetRow(rowIndex + 18).Height = 20 * 20 * 4; - ws.GetRow(rowIndex + 19).Height = 90 * 20; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 1, 15)); - ws.GetRow(rowIndex + 18).GetCell(1).SetCellValue(" 检验结论Conclusion:\n 共检验点,符合标准要求点,不符合标准要求点,具体检验部位详见示意图。\n Totally points are tested, where points are conforming and points are nonconforming. For specific test positions, see the sketch."); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 19, rowIndex + 19, 1, 5)); - ws.GetRow(rowIndex + 19).GetCell(1).SetCellValue("\n 试验人Tested by:\n\n\n 资格Qualification:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 19, rowIndex + 19, 6, 10)); - ws.GetRow(rowIndex + 19).GetCell(6).SetCellValue("\n 审核人Reviewed by:\n\n\n 资格Qualification:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 19, rowIndex + 19, 11, 15)); - ws.GetRow(rowIndex + 19).GetCell(11).SetCellValue(" 检测单位:(公章)\n\n Inspection Agency: (Official Seal)\n\n 报告日期Date: 年 月 日"); - - ws.GetRow(rowIndex + 18).GetCell(1).CellStyle = ws.GetRow(rowIndex + 19).GetCell(1).CellStyle = ws.GetRow(rowIndex + 19).GetCell(6).CellStyle = ws.GetRow(rowIndex + 19).GetCell(11).CellStyle = style2; - #endregion - - ws.PrintSetup.FitWidth = 1; - ws.PrintSetup.FitHeight = 0; + ws.PrintSetup.Landscape = false; + ws.ForceFormulaRecalculation = true; ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - - 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); - //页眉页脚间距 - ws.SetMargin(MarginType.HeaderMargin, 0); - ws.SetMargin(MarginType.FooterMargin, 0); + //ws.PrintSetup.FitWidth = 1; + //ws.PrintSetup.FitHeight = 0; + //ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; + //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); + + ////页眉页脚间距 + //ws.SetMargin(MarginType.HeaderMargin, 0); + //ws.SetMargin(MarginType.FooterMargin, 0); } //19-硬度检查报告SHT 3503-J130 private void template19(XSSFWorkbook hssfworkbook, XSSFSheet ws) { var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); + + //模拟数据 + string sql = @"select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User"; + SqlParameter[] parms = new SqlParameter[] { new SqlParameter("@PTP_ID", this.tvControlItem.SelectedNodeID) }; + var dt = SQLHelper.GetDataTableRunText(sql, parms); + + var tbNum = dt.Rows.Count; + var pageNum = tbNum < 15 ? 1 : Math.Ceiling((float)(tbNum - 15) / 15) + 1; + 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 + 5, style, 1, 12, true); - ws.SetColumnWidth(0, 2 * 256); - ws.SetColumnWidth(1, 10 * 256); - ws.SetColumnWidth(2, 5 * 256); - ws.SetColumnWidth(3, 5 * 256); - ws.SetColumnWidth(4, 5 * 256); - ws.SetColumnWidth(5, 10 * 256); - ws.SetColumnWidth(6, 5 * 256); - ws.SetColumnWidth(7, 5 * 256); - ws.SetColumnWidth(8, 5 * 256); - ws.SetColumnWidth(9, 10 * 256); - ws.SetColumnWidth(10, 5 * 256); - ws.SetColumnWidth(11, 5 * 256); - ws.SetColumnWidth(12, 5 * 256); - - ws.GetRow(rowIndex + 1).Height = 18 * 20 * 7; - ws.GetRow(rowIndex + 2).Height = ws.GetRow(rowIndex + 3).Height = ws.GetRow(rowIndex + 4).Height = ws.GetRow(rowIndex + 5).Height = 41 * 20; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 1, 3)); - ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("SH/T 3503—J130"); - - 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, 4, 9)); - ws.GetRow(rowIndex + 1).GetCell(4).CellStyle = style1; - ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue("硬度检测报告\nHardness Test Report\n\n第 页 共 页 Page of "); - - 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, 10, 12)); - ws.GetRow(rowIndex + 1).GetCell(10).CellStyle = style2; - 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++) + for (int num = 1; num <= pageNum; num++) { - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 2, 4)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 6, 8)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 10, 12)); - } - ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue("委托单位\nEntrusted by"); - ws.GetRow(rowIndex + 2).GetCell(5).SetCellValue("施工单位\nConstruction Contractor"); - ws.GetRow(rowIndex + 2).GetCell(9).SetCellValue("报告编号\nReport No."); - ws.GetRow(rowIndex + 3).GetCell(1).SetCellValue("检件名称\nTest Piece Description"); - ws.GetRow(rowIndex + 3).GetCell(5).SetCellValue("检测标准\nTest Criteria"); - ws.GetRow(rowIndex + 3).GetCell(9).SetCellValue("验收标准\nMaterial Specification"); - ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("检件规格\nTest Piece Specification"); - ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("检件材质\nTest Piece Material"); - ws.GetRow(rowIndex + 4).GetCell(9).SetCellValue("检测比例\nTest Percentage"); - ws.GetRow(rowIndex + 5).GetCell(1).SetCellValue("检测方法\nTest Position No."); - ws.GetRow(rowIndex + 5).GetCell(5).SetCellValue("热处理状态\nHT Status"); - ws.GetRow(rowIndex + 5).GetCell(9).SetCellValue("设备型号\nEquipment Model"); + 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"); - #endregion + #region 头部 - #region 表格部分 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 4, style, 1, 12, true); + ws.SetColumnWidth(0, 1 * 256);//A + ws.SetColumnWidth(1, 10 * 256);//B + ws.SetColumnWidth(2, 5 * 256);//C + ws.SetColumnWidth(3, 5 * 256);//D + ws.SetColumnWidth(4, 5 * 256);//E + ws.SetColumnWidth(5, 10 * 256);//F + ws.SetColumnWidth(6, 5 * 256);//G + ws.SetColumnWidth(7, 7 * 256);//H + ws.SetColumnWidth(8, 5 * 256);//I + ws.SetColumnWidth(9, 10 * 256);//J + ws.SetColumnWidth(10, 7 * 256);//K + ws.SetColumnWidth(11, 7 * 256);//L + ws.SetColumnWidth(12, 7 * 256);//M - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 6, rowIndex + 16, style, 1, 12, true); + ws.GetRow(rowIndex).HeightInPoints = 100f; + ws.GetRow(rowIndex + 1).HeightInPoints = 50f; + ws.GetRow(rowIndex + 2).HeightInPoints = 50f; + ws.GetRow(rowIndex + 3).HeightInPoints = 50f; + ws.GetRow(rowIndex + 4).HeightInPoints = 50f; - for (int i = 6; i < 17; i++) - { - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 1, 2)); - 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)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 9, 10)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 11, 12)); - if (i == 6) - ws.GetRow(rowIndex + i).Height = 41 * 20; + ws.AddMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 1, 3)); + ws.GetRow(rowIndex).GetCell(1).SetCellValue("SH/T 3503—J130"); + + 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, rowIndex, 4, 9)); + ws.GetRow(rowIndex).GetCell(4).CellStyle = style1; + ws.GetRow(rowIndex).GetCell(4).SetCellValue($"硬度检测报告\nHardness Test Report\n\n第 {num} 页 共 {pageNum} 页 Page of "); + + 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, rowIndex, 10, 12)); + ws.GetRow(rowIndex).GetCell(10).CellStyle = style2; + ws.GetRow(rowIndex).GetCell(10).SetCellValue($"工程名称:{info?.projectName}\n\nProject Name:{info?.enProjectName}\n\n单位工程名称:{info?.workAreaName}\n\nUnit Name:{info?.enWorkAreaName}"); + + for (int i = 1; i < 5; i++) + { + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 2, 4)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 6, 8)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 10, 12)); + } + ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("委托单位\nEntrusted by"); + ws.GetRow(rowIndex + 1).GetCell(5).SetCellValue("施工单位\nConstruction Contractor"); + ws.GetRow(rowIndex + 1).GetCell(9).SetCellValue("报告编号\nReport No."); + ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue("检件名称\nTest Piece Description"); + ws.GetRow(rowIndex + 2).GetCell(5).SetCellValue("检测标准\nTest Criteria"); + ws.GetRow(rowIndex + 2).GetCell(9).SetCellValue("验收标准\nMaterial Specification"); + ws.GetRow(rowIndex + 3).GetCell(1).SetCellValue("检件规格\nTest Piece Specification"); + ws.GetRow(rowIndex + 3).GetCell(5).SetCellValue("检件材质\nTest Piece Material"); + ws.GetRow(rowIndex + 3).GetCell(9).SetCellValue("检测比例\nTest Percentage"); + ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("检测方法\nTest Position No."); + ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("热处理状态\nHT Status"); + ws.GetRow(rowIndex + 4).GetCell(9).SetCellValue("设备型号\nEquipment Model"); + + #endregion + + #region 表格部分 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 5, rowIndex + 20, style, 1, 12, true); + + var dStart = 0; + var dEnd = 0; + if (num == 1) + { + dStart = 0; + dEnd = 15; + } else - ws.GetRow(rowIndex + i).Height = 22 * 20; + { + dStart = num == 2 ? 15 : ((num - 2) * 15) + 15; + dEnd = ((num - 1) * 15) + 15; + } + var pageTb = GetPageToTable(dt, dStart, dEnd); + + int j = 0; + for (int i = 5; i < 21; i++) + { + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 1, 2)); + 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)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 9, 10)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 11, 12)); + if (i == 5) + { + ws.GetRow(rowIndex + i).Height = 41 * 20; + } + else + { + ws.GetRow(rowIndex + i).Height = 22 * 20; + if (pageTb.Rows.Count > j) + { + var dr = pageTb.Rows[j]; + ws.GetRow(rowIndex + i).GetCell(3).SetCellValue(dr["PTP_ID"].ToString()); + } + j++; + } + } + ws.GetRow(rowIndex + 5).GetCell(1).SetCellValue("检测部位编号\nTest Position No."); + ws.GetRow(rowIndex + 5).GetCell(3).SetCellValue("硬度值\nHardness Value"); + ws.GetRow(rowIndex + 5).GetCell(5).SetCellValue("检测部位编号\nTest Position No."); + ws.GetRow(rowIndex + 5).GetCell(7).SetCellValue("硬度值\nHardness Value"); + ws.GetRow(rowIndex + 5).GetCell(9).SetCellValue("检测部位编号\nTest Position No."); + ws.GetRow(rowIndex + 5).GetCell(11).SetCellValue("硬度值\nHardness Value"); + #endregion + + #region 尾部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 21, rowIndex + 22, style, 1, 12, true); + ws.GetRow(rowIndex + 21).HeightInPoints = 72f; + ws.GetRow(rowIndex + 22).HeightInPoints = 70f; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 21, rowIndex + 21, 1, 12)); + ws.GetRow(rowIndex + 21).GetCell(1).SetCellValue("检测结论:\nConclusion:\n共检测点,符合标准要求点,不符合标准要求点,具体检测部位详见示意图。\nTotally points are tested, where points are conforming and points are nonconforming. For specific test positions, see the sketch."); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 22, rowIndex + 22, 1, 4)); + ws.GetRow(rowIndex + 22).GetCell(1).SetCellValue("\n 试验人Tested by:\n\n\n 资格Qualification:"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 22, rowIndex + 22, 5, 8)); + ws.GetRow(rowIndex + 22).GetCell(5).SetCellValue("\n 审核人Reviewed by:\n\n\n 资格Qualification:"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 22, rowIndex + 22, 9, 12)); + ws.GetRow(rowIndex + 22).GetCell(9).SetCellValue(" 检测单位:(公章)\n\n Inspection Agency: (Official Seal)\n\n 报告日期Date: 年 月 日"); + + ws.GetRow(rowIndex + 21).GetCell(1).CellStyle = ws.GetRow(rowIndex + 22).GetCell(1).CellStyle = ws.GetRow(rowIndex + 22).GetCell(5).CellStyle = ws.GetRow(rowIndex + 22).GetCell(9).CellStyle = style2; + + #endregion + + rowIndex += 23; } - ws.GetRow(rowIndex + 6).GetCell(1).SetCellValue("检测部位编号\nTest Position No."); - ws.GetRow(rowIndex + 6).GetCell(3).SetCellValue("硬度值\nHardness Value"); - ws.GetRow(rowIndex + 6).GetCell(5).SetCellValue("检测部位编号\nTest Position No."); - ws.GetRow(rowIndex + 6).GetCell(7).SetCellValue("硬度值\nHardness Value"); - ws.GetRow(rowIndex + 6).GetCell(9).SetCellValue("检测部位编号\nTest Position No."); - ws.GetRow(rowIndex + 6).GetCell(11).SetCellValue("硬度值\nHardness Value"); - #endregion - #region 尾部 - - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 17, rowIndex + 18, style, 1, 12, true); - ws.GetRow(rowIndex + 17).Height = 18 * 20 * 4; - ws.GetRow(rowIndex + 18).Height = 18 * 20 * 5; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 17, rowIndex + 17, 1, 12)); - ws.GetRow(rowIndex + 17).GetCell(1).SetCellValue("检测结论:\nConclusion:\n共检测点,符合标准要求点,不符合标准要求点,具体检测部位详见示意图。\nTotally points are tested, where points are conforming and points are nonconforming. For specific test positions, see the sketch."); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 1, 4)); - ws.GetRow(rowIndex + 18).GetCell(1).SetCellValue("\n 试验人Tested by:\n\n\n 资格Qualification:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 5, 8)); - ws.GetRow(rowIndex + 18).GetCell(5).SetCellValue("\n 审核人Reviewed by:\n\n\n 资格Qualification:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 9, 12)); - ws.GetRow(rowIndex + 18).GetCell(9).SetCellValue(" 检测单位:(公章)\n\n Inspection Agency: (Official Seal)\n\n 报告日期Date: 年 月 日"); - - ws.GetRow(rowIndex + 17).GetCell(1).CellStyle = ws.GetRow(rowIndex + 18).GetCell(1).CellStyle = ws.GetRow(rowIndex + 18).GetCell(5).CellStyle = ws.GetRow(rowIndex + 18).GetCell(9).CellStyle = style2; - - #endregion - - ws.PrintSetup.FitWidth = 1; - ws.PrintSetup.FitHeight = 0; + ws.PrintSetup.Landscape = false; + ws.ForceFormulaRecalculation = true; ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - - 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); - //页眉页脚间距 - ws.SetMargin(MarginType.HeaderMargin, 0); - ws.SetMargin(MarginType.FooterMargin, 0); + //ws.PrintSetup.FitWidth = 1; + //ws.PrintSetup.FitHeight = 0; + //ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; + //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); + ////页眉页脚间距 + //ws.SetMargin(MarginType.HeaderMargin, 0); + //ws.SetMargin(MarginType.FooterMargin, 0); } @@ -3641,81 +3998,53 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage ////模拟数据 //string sql = "SELECT '' AS totalNum,'' TestPackageNo,'' PipelineId,'模拟数据' PipelineCode,'' Specification,'' MaterialCode,'' WelderCode,'' FNum,'' NdeNum,'' FNdeNum,'' NdeCode from Sys_User union all SELECT '' AS totalNum,'' TestPackageNo,'' PipelineId,'模拟数据' PipelineCode,'' Specification,'' MaterialCode,'' WelderCode,'' FNum,'' NdeNum,'' FNdeNum,'' NdeCode from Sys_User union all SELECT '' AS totalNum,'' TestPackageNo,'' PipelineId,'模拟数据' PipelineCode,'' Specification,'' MaterialCode,'' WelderCode,'' FNum,'' NdeNum,'' FNdeNum,'' NdeCode from Sys_User"; - 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, --检测数 - - 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, --检测报告编号 - - (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, --检测数 - - 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, --检测报告编号 - - (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 - "; + string sql = @"SELECT H.*, + Ma.MaterialCode, PPline.Specification FROM + ( SELECT COUNT ( 1 ) AS totalNum,t.TestPackageNo,t.PipelineId,T.PipelineCode,t.WelderCode, + ( SELECT COUNT( 1 ) FROM dbo.View_Pipeline_WeldJoint AS jot + WHERE jot.PipelineId= T.PipelineId 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.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,--检测数 + 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,--检测报告编号 + (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 + LEFT JOIN dbo.Pipeline_Pipeline AS d ON b.PipelineId= d.PipelineId + WHERE b.isAll= 1 and a.ProjectId=@projectId and a.PTP_ID=@PTPID + UNION ALL + SELECT a.TestPackageNo, b.PipelineId,d.PipelineCode,c.WeldJointId,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,--检测数 + 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,--检测报告编号 + (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 + LEFT JOIN dbo.Pipeline_Pipeline AS d ON b.PipelineId= d.PipelineId + WHERE b.isAll= 0 AND PATINDEX( '%' + c.WeldJointCode+ '%', b.WeldJonintCode ) > 0 + and a.ProjectId=@projectId and a.PTP_ID=@PTPID + ) AS t + GROUP BY t.TestPackageNo, t.PipelineCode, t.WelderCode, t.PipelineId, t.NdeCode ) AS H + LEFT JOIN Pipeline_Pipeline AS PPline ON H.PipelineId= PPline.PipelineId + LEFT JOIN Base_Material AS Ma ON PPline.MainMaterialId= Ma.MaterialId"; SqlParameter[] parms = { @@ -4017,7 +4346,6 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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 = 25 * 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 = 25 * 20; @@ -4041,18 +4369,18 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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.SetBorderTop(1, new CellRangeAddress(rowIndex + 23, rowIndex + 23, 0, 20), ws); + RegionUtil.SetBorderLeft(1, new CellRangeAddress(rowIndex + 23, rowIndex + 23, 0, 0), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 23, rowIndex + 23, 20, 20), ws); + RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 23, 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); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 23, rowIndex + 23, 3, 3), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 23, rowIndex + 23, 9, 9), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 23, rowIndex + 23, 16, 16), ws); #endregion - rowIndex = rowIndex + 24; + rowIndex = rowIndex + 23; } ws.PrintSetup.Landscape = true; @@ -4231,7 +4559,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage ws.GetRow(rowIndex + 7).GetCell(20).SetCellValue("Examination Report No."); //这里创建行数据 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 8, rowIndex + 18, style, 0, 20, true); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 8, rowIndex + 23, style, 0, 20, true); var dStart = 0; var dEnd = 0; @@ -4272,20 +4600,20 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage #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 + 18, rowIndex + 25, style, 0, 20, true); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 23, rowIndex + 25, style, 0, 20, true); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 0, 3)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 4, 9)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 10, 16)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 18, rowIndex + 18, 17, 20)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 23, rowIndex + 23, 0, 3)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 23, rowIndex + 23, 4, 9)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 23, rowIndex + 23, 10, 16)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 23, rowIndex + 23, 17, 20)); - ws.GetRow(rowIndex + 18).GetCell(0).SetCellValue("建设/监理单位\r\nOwner/Supervision Contractor"); - ws.GetRow(rowIndex + 18).GetCell(4).SetCellValue("总承包单位\r\nGeneral Contractor"); - ws.GetRow(rowIndex + 18).GetCell(10).SetCellValue("检 测 单 位\r\nExamination Contractor"); - ws.GetRow(rowIndex + 18).GetCell(17).SetCellValue("施 工 单 位\r\nConstruction Company"); - ws.GetRow(rowIndex + 18).Height = 28 * 20; + ws.GetRow(rowIndex + 23).GetCell(0).SetCellValue("建设/监理单位\r\nOwner/Supervision Contractor"); + ws.GetRow(rowIndex + 23).GetCell(4).SetCellValue("总承包单位\r\nGeneral Contractor"); + ws.GetRow(rowIndex + 23).GetCell(10).SetCellValue("检 测 单 位\r\nExamination Contractor"); + ws.GetRow(rowIndex + 23).GetCell(17).SetCellValue("施 工 单 位\r\nConstruction Company"); + ws.GetRow(rowIndex + 23).Height = 28 * 20; var style1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 11, true, false); - ws.GetRow(rowIndex + 18).GetCell(0).CellStyle = ws.GetRow(rowIndex + 18).GetCell(4).CellStyle = ws.GetRow(rowIndex + 18).GetCell(10).CellStyle = ws.GetRow(rowIndex + 18).GetCell(17).CellStyle = style1; + 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 = style1; ws.AddMergedRegion(new CellRangeAddress(rowIndex + 19, rowIndex + 19, 0, 3)); @@ -4328,15 +4656,15 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage ws.GetRow(rowIndex + 24).Height = 3 * 20; ws.GetRow(rowIndex + 25).Height = 28 * 20; - RegionUtil.SetBorderTop(1, new CellRangeAddress(rowIndex + 18, rowIndex + 18, 0, 20), ws); - RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 18, rowIndex + 18, 0, 20), ws); - RegionUtil.SetBorderLeft(1, new CellRangeAddress(rowIndex + 18, rowIndex + 25, 0, 0), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 25, 20, 20), ws); + RegionUtil.SetBorderTop(1, new CellRangeAddress(rowIndex + 23, rowIndex + 23, 0, 20), ws); + RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 23, rowIndex + 23, 0, 20), ws); + RegionUtil.SetBorderLeft(1, new CellRangeAddress(rowIndex + 23, rowIndex + 25, 0, 0), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 23, rowIndex + 25, 20, 20), ws); RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 25, rowIndex + 25, 0, 20), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 25, 3, 3), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 25, 9, 9), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 18, rowIndex + 25, 16, 16), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 23, rowIndex + 25, 3, 3), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 23, rowIndex + 25, 9, 9), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 23, rowIndex + 25, 16, 16), ws); #endregion @@ -4377,206 +4705,261 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage private void template24(XSSFWorkbook hssfworkbook, XSSFSheet ws) { var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); + + //模拟数据 + string sql = @"select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User"; + SqlParameter[] parms = new SqlParameter[] { new SqlParameter("@PTP_ID", this.tvControlItem.SelectedNodeID) }; + var dt = SQLHelper.GetDataTableRunText(sql, parms); + + var tbNum = dt.Rows.Count; + var pageNum = tbNum < 8 ? 1 : Math.Ceiling((float)(tbNum - 8) / 8) + 1; + 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 头部 - var style1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Right, 10, true, false, "Arial Unicode MS"); - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex, style1, 0, 20, true); - - //设置行宽度 - ws.SetColumnWidth(0, 13 * 256); - ws.SetColumnWidth(1, 3 * 256); - ws.SetColumnWidth(2, 10 * 256); - for (int i = 3; i < 20; i++) + for (int num = 1; num <= pageNum; num++) { - ws.SetColumnWidth(1, 3 * 256); - } - ws.SetColumnWidth(20, 23 * 256); + var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 9, true, false, "Arial Unicode MS"); - //设置行高度 - ws.GetRow(rowIndex).Height = 10 * 20; - ws.GetRow(rowIndex).GetCell(20).CellStyle = style1; - ws.GetRow(rowIndex).GetCell(20).SetCellValue("Form No. TP-10"); + #region 头部 + var style1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Right, 9, true, false, "Arial Unicode MS"); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex, style1, 0, 20, true); - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 2, style, 0, 20, true); - //设置行高度 - ws.GetRow(rowIndex + 1).Height = 10 * 20 * 9; - ws.GetRow(rowIndex + 2).Height = 10 * 20 * 3; + //设置行宽度 + ws.SetColumnWidth(0, 13 * 256);//A + ws.SetColumnWidth(1, 2 * 256);//B + ws.SetColumnWidth(2, 7 * 256);//C + ws.SetColumnWidth(3, 5 * 256);//D + ws.SetColumnWidth(4, 4 * 256);//E + ws.SetColumnWidth(5, 5 * 256);//F + ws.SetColumnWidth(6, 6 * 256);//G + ws.SetColumnWidth(7, 6 * 256);//H + ws.SetColumnWidth(8, 6 * 256);//I + ws.SetColumnWidth(9, 5 * 256);//J + ws.SetColumnWidth(10, 5 * 256);//K + ws.SetColumnWidth(11, 5 * 256);//L + ws.SetColumnWidth(12, 7 * 256);//M + ws.SetColumnWidth(13, 5 * 256);//N + ws.SetColumnWidth(14, 5 * 256);//O + ws.SetColumnWidth(15, 5 * 256);//P + ws.SetColumnWidth(16, 5 * 256);//Q + ws.SetColumnWidth(17, 6 * 256);//R + ws.SetColumnWidth(18, 6 * 256);//S + ws.SetColumnWidth(19, 6 * 256);//T + ws.SetColumnWidth(20, 13 * 256);//U - //合并单元格和填充文本 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 0, 2)); - ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue(""); + //设置行高度 + ws.GetRow(rowIndex).HeightInPoints = 10f; + ws.GetRow(rowIndex).GetCell(20).CellStyle = style1; + ws.GetRow(rowIndex).GetCell(20).SetCellValue("Form No. TP-10"); - var style3 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 14, true, true, "Arial Unicode MS"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 3, 17)); - ws.GetRow(rowIndex + 1).GetCell(3).CellStyle = style3; - ws.GetRow(rowIndex + 1).GetCell(3).SetCellValue("管道焊接接头渗透/磁粉检测比例确认表(一)\nPipeline Welding Joints Penetrant/Magnetic Examination Rate Confirmation Form(I)\n共 1 页 第 1 页"); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 2, style, 0, 20, true); + //设置行高度 + ws.GetRow(rowIndex + 1).HeightInPoints = 90f; + ws.GetRow(rowIndex + 2).HeightInPoints = 30f; - 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工程名称:{info?.projectName}\n Project Name:{info?.enProjectName}\n 单元名称:{info?.workAreaName}\n Unit Name:{info?.enWorkAreaName}"); + //合并单元格和填充文本 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 0, 2)); + ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue(""); - ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("执行标准\nApplicable code"); + var style3 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 13, true, true, "Arial Unicode MS"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 3, 17)); + ws.GetRow(rowIndex + 1).GetCell(3).CellStyle = style3; + ws.GetRow(rowIndex + 1).GetCell(3).SetCellValue($"管道焊接接头渗透/磁粉检测比例确认表(一)\nPipeline Welding Joints Penetrant/Magnetic Examination Rate Confirmation Form(I)\n共 {pageNum} 页 第 {num} 页"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 1, 5)); - ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue("NB/T47013.3-2015"); + var style2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 9, 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工程名称:{info?.projectName}\n Project Name:{info?.enProjectName}\n 单元名称:{info?.workAreaName}\n Unit Name:{info?.enWorkAreaName}"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 6, 7)); - ws.GetRow(rowIndex + 2).GetCell(6).SetCellValue("检测方法\nExam. Method"); + ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("执行标准\nApplicable code"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 8, 15)); - ws.GetRow(rowIndex + 2).GetCell(8).SetCellValue("渗透检测\nPT"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 1, 5)); + ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue("NB/T47013.3-2015"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 16, 17)); - ws.GetRow(rowIndex + 2).GetCell(16).SetCellValue("检测比例\nExam. Rate"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 6, 7)); + ws.GetRow(rowIndex + 2).GetCell(6).SetCellValue("检测方法\nExam. Method"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 18, 20)); - ws.GetRow(rowIndex + 2).GetCell(18).SetCellValue("95%"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 8, 15)); + ws.GetRow(rowIndex + 2).GetCell(8).SetCellValue("渗透检测\nPT"); - #endregion + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 16, 17)); + ws.GetRow(rowIndex + 2).GetCell(16).SetCellValue("检测比例\nExam. Rate"); - #region 表格部分 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 18, 20)); + ws.GetRow(rowIndex + 2).GetCell(18).SetCellValue("95%"); - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 3, rowIndex + 13, style, 0, 20, true); - //设置高度和合并列填充文本 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 0, 1)); - ws.GetRow(rowIndex + 3).GetCell(0).SetCellValue("管道编号\nPipeline No."); + #endregion - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 2, 2)); - ws.GetRow(rowIndex + 3).GetCell(2).SetCellValue("材质\nMaterial"); + #region 表格部分 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 3, 4)); - ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue("规 格/Size\n mm"); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 3, rowIndex + 13, style, 0, 20, true); + //设置高度和合并列填充文本 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 0, 1)); + ws.GetRow(rowIndex + 3).GetCell(0).SetCellValue("管道编号\nPipeline No."); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 8)); - ws.GetRow(rowIndex + 3).GetCell(5).SetCellValue("管道焊接接头\nWelding Joints"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 2, 2)); + ws.GetRow(rowIndex + 3).GetCell(2).SetCellValue("材质\nMaterial"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 9, 12)); - ws.GetRow(rowIndex + 3).GetCell(9).SetCellValue("施焊焊工\nWelder"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 3, 4)); + ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue("规 格/Size\n mm"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 13, 16)); - ws.GetRow(rowIndex + 3).GetCell(13).SetCellValue("检测焊接接头\nExanined Joints"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 8)); + ws.GetRow(rowIndex + 3).GetCell(5).SetCellValue("管道焊接接头\nWelding Joints"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 5, 6)); - ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("总数\nTotal"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 9, 12)); + ws.GetRow(rowIndex + 3).GetCell(9).SetCellValue("施焊焊工\nWelder"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 7, 8)); - ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("固定口数\nField Joints"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 13, 16)); + ws.GetRow(rowIndex + 3).GetCell(13).SetCellValue("检测焊接接头\nExanined Joints"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 9, 10)); - ws.GetRow(rowIndex + 4).GetCell(9).SetCellValue("焊工代号\nWelder No."); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 5, 6)); + ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("总数\nTotal"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 11, 12)); - ws.GetRow(rowIndex + 4).GetCell(11).SetCellValue("施焊数量\nWelded Joints"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 7, 8)); + ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("固定口数\nField Joints"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 13, 14)); - ws.GetRow(rowIndex + 4).GetCell(13).SetCellValue("总数\nTotal Joints"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 9, 10)); + ws.GetRow(rowIndex + 4).GetCell(9).SetCellValue("焊工代号\nWelder No."); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 15, 16)); - ws.GetRow(rowIndex + 4).GetCell(15).SetCellValue("固定口数\nField Joints"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 11, 12)); + ws.GetRow(rowIndex + 4).GetCell(11).SetCellValue("施焊数量\nWelded Joints"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 17, 19)); - ws.GetRow(rowIndex + 3).GetCell(17).SetCellValue("实际检测比例\nActual exam. Rate"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 13, 14)); + ws.GetRow(rowIndex + 4).GetCell(13).SetCellValue("总数\nTotal Joints"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 20, 20)); - ws.GetRow(rowIndex + 3).GetCell(20).SetCellValue("检测报告编号\nExamination Report No."); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 15, 16)); + ws.GetRow(rowIndex + 4).GetCell(15).SetCellValue("固定口数\nField Joints"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 17, 19)); + ws.GetRow(rowIndex + 3).GetCell(17).SetCellValue("实际检测比例\nActual exam. Rate"); - for (int i = 3; i < 14; i++) - { - if (i == 3 || i == 4) + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 20, 20)); + ws.GetRow(rowIndex + 3).GetCell(20).SetCellValue("检测报告编号\nExamination Report No."); + + var dStart = 0; + var dEnd = 0; + if (num == 1) { - ws.GetRow(rowIndex + i).Height = 30 * 20; - continue; + dStart = 0; + dEnd = 8; } - - if (i == 13) - ws.GetRow(rowIndex + i).Height = 30 * 20; else - ws.GetRow(rowIndex + i).Height = 19 * 20; + { + dStart = num == 2 ? 8 : ((num - 2) * 8) + 8; + dEnd = ((num - 1) * 8) + 8; + } + var pageTb = GetPageToTable(dt, dStart, dEnd); - 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)); - 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)); + int j = 0; + for (int i = 3; i < 14; i++) + { + if (i == 3 || i == 4) + { + ws.GetRow(rowIndex + i).HeightInPoints = 30f; + continue; + } + if (i == 13) + { + ws.GetRow(rowIndex + i).HeightInPoints = 30f; + } + else + { + ws.GetRow(rowIndex + i).HeightInPoints = 17f; + if (pageTb.Rows.Count > j) + { + var dr = pageTb.Rows[j]; + ws.GetRow(rowIndex + i).GetCell(0).SetCellValue("模拟数据"); + } + j++; + } + + 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)); + 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)); + } + ws.GetRow(rowIndex + 13).GetCell(0).SetCellValue("小计\nTotal"); + + #endregion + + #region 尾部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 14, rowIndex + 16, style, 0, 20, true); + //设置行高 + ws.GetRow(rowIndex + 14).HeightInPoints = 30f; + ws.GetRow(rowIndex + 15).HeightInPoints = 30f; + ws.GetRow(rowIndex + 16).HeightInPoints = 125f; + + ws.GetRow(rowIndex + 14).GetCell(0).SetCellValue("备注\nRemark"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 14, rowIndex + 14, 1, 20)); + + ws.GetRow(rowIndex + 14).GetCell(1).CellStyle = style2; + ws.GetRow(rowIndex + 14).GetCell(1).SetCellValue("焊口位置与检测焊口见管道单线图与无损检测报告。\nPlease refer to Pipeline Iso-drawing and NDE Report for joints position and examined joints."); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 0, 3)); + ws.GetRow(rowIndex + 15).GetCell(0).SetCellValue("建 设 / 监 理 单 位\nOwner/JianLi Company"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 4, 9)); + ws.GetRow(rowIndex + 15).GetCell(4).SetCellValue("总 承 包 单 位\nGeneral Contractor"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 10, 16)); + ws.GetRow(rowIndex + 15).GetCell(10).SetCellValue("检 测 单 位\nExamination Contractor"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 17, 20)); + ws.GetRow(rowIndex + 15).GetCell(17).SetCellValue("施 工 单 位\nConstruction Company"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 0, 3)); + ws.GetRow(rowIndex + 16).GetCell(0).CellStyle = style2; + ws.GetRow(rowIndex + 16).GetCell(0).SetCellValue("专业工程师\n Discipline Engineer: \n\n\n\n\n\n 日期Date: 年 月 日"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 4, 9)); + ws.GetRow(rowIndex + 16).GetCell(4).CellStyle = style2; + ws.GetRow(rowIndex + 16).GetCell(4).SetCellValue("专业工程师\n Discipline Engineer: \n\n\n\n\n\n 日期Date: 年 月 日"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 10, 16)); + ws.GetRow(rowIndex + 16).GetCell(10).CellStyle = style2; + ws.GetRow(rowIndex + 16).GetCell(10).SetCellValue("专业工程师\n Discipline Engineer: \n\n\n\n\n\n 日期Date: 年 月 日"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 17, 20)); + ws.GetRow(rowIndex + 16).GetCell(17).CellStyle = style2; + ws.GetRow(rowIndex + 16).GetCell(17).SetCellValue("专业工程师\n Discipline Engineer: \n 质量检查员:\n Quality Inspector:\n 制表:\n\n Prepared:\n 日期Date: 年 月 日"); + + #endregion + + rowIndex += 17; } - ws.GetRow(rowIndex + 13).GetCell(0).SetCellValue("小计\nTotal"); - #endregion - #region 尾部 - - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 14, rowIndex + 16, style, 0, 20, true); - //设置行高 - ws.GetRow(rowIndex + 14).Height = 20 * 20 * 2; - ws.GetRow(rowIndex + 15).Height = 20 * 20 * 2; - ws.GetRow(rowIndex + 16).Height = 20 * 20 * 7; - - ws.GetRow(rowIndex + 14).GetCell(0).SetCellValue("备注\nRemark"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 14, rowIndex + 14, 1, 20)); - - ws.GetRow(rowIndex + 14).GetCell(1).CellStyle = style2; - ws.GetRow(rowIndex + 14).GetCell(1).SetCellValue("焊口位置与检测焊口见管道单线图与无损检测报告。\nPlease refer to Pipeline Iso-drawing and NDE Report for joints position and examined joints."); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 0, 3)); - ws.GetRow(rowIndex + 15).GetCell(0).SetCellValue("建 设 / 监 理 单 位\nOwner/JianLi Company"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 4, 9)); - ws.GetRow(rowIndex + 15).GetCell(4).SetCellValue("总 承 包 单 位\nGeneral Contractor"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 10, 16)); - ws.GetRow(rowIndex + 15).GetCell(10).SetCellValue("检 测 单 位\nExamination Contractor"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 17, 20)); - ws.GetRow(rowIndex + 15).GetCell(17).SetCellValue("施 工 单 位\nConstruction Company"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 0, 3)); - ws.GetRow(rowIndex + 16).GetCell(0).CellStyle = style2; - ws.GetRow(rowIndex + 16).GetCell(0).SetCellValue("专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 4, 9)); - ws.GetRow(rowIndex + 16).GetCell(4).CellStyle = style2; - ws.GetRow(rowIndex + 16).GetCell(4).SetCellValue("专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 10, 16)); - ws.GetRow(rowIndex + 16).GetCell(10).CellStyle = style2; - ws.GetRow(rowIndex + 16).GetCell(10).SetCellValue("专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 17, 20)); - ws.GetRow(rowIndex + 16).GetCell(17).CellStyle = style2; - ws.GetRow(rowIndex + 16).GetCell(17).SetCellValue("专业工程师\n Discipline Engineer: \n\n 质量检查员:\n Quality Inspector:\n\n 制表:\n Prepared:\n\n 日期Date: 年 月 日"); - - #endregion - - ws.PrintSetup.FitWidth = 1; - ws.PrintSetup.FitHeight = 0; - ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - - ws.FitToPage = true; - - //水平垂直居中 - ws.HorizontallyCenter = true; - ws.VerticallyCenter = true; - - //横向打印 ws.PrintSetup.Landscape = true; + ws.ForceFormulaRecalculation = true; + ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; //垂直水平居中 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); + //ws.PrintSetup.FitWidth = 1; + //ws.PrintSetup.FitHeight = 0; + //ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; + //ws.FitToPage = true; + ////水平垂直居中 + //ws.HorizontallyCenter = true; + //ws.VerticallyCenter = 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); } @@ -4584,206 +4967,265 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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 头部 - var style1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Right, 10, true, false, "Arial Unicode MS"); - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex, style1, 0, 20, true); + //模拟数据 + string sql = @"select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User"; + SqlParameter[] parms = new SqlParameter[] { new SqlParameter("@PTP_ID", this.tvControlItem.SelectedNodeID) }; + var dt = SQLHelper.GetDataTableRunText(sql, parms); - //设置行宽度 - ws.SetColumnWidth(0, 13 * 256); - ws.SetColumnWidth(1, 3 * 256); - ws.SetColumnWidth(2, 10 * 256); - for (int i = 3; i < 20; i++) + var tbNum = dt.Rows.Count; + var pageNum = tbNum < 8 ? 1 : Math.Ceiling((float)(tbNum - 8) / 8) + 1; + + int rowIndex = 0; + for (int num = 1; num <= pageNum; num++) { - ws.SetColumnWidth(1, 3 * 256); - } - ws.SetColumnWidth(20, 23 * 256); - //设置行高度 - ws.GetRow(rowIndex).Height = 10 * 20; - ws.GetRow(rowIndex).GetCell(20).CellStyle = style1; - ws.GetRow(rowIndex).GetCell(20).SetCellValue("Form No. TP-10"); + #region 头部 + var style1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Right, 9, true, false, "Arial Unicode MS"); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex, style1, 0, 20, true); - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 2, style, 0, 20, true); - //设置行高度 - ws.GetRow(rowIndex + 1).Height = 10 * 20 * 9; - ws.GetRow(rowIndex + 2).Height = 10 * 20 * 3; + //设置行宽度 + ws.SetColumnWidth(0, 13 * 256);//A + ws.SetColumnWidth(1, 2 * 256);//B + ws.SetColumnWidth(2, 7 * 256);//C + ws.SetColumnWidth(3, 5 * 256);//D + ws.SetColumnWidth(4, 4 * 256);//E + ws.SetColumnWidth(5, 5 * 256);//F + ws.SetColumnWidth(6, 6 * 256);//G + ws.SetColumnWidth(7, 6 * 256);//H + ws.SetColumnWidth(8, 6 * 256);//I + ws.SetColumnWidth(9, 5 * 256);//J + ws.SetColumnWidth(10, 5 * 256);//K + ws.SetColumnWidth(11, 5 * 256);//L + ws.SetColumnWidth(12, 7 * 256);//M + ws.SetColumnWidth(13, 5 * 256);//N + ws.SetColumnWidth(14, 5 * 256);//O + ws.SetColumnWidth(15, 5 * 256);//P + ws.SetColumnWidth(16, 5 * 256);//Q + ws.SetColumnWidth(17, 6 * 256);//R + ws.SetColumnWidth(18, 6 * 256);//S + ws.SetColumnWidth(19, 6 * 256);//T + ws.SetColumnWidth(20, 13 * 256);//U - //合并单元格和填充文本 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 0, 2)); - ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue(""); + //设置行高度 + ws.GetRow(rowIndex).HeightInPoints = 10f; + ws.GetRow(rowIndex).GetCell(20).CellStyle = style1; + ws.GetRow(rowIndex).GetCell(20).SetCellValue("Form No. TP-10"); - var style3 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 14, true, true, "Arial Unicode MS"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 3, 17)); - ws.GetRow(rowIndex + 1).GetCell(3).CellStyle = style3; - ws.GetRow(rowIndex + 1).GetCell(3).SetCellValue("管道焊接接头PMI检测比例确认表(一)\nPipeline Welding Joints PMI Examination Rate Confirmation Form(I)\n共 1 页 第 1 页"); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 2, style, 0, 20, true); + //设置行高度 + ws.GetRow(rowIndex + 1).HeightInPoints = 90f; + ws.GetRow(rowIndex + 2).HeightInPoints = 30f; - 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工程名称:{info?.projectName}\n Project Name:{info?.enProjectName}\n 单元名称:{info?.workAreaName}\n Unit Name:{info?.enWorkAreaName}"); + //合并单元格和填充文本 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 0, 2)); + ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue(""); - ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("执行标准\nApplicable code"); + var style3 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 13, true, true, "Arial Unicode MS"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 3, 17)); + ws.GetRow(rowIndex + 1).GetCell(3).CellStyle = style3; + ws.GetRow(rowIndex + 1).GetCell(3).SetCellValue($"管道焊接接头PMI检测比例确认表(一)\nPipeline Welding Joints PMI Examination Rate Confirmation Form(I)\n共 {pageNum} 页 第 {num} 页"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 1, 5)); - ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue(""); + var style2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 9, 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工程名称:{info?.projectName}\n Project Name:{info?.enProjectName}\n 单元名称:{info?.workAreaName}\n Unit Name:{info?.enWorkAreaName}"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 6, 7)); - ws.GetRow(rowIndex + 2).GetCell(6).SetCellValue("检测方法\nExam. Method"); + ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("执行标准\nApplicable code"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 8, 15)); - ws.GetRow(rowIndex + 2).GetCell(8).SetCellValue("PMI检测"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 1, 5)); + ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue(""); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 16, 17)); - ws.GetRow(rowIndex + 2).GetCell(16).SetCellValue("检测比例\nExam. Rate"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 6, 7)); + ws.GetRow(rowIndex + 2).GetCell(6).SetCellValue("检测方法\nExam. Method"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 18, 20)); - ws.GetRow(rowIndex + 2).GetCell(18).SetCellValue("2%"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 8, 15)); + ws.GetRow(rowIndex + 2).GetCell(8).SetCellValue("PMI检测"); - #endregion + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 16, 17)); + ws.GetRow(rowIndex + 2).GetCell(16).SetCellValue("检测比例\nExam. Rate"); - #region 表格部分 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 2, rowIndex + 2, 18, 20)); + ws.GetRow(rowIndex + 2).GetCell(18).SetCellValue("2%"); - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 3, rowIndex + 13, style, 0, 20, true); - //设置高度和合并列填充文本 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 0, 1)); - ws.GetRow(rowIndex + 3).GetCell(0).SetCellValue("管道编号\nPipeline No."); + #endregion - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 2, 2)); - ws.GetRow(rowIndex + 3).GetCell(2).SetCellValue("材质\nMaterial"); + #region 表格部分 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 3, 4)); - ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue("规 格/Size\n mm"); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 3, rowIndex + 13, style, 0, 20, true); + //设置高度和合并列填充文本 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 0, 1)); + ws.GetRow(rowIndex + 3).GetCell(0).SetCellValue("管道编号\nPipeline No."); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 8)); - ws.GetRow(rowIndex + 3).GetCell(5).SetCellValue("管道焊接接头\nWelding Joints"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 2, 2)); + ws.GetRow(rowIndex + 3).GetCell(2).SetCellValue("材质\nMaterial"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 9, 12)); - ws.GetRow(rowIndex + 3).GetCell(9).SetCellValue("施焊焊工\nWelder"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 3, 4)); + ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue("规 格/Size\n mm"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 13, 16)); - ws.GetRow(rowIndex + 3).GetCell(13).SetCellValue("检测焊接接头\nExanined Joints"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 8)); + ws.GetRow(rowIndex + 3).GetCell(5).SetCellValue("管道焊接接头\nWelding Joints"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 5, 6)); - ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("总数\nTotal"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 9, 12)); + ws.GetRow(rowIndex + 3).GetCell(9).SetCellValue("施焊焊工\nWelder"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 7, 8)); - ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("固定口数\nField Joints"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 13, 16)); + ws.GetRow(rowIndex + 3).GetCell(13).SetCellValue("检测焊接接头\nExanined Joints"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 9, 10)); - ws.GetRow(rowIndex + 4).GetCell(9).SetCellValue("焊工代号\nWelder No."); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 5, 6)); + ws.GetRow(rowIndex + 4).GetCell(5).SetCellValue("总数\nTotal"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 11, 12)); - ws.GetRow(rowIndex + 4).GetCell(11).SetCellValue("施焊数量\nWelded Joints"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 7, 8)); + ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("固定口数\nField Joints"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 13, 14)); - ws.GetRow(rowIndex + 4).GetCell(13).SetCellValue("总数\nTotal Joints"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 9, 10)); + ws.GetRow(rowIndex + 4).GetCell(9).SetCellValue("焊工代号\nWelder No."); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 15, 16)); - ws.GetRow(rowIndex + 4).GetCell(15).SetCellValue("固定口数\nField Joints"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 11, 12)); + ws.GetRow(rowIndex + 4).GetCell(11).SetCellValue("施焊数量\nWelded Joints"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 17, 19)); - ws.GetRow(rowIndex + 3).GetCell(17).SetCellValue("实际检测比例\nActual exam. Rate"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 13, 14)); + ws.GetRow(rowIndex + 4).GetCell(13).SetCellValue("总数\nTotal Joints"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 20, 20)); - ws.GetRow(rowIndex + 3).GetCell(20).SetCellValue("检测报告编号\nExamination Report No."); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 15, 16)); + ws.GetRow(rowIndex + 4).GetCell(15).SetCellValue("固定口数\nField Joints"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 17, 19)); + ws.GetRow(rowIndex + 3).GetCell(17).SetCellValue("实际检测比例\nActual exam. Rate"); - for (int i = 3; i < 14; i++) - { - if (i == 3 || i == 4) + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 4, 20, 20)); + ws.GetRow(rowIndex + 3).GetCell(20).SetCellValue("检测报告编号\nExamination Report No."); + + var dStart = 0; + var dEnd = 0; + if (num == 1) { - ws.GetRow(rowIndex + i).Height = 30 * 20; - continue; + dStart = 0; + dEnd = 8; + } + else + { + dStart = num == 2 ? 8 : ((num - 2) * 8) + 8; + dEnd = ((num - 1) * 8) + 8; + } + var pageTb = GetPageToTable(dt, dStart, dEnd); + int j = 0; + for (int i = 3; i < 14; i++) + { + if (i == 3 || i == 4) + { + ws.GetRow(rowIndex + i).HeightInPoints = 30f; + continue; + } + + if (i == 13) + { + ws.GetRow(rowIndex + i).HeightInPoints = 30f; + } + else + { + ws.GetRow(rowIndex + i).HeightInPoints = 17f; + if (pageTb.Rows.Count > j) + { + var dr = pageTb.Rows[j]; + ws.GetRow(rowIndex + i).GetCell(0).SetCellValue("模拟数据"); + } + j++; + } + + 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)); + 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)); } - if (i == 13) - ws.GetRow(rowIndex + i).Height = 30 * 20; - else - ws.GetRow(rowIndex + i).Height = 19 * 20; - 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)); - 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)); + + ws.GetRow(rowIndex + 13).GetCell(0).SetCellValue("小计\nTotal"); + #endregion + + #region 尾部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 14, rowIndex + 16, style, 0, 20, true); + //设置行高 + ws.GetRow(rowIndex + 14).HeightInPoints = 30f; + ws.GetRow(rowIndex + 15).HeightInPoints = 30f; + ws.GetRow(rowIndex + 16).HeightInPoints = 125f; + + ws.GetRow(rowIndex + 14).GetCell(0).SetCellValue("备注\nRemark"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 14, rowIndex + 14, 1, 20)); + + ws.GetRow(rowIndex + 14).GetCell(1).CellStyle = style2; + ws.GetRow(rowIndex + 14).GetCell(1).SetCellValue("焊口位置与检测焊口见管道单线图与无损检测报告。\nPlease refer to Pipeline Iso-drawing and NDE Report for joints position and examined joints."); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 0, 3)); + ws.GetRow(rowIndex + 15).GetCell(0).SetCellValue("建 设 / 监 理 单 位\nOwner/JianLi Company"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 4, 9)); + ws.GetRow(rowIndex + 15).GetCell(4).SetCellValue("总 承 包 单 位\nGeneral Contractor"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 10, 16)); + ws.GetRow(rowIndex + 15).GetCell(10).SetCellValue("检 测 单 位\nExamination Contractor"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 17, 20)); + ws.GetRow(rowIndex + 15).GetCell(17).SetCellValue("施 工 单 位\nConstruction Company"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 0, 3)); + ws.GetRow(rowIndex + 16).GetCell(0).CellStyle = style2; + ws.GetRow(rowIndex + 16).GetCell(0).SetCellValue("专业工程师\n Discipline Engineer: \n\n\n\n\n\n 日期Date: 年 月 日"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 4, 9)); + ws.GetRow(rowIndex + 16).GetCell(4).CellStyle = style2; + ws.GetRow(rowIndex + 16).GetCell(4).SetCellValue("专业工程师\n Discipline Engineer: \n\n\n\n\n\n 日期Date: 年 月 日"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 10, 16)); + ws.GetRow(rowIndex + 16).GetCell(10).CellStyle = style2; + ws.GetRow(rowIndex + 16).GetCell(10).SetCellValue("专业工程师\n Discipline Engineer: \n\n\n\n\n\n 日期Date: 年 月 日"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 17, 20)); + ws.GetRow(rowIndex + 16).GetCell(17).CellStyle = style2; + ws.GetRow(rowIndex + 16).GetCell(17).SetCellValue("专业工程师\n Discipline Engineer: \n 质量检查员:\n Quality Inspector:\n 制表:\n\n Prepared:\n 日期Date: 年 月 日"); + + #endregion + + rowIndex += 17; } - ws.GetRow(rowIndex + 13).GetCell(0).SetCellValue("小计\nTotal"); - #endregion - #region 尾部 - - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 14, rowIndex + 16, style, 0, 20, true); - //设置行高 - ws.GetRow(rowIndex + 14).Height = 20 * 20 * 2; - ws.GetRow(rowIndex + 15).Height = 20 * 20 * 2; - ws.GetRow(rowIndex + 16).Height = 20 * 20 * 7; - - ws.GetRow(rowIndex + 14).GetCell(0).SetCellValue("备注\nRemark"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 14, rowIndex + 14, 1, 20)); - - ws.GetRow(rowIndex + 14).GetCell(1).CellStyle = style2; - ws.GetRow(rowIndex + 14).GetCell(1).SetCellValue("焊口位置与检测焊口见管道单线图与无损检测报告。\nPlease refer to Pipeline Iso-drawing and NDE Report for joints position and examined joints."); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 0, 3)); - ws.GetRow(rowIndex + 15).GetCell(0).SetCellValue("建 设 / 监 理 单 位\nOwner/JianLi Company"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 4, 9)); - ws.GetRow(rowIndex + 15).GetCell(4).SetCellValue("总 承 包 单 位\nGeneral Contractor"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 10, 16)); - ws.GetRow(rowIndex + 15).GetCell(10).SetCellValue("检 测 单 位\nExamination Contractor"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 15, rowIndex + 15, 17, 20)); - ws.GetRow(rowIndex + 15).GetCell(17).SetCellValue("施 工 单 位\nConstruction Company"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 0, 3)); - ws.GetRow(rowIndex + 16).GetCell(0).CellStyle = style2; - ws.GetRow(rowIndex + 16).GetCell(0).SetCellValue("专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 4, 9)); - ws.GetRow(rowIndex + 16).GetCell(4).CellStyle = style2; - ws.GetRow(rowIndex + 16).GetCell(4).SetCellValue("专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 10, 16)); - ws.GetRow(rowIndex + 16).GetCell(10).CellStyle = style2; - ws.GetRow(rowIndex + 16).GetCell(10).SetCellValue("专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date: 年 月 日"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 17, 20)); - ws.GetRow(rowIndex + 16).GetCell(17).CellStyle = style2; - ws.GetRow(rowIndex + 16).GetCell(17).SetCellValue("专业工程师\n Discipline Engineer: \n\n 质量检查员:\n Quality Inspector:\n\n 制表:\n Prepared:\n\n 日期Date: 年 月 日"); - - #endregion - - ws.PrintSetup.FitWidth = 1; - ws.PrintSetup.FitHeight = 0; - ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - - ws.FitToPage = true; - - //水平垂直居中 - ws.HorizontallyCenter = true; - ws.VerticallyCenter = true; - - //横向打印 ws.PrintSetup.Landscape = true; + ws.ForceFormulaRecalculation = true; + ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; //垂直水平居中 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); + //ws.PrintSetup.FitWidth = 1; + //ws.PrintSetup.FitHeight = 0; + //ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; + + //ws.FitToPage = true; + ////水平垂直居中 + //ws.HorizontallyCenter = true; + //ws.VerticallyCenter = 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); } @@ -4792,76 +5234,77 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage { 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"); 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) - "; + 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 = { - new SqlParameter("@PTPID",this.tvControlItem.SelectedNodeID), - new SqlParameter("@ProjectId",this.CurrUser.LoginProjectId) - }; + 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 < 5 ? 1 : Math.Ceiling((float)(tbNum - 5) / 5) + 1; + for (int i = 1; i <= pageNum; i++) { + 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, 10 * 256); - ws.GetRow(1).Height = 85 * 20; - ws.GetRow(2).Height = 20 * 20 * 2; - ws.GetRow(3).Height = 20 * 20 * 2; + ws.SetColumnWidth(0, 1 * 256);//A + ws.SetColumnWidth(1, 10 * 256);//B + ws.SetColumnWidth(2, 6 * 256);//C + ws.SetColumnWidth(3, 6 * 256);//D + ws.SetColumnWidth(4, 6 * 256);//E + ws.SetColumnWidth(5, 6 * 256);//F + ws.SetColumnWidth(6, 12 * 256);//G + ws.SetColumnWidth(7, 7 * 256);//H + ws.SetColumnWidth(8, 7 * 256);//I + ws.SetColumnWidth(9, 7 * 256);//J + ws.SetColumnWidth(10, 7 * 256);//K + ws.SetColumnWidth(11, 8 * 256);//L + ws.SetColumnWidth(12, 7 * 256);//M + ws.SetColumnWidth(13, 7 * 256);//N + ws.SetColumnWidth(14, 6 * 256);//O + ws.SetColumnWidth(15, 8 * 256);//P + ws.SetColumnWidth(16, 4 * 256);//Q + ws.SetColumnWidth(17, 5 * 256);//R + ws.SetColumnWidth(18, 8 * 256);//S + + ws.GetRow(rowIndex + 1).HeightInPoints = 85f; + ws.GetRow(rowIndex + 2).HeightInPoints = 35f; + ws.GetRow(rowIndex + 3).HeightInPoints = 35f; ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 1, 5)); ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("SH/T 3503-J412-1"); @@ -4869,7 +5312,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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.GetRow(rowIndex + 1).GetCell(6).SetCellValue($"管道无损检测结果汇总表\nSummary of Piping NDT Results\n第 {i} 页 共 {pageNum} 页 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"); @@ -4907,8 +5350,8 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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.GetRow(rowIndex + 4).HeightInPoints = 36f; + ws.GetRow(rowIndex + 5).HeightInPoints = 36f; ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 5, 1, 1)); ws.GetRow(rowIndex + 4).GetCell(1).SetCellValue("Test Method"); @@ -4948,7 +5391,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage ws.GetRow(rowIndex + 8).GetCell(1).SetCellValue("MT"); ws.GetRow(rowIndex + 9).GetCell(1).SetCellValue("PT"); //第二部分表格部分 - ws.GetRow(rowIndex + 11).Height = 20 * 20 * 3; + ws.GetRow(rowIndex + 11).HeightInPoints = 60f; var qq = from x in Funs.DB.View_CheckResultSummary where x.PTP_ID == this.PTP_ID select x; @@ -4996,17 +5439,19 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage { 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; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + k, rowIndex + k, 2, 3)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + k, rowIndex + k, 4, 5)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + k, rowIndex + k, 6, 7)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + k, rowIndex + k, 8, 9)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + k, rowIndex + k, 10, 11)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + k, rowIndex + k, 12, 13)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + k, rowIndex + k, 14, 15)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + k, rowIndex + k, 16, 18)); + ws.GetRow(rowIndex + k).HeightInPoints = 18f; if (k == 10) break; //RT值 @@ -5099,8 +5544,8 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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(14).SetCellValue(""); + ws.GetRow(dataIndex).GetCell(15).SetCellValue(""); ws.GetRow(dataIndex).GetCell(17).SetCellValue(dr["Remark"].ToString()); j++; } @@ -5110,7 +5555,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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; + ws.GetRow(rowIndex + 17).HeightInPoints = 60f; 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; @@ -5120,39 +5565,41 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage 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.GetRow(rowIndex + 17).GetCell(7).SetCellValue(" Technical Superintendent:\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 + 17).GetCell(13).SetCellValue(" Inspection Agency: (Seal)\n\n Date:"); #endregion + + rowIndex += 18; } - - - - - ws.PrintSetup.FitWidth = 1; - ws.PrintSetup.FitHeight = 0; - ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - - ws.FitToPage = true; - - //横向打印 ws.PrintSetup.Landscape = true; + ws.ForceFormulaRecalculation = true; + ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; //垂直水平居中 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); + //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); } @@ -5160,186 +5607,236 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage private void template26(XSSFWorkbook hssfworkbook, XSSFSheet ws) { var info = GetTestPackageInfo(this.tvControlItem.SelectedNodeID); + + //模拟数据 + string sql = @"select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User"; + SqlParameter[] parms = new SqlParameter[] { new SqlParameter("@PTP_ID", this.tvControlItem.SelectedNodeID) }; + var dt = SQLHelper.GetDataTableRunText(sql, parms); + + var tbNum = dt.Rows.Count; + var pageNum = tbNum < 9 ? 1 : Math.Ceiling((float)(tbNum - 9) / 18) + 1; + 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 + 6, style, 1, 23, true); - ws.SetColumnWidth(0, 2 * 256); - ws.SetColumnWidth(1, 9 * 256); - ws.SetColumnWidth(2, 3 * 256); - ws.SetColumnWidth(3, 11 * 256); - ws.SetColumnWidth(4, 3 * 256); - ws.SetColumnWidth(5, 9 * 256); - ws.SetColumnWidth(6, 2 * 256); - ws.SetColumnWidth(7, 5 * 256); - ws.SetColumnWidth(8, 5 * 256); - ws.SetColumnWidth(9, 5 * 256); - ws.SetColumnWidth(10, 5 * 256); - ws.SetColumnWidth(11, 5 * 256); - ws.SetColumnWidth(12, 5 * 256); - ws.SetColumnWidth(13, 5 * 256); - ws.SetColumnWidth(14, 5 * 256); - ws.SetColumnWidth(15, 5 * 256); - ws.SetColumnWidth(16, 5 * 256); - ws.SetColumnWidth(17, 5 * 256); - ws.SetColumnWidth(18, 5 * 256); - ws.SetColumnWidth(19, 5 * 256); - ws.SetColumnWidth(20, 5 * 256); - ws.SetColumnWidth(21, 5 * 256); - ws.SetColumnWidth(22, 5 * 256); - ws.SetColumnWidth(23, 9 * 256); - - for (int i = 1; i < 6; i++) + for (int num = 1; num <= pageNum; num++) { - ws.GetRow(rowIndex + i).Height = 20 * 20; - } - ws.GetRow(rowIndex + 6).Height = 40 * 20; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 5, 1, 3)); - ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("SH/T 3503-J413-1"); + 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"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 5, 4, 16)); - ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue("管道无损检测数量统计表 ;\n Piping NDT Quantity Statistical From ;\n 第 页 共 页 Page of "); - var setStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 14, true, true, "Arial Unicode MS"); - ws.GetRow(rowIndex + 1).GetCell(4).CellStyle = setStyle; + #region 头部 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 5, 17, 23)); - 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; + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 6, style, 1, 23, true); + ws.SetColumnWidth(0, 2 * 256); + ws.SetColumnWidth(1, 9 * 256); + ws.SetColumnWidth(2, 3 * 256); + ws.SetColumnWidth(3, 11 * 256); + ws.SetColumnWidth(4, 3 * 256); + ws.SetColumnWidth(5, 9 * 256); + ws.SetColumnWidth(6, 2 * 256); + ws.SetColumnWidth(7, 5 * 256); + ws.SetColumnWidth(8, 5 * 256); + ws.SetColumnWidth(9, 5 * 256); + ws.SetColumnWidth(10, 5 * 256); + ws.SetColumnWidth(11, 5 * 256); + ws.SetColumnWidth(12, 5 * 256); + ws.SetColumnWidth(13, 5 * 256); + ws.SetColumnWidth(14, 5 * 256); + ws.SetColumnWidth(15, 5 * 256); + ws.SetColumnWidth(16, 5 * 256); + ws.SetColumnWidth(17, 5 * 256); + ws.SetColumnWidth(18, 5 * 256); + ws.SetColumnWidth(19, 5 * 256); + ws.SetColumnWidth(20, 5 * 256); + ws.SetColumnWidth(21, 5 * 256); + ws.SetColumnWidth(22, 5 * 256); + ws.SetColumnWidth(23, 9 * 256); - ws.GetRow(rowIndex + 6).GetCell(1).SetCellValue("Area No."); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 2, 3)); + for (int i = 1; i < 6; i++) + { + ws.GetRow(rowIndex + i).HeightInPoints = 16f; + } + ws.GetRow(rowIndex + 6).HeightInPoints = 30f; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 5, 1, 3)); + ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("SH/T 3503-J413-1"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 4, 5)); - ws.GetRow(rowIndex + 6).GetCell(4).SetCellValue("Test Type No."); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 6, 11)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 5, 4, 16)); + string title = num == 1 ? $"管道无损检测数量统计表 ;\n Piping NDT Quantity Statistical From ;\n 第 {num} 页 共 {pageNum} 页 Page of " : $"管道无损检测数量统计表(续) ;\n Piping NDT Quantity Statistical From ;\n 第 {num} 页 共 {pageNum} 页 Page of "; + ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue(title); + var setStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 14, true, true, "Arial Unicode MS"); + ws.GetRow(rowIndex + 1).GetCell(4).CellStyle = setStyle; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 12, 14)); - ws.GetRow(rowIndex + 6).GetCell(12).SetCellValue("Acceptance Criteria"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 15, 18)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 5, 17, 23)); + 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; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 19, 20)); - ws.GetRow(rowIndex + 6).GetCell(19).SetCellValue("Test Criteria"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 21, 23)); + ws.GetRow(rowIndex + 6).GetCell(1).SetCellValue("Area No."); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 2, 3)); - #endregion + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 4, 5)); + ws.GetRow(rowIndex + 6).GetCell(4).SetCellValue("Test Type No."); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 6, 11)); - #region 表格部分 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 12, 14)); + ws.GetRow(rowIndex + 6).GetCell(12).SetCellValue("Acceptance Criteria"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 15, 18)); - 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 + 7, rowIndex + 18, style, 1, 23, true); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 19, 20)); + ws.GetRow(rowIndex + 6).GetCell(19).SetCellValue("Test Criteria"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 6, rowIndex + 6, 21, 23)); - ws.GetRow(rowIndex + 7).Height = 30 * 20; - ws.GetRow(rowIndex + 8).Height = 40 * 20; + #endregion - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 9, 1, 2)); - ws.GetRow(rowIndex + 7).GetCell(1).SetCellValue("Piping No."); + #region 表格部分 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 9, 3, 4)); - ws.GetRow(rowIndex + 7).GetCell(3).SetCellValue("Included Line No."); + var rend = num == 1 ? 18 : 27; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 9, 5, 6)); - ws.GetRow(rowIndex + 7).GetCell(5).SetCellValue("Test Percentage"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 7, 7, 22)); - ws.GetRow(rowIndex + 7).GetCell(7).SetCellValue("Qualified Quantity"); + 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 + 7, rowIndex + 18, style, 1, 23, true); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 7, rowIndex + rend, style, 1, 23, true); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 8, 23, 23)); - ws.GetRow(rowIndex + 7).GetCell(23).SetCellValue("Remarks"); + ws.GetRow(rowIndex + 7).HeightInPoints = 20f; + ws.GetRow(rowIndex + 8).HeightInPoints = 30f; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 8, 7, 11)); - ws.GetRow(rowIndex + 8).GetCell(7).SetCellValue("Butt-welded Joint"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 9, 1, 2)); + ws.GetRow(rowIndex + 7).GetCell(1).SetCellValue("Piping No."); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 8, 12, 14)); - ws.GetRow(rowIndex + 8).GetCell(12).SetCellValue("Fillet-welded Joint"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 9, 3, 4)); + ws.GetRow(rowIndex + 7).GetCell(3).SetCellValue("Included Line No."); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 8, 15, 19)); - ws.GetRow(rowIndex + 8).GetCell(15).SetCellValue("Branch Connection"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 9, 5, 6)); + ws.GetRow(rowIndex + 7).GetCell(5).SetCellValue("Test Percentage"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 8, 20, 22)); - ws.GetRow(rowIndex + 8).GetCell(20).SetCellValue("Groove & Others"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 7, 7, 22)); + ws.GetRow(rowIndex + 7).GetCell(7).SetCellValue("Qualified Quantity"); - ws.GetRow(rowIndex + 9).GetCell(7).SetCellValue("Total"); - ws.GetRow(rowIndex + 9).GetCell(8).SetCellValue("RT"); - ws.GetRow(rowIndex + 9).GetCell(9).SetCellValue("UT"); - ws.GetRow(rowIndex + 9).GetCell(10).SetCellValue("MT"); - ws.GetRow(rowIndex + 9).GetCell(11).SetCellValue("PT"); - ws.GetRow(rowIndex + 9).GetCell(12).SetCellValue("Total"); - ws.GetRow(rowIndex + 9).GetCell(13).SetCellValue("MT"); - ws.GetRow(rowIndex + 9).GetCell(14).SetCellValue("PT"); - ws.GetRow(rowIndex + 9).GetCell(15).SetCellValue("Total"); - ws.GetRow(rowIndex + 9).GetCell(16).SetCellValue("RT"); - ws.GetRow(rowIndex + 9).GetCell(17).SetCellValue("UT"); - ws.GetRow(rowIndex + 9).GetCell(18).SetCellValue("MT"); - ws.GetRow(rowIndex + 9).GetCell(19).SetCellValue("PT"); - ws.GetRow(rowIndex + 9).GetCell(20).SetCellValue("Total"); - ws.GetRow(rowIndex + 9).GetCell(21).SetCellValue("MT"); - ws.GetRow(rowIndex + 9).GetCell(22).SetCellValue("PT"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 8, 23, 23)); + ws.GetRow(rowIndex + 7).GetCell(23).SetCellValue("Remarks"); - for (int i = 10; i < 19; i++) - { - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 1, 2)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 3, 4)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 5, 6)); - ws.GetRow(rowIndex + i).Height = 20 * 20; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 8, 7, 11)); + ws.GetRow(rowIndex + 8).GetCell(7).SetCellValue("Butt-welded Joint"); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 8, 12, 14)); + ws.GetRow(rowIndex + 8).GetCell(12).SetCellValue("Fillet-welded Joint"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 8, 15, 19)); + ws.GetRow(rowIndex + 8).GetCell(15).SetCellValue("Branch Connection"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 8, 20, 22)); + ws.GetRow(rowIndex + 8).GetCell(20).SetCellValue("Groove & Others"); + + ws.GetRow(rowIndex + 9).GetCell(7).SetCellValue("Total"); + ws.GetRow(rowIndex + 9).GetCell(8).SetCellValue("RT"); + ws.GetRow(rowIndex + 9).GetCell(9).SetCellValue("UT"); + ws.GetRow(rowIndex + 9).GetCell(10).SetCellValue("MT"); + ws.GetRow(rowIndex + 9).GetCell(11).SetCellValue("PT"); + ws.GetRow(rowIndex + 9).GetCell(12).SetCellValue("Total"); + ws.GetRow(rowIndex + 9).GetCell(13).SetCellValue("MT"); + ws.GetRow(rowIndex + 9).GetCell(14).SetCellValue("PT"); + ws.GetRow(rowIndex + 9).GetCell(15).SetCellValue("Total"); + ws.GetRow(rowIndex + 9).GetCell(16).SetCellValue("RT"); + ws.GetRow(rowIndex + 9).GetCell(17).SetCellValue("UT"); + ws.GetRow(rowIndex + 9).GetCell(18).SetCellValue("MT"); + ws.GetRow(rowIndex + 9).GetCell(19).SetCellValue("PT"); + ws.GetRow(rowIndex + 9).GetCell(20).SetCellValue("Total"); + ws.GetRow(rowIndex + 9).GetCell(21).SetCellValue("MT"); + ws.GetRow(rowIndex + 9).GetCell(22).SetCellValue("PT"); + + var dStart = 0; + var dEnd = 0; + if (num == 1) + { + dStart = 0; + dEnd = 9; + } + else + { + dStart = num == 2 ? 9 : ((num - 2) * 18) + 9; + dEnd = ((num - 1) * 18) + 9; + } + var pageTb = GetPageToTable(dt, dStart, dEnd); + int j = 0; + + for (int i = 10; i <= rend; i++) + { + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 1, 2)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 3, 4)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 5, 6)); + ws.GetRow(rowIndex + i).HeightInPoints = 18f; + if (pageTb.Rows.Count > j) + { + var dr = pageTb.Rows[j]; + ws.GetRow(rowIndex + i).GetCell(1).SetCellValue("模拟数据"); + } + j++; + } + + #endregion + + + #region 尾部 + + if (num == 1) + { + 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 + 19, rowIndex + 20, style, 1, 23, true); + ws.GetRow(rowIndex + 19).HeightInPoints = 25f; + ws.GetRow(rowIndex + 20).Height = 20 * 20 * 7; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 19, rowIndex + 19, 1, 7)); + ws.GetRow(rowIndex + 19).GetCell(1).SetCellValue("Owner/Supervision Contractor"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 19, rowIndex + 19, 8, 15)); + ws.GetRow(rowIndex + 19).GetCell(8).SetCellValue("General Contractor"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 19, rowIndex + 19, 16, 23)); + ws.GetRow(rowIndex + 19).GetCell(16).SetCellValue("Construction Contractor"); + + + 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 + 20).GetCell(1).CellStyle = ws.GetRow(rowIndex + 20).GetCell(8).CellStyle = ws.GetRow(rowIndex + 20).GetCell(16).CellStyle = setStyle2; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 20, rowIndex + 20, 1, 7)); + ws.GetRow(rowIndex + 20).GetCell(1).SetCellValue(" Discipline Engineer:\n\n\n\n\n\nDate:"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 20, rowIndex + 20, 8, 15)); + ws.GetRow(rowIndex + 20).GetCell(8).SetCellValue(" Discipline Engineer:\n\n\n\n\n\n Date:"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 20, rowIndex + 20, 16, 23)); + ws.GetRow(rowIndex + 20).GetCell(16).SetCellValue(" Quality Inspector: \n \n Discipline Engineer: \n\n From Prepared by:\n\n Date:"); + } + + #endregion + + + rowIndex += num == 1 ? 21 : 28; } - #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 + 19, rowIndex + 20, style, 1, 23, true); - ws.GetRow(rowIndex + 19).Height = 30 * 20; - ws.GetRow(rowIndex + 20).Height = 20 * 20 * 7; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 19, rowIndex + 19, 1, 7)); - ws.GetRow(rowIndex + 19).GetCell(1).SetCellValue("Owner/Supervision Contractor"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 19, rowIndex + 19, 8, 15)); - ws.GetRow(rowIndex + 19).GetCell(8).SetCellValue("General Contractor"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 19, rowIndex + 19, 16, 23)); - ws.GetRow(rowIndex + 19).GetCell(16).SetCellValue("Construction Contractor"); - - - 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 + 20).GetCell(1).CellStyle = ws.GetRow(rowIndex + 20).GetCell(8).CellStyle = ws.GetRow(rowIndex + 20).GetCell(16).CellStyle = setStyle2; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 20, rowIndex + 20, 1, 7)); - ws.GetRow(rowIndex + 20).GetCell(1).SetCellValue(" Discipline Engineer: \n \n \n \n \n \n \n \n Date:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 20, rowIndex + 20, 8, 15)); - ws.GetRow(rowIndex + 20).GetCell(8).SetCellValue(" Discipline Engineer: \n \n \n \n \n \n \n \n Date:"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 20, rowIndex + 20, 16, 23)); - ws.GetRow(rowIndex + 20).GetCell(16).SetCellValue(" Quality Inspector: \n \n Discipline Engineer: \n \n From Prepared by: \n \n \n \n Date:"); - - #endregion - - ws.PrintSetup.FitWidth = 1; - ws.PrintSetup.FitHeight = 0; - ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - - ws.FitToPage = true; - - //横向打印 ws.PrintSetup.Landscape = true; + ws.ForceFormulaRecalculation = true; + ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; //垂直水平居中 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); + //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); } @@ -5353,218 +5850,273 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage var img3 = Server.MapPath("~/res/images/bsf/3.png"); var img4 = Server.MapPath("~/res/images/bsf/4.png"); + //模拟数据 + string sql = @"select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User"; + SqlParameter[] parms = new SqlParameter[] { new SqlParameter("@PTP_ID", this.tvControlItem.SelectedNodeID) }; + var dt = SQLHelper.GetDataTableRunText(sql, parms); + + var tbNum = dt.Rows.Count; + var pageNum = tbNum < 12 ? 1 : Math.Ceiling((float)(tbNum - 12) / 12) + 1; int rowIndex = 0; - var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 14, 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, 12, true, false, "Arial Unicode MS"); - - var style3 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 16, true, true, "Arial Unicode MS"); - - var style4 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 24, true, true, "Arial Unicode MS"); - #region 头部 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 7, style, 0, 24, true); - - //设置行高和列宽 - for (int i = 0; i < 23; i++) + for (int num = 1; num <= pageNum; num++) { - ws.SetColumnWidth(i, 7 * 256); - } - ws.SetColumnWidth(23, 6 * 256); - ws.SetColumnWidth(24, 6 * 256); + var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 14, true, false, "Arial Unicode MS"); - ws.GetRow(rowIndex).Height = 10 * 20; - ws.GetRow(rowIndex + 1).Height = 10 * 20 * 5; - ws.GetRow(rowIndex + 2).Height = 8 * 20; - ws.GetRow(rowIndex + 3).Height = 10 * 20 * 4; - ws.GetRow(rowIndex + 4).Height = 20 * 20; - ws.GetRow(rowIndex + 5).Height = 20 * 20; - ws.GetRow(rowIndex + 6).Height = 20 * 20; - ws.GetRow(rowIndex + 7).Height = 35 * 20; + var style1 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 12, true, false, "Arial Unicode MS"); + + var style3 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 16, true, true, "Arial Unicode MS"); + + var style4 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 24, true, true, "Arial Unicode MS"); + + #region 头部 + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 7, style, 0, 24, true); + + //设置行高和列宽 + ws.SetColumnWidth(0, 5 * 256);//A + ws.SetColumnWidth(1, 5 * 256);//B + ws.SetColumnWidth(2, 6 * 256);//C + ws.SetColumnWidth(3, 2 * 256);//D + ws.SetColumnWidth(4, 5 * 256);//E + ws.SetColumnWidth(5, 6 * 256);//F + ws.SetColumnWidth(6, 6 * 256);//G + ws.SetColumnWidth(7, 4 * 256);//H + ws.SetColumnWidth(8, 5 * 256);//I + ws.SetColumnWidth(9, 5 * 256);//J + ws.SetColumnWidth(10, 5 * 256);//K + ws.SetColumnWidth(11, 5 * 256);//L + ws.SetColumnWidth(12, 4 * 256);//M + ws.SetColumnWidth(13, 5 * 256);//N + ws.SetColumnWidth(14, 5 * 256);//O + ws.SetColumnWidth(15, 5 * 256);//P + ws.SetColumnWidth(16, 6 * 256);//Q + ws.SetColumnWidth(17, 6 * 256);//R + ws.SetColumnWidth(18, 6 * 256);//S + ws.SetColumnWidth(19, 6 * 256);//T + ws.SetColumnWidth(20, 6 * 256);//U + ws.SetColumnWidth(21, 6 * 256);//V + ws.SetColumnWidth(22, 7 * 256);//W + ws.SetColumnWidth(23, 4 * 256);//X + ws.SetColumnWidth(24, 3 * 256);//Y + + ws.GetRow(rowIndex).HeightInPoints = 10f; + ws.GetRow(rowIndex + 1).HeightInPoints = 50f; + ws.GetRow(rowIndex + 2).HeightInPoints = 8f; + ws.GetRow(rowIndex + 3).HeightInPoints = 35f; + ws.GetRow(rowIndex + 4).HeightInPoints = 18f; + ws.GetRow(rowIndex + 5).HeightInPoints = 18f; + ws.GetRow(rowIndex + 6).HeightInPoints = 18f; + ws.GetRow(rowIndex + 7).HeightInPoints = 35f; + + //合并单元格和填充文本 + ws.AddMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 22, 24)); + ws.GetRow(rowIndex).GetCell(22).SetCellValue("Form No. TP-11"); + ws.GetRow(rowIndex).GetCell(22).CellStyle = style1; + + //画线 + RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex, rowIndex, 0, 24), ws); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 6, 18)); + ws.GetRow(rowIndex + 1).GetCell(6).SetCellValue("巴斯夫(广东)一体化项目\nBASF (Guangdong) Integrated Project"); + ws.GetRow(rowIndex + 1).GetCell(6).CellStyle = style3; + + //画线 + RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 0, 24), ws); + //画线 + RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 0, 24), ws); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 6, 3, 15)); + ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue("PUNCH LIST\n尾项清单"); + ws.GetRow(rowIndex + 3).GetCell(3).CellStyle = style4; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 16, 18)); + ws.GetRow(rowIndex + 3).GetCell(16).CellStyle = style1; + ws.GetRow(rowIndex + 3).GetCell(16).SetCellValue("项目/PROJECT"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 19, 24)); + ws.GetRow(rowIndex + 3).GetCell(19).CellStyle = style1; + ws.GetRow(rowIndex + 3).GetCell(19).SetCellValue("巴斯夫(广东)一体化项目\nBASF (Guangdong) Integrated Project"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 16, 18)); + ws.GetRow(rowIndex + 4).GetCell(16).CellStyle = style1; + ws.GetRow(rowIndex + 4).GetCell(16).SetCellValue("区域/AREA"); + + 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(info?.workAreaCode); - //合并单元格和填充文本 - ws.AddMergedRegion(new CellRangeAddress(rowIndex, rowIndex, 22, 24)); - ws.GetRow(rowIndex).GetCell(22).SetCellValue("Form No. TP-11"); - ws.GetRow(rowIndex).GetCell(22).CellStyle = style1; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 6, 16, 18)); + ws.GetRow(rowIndex + 5).GetCell(16).CellStyle = style1; + ws.GetRow(rowIndex + 5).GetCell(16).SetCellValue("试压包号/TEST PACKAGE No."); - //画线 - RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex, rowIndex, 0, 24), ws); + 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(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); + RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 3, rowIndex + 3, 16, 24), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 3, rowIndex + 6, 18, 18), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 3, rowIndex + 6, 15, 15), ws); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 1, rowIndex + 1, 6, 18)); - ws.GetRow(rowIndex + 1).GetCell(6).SetCellValue("巴斯夫(广东)一体化项目\nBASF (Guangdong) Integrated Project"); - ws.GetRow(rowIndex + 1).GetCell(6).CellStyle = style3; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 7, 0, 2)); + ws.GetRow(rowIndex + 7).GetCell(0).CellStyle = style1; + ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("系统号\nSYSTEM No."); - //画线 - RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 1, rowIndex + 1, 0, 24), ws); - //画线 - RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 2, rowIndex + 2, 0, 24), ws); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 7, 3, 15)); + ws.GetRow(rowIndex + 7).GetCell(3).CellStyle = style1; + ws.GetRow(rowIndex + 7).GetCell(3).SetCellValue("UG"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 6, 3, 15)); - ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue("PUNCH LIST\n尾项清单"); - ws.GetRow(rowIndex + 3).GetCell(3).CellStyle = style4; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 7, 16, 18)); + ws.GetRow(rowIndex + 7).GetCell(16).CellStyle = style1; + ws.GetRow(rowIndex + 7).GetCell(16).SetCellValue("子系统号\nSUB-SYSTEM No."); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 7, 19, 24)); + ws.GetRow(rowIndex + 7).GetCell(19).CellStyle = style1; + ws.GetRow(rowIndex + 7).GetCell(19).SetCellValue("FW"); + //画线 + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 7, rowIndex + 7, 2, 2), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 7, rowIndex + 7, 15, 15), ws); + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 7, rowIndex + 7, 18, 18), ws); + RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 7, rowIndex + 7, 0, 24), ws); + //插入图片 + InsertImage(hssfworkbook, ws, rowIndex + 1, 1, rowIndex + 1, 2, img1, 1.8, 1); + InsertImage(hssfworkbook, ws, rowIndex + 1, 4, rowIndex + 1, 5, img2, 1.8, 1, 0, 1); + InsertImage(hssfworkbook, ws, rowIndex + 1, 19, rowIndex + 1, 20, img3, 1.8, 0.7, 0, 10); + InsertImage(hssfworkbook, ws, rowIndex + 1, 21, rowIndex + 1, 23, img4, 1.2, 0.9, 0, 5); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 16, 18)); - ws.GetRow(rowIndex + 3).GetCell(16).CellStyle = style1; - ws.GetRow(rowIndex + 3).GetCell(16).SetCellValue("项目/PROJECT"); + #endregion - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 19, 24)); - ws.GetRow(rowIndex + 3).GetCell(19).CellStyle = style1; - ws.GetRow(rowIndex + 3).GetCell(19).SetCellValue("巴斯夫(广东)一体化项目\nBASF (Guangdong) Integrated Project"); + #region 表格部分 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 4, rowIndex + 4, 16, 18)); - ws.GetRow(rowIndex + 4).GetCell(16).CellStyle = style1; - ws.GetRow(rowIndex + 4).GetCell(16).SetCellValue("区域/AREA"); + var style5 = 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 + 8, rowIndex + 22, style5, 0, 24, true); - 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(info?.workAreaCode); + //设置行高 + ws.GetRow(rowIndex + 8).HeightInPoints = 30f; + ws.GetRow(rowIndex + 9).HeightInPoints = 30f; + ws.GetRow(rowIndex + 10).HeightInPoints = 40f; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 10, 0, 0)); + ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue("序号\nS/N"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 10, 1, 5)); + ws.GetRow(rowIndex + 8).GetCell(1).SetCellValue("图纸号\nDrawing No."); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 10, 6, 6)); + ws.GetRow(rowIndex + 8).GetCell(6).SetCellValue("版本\nRev No."); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 10, 7, 15)); + ws.GetRow(rowIndex + 8).GetCell(7).SetCellValue("尾项描述\nPunch Description"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 10, 16, 16)); + ws.GetRow(rowIndex + 8).GetCell(16).SetCellValue("尾项类别\n* Punch Category"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 9, 17, 18)); + ws.GetRow(rowIndex + 8).GetCell(17).SetCellValue("提出人\nOriginator"); + ws.GetRow(rowIndex + 10).GetCell(17).SetCellValue("姓名\nName"); + ws.GetRow(rowIndex + 10).GetCell(18).SetCellValue("单位\nCompany"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 8, 19, 24)); + ws.GetRow(rowIndex + 8).GetCell(19).SetCellValue("尾项关闭\nRemedial Acceptance and Signature"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 9, rowIndex + 9, 19, 20)); + ws.GetRow(rowIndex + 9).GetCell(19).SetCellValue("CC7"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 9, rowIndex + 9, 21, 22)); + ws.GetRow(rowIndex + 9).GetCell(21).SetCellValue("Worley/BASF"); + + ws.GetRow(rowIndex + 10).GetCell(19).SetCellValue("签名\nSign"); + ws.GetRow(rowIndex + 10).GetCell(20).SetCellValue("日期Date"); + ws.GetRow(rowIndex + 10).GetCell(21).SetCellValue("签名\nSign"); + ws.GetRow(rowIndex + 10).GetCell(22).SetCellValue("日期Date"); + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 9, rowIndex + 10, 23, 24)); + ws.GetRow(rowIndex + 9).GetCell(23).SetCellValue("Remark"); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 5, rowIndex + 6, 16, 18)); - ws.GetRow(rowIndex + 5).GetCell(16).CellStyle = style1; - ws.GetRow(rowIndex + 5).GetCell(16).SetCellValue("试压包号/TEST PACKAGE No."); + var dStart = 0; + var dEnd = 0; + if (num == 1) + { + dStart = 0; + dEnd = 12; + } + else + { + dStart = num == 2 ? 12 : ((num - 2) * 12) + 12; + dEnd = ((num - 1) * 12) + 12; + } + var pageTb = GetPageToTable(dt, dStart, dEnd); + int j = 0; + for (int i = 11; i < 23; i++) + { + ws.GetRow(rowIndex + i).HeightInPoints = 17f; + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 1, 5)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 7, 15)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 23, 24)); + if (pageTb.Rows.Count > j) + { + var dr = pageTb.Rows[j]; + ws.GetRow(rowIndex + i).GetCell(1).SetCellValue(dr["PTP_ID"].ToString()); + } + j++; - 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(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); - RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 3, rowIndex + 3, 16, 24), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 3, rowIndex + 6, 18, 18), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 3, rowIndex + 6, 15, 15), ws); + } - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 7, 0, 2)); - ws.GetRow(rowIndex + 7).GetCell(0).CellStyle = style1; - ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("系统号\nSYSTEM No."); + #endregion - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 7, 3, 15)); - ws.GetRow(rowIndex + 7).GetCell(3).CellStyle = style1; - ws.GetRow(rowIndex + 7).GetCell(3).SetCellValue("UG"); + #region 尾部 - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 7, 16, 18)); - ws.GetRow(rowIndex + 7).GetCell(16).CellStyle = style1; - ws.GetRow(rowIndex + 7).GetCell(16).SetCellValue("子系统号\nSUB-SYSTEM No."); + var style6 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 8, false, false, "Arial Unicode MS"); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 23, rowIndex + 27, style6, 0, 24, true); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 7, rowIndex + 7, 19, 24)); - ws.GetRow(rowIndex + 7).GetCell(19).CellStyle = style1; - ws.GetRow(rowIndex + 7).GetCell(19).SetCellValue("FW"); - //画线 - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 7, rowIndex + 7, 2, 2), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 7, rowIndex + 7, 15, 15), ws); - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex + 7, rowIndex + 7, 18, 18), ws); - RegionUtil.SetBorderBottom(1, new CellRangeAddress(rowIndex + 7, rowIndex + 7, 0, 24), ws); + ws.GetRow(rowIndex + 23).HeightInPoints = 8f; + for (int i = 24; i < 28; i++) + { + ws.GetRow(rowIndex + i).HeightInPoints = 10f; + } + ws.GetRow(rowIndex + 24).GetCell(0).SetCellValue("LEGEND"); + ws.GetRow(rowIndex + 24).GetCell(1).SetCellValue(" N.A.: Not Applicable"); + ws.GetRow(rowIndex + 24).GetCell(10).SetCellValue("*PUNCH CATEGORY:"); + ws.GetRow(rowIndex + 25).GetCell(11).SetCellValue("A - PUNCH ITEM MUST BE COMPLETED BEFORE TESTING."); + ws.GetRow(rowIndex + 26).GetCell(11).SetCellValue("B - PUNCH ITEM TO BE COMPLETED AFTER TESTING BUT SHALL BE COMPLETED PRIOR TO SYSTEM TURN-OVER"); + ws.GetRow(rowIndex + 27).GetCell(11).SetCellValue("C - PUNCH ITEM TO BE COMPLETED AFTER SYSTEM TURNOVER."); + //划线 + RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex, rowIndex + 23, 24, 24), ws); + #endregion - //插入图片 - InsertImage(hssfworkbook, ws, rowIndex + 1, 1, rowIndex + 1, 2, img1, 1.8, 1); - InsertImage(hssfworkbook, ws, rowIndex + 1, 4, rowIndex + 1, 5, img2, 1.8, 1, 0, 1); - InsertImage(hssfworkbook, ws, rowIndex + 1, 19, rowIndex + 1, 20, img3, 1.8, 0.7, 0, 10); - InsertImage(hssfworkbook, ws, rowIndex + 1, 21, rowIndex + 1, 23, img4, 1.2, 0.9, 0, 5); + rowIndex += 28; - #endregion - - #region 表格部分 - - var style5 = 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 + 8, rowIndex + 25, style5, 0, 24, true); - - //设置行高 - ws.GetRow(rowIndex + 8).Height = 10 * 20 * 3; - ws.GetRow(rowIndex + 9).Height = 30 * 20; - ws.GetRow(rowIndex + 10).Height = 10 * 20 * 4; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 10, 0, 0)); - ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue("序号\nS/N"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 10, 1, 5)); - ws.GetRow(rowIndex + 8).GetCell(1).SetCellValue("图纸号\nDrawing No."); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 10, 6, 6)); - ws.GetRow(rowIndex + 8).GetCell(6).SetCellValue("版本\nRev No."); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 10, 7, 15)); - ws.GetRow(rowIndex + 8).GetCell(7).SetCellValue("尾项描述\nPunch Description"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 10, 16, 16)); - ws.GetRow(rowIndex + 8).GetCell(16).SetCellValue("尾项类别\n* Punch Category"); - - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 9, 17, 18)); - ws.GetRow(rowIndex + 8).GetCell(17).SetCellValue("提出人\nOriginator"); - ws.GetRow(rowIndex + 10).GetCell(17).SetCellValue("姓名\nName"); - ws.GetRow(rowIndex + 10).GetCell(18).SetCellValue("单位\nCompany"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 8, rowIndex + 8, 19, 24)); - ws.GetRow(rowIndex + 8).GetCell(19).SetCellValue("尾项关闭\nRemedial Acceptance and Signature"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 9, rowIndex + 9, 19, 20)); - ws.GetRow(rowIndex + 9).GetCell(19).SetCellValue("CC7"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 9, rowIndex + 9, 21, 22)); - ws.GetRow(rowIndex + 9).GetCell(21).SetCellValue("Worley/BASF"); - - ws.GetRow(rowIndex + 10).GetCell(19).SetCellValue("签名\nSign"); - ws.GetRow(rowIndex + 10).GetCell(20).SetCellValue("日期Date"); - ws.GetRow(rowIndex + 10).GetCell(21).SetCellValue("签名\nSign"); - ws.GetRow(rowIndex + 10).GetCell(22).SetCellValue("日期Date"); - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 9, rowIndex + 10, 23, 24)); - ws.GetRow(rowIndex + 9).GetCell(23).SetCellValue("Remark"); - - for (int i = 11; i < 26; i++) - { - ws.GetRow(rowIndex + i).Height = 20 * 20; - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 1, 5)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 7, 15)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 23, 24)); } - #endregion - - #region 尾部 - - var style6 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Top, NPOI.SS.UserModel.HorizontalAlignment.Left, 8, false, false, "Arial Unicode MS"); - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 26, rowIndex + 30, style6, 0, 24, true); - - ws.GetRow(rowIndex + 26).Height = 8 * 20; - for (int i = 27; i < 31; i++) - { - ws.GetRow(rowIndex + i).Height = 10 * 20; - } - ws.GetRow(rowIndex + 27).GetCell(0).SetCellValue("LEGEND"); - ws.GetRow(rowIndex + 27).GetCell(1).SetCellValue(" N.A.: Not Applicable"); - ws.GetRow(rowIndex + 27).GetCell(10).SetCellValue("*PUNCH CATEGORY:"); - ws.GetRow(rowIndex + 28).GetCell(11).SetCellValue("A - PUNCH ITEM MUST BE COMPLETED BEFORE TESTING."); - ws.GetRow(rowIndex + 29).GetCell(11).SetCellValue("B - PUNCH ITEM TO BE COMPLETED AFTER TESTING BUT SHALL BE COMPLETED PRIOR TO SYSTEM TURN-OVER"); - ws.GetRow(rowIndex + 30).GetCell(11).SetCellValue("C - PUNCH ITEM TO BE COMPLETED AFTER SYSTEM TURNOVER."); - - //划线 - RegionUtil.SetBorderRight(1, new CellRangeAddress(rowIndex, rowIndex + 25, 24, 24), 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.ForceFormulaRecalculation = true; + ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; //垂直水平居中 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); + //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); } //28-TP-12-试压用水(工具)检查清单UG-FW-001 @@ -5577,220 +6129,264 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage var img3 = Server.MapPath("~/res/images/bsf/3.png"); var img4 = Server.MapPath("~/res/images/bsf/4.png"); + //模拟数据 + string sql = @"select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User union all select '模拟数据' as PTP_ID, '' as TestPackageNo, '' WorkAreaId, '' WorkAreaCode, '' PipelineId, '' PipelineCode, '' SystemNumber, '' as TestHeat, '' as TestType, '' SingleNumber, '' DrawingsNum, '' as Remark, '' as PageNum from Sys_User"; + SqlParameter[] parms = new SqlParameter[] { new SqlParameter("@PTP_ID", this.tvControlItem.SelectedNodeID) }; + var dt = SQLHelper.GetDataTableRunText(sql, parms); + + var tbNum = dt.Rows.Count; + var pageNum = tbNum < 25 ? 1 : Math.Ceiling((float)(tbNum - 25) / 25) + 1; + 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 头部 - - 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, 2 * 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, 10 * 256); - ws.SetColumnWidth(8, 10 * 256); - ws.SetColumnWidth(9, 11 * 256); - ws.SetColumnWidth(10, 9 * 256); - ws.SetColumnWidth(11, 8 * 256); - ws.SetColumnWidth(12, 1 * 256); - ws.SetColumnWidth(13, 9 * 256); - ws.SetColumnWidth(14, 9 * 256); - ws.SetColumnWidth(15, 9 * 256); - ws.SetColumnWidth(16, 8 * 256); - ws.SetColumnWidth(17, 1 * 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 num = 1; num <= pageNum; num++) { - ws.GetRow(i).Height = 18 * 20; + 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 头部 + + 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, 1 * 256);//A + ws.SetColumnWidth(1, 1 * 256);//B + ws.SetColumnWidth(2, 4 * 256);//C + ws.SetColumnWidth(3, 5 * 256);//D + ws.SetColumnWidth(4, 5 * 256);//E + ws.SetColumnWidth(5, 2 * 256);//F + ws.SetColumnWidth(6, 5 * 256);//G + ws.SetColumnWidth(7, 6 * 256);//H + ws.SetColumnWidth(8, 6 * 256);//I + ws.SetColumnWidth(9, 6 * 256);//J + ws.SetColumnWidth(10, 6 * 256);//K + ws.SetColumnWidth(11, 6 * 256);//L + ws.SetColumnWidth(12, 1 * 256);//M + ws.SetColumnWidth(13, 7 * 256);//N + ws.SetColumnWidth(14, 5 * 256);//O + ws.SetColumnWidth(15, 9 * 256);//P + ws.SetColumnWidth(16, 9 * 256);//Q + ws.SetColumnWidth(17, 1 * 256);//R + //设置前3行高度 + ws.GetRow(rowIndex + 0).HeightInPoints = 15f; + ws.GetRow(rowIndex + 1).HeightInPoints = 15f; + ws.GetRow(rowIndex + 2).HeightInPoints = 14f; + + //设置3-15行的行高度 + for (int i = rowIndex + 3; i < rowIndex + 15; i++) + { + ws.GetRow(i).HeightInPoints = 18f; + } + + RegionUtil.SetBorderBottom(2, new CellRangeAddress(rowIndex, rowIndex, 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); + //插入图片 + InsertImage(hssfworkbook, ws, rowIndex + 3, 2, rowIndex + 4, 3, img1, 1.2, 1.8); + InsertImage(hssfworkbook, ws, rowIndex + 3, 3, rowIndex + 4, 4, img2, 1.9, 1.9); + InsertImage(hssfworkbook, ws, rowIndex + 3, 13, rowIndex + 4, 14, img3, 1.5, 1.5); + InsertImage(hssfworkbook, ws, rowIndex + 3, 15, rowIndex + 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("WATER(MACHINE) CALIBREATION 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; + + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 13)); + #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 + 15, rowIndex + 40, style, 0, 17, true); + + var dStart = 0; + var dEnd = 0; + if (num == 1) + { + dStart = 0; + dEnd = 25; + } + else + { + dStart = num == 2 ? 25 : ((num - 2) * 25) + 25; + dEnd = ((num - 1) * 25) + 25; + } + var pageTb = GetPageToTable(dt, dStart, dEnd); + int j = 0; + for (int i = 15; i <= 40; i++) + { + ws.GetRow(rowIndex + i).HeightInPoints = 18f; + ws.GetRow(rowIndex + i).GetCell(0).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None); + ws.GetRow(rowIndex + i).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.GetRow(rowIndex + i).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 3, 5)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 6, 8)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 9, 12)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 13, 14)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 15, 16)); + + if (i > 15) + { + if (pageTb.Rows.Count > j) + { + var dr = pageTb.Rows[j]; + ws.GetRow(rowIndex + i).GetCell(3).SetCellValue(dr["PTP_ID"].ToString()); + } + j++; + } + } + ws.GetRow(rowIndex + 15).HeightInPoints = 30f; + //数据表头部分 + ws.GetRow(rowIndex + 15).GetCell(2).SetCellValue("No\r\n序号"); + ws.GetRow(rowIndex + 15).GetCell(3).SetCellValue("Report Name\r\n报告名称"); + ws.GetRow(rowIndex + 15).GetCell(6).SetCellValue("Report No.\r\n报告编号"); + ws.GetRow(rowIndex + 15).GetCell(9).SetCellValue("Date of Issue report\r\n报告出具日期"); + ws.GetRow(rowIndex + 15).GetCell(13).SetCellValue("Expiry Date\r\n有效期"); + ws.GetRow(rowIndex + 15).GetCell(15).SetCellValue("Remark\r\n备注"); + + #endregion + + #region 尾部 + + //此处的尾部行数需要根据 得到的动态数据量 来计算,默认写死从50行开始。 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 41, rowIndex + 46, style, 0, 17, true); + for (int i = rowIndex + 41; i <= rowIndex + 46; i++) + { + ws.GetRow(i).HeightInPoints = 14f; + 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 + 46).GetCell(i).CellStyle = SetStyle(hssfworkbook, BorderStyle.Medium, BorderStyle.Medium, BorderStyle.None, BorderStyle.None); + } + ws.GetRow(rowIndex + 46).GetCell(1).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.Medium, BorderStyle.Medium, BorderStyle.None); + ws.GetRow(rowIndex + 46).GetCell(16).CellStyle = SetStyle(hssfworkbook, BorderStyle.Medium, BorderStyle.Medium, BorderStyle.None, BorderStyle.None); + ws.GetRow(rowIndex + 46).GetCell(17).CellStyle = SetStyle(hssfworkbook, BorderStyle.None, BorderStyle.Medium, BorderStyle.None, BorderStyle.Medium); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 41, rowIndex + 43, 2, 4)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 41, rowIndex + 43, 5, 6)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 41, rowIndex + 43, 7, 9)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 41, rowIndex + 43, 10, 13)); + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 41, rowIndex + 43, 14, 16)); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 44, rowIndex + 44, 2, 4)); + ws.GetRow(rowIndex + 44).GetCell(2).SetCellValue("PREPARED"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 44, rowIndex + 44, 5, 6)); + ws.GetRow(rowIndex + 44).GetCell(5).SetCellValue("REVIEW"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 44, rowIndex + 45, 7, 9)); + ws.GetRow(rowIndex + 44).GetCell(7).SetCellValue("JIANLI"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 44, rowIndex + 45, 10, 13)); + ws.GetRow(rowIndex + 44).GetCell(10).SetCellValue("Worley"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 44, rowIndex + 45, 14, 16)); + ws.GetRow(rowIndex + 44).GetCell(14).SetCellValue("BASF"); + //合并单元格 + ws.AddMergedRegion(new CellRangeAddress(rowIndex + 45, rowIndex + 45, 2, 6)); + ws.GetRow(rowIndex + 45).GetCell(2).SetCellValue("CC7"); + + #endregion + + rowIndex += 47; + } - 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("WATER(MACHINE) CALIBREATION 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; - - ws.AddMergedRegion(new CellRangeAddress(rowIndex + 3, rowIndex + 3, 5, 13)); - #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 = 25 * 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, 5)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 6, 8)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 9, 12)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 13, 14)); - ws.AddMergedRegion(new CellRangeAddress(rowIndex + i, rowIndex + i, 15, 16)); - } - ws.GetRow(15).Height = 30 * 20; - //数据表头部分 - ws.GetRow(rowIndex + 15).GetCell(2).SetCellValue("No\r\n序号"); - ws.GetRow(rowIndex + 15).GetCell(3).SetCellValue("Report Name\r\n报告名称"); - ws.GetRow(rowIndex + 15).GetCell(6).SetCellValue("Report No.\r\n报告编号"); - ws.GetRow(rowIndex + 15).GetCell(9).SetCellValue("Date of Issue report\r\n报告出具日期"); - ws.GetRow(rowIndex + 15).GetCell(13).SetCellValue("Expiry Date\r\n有效期"); - ws.GetRow(rowIndex + 15).GetCell(15).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.Landscape = false; + ws.ForceFormulaRecalculation = true; ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - - 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); - //页眉页脚间距 - ws.SetMargin(MarginType.HeaderMargin, 0); - ws.SetMargin(MarginType.FooterMargin, 0); + //ws.PrintSetup.FitWidth = 1; + //ws.PrintSetup.FitHeight = 0; + //ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; + //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); + ////页眉页脚间距 + //ws.SetMargin(MarginType.HeaderMargin, 0); + //ws.SetMargin(MarginType.FooterMargin, 0); } @@ -5871,12 +6467,12 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage #region 尾部 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 16, rowIndex + 18, style, 0, 8, true); + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 16, rowIndex + 23, style, 0, 8, true); //设置行高 ws.GetRow(rowIndex + 16).Height = 50 * 20; ws.GetRow(rowIndex + 17).Height = 50 * 20; - ws.GetRow(rowIndex + 18).Height = 150 * 20; + ws.GetRow(rowIndex + 23).Height = 150 * 20; //合并单元格填充文本数据 ws.AddMergedRegion(new CellRangeAddress(rowIndex + 16, rowIndex + 16, 0, 8)); ws.GetRow(rowIndex + 16).GetCell(0).CellStyle = style2; @@ -5892,12 +6488,12 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage ws.GetRow(rowIndex + 17).GetCell(2).SetCellValue("总承包单位\nGeneral Contractor"); ws.GetRow(rowIndex + 17).GetCell(6).SetCellValue("施工单位\nConstruction Company"); - ws.GetRow(rowIndex + 18).GetCell(0).CellStyle = style2; - ws.GetRow(rowIndex + 18).GetCell(0).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date:"); - ws.GetRow(rowIndex + 18).GetCell(2).CellStyle = style2; - ws.GetRow(rowIndex + 18).GetCell(2).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date:"); - ws.GetRow(rowIndex + 18).GetCell(6).CellStyle = style2; - ws.GetRow(rowIndex + 18).GetCell(6).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n 质量检查员:\n Quality Inspector:\n\n 班(组)长:\n Leader:\n\n 日期Date:"); + ws.GetRow(rowIndex + 23).GetCell(0).CellStyle = style2; + ws.GetRow(rowIndex + 23).GetCell(0).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date:"); + ws.GetRow(rowIndex + 23).GetCell(2).CellStyle = style2; + ws.GetRow(rowIndex + 23).GetCell(2).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n\n\n\n\n\n\n 日期Date:"); + ws.GetRow(rowIndex + 23).GetCell(6).CellStyle = style2; + ws.GetRow(rowIndex + 23).GetCell(6).SetCellValue(" 专业工程师\n Discipline Engineer: \n\n 质量检查员:\n Quality Inspector:\n\n 班(组)长:\n Leader:\n\n 日期Date:"); #endregion @@ -6253,8 +6849,8 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage ws.GetRow(rowIndex + 16).GetCell(0).SetCellValue("临时加固措施、盲板位置与标识符和施工方案要求。Temporary reinforcement measures, blind position and markings must be incompliance with Specification."); ws.GetRow(rowIndex + 17).GetCell(0).CellStyle = style2; ws.GetRow(rowIndex + 17).GetCell(0).SetCellValue("焊接接头及需要检验的部位未被覆盖。Welds and other positions to be tested have not yet been painted and heat-insulated."); - ws.GetRow(rowIndex + 18).GetCell(0).CellStyle = style2; - ws.GetRow(rowIndex + 18).GetCell(0).SetCellValue("试压用压力表量程、精度等级、检定状态符合规范要求。Scale, accuracy and calibration state of test use pressure gauge must be incompliance with specification. "); + ws.GetRow(rowIndex + 23).GetCell(0).CellStyle = style2; + ws.GetRow(rowIndex + 23).GetCell(0).SetCellValue("试压用压力表量程、精度等级、检定状态符合规范要求。Scale, accuracy and calibration state of test use pressure gauge must be incompliance with specification. "); ws.GetRow(rowIndex + 19).GetCell(0).CellStyle = style2; ws.GetRow(rowIndex + 19).GetCell(0).SetCellValue("不锈钢管道试验用水符合规范要求。Test use water of stainless steel pipline must be incompliance with specification."); @@ -6546,7 +7142,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage ws.GetRow(rowIndex + 15).GetCell(0).SetCellValue("所有的阀门涂油脂和试压已经完成。All valves have been greased and stroked."); ws.GetRow(rowIndex + 16).GetCell(0).SetCellValue("螺纹连接根据规范要求进行。Compound on screwed connections in accordance with specification."); ws.GetRow(rowIndex + 17).GetCell(0).SetCellValue("安装所有的制动装置和联动装置。All locking device/interlocks installed."); - ws.GetRow(rowIndex + 18).GetCell(0).SetCellValue("检查和确定弹簧支架、滑动支架装置。Spring Support,Gags removed&support settings confirmed/Checked."); + ws.GetRow(rowIndex + 23).GetCell(0).SetCellValue("检查和确定弹簧支架、滑动支架装置。Spring Support,Gags removed&support settings confirmed/Checked."); ws.GetRow(rowIndex + 19).GetCell(0).SetCellValue("如果需要,释放给化学清洗、油洗。System released for chemical cleaning /hot oil flushing ,if required."); #endregion @@ -6833,7 +7429,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage { hssfworkbook = (XSSFWorkbook)WorkbookFactory.Create(file); } - + //操作目录模版sheet是否存在,不存在就把对应的sheet删除掉(特殊处理) int index = 0; if (!templateFileIds.Contains("2BEFB0F4-A466-4C59-963F-9092BACF2E52")) @@ -6868,7 +7464,7 @@ namespace FineUIPro.Web.WeldingProcess.TestPackageManage continue; switch (templateFileId) { - + //6-TP-05-P&ID清单UG-FW-001 模版 case "811EF650-7686-447F-BEE8-776D50041CD0": XSSFSheet sheet6 = (XSSFSheet)hssfworkbook.CreateSheet(oneTemp.Title); diff --git a/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/WeldDailyExport.aspx b/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/WeldDailyExport.aspx index 527447b..bd51b5a 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/WeldDailyExport.aspx +++ b/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/WeldDailyExport.aspx @@ -21,7 +21,7 @@ @@ -65,6 +65,7 @@ + ids = new List(); + foreach (DataRow dr in data.Rows) + { + ids.Add(dr["WeldJointId"].ToString()); + } + ModifyAuditStatus(ids, 1); + this.BindGrid(); + ShowNotify("批量审核成功!", MessageBoxIcon.Success); + } //审核 protected void btnAudit_Click(object sender,EventArgs e) { - ModifyAuditStatus(1); + var listIds = GetWeldJointIdList(); + if (listIds.Count == 0) + { + ShowNotify("请选择要审核的焊接日报数据", MessageBoxIcon.Warning); + return; + } + ModifyAuditStatus(listIds,1); this.BindGrid(); ShowNotify("批量审核成功!", MessageBoxIcon.Success); @@ -264,10 +286,17 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport //取消审核 protected void btnCancel_Click(object sender, EventArgs e) { - ModifyAuditStatus(0); + var listIds = GetWeldJointIdList(); + if (listIds.Count == 0) + { + ShowNotify("请选择要取消审核的焊接日报数据", MessageBoxIcon.Warning); + return; + } + ModifyAuditStatus(listIds,0); this.BindGrid(); ShowNotify("批量取消审核成功!", MessageBoxIcon.Success); } + //发送邮件 protected void btnSendEmail_Click(object sender,EventArgs e) { @@ -288,187 +317,195 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport } string ReportFileName = filePath + $"焊接日报_{DateTime.Now.ToString("yyyyMMddhhmmss")}.xlsx"; - FileStream file = new FileStream(TempletFileName, FileMode.Open, FileAccess.Read); - XSSFWorkbook hssfworkbook = new XSSFWorkbook(file); - - hssfworkbook.RemoveAt(0); - XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("Sheet1"); - - int rowIndex = 0; - var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 20, true, true, "微软雅黑"); - - #region 头部 - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex, style, 0, 19, true); - ws.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 0, 19)); - //设置表头文字 - ws.GetRow(rowIndex).GetCell(0).SetCellValue("焊接日报表\nWelding Daily Report"); - var style2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 9, true, true, "Arial"); - - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 2, style2, 0, 19, true); - //设置表格表头 - ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("序号"); - ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("管线号-页码"); - ws.GetRow(rowIndex + 1).GetCell(2).SetCellValue("图纸版本"); - ws.GetRow(rowIndex + 1).GetCell(3).SetCellValue("焊口号"); - ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue("焊接形式"); - ws.GetRow(rowIndex + 1).GetCell(5).SetCellValue("焊接位置"); - ws.GetRow(rowIndex + 1).GetCell(6).SetCellValue("寸径"); - ws.GetRow(rowIndex + 1).GetCell(7).SetCellValue("规格"); - ws.GetRow(rowIndex + 1).GetCell(8).SetCellValue("焊工号"); - ws.GetRow(rowIndex + 1).GetCell(9).SetCellValue("组对部件1"); - ws.GetRow(rowIndex + 1).GetCell(10).SetCellValue("组件1材质"); - ws.GetRow(rowIndex + 1).GetCell(11).SetCellValue("组件1炉批号"); - ws.GetRow(rowIndex + 1).GetCell(12).SetCellValue("组对部件2"); - ws.GetRow(rowIndex + 1).GetCell(13).SetCellValue("组件2材质"); - ws.GetRow(rowIndex + 1).GetCell(14).SetCellValue("组件2炉批号"); - ws.GetRow(rowIndex + 1).GetCell(15).SetCellValue("焊接方法"); - ws.GetRow(rowIndex + 1).GetCell(16).SetCellValue("组对"); - ws.GetRow(rowIndex + 1).GetCell(17).SetCellValue("外观"); - ws.GetRow(rowIndex + 1).GetCell(18).SetCellValue("焊接日期"); - ws.GetRow(rowIndex + 1).GetCell(19).SetCellValue("备注"); - - ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("S/N"); - ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue("LineNo.-PageNo."); - ws.GetRow(rowIndex + 2).GetCell(2).SetCellValue("Drawing\nRev"); - ws.GetRow(rowIndex + 2).GetCell(3).SetCellValue("Joint\nNo."); - ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue("JointType"); - ws.GetRow(rowIndex + 2).GetCell(5).SetCellValue("Welding\nLocation"); - ws.GetRow(rowIndex + 2).GetCell(6).SetCellValue("Inch"); - ws.GetRow(rowIndex + 2).GetCell(7).SetCellValue("Size"); - ws.GetRow(rowIndex + 2).GetCell(8).SetCellValue("Welder\nNo."); - ws.GetRow(rowIndex + 2).GetCell(9).SetCellValue("Part(1)"); - ws.GetRow(rowIndex + 2).GetCell(10).SetCellValue("Material(1)"); - ws.GetRow(rowIndex + 2).GetCell(11).SetCellValue("Heat\nNo.(1)"); - ws.GetRow(rowIndex + 2).GetCell(12).SetCellValue("Part(2)"); - ws.GetRow(rowIndex + 2).GetCell(13).SetCellValue("Material(2)"); - ws.GetRow(rowIndex + 2).GetCell(14).SetCellValue("Heat\nNo.(2)"); - ws.GetRow(rowIndex + 2).GetCell(15).SetCellValue("Weld\nProcess"); - ws.GetRow(rowIndex + 2).GetCell(16).SetCellValue("Fit\nUp"); - ws.GetRow(rowIndex + 2).GetCell(17).SetCellValue("VT"); - ws.GetRow(rowIndex + 2).GetCell(18).SetCellValue("Welding\nDate"); - ws.GetRow(rowIndex + 2).GetCell(19).SetCellValue("Remark"); - - ws.GetRow(rowIndex).Height = 69 * 20; - ws.GetRow(rowIndex + 1).Height = 15 * 20; - ws.GetRow(rowIndex + 2).Height = 30 * 20; - - ws.SetColumnWidth(0, 5 * 256); - ws.SetColumnWidth(1, (int)(21.67 * 256)); - ws.SetColumnWidth(2, (int)(9.78 * 256)); - ws.SetColumnWidth(3, (int)(5.33 * 256)); - ws.SetColumnWidth(4, (int)(7.67 * 256)); - ws.SetColumnWidth(5, (int)(8.33 * 256)); - ws.SetColumnWidth(6, (int)(7 * 256)); - ws.SetColumnWidth(7, (int)(10.82 * 256)); - ws.SetColumnWidth(8, (int)(8.33 * 256)); - ws.SetColumnWidth(9, (int)(8.40 * 256)); - ws.SetColumnWidth(10, (int)(15.67 * 256)); - ws.SetColumnWidth(11, (int)(12 * 256)); - ws.SetColumnWidth(12, (int)(8.22 * 256)); - ws.SetColumnWidth(13, (int)(16.33 * 256)); - ws.SetColumnWidth(14, (int)(11.45 * 256)); - ws.SetColumnWidth(15, (int)(11.00 * 256)); - ws.SetColumnWidth(16, (int)(4.00 * 256)); - ws.SetColumnWidth(17, (int)(4.00 * 256)); - ws.SetColumnWidth(18, (int)(9.00 * 256)); - ws.SetColumnWidth(19, (int)(7 * 256)); - #endregion - - const int pageSize = 65; - - var style3 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 9, false, false, "sans-serif"); - - ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 3, dt.Rows.Count + 2, style3, 0, 19); - for (int i = 0; i < dt.Rows.Count; i++) + try { - int startIndex = (i + 3); - ws.GetRow(startIndex).GetCell(0).SetCellValue(i + 1); - ws.GetRow(startIndex).GetCell(1).SetCellValue(dt.Rows[i]["SingleNumber"].ToString()); - ws.GetRow(startIndex).GetCell(2).SetCellValue(dt.Rows[i]["DrawingsNum"].ToString()); - ws.GetRow(startIndex).GetCell(3).SetCellValue(dt.Rows[i]["WeldJointCode"].ToString()); - ws.GetRow(startIndex).GetCell(4).SetCellValue(dt.Rows[i]["WeldTypeCode"].ToString()); - ws.GetRow(startIndex).GetCell(5).SetCellValue(dt.Rows[i]["WeldingLocationCode"].ToString()); - ws.GetRow(startIndex).GetCell(6).SetCellValue(dt.Rows[i]["Size"].ToString()); - ws.GetRow(startIndex).GetCell(7).SetCellValue(dt.Rows[i]["Specification"].ToString()); - ws.GetRow(startIndex).GetCell(8).SetCellValue(dt.Rows[i]["WelderCode"].ToString()); - ws.GetRow(startIndex).GetCell(9).SetCellValue(dt.Rows[i]["ComponentsName1"].ToString()); - ws.GetRow(startIndex).GetCell(10).SetCellValue(dt.Rows[i]["MaterialCode1"].ToString()); - ws.GetRow(startIndex).GetCell(11).SetCellValue(dt.Rows[i]["HeartNo1"].ToString()); - ws.GetRow(startIndex).GetCell(12).SetCellValue(dt.Rows[i]["ComponentsName2"].ToString()); - ws.GetRow(startIndex).GetCell(13).SetCellValue(dt.Rows[i]["MaterialCode2"].ToString()); - ws.GetRow(startIndex).GetCell(14).SetCellValue(dt.Rows[i]["HeartNo2"].ToString()); - ws.GetRow(startIndex).GetCell(15).SetCellValue(dt.Rows[i]["WeldingMethodName"].ToString()); - ws.GetRow(startIndex).GetCell(16).SetCellValue("ACC"); - ws.GetRow(startIndex).GetCell(17).SetCellValue("ACC"); - ws.GetRow(startIndex).GetCell(18).SetCellValue(dt.Rows[i]["WeldingDate"].ToString()); - ws.GetRow(startIndex).GetCell(19).SetCellValue(dt.Rows[i]["Remark"].ToString()); - ws.GetRow(startIndex).Height = 10 * 20; - if (startIndex == pageSize) - { - ws.SetRowBreak(startIndex); - startIndex += pageSize; - } - } + FileStream file = new FileStream(TempletFileName, FileMode.Open, FileAccess.Read); + XSSFWorkbook hssfworkbook = new XSSFWorkbook(file); - if (dt.Rows.Count > 0) + hssfworkbook.RemoveAt(0); + XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("Sheet1"); + + int rowIndex = 0; + var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 20, true, true, "微软雅黑"); + + #region 头部 + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex, style, 0, 19, true); + ws.AddMergedRegion(new NPOI.SS.Util.CellRangeAddress(rowIndex, rowIndex, 0, 19)); + //设置表头文字 + ws.GetRow(rowIndex).GetCell(0).SetCellValue("焊接日报表\nWelding Daily Report"); + var style2 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 9, true, true, "Arial"); + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 2, style2, 0, 19, true); + //设置表格表头 + ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("序号"); + ws.GetRow(rowIndex + 1).GetCell(1).SetCellValue("管线号-页码"); + ws.GetRow(rowIndex + 1).GetCell(2).SetCellValue("图纸版本"); + ws.GetRow(rowIndex + 1).GetCell(3).SetCellValue("焊口号"); + ws.GetRow(rowIndex + 1).GetCell(4).SetCellValue("焊接形式"); + ws.GetRow(rowIndex + 1).GetCell(5).SetCellValue("焊接位置"); + ws.GetRow(rowIndex + 1).GetCell(6).SetCellValue("寸径"); + ws.GetRow(rowIndex + 1).GetCell(7).SetCellValue("规格"); + ws.GetRow(rowIndex + 1).GetCell(8).SetCellValue("焊工号"); + ws.GetRow(rowIndex + 1).GetCell(9).SetCellValue("组对部件1"); + ws.GetRow(rowIndex + 1).GetCell(10).SetCellValue("组件1材质"); + ws.GetRow(rowIndex + 1).GetCell(11).SetCellValue("组件1炉批号"); + ws.GetRow(rowIndex + 1).GetCell(12).SetCellValue("组对部件2"); + ws.GetRow(rowIndex + 1).GetCell(13).SetCellValue("组件2材质"); + ws.GetRow(rowIndex + 1).GetCell(14).SetCellValue("组件2炉批号"); + ws.GetRow(rowIndex + 1).GetCell(15).SetCellValue("焊接方法"); + ws.GetRow(rowIndex + 1).GetCell(16).SetCellValue("组对"); + ws.GetRow(rowIndex + 1).GetCell(17).SetCellValue("外观"); + ws.GetRow(rowIndex + 1).GetCell(18).SetCellValue("焊接日期"); + ws.GetRow(rowIndex + 1).GetCell(19).SetCellValue("备注"); + + ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue("S/N"); + ws.GetRow(rowIndex + 2).GetCell(1).SetCellValue("LineNo.-PageNo."); + ws.GetRow(rowIndex + 2).GetCell(2).SetCellValue("Drawing\nRev"); + ws.GetRow(rowIndex + 2).GetCell(3).SetCellValue("Joint\nNo."); + ws.GetRow(rowIndex + 2).GetCell(4).SetCellValue("JointType"); + ws.GetRow(rowIndex + 2).GetCell(5).SetCellValue("Welding\nLocation"); + ws.GetRow(rowIndex + 2).GetCell(6).SetCellValue("Inch"); + ws.GetRow(rowIndex + 2).GetCell(7).SetCellValue("Size"); + ws.GetRow(rowIndex + 2).GetCell(8).SetCellValue("Welder\nNo."); + ws.GetRow(rowIndex + 2).GetCell(9).SetCellValue("Part(1)"); + ws.GetRow(rowIndex + 2).GetCell(10).SetCellValue("Material(1)"); + ws.GetRow(rowIndex + 2).GetCell(11).SetCellValue("Heat\nNo.(1)"); + ws.GetRow(rowIndex + 2).GetCell(12).SetCellValue("Part(2)"); + ws.GetRow(rowIndex + 2).GetCell(13).SetCellValue("Material(2)"); + ws.GetRow(rowIndex + 2).GetCell(14).SetCellValue("Heat\nNo.(2)"); + ws.GetRow(rowIndex + 2).GetCell(15).SetCellValue("Weld\nProcess"); + ws.GetRow(rowIndex + 2).GetCell(16).SetCellValue("Fit\nUp"); + ws.GetRow(rowIndex + 2).GetCell(17).SetCellValue("VT"); + ws.GetRow(rowIndex + 2).GetCell(18).SetCellValue("Welding\nDate"); + ws.GetRow(rowIndex + 2).GetCell(19).SetCellValue("Remark"); + + ws.GetRow(rowIndex).Height = 69 * 20; + ws.GetRow(rowIndex + 1).Height = 15 * 20; + ws.GetRow(rowIndex + 2).Height = 30 * 20; + + ws.SetColumnWidth(0, 5 * 256); + ws.SetColumnWidth(1, (int)(21.67 * 256)); + ws.SetColumnWidth(2, (int)(9.78 * 256)); + ws.SetColumnWidth(3, (int)(5.33 * 256)); + ws.SetColumnWidth(4, (int)(7.67 * 256)); + ws.SetColumnWidth(5, (int)(8.33 * 256)); + ws.SetColumnWidth(6, (int)(7 * 256)); + ws.SetColumnWidth(7, (int)(10.82 * 256)); + ws.SetColumnWidth(8, (int)(8.33 * 256)); + ws.SetColumnWidth(9, (int)(8.40 * 256)); + ws.SetColumnWidth(10, (int)(15.67 * 256)); + ws.SetColumnWidth(11, (int)(12 * 256)); + ws.SetColumnWidth(12, (int)(8.22 * 256)); + ws.SetColumnWidth(13, (int)(16.33 * 256)); + ws.SetColumnWidth(14, (int)(11.45 * 256)); + ws.SetColumnWidth(15, (int)(11.00 * 256)); + ws.SetColumnWidth(16, (int)(4.00 * 256)); + ws.SetColumnWidth(17, (int)(4.00 * 256)); + ws.SetColumnWidth(18, (int)(9.00 * 256)); + ws.SetColumnWidth(19, (int)(7 * 256)); + #endregion + + const int pageSize = 65; + + var style3 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 9, false, false, "sans-serif"); + + ws = ExcelCreateRow(ws, hssfworkbook, rowIndex + 3, dt.Rows.Count + 2, style3, 0, 19); + for (int i = 0; i < dt.Rows.Count; i++) + { + int startIndex = (i + 3); + ws.GetRow(startIndex).GetCell(0).SetCellValue(i + 1); + ws.GetRow(startIndex).GetCell(1).SetCellValue(dt.Rows[i]["SingleNumber"].ToString()); + ws.GetRow(startIndex).GetCell(2).SetCellValue(dt.Rows[i]["DrawingsNum"].ToString()); + ws.GetRow(startIndex).GetCell(3).SetCellValue(dt.Rows[i]["WeldJointCode"].ToString()); + ws.GetRow(startIndex).GetCell(4).SetCellValue(dt.Rows[i]["WeldTypeCode"].ToString()); + ws.GetRow(startIndex).GetCell(5).SetCellValue(dt.Rows[i]["WeldingLocationCode"].ToString()); + ws.GetRow(startIndex).GetCell(6).SetCellValue(dt.Rows[i]["Size"].ToString()); + ws.GetRow(startIndex).GetCell(7).SetCellValue(dt.Rows[i]["Specification"].ToString()); + ws.GetRow(startIndex).GetCell(8).SetCellValue(dt.Rows[i]["WelderCode"].ToString()); + ws.GetRow(startIndex).GetCell(9).SetCellValue(dt.Rows[i]["ComponentsName1"].ToString()); + ws.GetRow(startIndex).GetCell(10).SetCellValue(dt.Rows[i]["MaterialCode1"].ToString()); + ws.GetRow(startIndex).GetCell(11).SetCellValue(dt.Rows[i]["HeartNo1"].ToString()); + ws.GetRow(startIndex).GetCell(12).SetCellValue(dt.Rows[i]["ComponentsName2"].ToString()); + ws.GetRow(startIndex).GetCell(13).SetCellValue(dt.Rows[i]["MaterialCode2"].ToString()); + ws.GetRow(startIndex).GetCell(14).SetCellValue(dt.Rows[i]["HeartNo2"].ToString()); + ws.GetRow(startIndex).GetCell(15).SetCellValue(dt.Rows[i]["WeldingMethodName"].ToString()); + ws.GetRow(startIndex).GetCell(16).SetCellValue("ACC"); + ws.GetRow(startIndex).GetCell(17).SetCellValue("ACC"); + ws.GetRow(startIndex).GetCell(18).SetCellValue(dt.Rows[i]["WeldingDate"].ToString()); + ws.GetRow(startIndex).GetCell(19).SetCellValue(dt.Rows[i]["Remark"].ToString()); + ws.GetRow(startIndex).Height = 10 * 20; + if (startIndex == pageSize) + { + ws.SetRowBreak(startIndex); + startIndex += pageSize; + } + } + + if (dt.Rows.Count > 0) + { + string weldingDate = string.Empty; + if (txtStarTime.Text == txtEndTime.Text) + { + weldingDate = txtStarTime.Text; + } + else + { + weldingDate = txtStarTime.Text + "-" + txtEndTime.Text; + } + var style4 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 9, true, true, "Arial"); + + ws = ExcelCreateRow(ws, hssfworkbook, dt.Rows.Count + 3, dt.Rows.Count + 3, style4, 0, 19); + var distinctPipelineCode = dt.AsEnumerable().GroupBy(row => row.Field("PipelineCode")).Select(group => group.First()); + var distinctWelder = dt.AsEnumerable().GroupBy(row => row.Field("WelderCode")).Select(group => group.First()); + decimal sumSize = decimal.Parse(dt.Compute("sum(Size)", "").ToString()); + + ws.GetRow(dt.Rows.Count + 3).GetCell(0).SetCellValue("Total"); + ws.GetRow(dt.Rows.Count + 3).GetCell(1).SetCellValue($"{distinctPipelineCode.Count().ToString()}"); + ws.GetRow(dt.Rows.Count + 3).GetCell(3).SetCellValue($"{dt.Rows.Count}"); + ws.GetRow(dt.Rows.Count + 3).GetCell(6).SetCellValue($"{sumSize}"); + ws.GetRow(dt.Rows.Count + 3).GetCell(8).SetCellValue($"{distinctWelder.Count().ToString()}"); + ws.GetRow(dt.Rows.Count + 3).Height = 20 * 20; + + + + } + + #region 页脚部分 + IFooter footer = ws.Footer; + string str = " CC7: 监理: Worley:"; + str += "\n\n第 &P 页,共 &N 页"; + footer.Center = str; + + + #endregion + + ws.FitToPage = true; + ws.PrintSetup.FitWidth = 1; + ws.PrintSetup.FitHeight = short.MaxValue; + + ws.SetMargin(MarginType.LeftMargin, (double)1.2 / 3); + ws.SetMargin(MarginType.RightMargin, (double)0.5 / 3); + ws.SetMargin(MarginType.TopMargin, (double)1.8 / 3); + ws.SetMargin(MarginType.BottomMargin, (double)2.9 / 3); + ws.PrintSetup.Landscape = true; + ws.ForceFormulaRecalculation = true; + ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; + ws.RepeatingRows = new NPOI.SS.Util.CellRangeAddress(0, 2, 0, 19); + + using (FileStream filess = System.IO.File.OpenWrite(ReportFileName)) + { + hssfworkbook.Write(filess); + } + hssfworkbook.Close(); + + this.GetEmailTemplateAndSendEmail(ReportFileName); + File.Delete(ReportFileName); + ShowNotify("焊接日报发送成功!", MessageBoxIcon.Success); + } + catch (Exception ex) { - string weldingDate = string.Empty; - if (txtStarTime.Text == txtEndTime.Text) - { - weldingDate = txtStarTime.Text; - } - else - { - weldingDate = txtStarTime.Text + "-" + txtEndTime.Text; - } - var style4 = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, NPOI.SS.UserModel.HorizontalAlignment.Center, 9, true, true, "Arial"); - - ws = ExcelCreateRow(ws, hssfworkbook, dt.Rows.Count + 3, dt.Rows.Count + 3, style4, 0, 19); - var distinctPipelineCode = dt.AsEnumerable().GroupBy(row => row.Field("PipelineCode")).Select(group => group.First()); - var distinctWelder = dt.AsEnumerable().GroupBy(row => row.Field("WelderCode")).Select(group => group.First()); - decimal sumSize = decimal.Parse(dt.Compute("sum(Size)", "").ToString()); - - ws.GetRow(dt.Rows.Count + 3).GetCell(0).SetCellValue("Total"); - ws.GetRow(dt.Rows.Count + 3).GetCell(1).SetCellValue($"{distinctPipelineCode.Count().ToString()}"); - ws.GetRow(dt.Rows.Count + 3).GetCell(3).SetCellValue($"{dt.Rows.Count}"); - ws.GetRow(dt.Rows.Count + 3).GetCell(6).SetCellValue($"{sumSize}"); - ws.GetRow(dt.Rows.Count + 3).GetCell(8).SetCellValue($"{distinctWelder.Count().ToString()}"); - ws.GetRow(dt.Rows.Count + 3).Height = 20 * 20; - - - + ShowNotify($"发送失败,原因:{ex.Message}", MessageBoxIcon.Error); } - - #region 页脚部分 - IFooter footer = ws.Footer; - string str = " CC7: 监理: Worley:"; - str += "\n\n第 &P 页,共 &N 页"; - footer.Center = str; - - - #endregion - - ws.FitToPage = true; - ws.PrintSetup.FitWidth = 1; - ws.PrintSetup.FitHeight = short.MaxValue; - - ws.SetMargin(MarginType.LeftMargin, (double)1.2 / 3); - ws.SetMargin(MarginType.RightMargin, (double)0.5 / 3); - ws.SetMargin(MarginType.TopMargin, (double)1.8 / 3); - ws.SetMargin(MarginType.BottomMargin, (double)2.9 / 3); - ws.PrintSetup.Landscape = true; - ws.ForceFormulaRecalculation = true; - ws.PrintSetup.PaperSize = (int)PaperSize.A4_Small; - ws.RepeatingRows = new NPOI.SS.Util.CellRangeAddress(0, 2, 0, 19); - - using (FileStream filess = System.IO.File.OpenWrite(ReportFileName)) - { - hssfworkbook.Write(filess); - } - hssfworkbook.Close(); - - this.GetEmailTemplateAndSendEmail(ReportFileName); - File.Delete(ReportFileName); } protected void Window1_Close(object sender, EventArgs e) { @@ -870,19 +907,16 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport private List GetWeldJointIdList() { List listIds = new List(); - for (int i = 0; i < Grid1.Rows.Count; i++) + int[] selections = Grid1.SelectedRowIndexArray; + foreach (int rowIndex in selections) { - AspNet.HiddenField WeldJointIdVal = Grid1.Rows[i].FindControl("hidId") as AspNet.HiddenField; - if (WeldJointIdVal != null) - { - listIds.Add(WeldJointIdVal.Value); - } + string rowId = Grid1.DataKeys[rowIndex][0].ToString(); + listIds.Add(rowId); } return listIds; } - private void ModifyAuditStatus(int auditStatus) + private void ModifyAuditStatus(List listIds, int auditStatus) { - var listIds = GetWeldJointIdList(); var result = Funs.DB.Pipeline_WeldJoint.Where(t => listIds.Contains(t.WeldJointId)).ToList(); foreach (var item in result) { diff --git a/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/WeldDailyExport.aspx.designer.cs b/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/WeldDailyExport.aspx.designer.cs index d0f494d..a78108c 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/WeldDailyExport.aspx.designer.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/WeldingReport/WeldDailyExport.aspx.designer.cs @@ -158,6 +158,15 @@ namespace FineUIPro.Web.WeldingProcess.WeldingReport /// protected global::FineUIPro.Button BtnAnalyse; + /// + /// btnAuditAll 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAuditAll; + /// /// btnAudit 控件。 ///