From ca070d56cff3c5af2aa385c1bb5867adf9c3039e Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Sun, 28 Apr 2024 10:23:34 +0800 Subject: [PATCH] =?UTF-8?q?20240428=20=E7=BB=BC=E5=90=88=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=AF=BC=E5=87=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SGGL/BLL/Common/Const.cs | 41 +++- .../CQMS/Check/JointCheck.aspx.cs | 5 +- .../ConTechnologyDisclosure.aspx | 3 + .../ConTechnologyDisclosure.aspx.cs | 147 ++++++++++++ .../ConTechnologyDisclosure.aspx.designer.cs | 9 + .../CQMS/Comprehensive/DataReceivingDoc.aspx | 3 + .../Comprehensive/DataReceivingDoc.aspx.cs | 217 ++++++++++++++++++ .../DataReceivingDoc.aspx.designer.cs | 9 + .../Comprehensive/InspectionEquipment.aspx | 3 + .../Comprehensive/InspectionEquipment.aspx.cs | 203 +++++++++++++--- .../InspectionEquipment.aspx.designer.cs | 67 +++--- .../CQMS/Comprehensive/InspectionMachine.aspx | 3 + .../Comprehensive/InspectionMachine.aspx.cs | 182 +++++++++++++++ .../InspectionMachine.aspx.designer.cs | 63 ++--- .../CQMS/Comprehensive/InspectionPerson.aspx | 3 + .../Comprehensive/InspectionPerson.aspx.cs | 164 ++++++++++++- .../InspectionPerson.aspx.designer.cs | 67 +++--- .../CQMS/Comprehensive/TrainingRecords.aspx | 3 + .../Comprehensive/TrainingRecords.aspx.cs | 130 ++++++++++- .../TrainingRecords.aspx.designer.cs | 9 + .../File/Excel/CQMS/人员报验模板.xls | Bin 0 -> 19456 bytes .../File/Excel/CQMS/培训记录模板.xls | Bin 0 -> 19456 bytes .../File/Excel/CQMS/施工技术交底管理模板.xls | Bin 0 -> 19456 bytes .../File/Excel/CQMS/机具报验模板.xls | Bin 0 -> 19456 bytes .../File/Excel/CQMS/设备材料报验模板.xls | Bin 0 -> 19456 bytes .../File/Excel/CQMS/质量专项检查模版.xls | Bin 0 -> 19456 bytes .../File/Excel/CQMS/质量专项检查模版.xlsx | Bin 10196 -> 0 bytes .../Excel/CQMS/资料收发文登记记录模板.xls | Bin 0 -> 19968 bytes SGGL/FineUIPro.Web/Web.config | 2 +- 29 files changed, 1208 insertions(+), 125 deletions(-) create mode 100644 SGGL/FineUIPro.Web/File/Excel/CQMS/人员报验模板.xls create mode 100644 SGGL/FineUIPro.Web/File/Excel/CQMS/培训记录模板.xls create mode 100644 SGGL/FineUIPro.Web/File/Excel/CQMS/施工技术交底管理模板.xls create mode 100644 SGGL/FineUIPro.Web/File/Excel/CQMS/机具报验模板.xls create mode 100644 SGGL/FineUIPro.Web/File/Excel/CQMS/设备材料报验模板.xls create mode 100644 SGGL/FineUIPro.Web/File/Excel/CQMS/质量专项检查模版.xls delete mode 100644 SGGL/FineUIPro.Web/File/Excel/CQMS/质量专项检查模版.xlsx create mode 100644 SGGL/FineUIPro.Web/File/Excel/CQMS/资料收发文登记记录模板.xls diff --git a/SGGL/BLL/Common/Const.cs b/SGGL/BLL/Common/Const.cs index 453edb97..8ee4bfb6 100644 --- a/SGGL/BLL/Common/Const.cs +++ b/SGGL/BLL/Common/Const.cs @@ -3251,11 +3251,6 @@ namespace BLL /// public const string CQMS_TrainingRecordsTemplateUrl= "File\\Excel\\DataIn\\培训记录导入模板.xls"; - /// - /// 质量专项检查模板文件原始虚拟路径 - /// - public const string JointCheckTempUrl = "File\\Excel\\CQMS\\质量专项检查模版.xlsx"; - /// /// 设计交底导入模板文件原始虚拟路径 /// @@ -3301,6 +3296,42 @@ namespace BLL /// public const string ConTechnologyDisclosureTemUrl = "File\\Excel\\DataIn\\施工技术交底管理导入模板.xls"; + #region 导出模板 + /// + /// 质量专项检查模板文件原始虚拟路径 + /// + public const string JointCheckTempUrl = "File\\Excel\\CQMS\\质量专项检查模版.xls"; + + /// + /// 设备材料报验模板文件原始虚拟路径 + /// + public const string InspectionEquipmentTempUrl = "File\\Excel\\CQMS\\设备材料报验模板.xls"; + + /// + /// 人员报验模板文件原始虚拟路径 + /// + public const string InspectionPersonTempUrl = "File\\Excel\\CQMS\\人员报验模板.xls"; + + /// + /// 机具报验模板文件原始虚拟路径 + /// + public const string InspectionMachineTempUrl = "File\\Excel\\CQMS\\机具报验模板.xls"; + + /// + /// 资料收发文登记记录模板文件原始虚拟路径 + /// + public const string DataReceivingDocTempUrl = "File\\Excel\\CQMS\\资料收发文登记记录模板.xls"; + + /// + /// 培训记录模板文件原始虚拟路径 + /// + public const string TrainingRecordsTempUrl = "File\\Excel\\CQMS\\培训记录模板.xls"; + + /// + /// 施工技术交底模板文件原始虚拟路径 + /// + public const string ConTechnologyDisclosureTempUrl = "File\\Excel\\CQMS\\施工技术交底管理模板.xls"; + #endregion #endregion #region 绩效考核模板文件路径 diff --git a/SGGL/FineUIPro.Web/CQMS/Check/JointCheck.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Check/JointCheck.aspx.cs index 34e2e611..bfc81e77 100644 --- a/SGGL/FineUIPro.Web/CQMS/Check/JointCheck.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Check/JointCheck.aspx.cs @@ -418,13 +418,14 @@ namespace FineUIPro.Web.CQMS.Check var lists = BLL.JointCheckService.GetDriverPlanByProjectId(this.CurrUser.LoginProjectId); if (lists != null) { - newUrl = uploadfilepath.Replace("质量专项检查模版.xlsx", "质量专项检查.xlsx"); + newUrl = uploadfilepath.Replace("质量专项检查模版.xls", "质量专项检查.xls"); File.Copy(uploadfilepath, newUrl); // 第一步:读取文件流 NPOI.SS.UserModel.IWorkbook workbook; using (FileStream stream = new FileStream(newUrl, FileMode.Open, FileAccess.Read)) { - workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(stream); + //workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(stream); + workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(stream); } // 创建单元格样式 NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle(); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosure.aspx b/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosure.aspx index 45536c75..5cbee3b9 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosure.aspx +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosure.aspx @@ -34,6 +34,9 @@ + + diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosure.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosure.aspx.cs index ecbce6e2..7f8d0791 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosure.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosure.aspx.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; +using System.IO; using System.Linq; using System.Web; using System.Web.UI; @@ -230,6 +231,152 @@ namespace FineUIPro.Web.CQMS.Comprehensive } #endregion + #region 导出按钮 + /// 导出按钮 + /// + /// + /// + protected void btnOut_Click(object sender, EventArgs e) + { + string rootPath = Server.MapPath("~/"); + string initTemplatePath = Const.ConTechnologyDisclosureTempUrl; + string uploadfilepath = string.Empty; + string newUrl = string.Empty; + uploadfilepath = rootPath + initTemplatePath; + + var lists = (from x in Funs.DB.Comprehensive_ConTechnologyDisclosure + where x.ProjectId == this.CurrUser.LoginProjectId + select x); + if (sdrpUnitId.SelectedValue != BLL.Const._Null) + { + lists = lists.Where(x => x.UnitId == sdrpUnitId.SelectedValue); + } + if (this.drpProfessionalId.SelectedValue != BLL.Const._Null) + { + lists = lists.Where(x => x.CNProfessionalId == this.drpProfessionalId.SelectedValue); + } + if (!string.IsNullOrEmpty(this.txtCode.Text.Trim())) + { + lists = lists.Where(x => x.DisclosureCode.Contains(this.txtCode.Text.Trim())); + } + lists = lists.OrderBy(x => x.UnitId); + if (lists != null) + { + newUrl = uploadfilepath.Replace("施工技术交底管理模板.xls", "施工技术交底管理.xls"); + File.Copy(uploadfilepath, newUrl); + // 第一步:读取文件流 + NPOI.SS.UserModel.IWorkbook workbook; + using (FileStream stream = new FileStream(newUrl, FileMode.Open, FileAccess.Read)) + { + //workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(stream); + workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(stream); + } + // 创建单元格样式 + NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle(); + cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + var font = workbook.CreateFont(); + font.FontHeightInPoints = 11; + cellStyle.SetFont(font); + NPOI.SS.UserModel.ICellStyle cellStyle0 = workbook.CreateCellStyle(); + cellStyle0.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + var font0 = workbook.CreateFont(); + font0.FontHeightInPoints = 12; + font0.IsBold = true; + cellStyle0.SetFont(font0); + // 第二步:创建新数据行 + NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0); + NPOI.SS.UserModel.IRow row = sheet.GetRow(0); + NPOI.SS.UserModel.ICell cell; + int i = 1; + foreach (var item in lists) + { + // 第二步:创建新数据行 + row = sheet.CreateRow(i); + // 添加数据 + cell = row.CreateCell(0); + cell.CellStyle = cellStyle; + string proName = string.Empty; + var cnp = BLL.CNProfessionalService.GetCNProfessional(item.CNProfessionalId); + if (cnp != null) + { + proName = cnp.ProfessionalName; + } + cell.SetCellValue(proName);//专业 + + cell = row.CreateCell(1); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.DisclosureCode);//交底文件编号 + + cell = row.CreateCell(2); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.DisclosureName);//交底施工方案 + + cell = row.CreateCell(3); + cell.CellStyle = cellStyle; + string unitName = string.Empty; + if (!string.IsNullOrEmpty(item.UnitId)) + { + unitName = BLL.UnitService.GetUnitNameByUnitId(item.UnitId); + } + cell.SetCellValue(unitName);//交底负责单位 + + cell = row.CreateCell(4); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.DisclosureMan);//交底人 + + cell = row.CreateCell(5); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.DisclosureDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.DisclosureDate) : "");//交底日期 + + cell = row.CreateCell(6); + cell.CellStyle = cellStyle; + string unitWork = string.Empty; + if (!string.IsNullOrEmpty(item.UnitWorkId)) + { + unitWork = ConvertUnitWork(item.UnitWorkId); + } + cell.SetCellValue(unitWork);//单位工程 + + cell = row.CreateCell(7); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.AttendMan);//参加人员 + i++; + } + // 第三步:写入文件流 + using (FileStream stream = new FileStream(newUrl, FileMode.Create, FileAccess.Write)) + { + workbook.Write(stream); + workbook.Close(); + } + string fileName = Path.GetFileName(newUrl); + FileInfo info = new FileInfo(newUrl); + long fileSize = info.Length; + Response.Clear(); + Response.ContentType = "application/x-zip-compressed"; + Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); + Response.AddHeader("Content-Length", fileSize.ToString()); + Response.TransmitFile(newUrl, 0, fileSize); + Response.Flush(); + Response.Close(); + File.Delete(newUrl); + } + else + { + Alert.ShowInTop("当前无记录,无法导出!", MessageBoxIcon.Warning); + } + } + #endregion + #region 获取按钮权限 /// /// 获取按钮权限 diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosure.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosure.aspx.designer.cs index 1170de41..428af81b 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosure.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosure.aspx.designer.cs @@ -111,6 +111,15 @@ namespace FineUIPro.Web.CQMS.Comprehensive { /// protected global::FineUIPro.Button btnImport; + /// + /// btnOut 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnOut; + /// /// lblPageIndex 控件。 /// diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx index 0a2e1e10..265b8472 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx @@ -34,6 +34,9 @@ + + diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx.cs index ca189fce..082d5b54 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; +using System.IO; using System.Linq; namespace FineUIPro.Web.CQMS.Comprehensive @@ -320,5 +321,221 @@ namespace FineUIPro.Web.CQMS.Comprehensive } } #endregion + + #region 导出按钮 + /// 导出按钮 + /// + /// + /// + protected void btnOut_Click(object sender, EventArgs e) + { + string rootPath = Server.MapPath("~/"); + string initTemplatePath = Const.DataReceivingDocTempUrl; + string uploadfilepath = string.Empty; + string newUrl = string.Empty; + uploadfilepath = rootPath + initTemplatePath; + + var lists = (from x in Funs.DB.Comprehensive_DataReceivingDoc + where x.ProjectId == this.CurrUser.LoginProjectId + select x); + if (!string.IsNullOrEmpty(this.stxtFileCode.Text.Trim())) + { + lists = lists.Where(x => x.FileCode.Contains(stxtFileCode.Text.Trim())); + } + if (!string.IsNullOrEmpty(this.stxtFileName.Text.Trim())) + { + lists = lists.Where(x => x.FileName.Contains(this.stxtFileName.Text.Trim())); + } + lists = lists.OrderBy(x => x.FileCode); + if (lists != null) + { + newUrl = uploadfilepath.Replace("资料收发文登记记录模板.xls", "资料收发文登记记录.xls"); + File.Copy(uploadfilepath, newUrl); + // 第一步:读取文件流 + NPOI.SS.UserModel.IWorkbook workbook; + using (FileStream stream = new FileStream(newUrl, FileMode.Open, FileAccess.Read)) + { + //workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(stream); + workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(stream); + } + // 创建单元格样式 + NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle(); + cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + var font = workbook.CreateFont(); + font.FontHeightInPoints = 11; + cellStyle.SetFont(font); + NPOI.SS.UserModel.ICellStyle cellStyle0 = workbook.CreateCellStyle(); + cellStyle0.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + var font0 = workbook.CreateFont(); + font0.FontHeightInPoints = 12; + font0.IsBold = true; + cellStyle0.SetFont(font0); + // 第二步:创建新数据行 + NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0); + NPOI.SS.UserModel.IRow row = sheet.GetRow(0); + NPOI.SS.UserModel.ICell cell; + int i = 1; + foreach (var item in lists) + { + // 第二步:创建新数据行 + row = sheet.CreateRow(i); + // 添加数据 + cell = row.CreateCell(0); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.ReceiveDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.ReceiveDate) : "");//日期 + + cell = row.CreateCell(1); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.FileCode);//文件号 + + cell = row.CreateCell(2); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.FileName);//文件名称 + + cell = row.CreateCell(3); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.FileType);//文件类别 + + cell = row.CreateCell(4); + cell.CellStyle = cellStyle; + string proName = string.Empty; + var cnp = BLL.CNProfessionalService.GetCNProfessional(item.CNProfessionalId); + if (cnp != null) + { + proName = cnp.ProfessionalName; + } + cell.SetCellValue(proName);//专业 + + cell = row.CreateCell(5); + cell.CellStyle = cellStyle; + string unitName = string.Empty; + if (!string.IsNullOrEmpty(item.SendUnit)) + { + unitName = BLL.UnitService.GetUnitNameByUnitId(item.SendUnit); + } + cell.SetCellValue(unitName);//发件单位 + + cell = row.CreateCell(6); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.SendMan);//发件人 + + cell = row.CreateCell(7); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.Copies.HasValue ? item.Copies.ToString() : "");//份数 + + cell = row.CreateCell(8); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.DocumentHandler);//文件处理人 + + cell = row.CreateCell(9); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.SendDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.SendDate) : "");//发出日期 + + cell = row.CreateCell(10); + cell.CellStyle = cellStyle; + string receiveUnitName = string.Empty; + if (!string.IsNullOrEmpty(item.ReceiveUnit)) + { + receiveUnitName = ConvertCarryUnit(item.ReceiveUnit); + } + cell.SetCellValue(receiveUnitName);//接收单位 + + cell = row.CreateCell(11); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.ReceiveMan);//接收人 + + cell = row.CreateCell(12); + cell.CellStyle = cellStyle; + string isR = string.Empty; + if (item.IsReply.HasValue) + { + if (item.IsReply == true) + { + isR = "是"; + } + else if (item.IsReply == false) + { + isR = "否"; + } + } + cell.SetCellValue(isR);//是否需回复 + + cell = row.CreateCell(13); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.ReturnWuhuangDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.ReturnWuhuangDate) : "");//返回五环日期 + + cell = row.CreateCell(14); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.RetrunWuhuangCopies.HasValue ? item.RetrunWuhuangCopies.ToString() : "");//返回五环份数 + + cell = row.CreateCell(15); + cell.CellStyle = cellStyle; + string issueToUnitName = string.Empty; + if (!string.IsNullOrEmpty(item.IssueToUnit)) + { + issueToUnitName = ConvertCarryUnit(item.IssueToUnit); + } + cell.SetCellValue(issueToUnitName);//下发至单位 + + cell = row.CreateCell(16); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.IssueCopies.HasValue ? item.IssueCopies.ToString() : "");//下发份数 + + cell = row.CreateCell(17); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.IssueUnitReceiver);//下发单位接收人 + + cell = row.CreateCell(18); + cell.CellStyle = cellStyle; + string isO = string.Empty; + if (item.IsOnFile.HasValue) + { + if (item.IsOnFile == true) + { + isO = "是"; + } + else if (item.IsOnFile == false) + { + isO = "否"; + } + } + cell.SetCellValue(isO);//是否存档 + + i++; + } + // 第三步:写入文件流 + using (FileStream stream = new FileStream(newUrl, FileMode.Create, FileAccess.Write)) + { + workbook.Write(stream); + workbook.Close(); + } + string fileName = Path.GetFileName(newUrl); + FileInfo info = new FileInfo(newUrl); + long fileSize = info.Length; + Response.Clear(); + Response.ContentType = "application/x-zip-compressed"; + Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); + Response.AddHeader("Content-Length", fileSize.ToString()); + Response.TransmitFile(newUrl, 0, fileSize); + Response.Flush(); + Response.Close(); + File.Delete(newUrl); + } + else + { + Alert.ShowInTop("当前无记录,无法导出!", MessageBoxIcon.Warning); + } + } + #endregion } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx.designer.cs index f68eca34..fd1c5666 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx.designer.cs @@ -102,6 +102,15 @@ namespace FineUIPro.Web.CQMS.Comprehensive { /// protected global::FineUIPro.Button btnImport; + /// + /// btnOut 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnOut; + /// /// lblPageIndex 控件。 /// diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipment.aspx b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipment.aspx index 20d6a9c5..25ed15df 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipment.aspx +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipment.aspx @@ -39,6 +39,9 @@ + + diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipment.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipment.aspx.cs index 82481b82..7046a41d 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipment.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipment.aspx.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; +using System.IO; using System.Linq; namespace FineUIPro.Web.Comprehensive { @@ -242,33 +243,7 @@ namespace FineUIPro.Web.Comprehensive } #endregion - - //public string ConvertState(object value) - //{ - // var status = 0; - // int.TryParse(value.ToString(), out status); - - // if (status == 0) - // { - // return "待审核"; - // } - // else if (status == 1) - // { - // return "合格"; - // } - // else if (status == 2) - // { - // return "驳回"; - // } - // else if (status == 3) - // { - // return "重报"; - // } - // return "待审核"; - //} - - - + #region 格式化字符串 public static string ConvertState(object Status) { if (Status != null) @@ -297,8 +272,182 @@ namespace FineUIPro.Web.Comprehensive return "编制"; } + #endregion + #region 导出按钮 + /// 导出按钮 + /// + /// + /// + protected void btnOut_Click(object sender, EventArgs e) + { + string rootPath = Server.MapPath("~/"); + string initTemplatePath = Const.InspectionEquipmentTempUrl; + string uploadfilepath = string.Empty; + string newUrl = string.Empty; + uploadfilepath = rootPath + initTemplatePath; + var lists = (from x in Funs.DB.Comprehensive_InspectionEquipment + where x.ProjectId == this.CurrUser.LoginProjectId + select x); + if (this.sdrpUnitId.SelectedValue != BLL.Const._Null) + { + lists = lists.Where(x => x.UnitId == this.sdrpUnitId.SelectedValue); + } + if (!string.IsNullOrEmpty(this.stxtInspectionName.Text.Trim())) + { + lists = lists.Where(x => x.InspectionName.Contains(this.stxtInspectionName.Text.Trim())); + } + if (!string.IsNullOrEmpty(txtStarTime.Text.Trim())) + { + lists = lists.Where(x => x.InspectionDate >= Funs.GetNewDateTime(txtStarTime.Text.Trim())); + } + if (!string.IsNullOrEmpty(txtEndTime.Text.Trim())) + { + lists = lists.Where(x => x.InspectionDate <= Funs.GetNewDateTime(txtEndTime.Text.Trim())); + } + lists = lists.OrderBy(x => x.UnitId); + if (lists != null) + { + newUrl = uploadfilepath.Replace("设备材料报验模板.xls", "设备材料报验.xls"); + File.Copy(uploadfilepath, newUrl); + // 第一步:读取文件流 + NPOI.SS.UserModel.IWorkbook workbook; + using (FileStream stream = new FileStream(newUrl, FileMode.Open, FileAccess.Read)) + { + //workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(stream); + workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(stream); + } + // 创建单元格样式 + NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle(); + cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + var font = workbook.CreateFont(); + font.FontHeightInPoints = 11; + cellStyle.SetFont(font); + NPOI.SS.UserModel.ICellStyle cellStyle0 = workbook.CreateCellStyle(); + cellStyle0.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + var font0 = workbook.CreateFont(); + font0.FontHeightInPoints = 12; + font0.IsBold = true; + cellStyle0.SetFont(font0); + // 第二步:创建新数据行 + NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0); + NPOI.SS.UserModel.IRow row = sheet.GetRow(0); + NPOI.SS.UserModel.ICell cell; + int i = 1; + foreach (var item in lists) + { + // 第二步:创建新数据行 + row = sheet.CreateRow(i); + // 添加数据 + cell = row.CreateCell(0); + cell.CellStyle = cellStyle; + cell.SetCellValue(BLL.UnitService.GetUnitNameByUnitId(item.UnitId));//报验单位 + + cell = row.CreateCell(1); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.InspectionCode);//报验编号 + + cell = row.CreateCell(2); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.EquipmentNO);//设备位号 + + cell = row.CreateCell(3); + cell.CellStyle = cellStyle; + var cnp = BLL.CNProfessionalService.GetCNProfessional(item.CNProfessionalId); + if (cnp != null) + { + cell.SetCellValue(cnp.ProfessionalName);//专业 + } + else + { + cell.SetCellValue(string.Empty);//专业 + } + + cell = row.CreateCell(4); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.InspectionName);//名称 + + cell = row.CreateCell(5); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.Specifications);//规格(范围) + + cell = row.CreateCell(6); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.Supplier);//供货厂商 + + cell = row.CreateCell(7); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.Counts);//本次数量 + + cell = row.CreateCell(8); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.Unit);//单位 + + cell = row.CreateCell(9); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.SamplingCount);//本次抽检数量 + + cell = row.CreateCell(10); + cell.CellStyle = cellStyle; + string r = string.Empty; + if (!string.IsNullOrEmpty(item.SamplingResult)) + { + if (item.SamplingResult == "1") + { + r = "合格"; + } + else if (item.SamplingResult == "2") + { + r = "不合格"; + } + } + cell.SetCellValue(r);//本次抽检结果 + + cell = row.CreateCell(11); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.InspectionDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.InspectionDate) : "");//报验日期 + + cell = row.CreateCell(12); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.UsedPlace);//拟使用部位 + + i++; + } + // 第三步:写入文件流 + using (FileStream stream = new FileStream(newUrl, FileMode.Create, FileAccess.Write)) + { + workbook.Write(stream); + workbook.Close(); + } + string fileName = Path.GetFileName(newUrl); + FileInfo info = new FileInfo(newUrl); + long fileSize = info.Length; + Response.Clear(); + Response.ContentType = "application/x-zip-compressed"; + Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); + Response.AddHeader("Content-Length", fileSize.ToString()); + Response.TransmitFile(newUrl, 0, fileSize); + Response.Flush(); + Response.Close(); + File.Delete(newUrl); + } + else + { + Alert.ShowInTop("当前无记录,无法导出!", MessageBoxIcon.Warning); + } + } + #endregion } diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipment.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipment.aspx.designer.cs index 594e3ac8..27b36933 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipment.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipment.aspx.designer.cs @@ -7,13 +7,11 @@ // //------------------------------------------------------------------------------ -namespace FineUIPro.Web.Comprehensive -{ - - - public partial class InspectionEquipment - { - +namespace FineUIPro.Web.Comprehensive { + + + public partial class InspectionEquipment { + /// /// form1 控件。 /// @@ -22,7 +20,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlForm form1; - + /// /// PageManager1 控件。 /// @@ -31,7 +29,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.PageManager PageManager1; - + /// /// Panel1 控件。 /// @@ -40,7 +38,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Panel Panel1; - + /// /// Grid1 控件。 /// @@ -49,7 +47,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Grid Grid1; - + /// /// ToolSearch 控件。 /// @@ -58,7 +56,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar ToolSearch; - + /// /// sdrpUnitId 控件。 /// @@ -67,7 +65,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList sdrpUnitId; - + /// /// stxtInspectionName 控件。 /// @@ -76,7 +74,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox stxtInspectionName; - + /// /// txtStarTime 控件。 /// @@ -85,7 +83,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DatePicker txtStarTime; - + /// /// Label1 控件。 /// @@ -94,7 +92,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Label Label1; - + /// /// txtEndTime 控件。 /// @@ -103,7 +101,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DatePicker txtEndTime; - + /// /// btnSearch 控件。 /// @@ -112,7 +110,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnSearch; - + /// /// btnNew 控件。 /// @@ -121,7 +119,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnNew; - + /// /// btnImport 控件。 /// @@ -130,7 +128,16 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnImport; - + + /// + /// btnOut 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnOut; + /// /// lblPageIndex 控件。 /// @@ -139,7 +146,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.Label lblPageIndex; - + /// /// txtStatus 控件。 /// @@ -148,7 +155,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.Label txtStatus; - + /// /// lbtnFileUrl 控件。 /// @@ -157,7 +164,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.LinkButton lbtnFileUrl; - + /// /// ToolbarText1 控件。 /// @@ -166,7 +173,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarText ToolbarText1; - + /// /// ddlPageSize 控件。 /// @@ -175,7 +182,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlPageSize; - + /// /// Window1 控件。 /// @@ -184,7 +191,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window1; - + /// /// Window2 控件。 /// @@ -193,7 +200,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window2; - + /// /// WindowAtt 控件。 /// @@ -202,7 +209,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window WindowAtt; - + /// /// Menu1 控件。 /// @@ -211,7 +218,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Menu Menu1; - + /// /// btnMenuModify 控件。 /// @@ -220,7 +227,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.MenuButton btnMenuModify; - + /// /// btnMenuDel 控件。 /// diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx index a04f93dd..e22ec66a 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx @@ -49,6 +49,9 @@ + + diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx.cs index d4b8fa5b..20e547d6 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; +using System.IO; using System.Linq; namespace FineUIPro.Web.Comprehensive { @@ -295,5 +296,186 @@ namespace FineUIPro.Web.Comprehensive return "编制"; } + + #region 导出按钮 + /// 导出按钮 + /// + /// + /// + protected void btnOut_Click(object sender, EventArgs e) + { + string rootPath = Server.MapPath("~/"); + string initTemplatePath = Const.InspectionMachineTempUrl; + string uploadfilepath = string.Empty; + string newUrl = string.Empty; + uploadfilepath = rootPath + initTemplatePath; + + var lists = (from x in Funs.DB.Comprehensive_InspectionMachine + where x.ProjectId == this.CurrUser.LoginProjectId + select x); + if (this.sdrpUnitId.SelectedValue != BLL.Const._Null) + { + lists = lists.Where(x => x.UnitId == this.sdrpUnitId.SelectedValue); + } + if (sdrpCNProfessional.SelectedValue != BLL.Const._Null) + { + lists = lists.Where(x => x.CNProfessionalId == this.sdrpCNProfessional.SelectedValue); + } + if (sdrpType.SelectedValue != "") + { + lists = lists.Where(x => x.InspectionType == this.sdrpType.SelectedValue); + } + lists = lists.OrderBy(x => x.UnitId); + if (lists != null) + { + newUrl = uploadfilepath.Replace("机具报验模板.xls", "机具报验.xls"); + File.Copy(uploadfilepath, newUrl); + // 第一步:读取文件流 + NPOI.SS.UserModel.IWorkbook workbook; + using (FileStream stream = new FileStream(newUrl, FileMode.Open, FileAccess.Read)) + { + //workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(stream); + workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(stream); + } + // 创建单元格样式 + NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle(); + cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + var font = workbook.CreateFont(); + font.FontHeightInPoints = 11; + cellStyle.SetFont(font); + NPOI.SS.UserModel.ICellStyle cellStyle0 = workbook.CreateCellStyle(); + cellStyle0.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + var font0 = workbook.CreateFont(); + font0.FontHeightInPoints = 12; + font0.IsBold = true; + cellStyle0.SetFont(font0); + // 第二步:创建新数据行 + NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0); + NPOI.SS.UserModel.IRow row = sheet.GetRow(0); + NPOI.SS.UserModel.ICell cell; + int i = 1; + foreach (var item in lists) + { + // 第二步:创建新数据行 + row = sheet.CreateRow(i); + // 添加数据 + cell = row.CreateCell(0); + cell.CellStyle = cellStyle; + cell.SetCellValue(BLL.UnitService.GetUnitNameByUnitId(item.UnitId));//报验单位 + + cell = row.CreateCell(1); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.InspectionMachineCode);//报验编号 + + cell = row.CreateCell(2); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.InspectionMachineName);//名称 + + cell = row.CreateCell(3); + cell.CellStyle = cellStyle; + string proName = string.Empty; + var cnp = BLL.CNProfessionalService.GetCNProfessional(item.CNProfessionalId); + if (cnp != null) + { + proName = cnp.ProfessionalName; + } + cell.SetCellValue(proName);//专业 + + cell = row.CreateCell(4); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.InspectionType);//类型 + + cell = row.CreateCell(5); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.SpecificationModel);//规格型号 + + cell = row.CreateCell(6); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.NextTestDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.NextTestDate) : "");//下次检验日期 + + cell = row.CreateCell(7); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.TestCycle);//检验周期 + + cell = row.CreateCell(8); + cell.CellStyle = cellStyle; + string isV = string.Empty; + if(item.IsVerification.HasValue) + { + if (item.IsVerification==true) + { + isV = "是"; + } + else if(item.IsVerification == false) + { + isV = "否"; + } + } + cell.SetCellValue(isV);//是否在校验期内 + + cell = row.CreateCell(9); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.InspectionDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.InspectionDate) : "");//报验日期 + + cell = row.CreateCell(10); + cell.CellStyle = cellStyle; + string isO = string.Empty; + if (item.IsOnSite.HasValue)//是否在场 + { + if (item.IsOnSite == true) + { + isO = "是"; + } + else if (item.IsOnSite == false) + { + isO = "否"; + } + } + cell.SetCellValue(isO);//是否在校验期内 + + cell = row.CreateCell(11); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.UnitsCount.HasValue ? item.UnitsCount.ToString() : "");//台数 + + cell = row.CreateCell(12); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.LeaveDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.LeaveDate) : "");//离场时间 + + i++; + } + // 第三步:写入文件流 + using (FileStream stream = new FileStream(newUrl, FileMode.Create, FileAccess.Write)) + { + workbook.Write(stream); + workbook.Close(); + } + string fileName = Path.GetFileName(newUrl); + FileInfo info = new FileInfo(newUrl); + long fileSize = info.Length; + Response.Clear(); + Response.ContentType = "application/x-zip-compressed"; + Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); + Response.AddHeader("Content-Length", fileSize.ToString()); + Response.TransmitFile(newUrl, 0, fileSize); + Response.Flush(); + Response.Close(); + File.Delete(newUrl); + } + else + { + Alert.ShowInTop("当前无记录,无法导出!", MessageBoxIcon.Warning); + } + } + #endregion } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx.designer.cs index fcd8cd5f..5df0d290 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx.designer.cs @@ -7,13 +7,11 @@ // //------------------------------------------------------------------------------ -namespace FineUIPro.Web.Comprehensive -{ - - - public partial class InspectionMachine - { - +namespace FineUIPro.Web.Comprehensive { + + + public partial class InspectionMachine { + /// /// form1 控件。 /// @@ -22,7 +20,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlForm form1; - + /// /// PageManager1 控件。 /// @@ -31,7 +29,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.PageManager PageManager1; - + /// /// Panel1 控件。 /// @@ -40,7 +38,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Panel Panel1; - + /// /// Grid1 控件。 /// @@ -49,7 +47,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Grid Grid1; - + /// /// ToolSearch 控件。 /// @@ -58,7 +56,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar ToolSearch; - + /// /// sdrpUnitId 控件。 /// @@ -67,7 +65,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList sdrpUnitId; - + /// /// sdrpCNProfessional 控件。 /// @@ -76,7 +74,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList sdrpCNProfessional; - + /// /// sdrpType 控件。 /// @@ -85,7 +83,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList sdrpType; - + /// /// btnSearch 控件。 /// @@ -94,7 +92,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnSearch; - + /// /// btnNew 控件。 /// @@ -103,7 +101,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnNew; - + /// /// btnImport 控件。 /// @@ -112,7 +110,16 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnImport; - + + /// + /// btnOut 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnOut; + /// /// lblPageIndex 控件。 /// @@ -121,7 +128,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.Label lblPageIndex; - + /// /// txtStatus 控件。 /// @@ -130,7 +137,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.Label txtStatus; - + /// /// lbtnFileUrl 控件。 /// @@ -139,7 +146,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.LinkButton lbtnFileUrl; - + /// /// ToolbarText1 控件。 /// @@ -148,7 +155,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarText ToolbarText1; - + /// /// ddlPageSize 控件。 /// @@ -157,7 +164,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlPageSize; - + /// /// Window1 控件。 /// @@ -166,7 +173,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window1; - + /// /// Window2 控件。 /// @@ -175,7 +182,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window2; - + /// /// WindowAtt 控件。 /// @@ -184,7 +191,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window WindowAtt; - + /// /// Menu1 控件。 /// @@ -193,7 +200,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Menu Menu1; - + /// /// btnMenuModify 控件。 /// @@ -202,7 +209,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.MenuButton btnMenuModify; - + /// /// btnMenuDel 控件。 /// diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPerson.aspx b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPerson.aspx index a9bde66e..bf771998 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPerson.aspx +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPerson.aspx @@ -46,6 +46,9 @@ + + diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPerson.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPerson.aspx.cs index 2f30e7f4..7a66fa66 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPerson.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPerson.aspx.cs @@ -4,6 +4,7 @@ using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; +using System.IO; using System.Linq; namespace FineUIPro.Web.Comprehensive { @@ -363,6 +364,167 @@ namespace FineUIPro.Web.Comprehensive return "编制"; } - + #region 导出按钮 + /// 导出按钮 + /// + /// + /// + protected void btnOut_Click(object sender, EventArgs e) + { + string rootPath = Server.MapPath("~/"); + string initTemplatePath = Const.InspectionPersonTempUrl; + string uploadfilepath = string.Empty; + string newUrl = string.Empty; + uploadfilepath = rootPath + initTemplatePath; + + var lists = (from x in Funs.DB.Comprehensive_InspectionPerson + where x.ProjectId == this.CurrUser.LoginProjectId + select x); + if (this.sdrpUnitId.SelectedValue != BLL.Const._Null) + { + lists = lists.Where(x => x.UnitId == this.sdrpUnitId.SelectedValue); + } + if (sdrpPost.SelectedValue != BLL.Const._Null) + { + lists = lists.Where(x => x.PostId == this.sdrpPost.SelectedValue); + } + if (!string.IsNullOrEmpty(this.stxtPersonName.Text.Trim())) + { + lists = lists.Where(x => x.PersonName.Contains(this.stxtPersonName.Text.Trim())); + } + lists = lists.OrderBy(x => x.UnitId); + if (lists != null) + { + newUrl = uploadfilepath.Replace("人员报验模板.xls", "人员报验.xls"); + File.Copy(uploadfilepath, newUrl); + // 第一步:读取文件流 + NPOI.SS.UserModel.IWorkbook workbook; + using (FileStream stream = new FileStream(newUrl, FileMode.Open, FileAccess.Read)) + { + //workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(stream); + workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(stream); + } + // 创建单元格样式 + NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle(); + cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + var font = workbook.CreateFont(); + font.FontHeightInPoints = 11; + cellStyle.SetFont(font); + NPOI.SS.UserModel.ICellStyle cellStyle0 = workbook.CreateCellStyle(); + cellStyle0.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + var font0 = workbook.CreateFont(); + font0.FontHeightInPoints = 12; + font0.IsBold = true; + cellStyle0.SetFont(font0); + // 第二步:创建新数据行 + NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0); + NPOI.SS.UserModel.IRow row = sheet.GetRow(0); + NPOI.SS.UserModel.ICell cell; + int i = 1; + foreach (var item in lists) + { + // 第二步:创建新数据行 + row = sheet.CreateRow(i); + // 添加数据 + cell = row.CreateCell(0); + cell.CellStyle = cellStyle; + cell.SetCellValue(BLL.UnitService.GetUnitNameByUnitId(item.UnitId));//报验单位 + + cell = row.CreateCell(1); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.InspectionPersonCode);//报验编号 + + cell = row.CreateCell(2); + cell.CellStyle = cellStyle; + string proName = string.Empty; + var cnp = BLL.CNProfessionalService.GetCNProfessional(item.CNProfessionalId); + if (cnp != null) + { + proName = cnp.ProfessionalName; + } + cell.SetCellValue(proName);//专业 + + cell = row.CreateCell(3); + cell.CellStyle = cellStyle; + string unitWork = string.Empty; + if (!string.IsNullOrEmpty(item.UnitWorkId)) + { + unitWork = ConvertUnitWork(item.UnitWorkId); + } + cell.SetCellValue(unitWork);//单位工程名称 + + cell = row.CreateCell(4); + cell.CellStyle = cellStyle; + string postName = string.Empty; + if (!string.IsNullOrEmpty(item.PostId)) + { + var post = BLL.PostService.GetPostById(item.PostId); + if (post!=null) + { + postName = post.PostName; + } + } + cell.SetCellValue(postName);//工种 + + cell = row.CreateCell(5); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.PersonName);//姓名 + + cell = row.CreateCell(6); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.CertificateNumber);//证书编号 + + cell = row.CreateCell(7); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.QualifiedProjectCode);//合格项目代号(级别) + + cell = row.CreateCell(8); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.ValidityDate.HasValue ? string.Format("{0:yyyy-MM-dd}", item.ValidityDate) : "");//有效期 + + cell = row.CreateCell(9); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.ApprovalTime.HasValue ? string.Format("{0:yyyy-MM-dd}", item.ApprovalTime) : "");//批准时间 + + cell = row.CreateCell(10); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.DepartureTime.HasValue ? string.Format("{0:yyyy-MM-dd}", item.DepartureTime) : "");//离场时间 + + i++; + } + // 第三步:写入文件流 + using (FileStream stream = new FileStream(newUrl, FileMode.Create, FileAccess.Write)) + { + workbook.Write(stream); + workbook.Close(); + } + string fileName = Path.GetFileName(newUrl); + FileInfo info = new FileInfo(newUrl); + long fileSize = info.Length; + Response.Clear(); + Response.ContentType = "application/x-zip-compressed"; + Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); + Response.AddHeader("Content-Length", fileSize.ToString()); + Response.TransmitFile(newUrl, 0, fileSize); + Response.Flush(); + Response.Close(); + File.Delete(newUrl); + } + else + { + Alert.ShowInTop("当前无记录,无法导出!", MessageBoxIcon.Warning); + } + } + #endregion } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPerson.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPerson.aspx.designer.cs index 1929163a..065bfd78 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPerson.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPerson.aspx.designer.cs @@ -7,13 +7,11 @@ // //------------------------------------------------------------------------------ -namespace FineUIPro.Web.Comprehensive -{ - - - public partial class InspectionPerson - { - +namespace FineUIPro.Web.Comprehensive { + + + public partial class InspectionPerson { + /// /// form1 控件。 /// @@ -22,7 +20,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlForm form1; - + /// /// PageManager1 控件。 /// @@ -31,7 +29,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.PageManager PageManager1; - + /// /// Panel1 控件。 /// @@ -40,7 +38,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Panel Panel1; - + /// /// Grid1 控件。 /// @@ -49,7 +47,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Grid Grid1; - + /// /// ToolSearch 控件。 /// @@ -58,7 +56,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar ToolSearch; - + /// /// sdrpUnitId 控件。 /// @@ -67,7 +65,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList sdrpUnitId; - + /// /// sdrpPost 控件。 /// @@ -76,7 +74,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList sdrpPost; - + /// /// stxtPersonName 控件。 /// @@ -85,7 +83,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.TextBox stxtPersonName; - + /// /// btnSearch 控件。 /// @@ -94,7 +92,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnSearch; - + /// /// btnNew 控件。 /// @@ -103,7 +101,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnNew; - + /// /// btnImport 控件。 /// @@ -112,7 +110,16 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnImport; - + + /// + /// btnOut 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnOut; + /// /// lblPageIndex 控件。 /// @@ -121,7 +128,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.Label lblPageIndex; - + /// /// Label2 控件。 /// @@ -130,7 +137,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.Label Label2; - + /// /// txtStatus 控件。 /// @@ -139,7 +146,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.Label txtStatus; - + /// /// lbtnFileUrl 控件。 /// @@ -148,7 +155,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.LinkButton lbtnFileUrl; - + /// /// ToolbarText1 控件。 /// @@ -157,7 +164,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarText ToolbarText1; - + /// /// ddlPageSize 控件。 /// @@ -166,7 +173,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlPageSize; - + /// /// Window1 控件。 /// @@ -175,7 +182,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window1; - + /// /// Window2 控件。 /// @@ -184,7 +191,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window2; - + /// /// Window3 控件。 /// @@ -193,7 +200,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window3; - + /// /// WindowAtt 控件。 /// @@ -202,7 +209,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window WindowAtt; - + /// /// Menu1 控件。 /// @@ -211,7 +218,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Menu Menu1; - + /// /// btnMenuModify 控件。 /// @@ -220,7 +227,7 @@ namespace FineUIPro.Web.Comprehensive /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.MenuButton btnMenuModify; - + /// /// btnMenuDel 控件。 /// diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx index 4b7d336d..a56facd0 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx @@ -30,6 +30,9 @@ + + diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.cs index 27eeb729..c1afab99 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.cs @@ -3,6 +3,7 @@ using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; +using System.IO; using System.Linq; using System.Web; using System.Web.UI; @@ -202,7 +203,134 @@ namespace FineUIPro.Web.CQMS.Comprehensive PageContext.RegisterStartupScript(Window2.GetShowReference(String.Format("TrainingRecordsDataIn.aspx", "导入 - "))); } #endregion - + + #region 导出按钮 + /// 导出按钮 + /// + /// + /// + protected void btnOut_Click(object sender, EventArgs e) + { + string rootPath = Server.MapPath("~/"); + string initTemplatePath = Const.TrainingRecordsTempUrl; + string uploadfilepath = string.Empty; + string newUrl = string.Empty; + uploadfilepath = rootPath + initTemplatePath; + + var lists = (from x in Funs.DB.Comprehensive_TrainingRecords + where x.ProjectId == this.CurrUser.LoginProjectId + select x); + if (drpCNProfessionalId.SelectedValue != BLL.Const._Null) + { + lists = lists.Where(x => x.CNProfessionalId == drpCNProfessionalId.SelectedValue); + } + if (!string.IsNullOrEmpty(this.txtTrainingContents.Text.Trim())) + { + lists = lists.Where(x => x.TrainingContents.Contains(this.txtTrainingContents.Text.Trim())); + } + if (lists != null) + { + newUrl = uploadfilepath.Replace("培训记录模板.xls", "培训记录.xls"); + File.Copy(uploadfilepath, newUrl); + // 第一步:读取文件流 + NPOI.SS.UserModel.IWorkbook workbook; + using (FileStream stream = new FileStream(newUrl, FileMode.Open, FileAccess.Read)) + { + //workbook = new NPOI.XSSF.UserModel.XSSFWorkbook(stream); + workbook = new NPOI.HSSF.UserModel.HSSFWorkbook(stream); + } + // 创建单元格样式 + NPOI.SS.UserModel.ICellStyle cellStyle = workbook.CreateCellStyle(); + cellStyle.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + var font = workbook.CreateFont(); + font.FontHeightInPoints = 11; + cellStyle.SetFont(font); + NPOI.SS.UserModel.ICellStyle cellStyle0 = workbook.CreateCellStyle(); + cellStyle0.BorderTop = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderRight = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderBottom = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; + cellStyle0.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; + cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + var font0 = workbook.CreateFont(); + font0.FontHeightInPoints = 12; + font0.IsBold = true; + cellStyle0.SetFont(font0); + // 第二步:创建新数据行 + NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0); + NPOI.SS.UserModel.IRow row = sheet.GetRow(0); + NPOI.SS.UserModel.ICell cell; + int i = 1; + foreach (var item in lists) + { + // 第二步:创建新数据行 + row = sheet.CreateRow(i); + // 添加数据 + cell = row.CreateCell(0); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.TrainingContents);//培训内容 + + cell = row.CreateCell(1); + cell.CellStyle = cellStyle; + string proName = string.Empty; + var cnp = BLL.CNProfessionalService.GetCNProfessional(item.CNProfessionalId); + if (cnp != null) + { + proName = cnp.ProfessionalName; + } + cell.SetCellValue(proName);//专业 + + cell = row.CreateCell(2); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.TrainingObject);//培训对象 + + cell = row.CreateCell(3); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.TrainingAddress);//培训地点 + + cell = row.CreateCell(4); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.Hours.HasValue ? item.Hours.ToString() : "");//课时(小时) + + cell = row.CreateCell(5); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.KeynoteSpeaker);//主讲人 + + cell = row.CreateCell(6); + cell.CellStyle = cellStyle; + cell.SetCellValue(item.Remark);//备注 + i++; + } + // 第三步:写入文件流 + using (FileStream stream = new FileStream(newUrl, FileMode.Create, FileAccess.Write)) + { + workbook.Write(stream); + workbook.Close(); + } + string fileName = Path.GetFileName(newUrl); + FileInfo info = new FileInfo(newUrl); + long fileSize = info.Length; + Response.Clear(); + Response.ContentType = "application/x-zip-compressed"; + Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); + Response.AddHeader("Content-Length", fileSize.ToString()); + Response.TransmitFile(newUrl, 0, fileSize); + Response.Flush(); + Response.Close(); + File.Delete(newUrl); + } + else + { + Alert.ShowInTop("当前无记录,无法导出!", MessageBoxIcon.Warning); + } + } + #endregion + #region 获取按钮权限 /// /// 获取按钮权限 diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.designer.cs index 52402bab..e61880b2 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.designer.cs @@ -102,6 +102,15 @@ namespace FineUIPro.Web.CQMS.Comprehensive { /// protected global::FineUIPro.Button btnImport; + /// + /// btnOut 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnOut; + /// /// lblPageIndex 控件。 /// diff --git a/SGGL/FineUIPro.Web/File/Excel/CQMS/人员报验模板.xls b/SGGL/FineUIPro.Web/File/Excel/CQMS/人员报验模板.xls new file mode 100644 index 0000000000000000000000000000000000000000..6d470aaf12720240545a14739c55ec5ec4ee97ea GIT binary patch literal 19456 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 F{Tr16hqV9z literal 0 HcmV?d00001 diff --git a/SGGL/FineUIPro.Web/File/Excel/CQMS/培训记录模板.xls b/SGGL/FineUIPro.Web/File/Excel/CQMS/培训记录模板.xls new file mode 100644 index 0000000000000000000000000000000000000000..df486a510c02722255bda08cd00f5af2da8ea097 GIT binary patch literal 19456 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 literal 0 HcmV?d00001 diff --git a/SGGL/FineUIPro.Web/File/Excel/CQMS/施工技术交底管理模板.xls b/SGGL/FineUIPro.Web/File/Excel/CQMS/施工技术交底管理模板.xls new file mode 100644 index 0000000000000000000000000000000000000000..3f5d4a887972e6077d59350bae05c07df41a7833 GIT binary patch literal 19456 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 literal 0 HcmV?d00001 diff --git a/SGGL/FineUIPro.Web/File/Excel/CQMS/机具报验模板.xls b/SGGL/FineUIPro.Web/File/Excel/CQMS/机具报验模板.xls new file mode 100644 index 0000000000000000000000000000000000000000..bc98e10fcc6857191b73dcac3b50bf6f8733f958 GIT binary patch literal 19456 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 literal 0 HcmV?d00001 diff --git a/SGGL/FineUIPro.Web/File/Excel/CQMS/质量专项检查模版.xls b/SGGL/FineUIPro.Web/File/Excel/CQMS/质量专项检查模版.xls new file mode 100644 index 0000000000000000000000000000000000000000..34652ff00f25aeffb35b4f26fc19890efa845138 GIT binary patch literal 19456 zcmeHP2Urxzwyqfl7*vuVQAvWJ2V+nAeQ$Fs$#uPnl?nP?`kZ`E^ zM5uXJ5(C?quK{4`=tB8824esD+VasnmZk~V3nSx5GW=pF?gQa045K(f$yhQRjz^*a zPq3-0Kla_PEg$=HX&s)L7<#daGC8b%QT1e|fT%#{e?Wv}m*^yH33&){5E%viUf@UK zz|G;{&Tx`SH5GIaPoLS}AG%OJ#0b!b6F{)HK!pfErUWAj%HX`iR)^Z|q_mDuTW@MK zBBZeUW8?Oqfnk8qm(rV0Z7ry+25bf70A+KFk~qWobqBP?WD%ZFG8351jtuL|$R!zn zk6cWSpzCt@&8Tt(a&lcBc@qvl6Tx#2PJAJZ$nyT%@#u?q3QURB!*2E5CYvM$_2rU^z>{(J1kvm*C z4Y<@JNhpbj&NGaNF9h->yleX}q3gasV<$MKT9v^fXoT85W^`NWE{*7z8&>?6cGs&e9-a1CcEs1Z`C5k6xtXr0Eg#*EY4rP8@{*#S_pnIdyV9!P=iQ}>sIR7>!_lMr7sUo*Hi zn4w$%X-fVMb1*2D;{eR1&nHJjF8%+@ashRJU&phM=954p=i;A0&*PS>@yOfq$lGzs zaYn+0kFyjmdHs1I+S+Kp(|(HDQ8+l`Ybdv;~Nt7C7l1y2H9GUZgYeuTD;skSQINH5?cfCOq4w)*4Ow1t@ z)yX81(t5l`oNH)ltXcpCvhBna45aOZO&HTo*fOS_uw_g; zVaw{1rB(sW5)uaAHy(4%%IMsanA!{4_Q)9 z@UDmn49HhBHV3d_KuUwY5yX)N;_S)=!gz*zp6WQUKbS8$=*M)75mOx|je8ytcgSL@6E{qi zWx;@a1t%UXkkX)U1o32nIJ7AYZ{r zM;1tF&^LnMqbbG{XICx|P^b?))#(HZ3<&)gm$6`~!=!P~1L6%?3`pECTqR)w1M(G| zbOsv+q%`OoL3~&s&aPY_jAyv7tB&lQCN7^y?=(4Fmo@Nhtbw0mgT+F)I%E<_uGom= zvQ8{KLX-$e`=~Q>z@DI%R;H2!_u82vYTrClncC}Qs!)5~OjT;%B2!H5^)l69uLdi_ z@LcOj(uEwkB7{w#2+X02P=`6RhzN#d_Y9vEZ53d^`*FSm^809!6BPAF_D_MahT}To8SPACTj4G1DuP+3*$rN z*b?djTbRSBn$fBsI8<9usvqiA%~5rI_VUT{sCuA^IW(#!vA}b1BC#SNBFsOeQ(~@I z_8jQLIgsWvX06fe%aVejd}anDi12n0qF0ZAW-sl`H7(gxLD4whFl2DO)iX*D%sjRgxA+4qqvSkMv*#vEF;1w0)Q z6G6vlrFpaB`$y)l7?VXevo;Og5VewsiL4e4VGfT|G>E_jp3GShGkC^jCa0Jy#%74> zbP$M4BpUF5jo$+G77NYcF&sd&(RLm(Cw538$8R!;pp5!>ifl8KB zD>+V?0m~eQPlcQ!oGhnp6mlwsc2UeJ7qqoPPNmSUiaF(iwo%9_1Kk3;i5#amlFM@1 zR*q9am zIK>$VJ?M2%%qhaja_XRvQz>*u#hh|MJ1XQ<3hkwsQ!Z#Hg`6_bEl4MMPCYm{b(Z54 zCuB6I-ikRzI9X0z6mlws?yQ(oE@)SUoJyg66m!Z2?WT}Z8hWT$j|^p9kM$^;aI;KY z*=!jr2W7#%ltlR0mylU~9{S>*2{>UNn;4%Q@5rx%4}fVMsirQ-#1z_yv}JnfkeUk- z*WcNi)N${akueGJV;m+XC#jeAZgSd8%lAS0`U#85J%=8)35eZYQh4|;;-7EiSG?}Z z+S@lO9!>MSbWivCs$S{??ebOC=f+=jn0=sXirr@8Ew_5K{KYQmL2--9rxOj%@13u6 zFYsJyNP6q*i)Q?^?{~A`_Ss%He`WW3)X$dRduMm=|Kw^-+lK+qY}+&uw*M@^3QFBR z^K$d8cd&%>8lHt9d2(($qr)!-_D;F&VQ@_IW`@?-6#K*b7psh$`+j?Q-d?{K`=8|O zx5;+5GO}EK?ZA3(4Fjhg#^Vil-PSn0UueIpSIvms<8F3bml5L_7^s&#$!}Wh&AE@` zLVo@Dx$1ha%3Ial)v6ab>rXGRKR&5Lm3RJvfjzDSmK^tb9)0UCZ}Si%iwmK5-slf_ ze`A8rr~5{?a-93@Qhl@ark}mfvN8L^w$668Ydw19#ZgUOS)A3ee2~+(oq2cbb)M^& zey8PTt7ftFRe_CQU(G_5FCz>0boU$GZpL>8VV#4GUN>>d?{|GfkyfhGUi>fwMsDAi$=kuuT>sANNzM#I_>gQu$N*=pR9rfK+kJ`9!gP(2~S64=@ zk5<|;sJMFnq>E8|$~FrUJI!>O@3`#Ji=QTKULDiR?CsU{hYt+iUTr@mP_op0?ZI-+07(TR-c>8}^@#;;JsXPuUsr%59Qf)U?>1SDqSm z6n}p)sWd|&caKbYc{Hu| z`McNISBrhtc1|1f;l1_7lIC~1KmF0}{fEQ9NQ|lpw7%k*S!HTq%VjBN=O}lIo44O^ zLYw=Wc1K*O8nvd+owKz^<{h3^R#Y-xwV>bd$!`tE_I?;zKBuUnQafO4SDpOWr&}i^ z%`IwuNOk&vG;hnHmqgh=)?`jh?wa4$FgGXQ$AYrXf$JQaE}s_sy{+f0nj;GrJmK}k&Z%MEFhrpNT(k+H#{hrWaNQ~KY_j(h>zCzT7E3f9XFXI}Uz{R{Ub{;(yJrtmx6z}uR{c^HmOQj<n-P)SOcpeq{V@3F#0{lNS4STyF?-a(A?rx^ zh!ZiNeVT8!xYWcd@w+zS-bZx~{u12w?NR5veV@b&lB!%+`aPU(l%TcxL_qO?F@rO* z+g{q{W#Im(%lMqx>gs!&y#3r`_L(~yEr-|M-jvuaZ&RMvtEH(OKHfdQf44#Z8`Db$ zM(I{W-y9fGe5qsqqN!UvoJZ?ED6$LNw|B$27?VB2&QzY*=+|=1#MT}En4mT4fKm9W zx!26KM-43#XGZ@i7fU~2!f?2uvz}(60wBof2Tl!BtnESa?===fQmlj8c`4yhE)w7p`{x)b&vUk?T z+uyJ9jI6q2qCeGf#O0gYJm!Xm?^LOLklZum*o!d3%=`Up1?O${XHI=qs{b-SLiMnN zVNo}o>T0{IRfE*4lFVDE4_X@NzkU0*(oF$PEHwuvF5CX0WZ8?Kv(|KUDmgW?Uzqm| z{UeVf*2EeZT!=F4BTOFR-Oc<`Y;ddJ&k+9;E;D_{*(NmmOLxfL?+a>o4AFJ;j6J`v zz`4Y|V)UAGxg$yU8A zVC`@8<&v9*<}#N{E=trdFIu}3^o)TLe7wfKywduz_Xc%z^=@*?Nq2fp)&y}%%GEuxmVn-Az2GjJYTd($mwO%yNzY2jf3-wF&frA7w4DF4X@2CY`<|~zsD9E zH~F1AT-KvzT>84#s{~Viu{;{9HTgO*To#-s+4H%*(VPTFQ@z1oLi|$8XDHijI9qzZ z^{Q<_q6?9S4xPEz@Rq`Chvk*`P}i35v{eW8k^U(o$HtEw8y%iDDn4~E-cS6LQ_|#5?8+bg{Kv#W zg*A`XjW<~QHvDNsRN{=d^haB^zx!C(_VD#~&cRC4tarQo-?J(2a;_lt*y2h0SC%FwrY>`e_(8=keWy#_6Ql4H zty<-7m!0eup4s`Voy7auyd5c#2}Q5RdtESl)8WnI57w2gi{`n0(M(hGQd?1*@~m%g zFM&`Oo@z2Tjj~ih1}ux2!FB*FgL4o^18}!T=|d-chshqEw=gZTVWG0!6qM@<4XL-G zTH)6hh7feqR%C-W&~!itEg`bIgCa}pYIHzLH@K~5TXI)Zw(Fri&21c~J!eOxosym~ z+1q6)s510$wo}wGb@MEXAv;r$V&GDy90qIN5Zp_dI>~DAB9#yHuBlW*mmL$O^3t{kmPa1X9oBDuZIQ6NL3kilVfX2g@KVw-MK_E*Y zi6C=^Rl^|ye2roTG~+(h#8yQR26^%D!+ex~z$br%Eq9^hGx0fG1Gy{7gLUFOmZv}? z74T8}JXn|S2fvd7F+}*R=n#;{nJR()f9R&6VP!h=s*jg^6Kasd{ZfeFGDn`V{O>tSCwM& zY3u7Ny<>xYqA7VhN^VPSvnWX>=rF+wpD7Uo!BogONzK|?KzbUbJ)PRN0qtQ_sPwUB z9php+9iI5KWgV}F2M2246)e8P4}BuUl?qpVn7x4H!^&Ac13<$x*h+hH1Yn3sI@A^M zE*oNPMN}FV=SjA)G_3>=3iUOmX%Xlh(vhZ>;mO2?X413@Q6ZPrrD;`o`6gRKnifO3 z`dW0F2=T3I?B5u$X^4e5QsA)xEfi>y&(znhg!oc9bV@+{C@VT8gcNc@r<5RtFR{=m z5v1^J&?#j|;hPV1N(EBbGwGBnq@W?xrNodzDsO;BF6`lJDq(Z7pQ7FuQgJAPkPY29 zo5gt?c+v`54|)KBt_2}0(LuEYu|7#)DMNF^7on88(qHs)w^f=E8jfzO|KHjv(@q!; z>dpm~^o8wz&IQfPzhlh!pEwtE?f$=Pamc`721gJaxp2I~Q3}T<96NBF#BcO*u7)Ez zezAgSe3b&n3T=pZ=Y==%c%8#*53UiS&VR!Heg^O=0H0QC<_WLkDW}f)M@>E9z$e|$ zcY$~OGoXQ-sC&or-@V5#+UfEezlRqD!0*P}G37D#e0xTZ+4JfBv*n+tJBkyMPZCpT z8z&?+nm7iik&}LeOo#VGF)ffu3t4G;5{m7LFMNTv)r1;>8fsv{_h+nqQ`!+mzdb|1lB63z1wo`T5lJaseJ^9{>0h|E~gdajfeNQ=FmjcLyo(_XjEPFAem+W=sTG zJWP_lE%4PJ{S{uncs<|2SZncesJ~rpA>6nTWf|E#kYT-X>_$#(AVSDQu5ipoj?i~s zh_W1DzB1_wbs0)c?2rkZ(lzG)DB1%mdz1sne;M#Tycs(4H-*NQ|2Gv|5A#niAKL+j zOlUyVMF5U{A!2(fg$N<@8f@^C-GPYr3S!8_Ha7tFc+Zejmqs1zW4)jq^@W83>@9K7 zqJ~1t>H_=W&{N`Ix*iWX7?}HxK;jQl8WTs2?o_`-E#^-~=yI?>%jcQZA*KR8{eLOw zhirdGTYL@69k%wc4BD_41>D{XK;525ZomY+#$HTYtTTD;4T4zLvVrwcemgW+zAeMNX~hM z^L}T2_vc;f_FBx|v!|-M_EX(eMOP_ELq9`=cpM>et3r?0e-8xkjggI^g1wEc1ET_% z3Bm{&F6a)nDuVnhRwhXRTmT9qrQqas8K^Ojqz{;}i=+L+%4B>B) z>g5g5NxW8ilnC|HS?3xHbwE$(*DaC$(fTG(PP7enF0l?=o>b&1pLfI9fg@Zgr=xA} zS9D;K#vuI68f8YxVe7NzL<>Nx}drlILiRI8jcA`wGP?o9Y3bevc z8w+})$QPVvYi!Pz%HyRQK*3A|h<;XrUg+lt9XvvUhS-_eHzM)xT9UMV-*ykjBT!cb=Odfh`(?R>o_42xrwOd(_z{WtN+ayt z3Pi}G?UqX-sFSg@L?oD@!-9I}INj@AT{f7N>gY%99AG898rsFM(yjpGsyd{asq0JS zwH!sdLYcaY2@!eisW~=;_h3aac3*UmMz(}Pc6_J2j{SF_dB1N6ae{&72Lp}zSD+1T z?2R9h_KH!I?qI?QT7r2H>Gep-{T>`#3mwnT4J?uIMC$#nW;ym=wDI1fsa0Gm3h?a%@EI1b0Jc&+P;^IH_QS`hI4SQ! zU*%$;k9p3RKuGvyLBh=O%Akj}HWQWD`v9Kz1u0LqaIWMtA5dt9ec-A`DNT>io~F>| z=!Czb@zxd;Kq=^|5pbq}i0}5sJGkXhssAjzc)kH!z2|VN*^`Hp&8+X|@m^8AOKx?CGfU7zBc zdQYFND&OU8)~wg4c&R}Lb<4D@C-$@`yOSrhUbE3HU#)Wm*TO3l66^OkAty3=w?o%Z z9?}12p93}kgsbH*Z}ZOtfZqfzHue?{X2!;jPd(EQ-SnAU@Mf8Xg@C~M587WW%#Zer zSJk$eC&BQ_sDAKuEfYMM6}2m(*O(HJDVp-)Lys_2nP(!gYt(H;;`qcbuR%wyi=W|8 zrv)f)aHB~#oq~HROMW~C3^%aZwxBAR$Ya8Ywe^OEk4WqbBGWV?Vey~1SQ{hwrw^DNPBV??Qn8q`? z9H|>*T4$RYV}2uoVXA27u5qtPK>GF`I<}{K`Mc-_n_>l}yO{|*nW`yb1wzMsMkWpu zui`Wf;C0Ft5EqJVo29r_Mj7~(K+;Dcu5Q?dTP~r*sgn(-QO{=u%l#EQl*$obO+k5( z644(48pw+GA=F|NI^-=o!rBo7!o6z@XCT{8;lH~G&J87P>SVE5B*7|gd7v*Xyu(0K#fRWC6)?%H<&jWcG|8$UsPN5jXCErtJlI9srxnG zM>(E-GOw{Q(%LguJkjt(SeSaI>*_p_vokR!Vy8K=>ypQNMJ9X~@O{(c{V~22993{J zpQwCBQ4Zo+lc)3|~IWSM zj;bpZ;~3WQ=t-)_P-tEB%yZNn0Rvvqh?`J(kb$j1A_ zS)B}2QkAj8vHa>-f*I^=K+{;E9a7jMH8#14T_d=q+`~9z84>*9^;t|)Z-EShmx)EhT=Or!$$~V9kr76z-F~K5 zVZ|h@CwaiJac$;8`xM-ZK8VY1saEUQYxNSkpD2xzzYX3;qsU*q6fJ7~zcx1O|2Ovk z)5iYi`1Y7|g9D(WnX#4elcc-zpkVF{1_I(3y!#)slt0LR5&w#6`x>$~^Bg!WC^J4l zM;rRa+7GZ!VVA|T$<@O9wOcW@)Zy$Dc;smlU$XcCI7}t@&ba0CfR0)y`f}+Di%O>% zo=hKoMoCF5D|g`lgPE{(BgNsHyQ4|z&AD@Ng!3q7?7%$wR(I|r{?sT9i80CkR^C0` zxu5)`ig;vwN((30>X*|lg15_fb1}?vNk zQK&k?Gdi1|KGKYI{$jnx-m{EvaY-jkWj0NJhi7y&$nIIDc*y3Cr4wKvHMWh%1OIkV z=YF+?H80m<1q{hpcYEdzR6J-a-q2W7 zszu18PNi8PUYz*Fl)MUcO{Gmf=1n6?&HHZFXZZS`&IkL67n?i}n%%DU&W^*!y9F}@ z-0ZI}sdDG|EyC##lp z`8>|gO?^BcCLovA%v6F=B>jV2kTP6d)S)W2J7?0@PrkDNM3KE`malTvKe^J z#6o^9-2j@+8C!2!nk>JKi?CgLk z-;R{63`eY2C<)AQqgmZDdR&1yxDf|_WpOg1`R-&*xae1v%3s>Y-Ryb82HdI|CgJ@T zvITPd;pXl|iM1W#RUMx3cbHN@mtq6jjF#K@Mo%m>UlBzig{~^pn`I9`kJ~l%ldN$w z_&2FoeAT}bL@OX0LZmQzLkTb2j9&Lmf#$TCIl1N*KFaclHA#3i5YH5t_EoG~-Co-# zoMxzq7l(cArE^RuGIBNI>77Jq=Ryv-`PF>B*{kIIWZuJg2kx82-r7o>*VBRh8afyo zx-%N8-9tRDEBp#MnC&oDDnQCL)!9AzL{%o8n_qK;3DR9(@ceKA+J3=PNeP=EMYS~? zf%nzjfwZo}J1-FgCGD3;#z=^0jx&O@UsGn5a6N+#HAby5V`?{~EFO{3ic+yIJ5ey( zEc}-+4_crxu#`Z=wJ!FKPbpGeJic2~S-7-|4vYRlX-ccgir+tH{%s1U=FtKXwjZO# z=u8nun375v?BmU!ktHc6 zvR1sLNO5t|K)x6vIf{l^Lh*Hf!hXGfIuBESd$5`^|1@^fx@x)s4o;sAt{jw=9{(%S zAp-@%@0}1LUs-~MoajuS|HRO%ew%kyqKCoAY0z7f$K21pVVB+$YtgSdU&AM~?4PDH zUsDAe7cax+P($Z-^Mf1GQ$52fY_Z0z7P4M-s$D5gJ|da^S`c;P0k3>iWQ#?+E-y`) zMh0#q^Ls1g-xCKPv;>M`a1hBAf`CB&9V8qa-7JkA9)&CqspO3=uJ!(&IM-$7rGhp6J zpAn&3I2EsjdwuQAR84k?`#fxgy8N?FXkf6lB3*pZx2z3UTHzUD=V?gXH*NA=IWMP) zqe^rH~R3~Cs($f>4SUS@ETO*Onu zK8;Ra9x2n+J;-H_Zq)-t>G-$Uvj1c~y+$((vvZywY&jeyPgGnTO>$=S)T}qGSD-YG z%PKv*_Ctf5C+)wCFh#Z+Gq6A2O&lg(Rijb^zKj71e;4{;`>vBd1OUWJ1ECSFA2PqK zVYga)Zq>G2mzQjUaGyk3shA!>r!pmM+)VyDk2<{~q*J_prw(HZl|vjyyOhJ!4bg(~ zx<|E_TfKK)SPmbclfJTEO|RCtzD}>7Z@pvkIn1A~>}O?acsS&ziPLpN^x@ol>j{8# zY`<4fBIP|5XSwu=+2-;JniEqsZ9iZO%_$OaHXW6)U8U$x(BRWZD{w4dIq^M+oO9-hoQwJkNxEonYqEZqN5O^3s|UHUU%X$~p80bAbcTZsV zoT1=Wn^Y`XSyY_#k%Z(>O-kwaXgwort^o8i!mAf-L#H|LQ#x~l>4wOj!}crXA0^0_ zB+wEv^=dxly`n0A6DO1VX00chYB9V}F`}iCz7{g2yprZ)l6rk5z1?P5OQ-w-9Nu+i zr*vUg>u z&MbF@V;T#I;mAm5jCH3)Lw4ktH_*^hT8LdiG#(hl#ixz({X}&~Nu5Tkx$I|>Maw|M zIpc!L@J} zb7O3;~6p?rEPF|Xmnrz|-_>G=#cAj4@j;#jKX z&7m!-^hPheq19alBnE@VGCMz8hKBQ`b3GR_2-ExyOx(ueT9Dm0zJ@6TytT0s@u;G$ zYawMoW;A-A9DY!iGUB(5o0&{=kk4k=084G^RwuIraSlRB+$P98$z5TY45nqo)+*#P zuQR3u7$0=i(vYg_m9EVKKSnZ53rlov@Ps1U)x%5Eb91z_SVToKZN2Ye$9iotSb;ia zghdDks@nM|Va5_3^(|h*L5t*Hk7gu#Ks=9Bc7E?Q90|$?iVVrJI_!v=0~x9|XN0z1 z(=?FrE(x0metd^=R&sKEO4MimP=roGeSh49$cmBCFB(>+o)hC?;t!ELK-FqZuFSB7 z!CS<44E@8(tZ$&LgqyA^STU2|?v2p|q|V}dEAk;iqwu8a)q;|-1zIyWTj?}D4-StL zBEy~I89RN7a3iGrE39Wk3m#XuZR?4xb+^kd?{KmiF<;Do`oLYKKD;L=PdU6O`3y+^ z31Tsit?b8ShK_ISwxAM4VMYOqYyV)=Kw!mwNFFiOoPxL<#W6#ao1_8Ji-2o0+JG<5 zKs~n?_ZuD9<4b&UXPNhjeeY$j9rQnX{@mVM?e7=IE)#II;b4ru)}W2XX87SG_i*>6 z|MUVqsPG{diV1+dZt?T1?88!v;9bYnSw}0CeW8cZdJkZSTe^TaP1pOjTNEn#7#CIl z(o|jmaxLE_<7jUA4ogj2tOq4qPBI)edK5RPz2w`=uarvW#_2DN_2&#o&G3+p&wLM* zf#1~Ole=E>3HH3Ix-uHn;Y(eRpH zpcrAfTR%7(j;2EK7OeNNxgN#-1R6$?{Yd@t3PyvEDDP@4ke&Z-`s(c90nKR{(2rF4 z%~c@yL-+9bPtUR}1RCb6Ju<7|Dq-}>m6L-;#teR0F;@n&mkcs3m!3a|J-#0Ij*BM} z`*7V%7R1#qKl|~aJhWzvGtR#fBlrhm1n)BqHnonUTR;6^i2Me;;2#*zX`eAcxr{YT zxEiz(IYA1Us3_s^-DVTKuxTAcr(~rCv!yZY^|R!>)L#zW7IR`I#IBEZ<^#e4gnEVt z3KekDs~X-{B`Ibx@i{n=I;ASw>LIYcCbgD74RvgV?48V2Eo^r z=dHaX@)Hk%!{-H34+eI4(s23x&}w7Q*6oloSNQT0b?YtR0coyfBAkqqQI8mXHw)s& z(&54o6&$-w>O=>^OSAsUTE(w?kbd-rSqKY3Bv^}*0~Zh0Ve#S>`S}vE$%eT!uLe&V z)pT<(izT}^lv@b~Wz&<^t(oN$8iT1c*l*aThl>ZFe|US{V7X~OmAh8blu-?8zVq(K z78~_X>^|Ad!D~vq3r|2MDq5Lrg`XtOdva<@suDP{21bqN83Y8%Z{!|p2L?7a7QfEV zl(lW1>n|WIpG!{>pU1~3wTLbk#d$iMVN#<~CYb9f zCPd;G>R?zzL(0>uA$hK#CL=`gp(q#jWert>QbazF=|CLJF~N_pxHzN*78zAyK$0<^ zzH}0S6s3%Gwz@EK&op-#Tlz4IPPz6xYPRaRko1Tbh>5n4qc{#fA$TT4VQP;aRWBEy z>bMM}Le;XS&vKaTsREp_c1fMQrneDMafs==4l1AwL5RA8FqzqGVQLwc4K4c~W4PVJ z8)gC!np7vpi;;KcV0gYT$2$Vql5B4~p}q4a7^(UKfb1P&y{?;?wHt+h3)tt}Nk)^9 zGK=A(HIjW{u*$R8Nj5XOU@@-lsKD3RnxjX+ecy>6VZccgvG9&HG`o0|M7_(~cAvrK zweanarj;Dy0fs596H!TeR#q7!$vI?QJ}eiR z%=uAG{!WViLN-0lEs95;uIk_YB}$qnq1{w$+n+V=oEY2$25j=h%`uS2XnQJ+u!Qi^ zd@vu~R#6bj;AIyp;1)D|5x~)Gtzg}E@~SI?NI{nG+ahhKMs@8-MUIlnv>;w%!mNboS9bOxfm=g_prT_K>wkOR7lBZ6MAGZt)P#}VGA2tt#+WK zZY??DFpA8!32p-Hx)Sy$^u;d!GnW54xBMqK zNiGj?Z@@54fD0FR;49d9{U-bCM*M|t^N0So9ZW#6i=g{}k6!fi<{}6&RWw1C^Jmb3 z{N6xKmgMaYpQX0&y5MDN84mv>;fwT9v6~M0=_1DG6RxHt?+g^S>~+~nS&r=7y3LZtM&n=dH`Ip!_*l&?0w_J9#^YN)N2b zzC@_7Ziw3(%-|3;9fxe3U5cA-_I(YO_Fga0xhtjg^AvX67B4R4$R70WJh9jW84hWt z?MVGGijV7EOo<=Q_83i`9RJ(6!H_wCy%r&Oi9R0nYKqucI~rR%>Z-We8arq|dajzd ze(Ux}tm3axV!mK9D|{-Vg$fr)pjX<4tNR%!+KJ-!JgD`sQ-}fxGd3bi-kt7opd|>K zlUEuG;|luRtIoJz`7ENkh;2N=OGbz10@OwlffmpHz5s z`Uf@A2$b^f*AW@(W-Py8@4mG6tjsWrht7v})s(&nX$ltQE6WJ>%w;c6nsS#csEBBd zde_|b2m3zSmeS_Iug5V)%;h+81jf;>;en(=IE@010|MPQUB2cYL}nl7`5S>eT``j_ zZH+f(G(%FK=XI+BW~$wEq(~y`^Wl{WHPteCqR87q(7gGGjiq<9xII%8wZDJl>eh2| z*wpD@=}Se>RU<%J5pIT)r$W;lA9VvFBKc+(JBoXFr~tm{+`tzjGFX#@rIWxlsC-@f zGR@;l?ErOYe783~r(rSUJs0O*BxXLe+)e*-&a23L>AW0#-{)re z*pAp6T0t5T3gcJ&{oMug)JkAOK|n%~fImY>|Iuc@1^my>=uyD$hMEA$;Kp0Yn}%=nZ2C)hXt$^J*1#(#V1$KHb9-%AMvuR}2Se|e8z bQhwEc6{KMvvlwuYK!^AM)|u|b!^q3 diff --git a/SGGL/FineUIPro.Web/File/Excel/CQMS/资料收发文登记记录模板.xls b/SGGL/FineUIPro.Web/File/Excel/CQMS/资料收发文登记记录模板.xls new file mode 100644 index 0000000000000000000000000000000000000000..aff72b9485beb8f37772e6b4d2ebdbc7762c2741 GIT binary patch literal 19968 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 - +