From f404b44aeb20d245bf060eef94738cbde75d6714 Mon Sep 17 00:00:00 2001 From: shecs <408299694@qq.com> Date: Fri, 21 Jun 2024 16:37:50 +0800 Subject: [PATCH] 11 --- HJGL/.vs/HJGL/config/applicationhost.config | 4 +- HJGL/.vs/HJGL/v17/.suo | Bin 1434112 -> 1431552 bytes HJGL/FineUIPro.Web/Web.config | 2 +- .../WeldingProcess/PMI/PMIDelegation.aspx | 8 +- .../WeldingProcess/PMI/PMIDelegation.aspx.cs | 505 +++++++++++++++--- .../PMI/PMIDelegation.aspx.designer.cs | 9 - .../WebApi.csproj.AssemblyReference.cache | Bin 32130 -> 33754 bytes 7 files changed, 446 insertions(+), 82 deletions(-) diff --git a/HJGL/.vs/HJGL/config/applicationhost.config b/HJGL/.vs/HJGL/config/applicationhost.config index e47cfd0..1963de0 100644 --- a/HJGL/.vs/HJGL/config/applicationhost.config +++ b/HJGL/.vs/HJGL/config/applicationhost.config @@ -162,7 +162,7 @@ - + @@ -250,7 +250,7 @@ - + diff --git a/HJGL/.vs/HJGL/v17/.suo b/HJGL/.vs/HJGL/v17/.suo index 01103c4c21403669886641dc99709bc4200a43b7..81deba5cddf673b699e11eb37a5d804c08d0f7d8 100644 GIT binary patch delta 59494 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 I{#|AL2S$-F5&!@I delta 62690 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 Mc@Q0?s+$%3PgZj=umAu6 diff --git a/HJGL/FineUIPro.Web/Web.config b/HJGL/FineUIPro.Web/Web.config index 9ecdad1..baa8804 100644 --- a/HJGL/FineUIPro.Web/Web.config +++ b/HJGL/FineUIPro.Web/Web.config @@ -9,7 +9,7 @@
- + diff --git a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegation.aspx b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegation.aspx index 4fe0b11..1b487af 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegation.aspx +++ b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegation.aspx @@ -120,9 +120,6 @@ - - @@ -150,10 +147,11 @@ HeaderTextAlign="Center" TextAlign="Left" Width="120px"> diff --git a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegation.aspx.cs b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegation.aspx.cs index 917d8a9..7ceed36 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegation.aspx.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegation.aspx.cs @@ -1,13 +1,17 @@ -using BLL; -using System; +using System; using System.Collections.Generic; -using System.Data.SqlClient; using System.Data; +using System.Data.SqlClient; +using System.IO; using System.Linq; +using System.Web; +using BLL; +using Model; +using NPOI.HSSF.Util; using NPOI.SS.UserModel; +using NPOI.SS.Util; using NPOI.XSSF.UserModel; - namespace FineUIPro.Web.WeldingProcess.PMI { public partial class PMIDelegation : PageBase @@ -65,7 +69,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI this.tvControlItem.Nodes.Add(rootNode); List trustLists = new List(); ///PMI委托单 - + if (!string.IsNullOrEmpty(this.txtSearchNo.Text.Trim())) { trustLists = (from x in Funs.DB.PMI_Delegation where x.ProjectId == CurrUser.LoginProjectId && x.DelegationNo.Contains(this.txtSearchNo.Text.Trim()) orderby x.DelegationNo select x).ToList(); @@ -140,7 +144,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI if (!string.IsNullOrEmpty(this.tvControlItem.SelectedNodeID)) { - var result = Funs.DB.PMI_Delegation.FirstOrDefault(t=>t.Id==this.tvControlItem.SelectedNodeID); + var result = Funs.DB.PMI_Delegation.FirstOrDefault(t => t.Id == this.tvControlItem.SelectedNodeID); if (result != null) { this.PMIDelegationId = result.Id; @@ -184,7 +188,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI /// private void PageInfoLoad() { - var trust =Funs.DB.PMI_Delegation.FirstOrDefault(t=>t.Id==this.PMIDelegationId); + var trust = Funs.DB.PMI_Delegation.FirstOrDefault(t => t.Id == this.PMIDelegationId); if (trust != null) { this.txtDelegationNo.Text = trust.DelegationNo; @@ -279,7 +283,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.PMIDelegationMenuId, Const.BtnAdd)) { this.SetTextTemp(); - string window = String.Format("PMIDelegationEdit.aspx?PMIDelegationId={0}", string.Empty, "新增 - ") ; + string window = String.Format("PMIDelegationEdit.aspx?PMIDelegationId={0}", string.Empty, "新增 - "); PageContext.RegisterStartupScript(Window2.GetSaveStateReference(this.hdPMIDelegationId.ClientID) + Window2.GetShowReference(window)); } @@ -299,7 +303,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI { if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HotProessTrustMenuId, Const.BtnSave)) { - var trustManage = Funs.DB.PMI_Delegation.FirstOrDefault (t=>t.Id==this.PMIDelegationId); + var trustManage = Funs.DB.PMI_Delegation.FirstOrDefault(t => t.Id == this.PMIDelegationId); if (trustManage != null) { string openUrl = String.Format("PMIDelegationEdit.aspx?PMIDelegationId={0}", this.PMIDelegationId, "编辑 - "); @@ -328,9 +332,9 @@ namespace FineUIPro.Web.WeldingProcess.PMI { if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.PMIDelegationMenuId, Const.BtnDelete)) { - var trustManage =Funs.DB.PMI_Delegation.FirstOrDefault (t=>t.Id==this.PMIDelegationId); + var trustManage = Funs.DB.PMI_Delegation.FirstOrDefault(t => t.Id == this.PMIDelegationId); if (trustManage != null) - { + { //删除主表数据 Funs.DB.PMI_Delegation.DeleteOnSubmit(trustManage); //删除 明细表 @@ -367,7 +371,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI { this.InitTreeMenu(); this.BindGrid(); - + } #region 查询 @@ -383,51 +387,435 @@ namespace FineUIPro.Web.WeldingProcess.PMI #endregion #endregion + #region 获取按钮权限 + /// + /// 获取按钮权限 + /// + /// + /// + private bool GetButtonPower(string button) + { + return BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.DailyReportCompleteMenuId, button); + } + + #endregion + + /// + /// 打印 + /// protected void btnExport_Click(object sender, EventArgs e) { - Alert.ShowInTop("待开发!", MessageBoxIcon.Warning); - return; - //if (CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, Const.HJGL_BatchTrustMenuId, Const.BtnOut)) - //{ + if (string.IsNullOrWhiteSpace(this.tvControlItem.SelectedNodeID)) + { + Alert.ShowInTop("请选择委托单!", MessageBoxIcon.Warning); + return; + } + string rootPath = Server.MapPath("~/") + Const.ExcelUrl; + //导出文件 + string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\"; + if (!Directory.Exists(filePath)) + { + Directory.CreateDirectory(filePath); + } + string ReportFileName = filePath + "out.xlsx"; + int rowIndex = 0; + XSSFWorkbook hssfworkbook = new XSSFWorkbook(); + XSSFSheet ws = (XSSFSheet)hssfworkbook.CreateSheet("无损检测委托单(PMI)"); - // if (string.IsNullOrWhiteSpace(this.tvControlItem.SelectedNodeID)) - // { - // Alert.ShowInTop("请选择委托单!", MessageBoxIcon.Warning); - // return; - // } - // string rootPath = Server.MapPath("~/") + Const.ExcelUrl; - // //导出文件 - // string filePath = rootPath + DateTime.Now.ToString("yyyyMMddhhmmss") + "\\"; - // if (!Directory.Exists(filePath)) - // { - // Directory.CreateDirectory(filePath); - // } - // string ReportFileName = filePath + "out1.xlsx"; - // int rowIndex = 0; - // XSSFWorkbook hssfworkbook = new XSSFWorkbook(); - // XSSFSheet ws = new XSSFSheet(); - // string trustBatchId = this.tvControlItem.SelectedNodeID; - //} - //else - //{ - // ShowNotify(Resources.Lan.NoPrivilegePrompt, MessageBoxIcon.Warning); - //} + #region 列宽 + + ws.SetColumnWidth(0, 6 * 256); + ws.SetColumnWidth(1, 4 * 256); + ws.SetColumnWidth(2, 6 * 256); + ws.SetColumnWidth(3, 6 * 256); + ws.SetColumnWidth(4, 6 * 256); + ws.SetColumnWidth(5, 6 * 256); + ws.SetColumnWidth(6, 9 * 256); + ws.SetColumnWidth(7, 9 * 256); + ws.SetColumnWidth(8, 5 * 256); + ws.SetColumnWidth(9, 5 * 256); + ws.SetColumnWidth(10, 5 * 256); + ws.SetColumnWidth(11, 8 * 256); + ws.SetColumnWidth(12, 9 * 256); + ws.SetColumnWidth(13, 11 * 256); + + #endregion + + string pmiId = this.tvControlItem.SelectedNodeID; + //头部 + var pmititle = Funs.DB.PMI_Delegation.FirstOrDefault(x => x.Id == pmiId); + //列表 + List listStr = new List(); + listStr.Add(new SqlParameter("@ProjectId", pmititle != null ? pmititle.ProjectId : this.CurrUser.LoginProjectId)); + listStr.Add(new SqlParameter("@PMIID", this.PMIDelegationId)); + SqlParameter[] parameter = listStr.ToArray(); + var tb = SQLHelper.GetDataTableRunText("SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID", parameter); + + //模拟多页数据sql + //var tb = SQLHelper.GetDataTableRunText("SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID union all SELECT * FROM View_PMI_DelegationDetails WHERE ProjectId=@ProjectId AND PMIID=@PMIID", parameter); + + + var style = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false); + var styleButton = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false); + var styleTop = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false); + var styleNone = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false); + + if (tb.Rows.Count > 0 && pmititle != null) + { + var tbNum = tb.Rows.Count; + var pageNum = + tbNum < 15 ? 1 + : Math.Ceiling((float)(tbNum - 14) / 14) + 1; + + //循环页 + for (int i = 1; i <= pageNum; i++) + { + + #region 头部 + + ws = WsExcelCreateRow(ws, hssfworkbook, rowIndex, rowIndex + 12, style, 0, 13, 1); + //行0 + CellRangeAddress region = new CellRangeAddress(rowIndex, rowIndex + 3, 0, 3); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(0).SetCellValue("NDE-002"); + ws.GetRow(rowIndex).GetCell(0).CellStyle = style; + ws.GetRow(rowIndex).GetCell(1).CellStyle = style; + ws.GetRow(rowIndex).GetCell(2).CellStyle = style; + ws.GetRow(rowIndex).GetCell(3).CellStyle = style; + + region = new CellRangeAddress(rowIndex, rowIndex + 3, 4, 10); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(4).SetCellValue("无损检测委托单\r\nPMI"); + ws.GetRow(rowIndex).GetCell(4).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Center, 16, true, true); + ws.GetRow(rowIndex).GetCell(5).CellStyle = style; + ws.GetRow(rowIndex).GetCell(6).CellStyle = style; + ws.GetRow(rowIndex).GetCell(7).CellStyle = style; + ws.GetRow(rowIndex).GetCell(8).CellStyle = style; + ws.GetRow(rowIndex).GetCell(9).CellStyle = style; + ws.GetRow(rowIndex).GetCell(10).CellStyle = style; + + region = new CellRangeAddress(rowIndex, rowIndex, 11, 13); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex).GetCell(11).SetCellValue("工程名称:巴斯夫(广东)一体化项目专用化学品二区"); + ws.GetRow(rowIndex).GetCell(11).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, VerticalAlignment.Center, HorizontalAlignment.Justify, 10.5, true, false); + ws.GetRow(rowIndex).GetCell(12).CellStyle = styleButton; + ws.GetRow(rowIndex).GetCell(13).CellStyle = styleButton; + + //行1 + region = new CellRangeAddress(rowIndex + 1, rowIndex + 1, 11, 13); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 1).GetCell(11).SetCellValue("BASF (Guangdong) Integrated Project Citral Cluster"); + ws.GetRow(rowIndex + 1).GetCell(11).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Justify, 10.5, true, false); + ws.GetRow(rowIndex + 1).GetCell(12).CellStyle = styleNone; + ws.GetRow(rowIndex + 1).GetCell(13).CellStyle = styleNone; + + //行2 + region = new CellRangeAddress(rowIndex + 2, rowIndex + 2, 11, 13); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 2).GetCell(11).SetCellValue("单元名称:"); + ws.GetRow(rowIndex + 2).GetCell(11).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Justify, 10.5, true, false); + ws.GetRow(rowIndex + 2).GetCell(12).CellStyle = styleNone; + ws.GetRow(rowIndex + 2).GetCell(13).CellStyle = styleNone; + + //行3 + region = new CellRangeAddress(rowIndex + 3, rowIndex + 3, 11, 13); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 3).GetCell(11).SetCellValue("Unit Name:"); + ws.GetRow(rowIndex + 3).GetCell(11).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Justify, 10.5, true, false); + ws.GetRow(rowIndex + 3).GetCell(12).CellStyle = styleTop; + ws.GetRow(rowIndex + 3).GetCell(13).CellStyle = styleTop; + + //行4 + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 0, 1); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(0).SetCellValue("委托单位"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 2, 6); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(2).SetCellValue(""); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 7, 8); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(7).SetCellValue("委托编号"); + region = new CellRangeAddress(rowIndex + 4, rowIndex + 4, 9, 13); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 4).GetCell(9).SetCellValue(""); + + //行5 + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 0, 1); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(0).SetCellValue("检测单位"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 2, 6); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(2).SetCellValue(""); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 7, 8); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(7).SetCellValue("检测方法"); + region = new CellRangeAddress(rowIndex + 5, rowIndex + 5, 9, 13); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 5).GetCell(9).SetCellValue(""); + + //行6 + region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 0, 1); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 6).GetCell(0).SetCellValue("检件名称"); + region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 2, 6); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 6).GetCell(2).SetCellValue(""); + region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 7, 8); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 6).GetCell(7).SetCellValue("表面状态"); + region = new CellRangeAddress(rowIndex + 6, rowIndex + 6, 9, 13); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 6).GetCell(9).SetCellValue(""); + + //行7 + region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 0, 1); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 7).GetCell(0).SetCellValue("检测标准"); + region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 2, 6); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 7).GetCell(2).SetCellValue(""); + region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 7, 8); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 7).GetCell(7).SetCellValue("检测比例"); + region = new CellRangeAddress(rowIndex + 7, rowIndex + 7, 9, 13); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 7).GetCell(9).SetCellValue(""); + + //行8 + region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 0, 1); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue("转动口/固定口"); + region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 2, 6); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 8).GetCell(2).SetCellValue(""); + region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 7, 8); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 8).GetCell(7).SetCellValue("委托日期"); + region = new CellRangeAddress(rowIndex + 8, rowIndex + 8, 9, 13); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 8).GetCell(9).SetCellValue(""); + + //行9 + region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 0, 1); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 9).GetCell(0).SetCellValue("焊接方法"); + region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 2, 6); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 9).GetCell(2).SetCellValue(""); + region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 7, 8); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 9).GetCell(7).SetCellValue("压力管道分级"); + region = new CellRangeAddress(rowIndex + 9, rowIndex + 9, 9, 13); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 9).GetCell(9).SetCellValue(""); + + //行10 + region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 0, 1); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 10).GetCell(0).SetCellValue("检测时机"); + region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 2, 6); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 10).GetCell(2).SetCellValue(""); + region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 7, 8); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 10).GetCell(7).SetCellValue("被检产品标准"); + region = new CellRangeAddress(rowIndex + 10, rowIndex + 10, 9, 13); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 10).GetCell(9).SetCellValue(""); + + //行12 + region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 0, 2); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 11).GetCell(0).SetCellValue("检件编号/管线号"); + region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 3, 4); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 11).GetCell(3).SetCellValue(""); + region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 5, 6); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 11).GetCell(5).SetCellValue("焊口总数"); + region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 7, 9); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 11).GetCell(7).SetCellValue(""); + region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 10, 11); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 11).GetCell(10).SetCellValue("抽检数量"); + region = new CellRangeAddress(rowIndex + 11, rowIndex + 11, 12, 13); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 11).GetCell(12).SetCellValue(""); + + //行13 + ws.GetRow(rowIndex + 12).GetCell(0).SetCellValue("检测\r\n部位"); + region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 1, 3); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 12).GetCell(1).SetCellValue("检件编号/管线号"); + ws.GetRow(rowIndex + 12).GetCell(4).SetCellValue("焊口号"); + region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 5, 6); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 12).GetCell(5).SetCellValue("焊工代号"); + region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 7, 10); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 12).GetCell(7).SetCellValue("检件材质"); + region = new CellRangeAddress(rowIndex + 12, rowIndex + 12, 11, 12); + ws.AddMergedRegion(region); + ws.GetRow(rowIndex + 12).GetCell(11).SetCellValue("检件规格(mm)"); + ws.GetRow(rowIndex + 12).GetCell(13).SetCellValue("备注"); + + #endregion + + #region 表格 + + ws = WsExcelCreateRow(ws, hssfworkbook, rowIndex + 13, rowIndex + 26, style, 0, 13, 2); + var dataTit = rowIndex + 13; + var tIndex = 12 + 14; + var dStart = 0; + var dEnd = 0; + if (i == 1) + { + dStart = 0; + dEnd = 14; + } + else + { + dStart = i == 2 ? 14 : ((i - 2) * 14) + 14; + dEnd = ((i - 1) * 14) + 14; + } + + //合并单元格 + for (int hb = dataTit; hb <= rowIndex + tIndex; hb++) + { + region = new CellRangeAddress(hb, hb, 1, 3); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 5, 6); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 7, 10); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 11, 12); + ws.AddMergedRegion(region); + } + //获取当前页数据 + var pageTb = GetPageToTable(tb, dStart, dEnd); + for (int j = 0; j < pageTb.Rows.Count; j++) + { + int dataIndex = dataTit + j; + //检测部位 + ws.GetRow(dataIndex).GetCell(0).SetCellValue(""); + //检件编号/管线号 + ws.GetRow(dataIndex).GetCell(1).SetCellValue("数据待绑定"); + //焊口号 + ws.GetRow(dataIndex).GetCell(4).SetCellValue(""); + //焊工代号 + ws.GetRow(dataIndex).GetCell(5).SetCellValue(""); + //检件材质 + ws.GetRow(dataIndex).GetCell(7).SetCellValue(""); + //检件规格(mm) + ws.GetRow(dataIndex).GetCell(11).SetCellValue(""); + //备注 + ws.GetRow(dataIndex).GetCell(13).SetCellValue(""); + } + if (dataTit + pageTb.Rows.Count < 26) + { + ws.GetRow(dataTit + pageTb.Rows.Count).GetCell(0).SetCellValue("以下空白"); + } + + rowIndex += tIndex; + + #endregion + + #region 尾部 + + ws = WsExcelCreateRow(ws, hssfworkbook, rowIndex + 1, rowIndex + 9, style, 0, 13, 3); + //合并单元格 + for (int hb = rowIndex + 1; hb <= rowIndex + 9; hb++) + { + for (int c = 0; c <= 13; c++) + { + if (hb >= rowIndex + 2 && hb <= rowIndex + 3) + { + ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Left, 10.5, true, false); + } + if (hb >= rowIndex + 4 && hb <= rowIndex + 8) + { + ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Right, 10.5, true, false); + } + if (hb == rowIndex + 9) + { + ws.GetRow(hb).GetCell(c).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.Thin, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 10.5, true, false); + } + } + region = new CellRangeAddress(hb, hb, 0, 2); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 3, 5); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 6, 7); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 8, 11); + ws.AddMergedRegion(region); + region = new CellRangeAddress(hb, hb, 12, 13); + ws.AddMergedRegion(region); + } + //尾部行1 + ws.GetRow(rowIndex + 1).GetCell(0).SetCellValue("施工单位"); + ws.GetRow(rowIndex + 1).GetCell(3).SetCellValue("监理单位"); + ws.GetRow(rowIndex + 1).GetCell(6).SetCellValue("管理公司"); + ws.GetRow(rowIndex + 1).GetCell(8).SetCellValue("建设单位"); + ws.GetRow(rowIndex + 1).GetCell(12).SetCellValue("检测单位"); + //尾部行2 + ws.GetRow(rowIndex + 2).GetCell(0).SetCellValue(""); + ws.GetRow(rowIndex + 2).GetCell(3).SetCellValue(""); + ws.GetRow(rowIndex + 2).GetCell(6).SetCellValue(""); + ws.GetRow(rowIndex + 2).GetCell(8).SetCellValue(""); + ws.GetRow(rowIndex + 2).GetCell(12).SetCellValue(""); + //尾部行3 + ws.GetRow(rowIndex + 3).GetCell(0).SetCellValue("质量检测员:"); + ws.GetRow(rowIndex + 3).GetCell(3).SetCellValue("专业工程师:"); + ws.GetRow(rowIndex + 3).GetCell(6).SetCellValue("专业/质量工程师:"); + ws.GetRow(rowIndex + 3).GetCell(8).SetCellValue("业主代表:"); + ws.GetRow(rowIndex + 3).GetCell(12).SetCellValue("接收人:"); + + //尾部行6 + ws.GetRow(rowIndex + 6).GetCell(0).SetCellValue("专业工程师:"); + //尾部行8 + ws.GetRow(rowIndex + 8).GetCell(0).SetCellValue(" 年 月 日"); + ws.GetRow(rowIndex + 8).GetCell(3).SetCellValue(" 年 月 日"); + ws.GetRow(rowIndex + 8).GetCell(6).SetCellValue(" 年 月 日"); + ws.GetRow(rowIndex + 8).GetCell(8).SetCellValue(" 年 月 日"); + ws.GetRow(rowIndex + 8).GetCell(12).SetCellValue(" 年 月 日"); + + #endregion + + ws = WsExcelCreateRow(ws, hssfworkbook, rowIndex + 10, rowIndex + 10, style, 0, 13, 3, true); + rowIndex += 11; + } + } + ws.SetMargin(MarginType.LeftMargin, 0.3); + ws.SetMargin(MarginType.RightMargin, 0.2); + ws.SetMargin(MarginType.BottomMargin, 0.4); + ws.PrintSetup.Landscape = false; + ws.PrintSetup.PaperSize = 9; + ws.ForceFormulaRecalculation = true; + + using (FileStream filess = System.IO.File.OpenWrite(ReportFileName)) + { + hssfworkbook.Write(filess); + } + FileInfo filet = new FileInfo(ReportFileName); + Response.Clear(); + Response.Charset = "GB2312"; + Response.ContentEncoding = System.Text.Encoding.UTF8; + // 添加头信息,为"文件下载/另存为"对话框指定默认文件名 + Response.AddHeader("Content-Disposition", "attachment; filename=" + Server.UrlEncode("无损检测委托单(PMI).xlsx")); + // 添加头信息,指定文件大小,让浏览器能够显示下载进度 + Response.AddHeader("Content-Length", filet.Length.ToString()); + // 指定返回的是一个不能被客户端读取的流,必须被下载 + Response.ContentType = "application/ms-excel"; + // 把文件流发送到客户端 + Response.WriteFile(filet.FullName); + // 停止页面的执行 + Response.End(); } #region 私有方法 - /// - /// 获取某一列的所有值 - /// - /// 列数据类型 - /// 数据表 - /// 列名 - /// - public static List GetColumnValues(DataTable dtSource, string filedName) - { - return (from r in dtSource.AsEnumerable() select r.Field(filedName)).ToList(); - } - /// /// 无损检测委托单行和列 /// @@ -481,7 +869,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI } /// - /// 材料及配件检测委托单行和列 + /// 行和列 /// /// private XSSFSheet ClExcelCreateRow(XSSFSheet ws, XSSFWorkbook hssfworkbook, int sRows, int eRows, ICellStyle style, int cStart, int cEnd, bool istitle = false, bool isnobk = false) @@ -508,7 +896,7 @@ namespace FineUIPro.Web.WeldingProcess.PMI ws.GetRow(i).CreateCell(j); if (isnobk) { - ws.GetRow(i).GetCell(j).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, NPOI.SS.UserModel.BorderStyle.None, NPOI.SS.UserModel.BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false); + ws.GetRow(i).GetCell(j).CellStyle = CommonPrint.SetExcelStyle(hssfworkbook, BorderStyle.None, BorderStyle.None, BorderStyle.None, BorderStyle.None, VerticalAlignment.Center, HorizontalAlignment.Center, 10, true, false); } else { @@ -553,18 +941,5 @@ namespace FineUIPro.Web.WeldingProcess.PMI #endregion - #region 获取按钮权限 - /// - /// 获取按钮权限 - /// - /// - /// - private bool GetButtonPower(string button) - { - return BLL.CommonService.GetAllButtonPowerList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.DailyReportCompleteMenuId, button); - } - #endregion - - } } \ No newline at end of file diff --git a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegation.aspx.designer.cs b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegation.aspx.designer.cs index 3192868..5ec04cf 100644 --- a/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegation.aspx.designer.cs +++ b/HJGL/FineUIPro.Web/WeldingProcess/PMI/PMIDelegation.aspx.designer.cs @@ -266,15 +266,6 @@ namespace FineUIPro.Web.WeldingProcess.PMI /// protected global::FineUIPro.ToolbarFill ToolbarFill2; - /// - /// btnExport 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.Button btnExport; - /// /// ToolbarSeparator1 控件。 /// diff --git a/HJGL/WebApi/obj/Release/WebApi.csproj.AssemblyReference.cache b/HJGL/WebApi/obj/Release/WebApi.csproj.AssemblyReference.cache index e1e5b4ef09c6358453509d3e99b3f1b284707836..fae333c278aa054c81b1b79aedc87816e3c276a8 100644 GIT binary patch delta 1560 zcma)6OKTHR6wXbP+M1+IANHM88+;X6w*f$5yV2r$utg~%+#4_G=fNd zu0-_gR1~*@g2bH*@fYaAl?xZ@!i}KfP6Y3{nVU{x5jSCS&$;J*-*>)quKXhJZ@L@m z$u5`6MPjf%8G+wY@cDrcTM~pGxrmqk_%+?gD_KnxG38wEv@%?g|+jn_H)(e4Ciz~CI*THr{L7@|c2FSSKj3V2|^7lQSL z8Th%>4zuGE>}rNg!=bS>0)RQsEQ}6H41S9ZJB!rF3DK+Y0;QWEa6;IH^d6ZtBaH zaCA*kv%(2WQ58#(O`)(~7)A?K`>w1>?XBa6n3vD%#tL5O$HG0eDH+jR*(eG>(q*Sz z4P1sD<_w^#u;am|OK#Fuo)3ED=;1%fus3_TaH1tvs0wjgZh^Ux8llsvimgae&&oi? zV%!|eEcXUaZQeNaeQoo)%i|cXZU)v>g(H%s6yST;2z(pzGv93v^_Z$avu9&$xJdV# zE>?*YX{IKxtfO}1(^|#-oC>cala+CPqc7eK_QOXn)tOEj-$&Fyj3?^8FGx3BJ=2|s zX=;_d9a5=60@sZuQY%vHwjzQ+IvH2QoTi(WBAIX}9OdtqUIo=g=N#L^T8j2O@H)@G k_OTUF`qck$h@o{r0oo0Ywsd>$S>P`^xF?Ykr9)hQ01|HXDgXcg delta 3042 zcmd6oc~BE)7{;>+;2MM^62c84UWkT-!$?uWnF8UCO_4*Jz!IX65E3GxS`M|IOd+p2 zqN1bq7K?}?wJ5cYm9}`Gcu!TTb+i_W#n#qi+TAr66&bbv)XZci*?o5R+u!#*&wF_h zwc-(iS|I`og@U{Xni#JJpPnI93I*io0rQ zq3Z*0&aHDkXMPm2c<)RZiwzg+Jn*6PG<4+53-HV;peQBeYaH^uopb_QIjU>PE&o*UobDN^$|Z7nhCXeI-SP1(uJgbS7Dq6t#+!>11ZDhubWDZg`?LMUmb*oH>_aZ0Fq`HCju{*z!sIv$LPnZxW&5SHzQ)>R-&jVT zyTJcr`4e8Ct; z3Gc?G{B88E{MdHS=FZNtdy_LhF@|d$plIjfzwFAk`8L>V#`FCR9kaS)KbNCD!LgYa z7VeofWbeh?8zW02S2FgKX0v$^a(snPKoFO zTw_dJ>1OdeNp}q<1r<%iVm@7G0j5gL&kIPvbkIr*gSwPBJfP8RyXVh})P?ynot6|_ znVtky()hR73bcPKfFH*OZ_hC36`}5Lvlo122-tDbCz_LQ-iE=_pup2Jb8MVarFp$J zhe(=JLQy_esLaw1(8Ebq9_U9hSOd>w`Q%v;)dL!i6FwtmgQLOb4We31M!U_K0d6JM zZ=lb{_37ga;&DZaE=w6_tz0Y59AsZ!{dcS6!&zrP z-F(_}*O|bcu$F0@Tz_`C64lSFi%I6W+gD3YQCnU3hub!t%tM$*haErsM?!ME#JXUr zKwee6E2O=veoMEoHmh$xZMEala_7s_D?VQDoY2!e&+=yd&Gg^Sul@bR6G7knfCJHO zKa?_BNFx39_A-&tVEYjRdEew5;q&1qs=>^}G)-{J4CoJpC}2zcO9KK(qRA%%bnj#< zUbQsO9K0Qg4*YKwrwr*g7c=U4jHV7XlQhi_Vl2Hv_YzE#yO^(%zVkeBmV->2-7~~Q W9HAyS-CKfX6%{IV1~Z{Ss{LQibz{8%