From a433d38b6f073f94ff7e39c4ac153ef773651ce4 Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Wed, 8 May 2024 21:51:39 +0800 Subject: [PATCH 1/8] =?UTF-8?q?20240508=20=E5=85=B1=E6=A3=80=E9=80=9A?= =?UTF-8?q?=E7=9F=A5=E5=8D=95=E5=A4=8D=E5=88=B6=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../版本日志/SGGLDB_WH_2024-05-08-bwj.sql | 4 + SGGL/BLL/BaseInfo/CNProfessionalService.cs | 37 +++++- .../InspectionManagementService.cs | 26 +++- SGGL/BLL/Common/Const.cs | 5 + SGGL/BLL/SysManage/UserService.cs | 13 ++ .../BaseInfo/CNProfessional.aspx.cs | 2 +- .../CQMS/Check/CheckList.aspx.cs | 12 +- .../CQMS/Check/JointCheck.aspx.cs | 12 +- .../CQMS/Check/JointCheckStatistics.aspx.cs | 12 +- .../ConTechnologyDisclosure.aspx.cs | 12 +- .../Comprehensive/DataReceivingDoc.aspx.cs | 12 +- .../DataReceivingDocEdit.aspx.cs | 2 +- .../Comprehensive/DesignChangeOrder.aspx.cs | 12 +- .../CQMS/Comprehensive/DesignDetails.aspx.cs | 12 +- .../CQMS/Comprehensive/DesignDrawings.aspx.cs | 12 +- .../Comprehensive/GeneralPlanApproval.aspx.cs | 12 +- .../Comprehensive/InspectionEquipment.aspx.cs | 13 +- .../Comprehensive/InspectionMachine.aspx.cs | 9 +- .../Comprehensive/InspectionPerson.aspx.cs | 13 +- .../Comprehensive/InspectionTestPlan.aspx.cs | 12 +- .../Comprehensive/MajorPlanApproval.aspx.cs | 12 +- .../CQMS/Comprehensive/NCRManagement.aspx.cs | 12 +- .../CQMS/Comprehensive/PressurePipe.aspx.cs | 12 +- .../Comprehensive/QualityAccident.aspx.cs | 12 +- .../CQMS/Comprehensive/ReviewDrawings.aspx.cs | 12 +- .../Comprehensive/SiteVisaManagement.aspx.cs | 12 +- .../Comprehensive/SpecialEquipment.aspx.cs | 12 +- .../Comprehensive/TrainingRecords.aspx.cs | 12 +- .../CQMS/ManageReport/CheckStatisc.aspx.cs | 12 +- .../ManageReport/DesignChangeStatisc.aspx.cs | 12 +- .../CQMS/ManageReport/HJGLStatisc.aspx.cs | 12 +- .../CQMS/ManageReport/NCRStatisc.aspx.cs | 12 +- .../ProcessControl/CheckManStatistics.aspx.cs | 12 +- .../ProcessControl/HotProessManage.aspx.cs | 12 +- .../InspectionManagement.aspx.cs | 12 +- .../InspectionManagementStatistics.aspx | 3 +- .../InspectionManagementStatistics.aspx.cs | 68 ++++++++-- .../CQMS/ProcessControl/InspectionNotice.aspx | 4 +- .../ProcessControl/InspectionNotice.aspx.cs | 121 ++++++++++++++---- .../InspectionNotice.aspx.designer.cs | 81 ++++++------ .../InspectionNoticeEdit.aspx.cs | 1 + .../NondestructiveTest_New.aspx.cs | 12 +- .../TestPackageManagement.aspx.cs | 12 +- .../File/Excel/CQMS/NCR统计模板.xls | Bin 20992 -> 20992 bytes .../File/Excel/CQMS/共检通知单模板.xls | Bin 14336 -> 14336 bytes .../CQMS/控制点检查检测合格率统计模板.xls | Bin 20992 -> 20992 bytes .../File/Excel/CQMS/控制点检查检测模板.xls | Bin 14336 -> 14336 bytes .../File/Excel/CQMS/现场检查情况模板.xls | Bin 20992 -> 20992 bytes .../File/Excel/CQMS/问题统计模板.xls | Bin 14336 -> 14336 bytes .../File/Excel/DataIn/NCR管理导入模板.xls | Bin 22528 -> 23040 bytes .../File/Excel/DataIn/人员报验导入模板.xls | Bin 14848 -> 14848 bytes .../Excel/DataIn/图纸收发记录导入模板.xls | Bin 14848 -> 14848 bytes .../File/Excel/DataIn/培训记录导入模板.xls | Bin 14336 -> 14336 bytes .../File/Excel/DataIn/机具报验导入模板.xls | Bin 18432 -> 18432 bytes .../Excel/DataIn/设计交底管理导入模板.xls | Bin 14848 -> 14848 bytes .../File/Excel/DataIn/设计变更单导入模板.xls | Bin 22016 -> 22016 bytes .../DataIn/资料收发文登记记录导入模板.xls | Bin 15360 -> 15360 bytes .../超过一定规模的危大施工方案导入模板.xls | Bin 21504 -> 21504 bytes SGGL/FineUIPro.Web/Web.config | 2 +- 59 files changed, 328 insertions(+), 400 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_WH_2024-05-08-bwj.sql diff --git a/DataBase/版本日志/SGGLDB_WH_2024-05-08-bwj.sql b/DataBase/版本日志/SGGLDB_WH_2024-05-08-bwj.sql new file mode 100644 index 00000000..49a3b09c --- /dev/null +++ b/DataBase/版本日志/SGGLDB_WH_2024-05-08-bwj.sql @@ -0,0 +1,4 @@ + +insert into Base_CNProfessional(CNProfessionalId,CNProfessionalCode,ProfessionalName,SortIndex) +values('BD344C54-66CC-4547-89AF-04C297D60CD7','HSE','ȫ',111) +go diff --git a/SGGL/BLL/BaseInfo/CNProfessionalService.cs b/SGGL/BLL/BaseInfo/CNProfessionalService.cs index 43ca4316..c88d25eb 100644 --- a/SGGL/BLL/BaseInfo/CNProfessionalService.cs +++ b/SGGL/BLL/BaseInfo/CNProfessionalService.cs @@ -81,6 +81,19 @@ namespace BLL Funs.FineUIPleaseSelect(dropName); } } + + public static void InitCNProfessionalDocDownList(FineUIPro.DropDownList dropName, bool isShowPlease) + { + dropName.DataValueField = "Value"; + dropName.DataTextField = "Text"; + dropName.DataSource = GetCNProfessionalDocItem(); + dropName.DataBind(); + if (isShowPlease) + { + Funs.FineUIPleaseSelect(dropName); + } + } + /// /// 专业下拉框 /// @@ -104,7 +117,29 @@ namespace BLL /// public static ListItem[] GetCNProfessionalItem() { - var q = (from x in Funs.DB.Base_CNProfessional where x.CNProfessionalId != BLL.Const.CNProfessionalConstructId orderby x.SortIndex select x).ToList(); + var q = (from x in Funs.DB.Base_CNProfessional + where x.CNProfessionalId != BLL.Const.CNProfessionalConstructId + && x.CNProfessionalId != BLL.Const.CNProfessionalHSEId + orderby x.SortIndex + select x).ToList(); + ListItem[] list = new ListItem[q.Count()]; + for (int i = 0; i < q.Count(); i++) + { + list[i] = new ListItem(q[i].ProfessionalName ?? "", q[i].CNProfessionalId); + } + return list; + } + + /// + /// 资料收发文专用 + /// + /// + public static ListItem[] GetCNProfessionalDocItem() + { + var q = (from x in Funs.DB.Base_CNProfessional + where x.CNProfessionalId != BLL.Const.CNProfessionalConstructId + orderby x.SortIndex + select x).ToList(); ListItem[] list = new ListItem[q.Count()]; for (int i = 0; i < q.Count(); i++) { diff --git a/SGGL/BLL/CQMS/ProcessControl/InspectionManagementService.cs b/SGGL/BLL/CQMS/ProcessControl/InspectionManagementService.cs index 220d3ddc..6a36c534 100644 --- a/SGGL/BLL/CQMS/ProcessControl/InspectionManagementService.cs +++ b/SGGL/BLL/CQMS/ProcessControl/InspectionManagementService.cs @@ -339,10 +339,10 @@ namespace BLL { InspectionMangementList = (from x in InspectionMangementList where x.CNProfessionalId==cNProfessionalId select x).ToList(); } - if (isOnceQualified == true) - { + //if (isOnceQualified == true) + //{ InspectionMangementList = (from x in InspectionMangementList where x.IsOnceQualified == isOnceQualified select x).ToList(); - } + //} if (startDate != null && SoptDate != null) { InspectionMangementList = (from x in InspectionMangementList where x.InspectionDate >= startDate && x.InspectionDate <= SoptDate select x).ToList(); @@ -357,10 +357,10 @@ namespace BLL { InspectionMangementList = (from x in InspectionMangementList where x.UnitId == unitId select x).ToList(); } - if (isOnceQualified == true) - { + //if (isOnceQualified == true) + //{ InspectionMangementList = (from x in InspectionMangementList where x.IsOnceQualified == isOnceQualified select x).ToList(); - } + //} if (startDate != null && SoptDate != null) { InspectionMangementList = (from x in InspectionMangementList where x.InspectionDate >= startDate && x.InspectionDate <= SoptDate select x).ToList(); @@ -369,6 +369,20 @@ namespace BLL return InspectionMangementList; } + public static List getInspectionManagementDetailListByDate(string projectId, DateTime startDate, DateTime SoptDate, bool isOnceQualified) + { + List InspectionMangementList = (from x in Funs.DB.View_CQMS_InspectionManagementDetail where x.ProjectId == projectId select x).ToList(); + //if (isOnceQualified == true) + //{ + InspectionMangementList = (from x in InspectionMangementList where x.IsOnceQualified == isOnceQualified select x).ToList(); + //} + if (startDate != null && SoptDate != null) + { + InspectionMangementList = (from x in InspectionMangementList where x.InspectionDate >= startDate && x.InspectionDate <= SoptDate select x).ToList(); + } + return InspectionMangementList; + } + /// /// 根据主键获取视图信息 /// diff --git a/SGGL/BLL/Common/Const.cs b/SGGL/BLL/Common/Const.cs index 4d251f9e..a4e7d619 100644 --- a/SGGL/BLL/Common/Const.cs +++ b/SGGL/BLL/Common/Const.cs @@ -3891,6 +3891,11 @@ namespace BLL /// public const string CNProfessionalConstructId = "96EE9000-CAB3-46F0-9392-74BC6AD5D57B"; + /// + /// 安全专业ID + /// + public const string CNProfessionalHSEId = "BD344C54-66CC-4547-89AF-04C297D60CD7"; + /// /// 设备材料报验 /// diff --git a/SGGL/BLL/SysManage/UserService.cs b/SGGL/BLL/SysManage/UserService.cs index 9d6a40c2..157ca65b 100644 --- a/SGGL/BLL/SysManage/UserService.cs +++ b/SGGL/BLL/SysManage/UserService.cs @@ -1293,6 +1293,19 @@ namespace BLL Funs.FineUIPleaseSelect(dropName); } } + + public static void InitUserNameProjectIdUnitTypeDropDownList(FineUIPro.DropDownList dropName, string projectId, string unitType, bool isShowPlease) + { + dropName.DataValueField = "UserName"; + dropName.DataTextField = "UserName"; + dropName.DataSource = BLL.UserService.GetUserListByProjectIdAndUnitType(projectId, unitType); + dropName.DataBind(); + if (isShowPlease) + { + Funs.FineUIPleaseSelect(dropName); + } + } + /// /// Ŀź͵λͻȡûѡ /// diff --git a/SGGL/FineUIPro.Web/BaseInfo/CNProfessional.aspx.cs b/SGGL/FineUIPro.Web/BaseInfo/CNProfessional.aspx.cs index 05168107..521c3dcc 100644 --- a/SGGL/FineUIPro.Web/BaseInfo/CNProfessional.aspx.cs +++ b/SGGL/FineUIPro.Web/BaseInfo/CNProfessional.aspx.cs @@ -42,7 +42,7 @@ namespace FineUIPro.Web.BaseInfo protected DataTable BindData() { - string strSql = @"select CNProfessionalId,CNProfessionalCode,ProfessionalName,SortIndex from [dbo].[Base_CNProfessional] where CNProfessionalId !='"+Const.CNProfessionalConstructId+"' "; + string strSql = @"select CNProfessionalId,CNProfessionalCode,ProfessionalName,SortIndex from [dbo].[Base_CNProfessional] where CNProfessionalId !='" + Const.CNProfessionalConstructId + "' and CNProfessionalId !='" + Const.CNProfessionalHSEId + "' "; List listStr = new List(); if (!string.IsNullOrEmpty(this.txtCNProfessionalCode.Text.Trim())) diff --git a/SGGL/FineUIPro.Web/CQMS/Check/CheckList.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Check/CheckList.aspx.cs index 0d123acd..f2584260 100644 --- a/SGGL/FineUIPro.Web/CQMS/Check/CheckList.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Check/CheckList.aspx.cs @@ -654,20 +654,10 @@ namespace FineUIPro.Web.CQMS.Check cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Check/JointCheck.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Check/JointCheck.aspx.cs index d99bd26a..5a129aea 100644 --- a/SGGL/FineUIPro.Web/CQMS/Check/JointCheck.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Check/JointCheck.aspx.cs @@ -456,20 +456,10 @@ namespace FineUIPro.Web.CQMS.Check cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Check/JointCheckStatistics.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Check/JointCheckStatistics.aspx.cs index 3ec4559a..9725f413 100644 --- a/SGGL/FineUIPro.Web/CQMS/Check/JointCheckStatistics.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Check/JointCheckStatistics.aspx.cs @@ -350,20 +350,10 @@ namespace FineUIPro.Web.CQMS.Check cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosure.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosure.aspx.cs index b1957133..cc2861fb 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosure.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosure.aspx.cs @@ -280,20 +280,10 @@ namespace FineUIPro.Web.CQMS.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx.cs index 528aca21..fb537b1c 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx.cs @@ -368,20 +368,10 @@ namespace FineUIPro.Web.CQMS.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDocEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDocEdit.aspx.cs index ebe28ca5..d7b57600 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDocEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDocEdit.aspx.cs @@ -92,7 +92,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive BLL.UnitService.GetUnit(this.drpSendUnitId, this.CurrUser.LoginProjectId, false);//发件单位 BLL.UnitService.GetUnit(this.drpReceiveUnit, this.CurrUser.LoginProjectId, false);//接收单位 BLL.UnitService.GetUnit(this.drpIssueToUnit, this.CurrUser.LoginProjectId, false);//下发至单位 - BLL.CNProfessionalService.InitCNProfessionalDownList(this.drpCNProfessionalId, true);//专业 + BLL.CNProfessionalService.InitCNProfessionalDocDownList(this.drpCNProfessionalId, true);//专业 //LoadAuditSelect(); //this.agree.Hidden = true; //this.options.Hidden = true; diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignChangeOrder.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignChangeOrder.aspx.cs index 474ecd6f..877a7142 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignChangeOrder.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignChangeOrder.aspx.cs @@ -333,20 +333,10 @@ namespace FineUIPro.Web.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignDetails.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignDetails.aspx.cs index 3ce2d892..29da87aa 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignDetails.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignDetails.aspx.cs @@ -355,20 +355,10 @@ namespace FineUIPro.Web.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignDrawings.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignDrawings.aspx.cs index 7f8dc3d6..a49dfe19 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignDrawings.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignDrawings.aspx.cs @@ -394,20 +394,10 @@ namespace FineUIPro.Web.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/GeneralPlanApproval.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/GeneralPlanApproval.aspx.cs index 946783be..95f3d39b 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/GeneralPlanApproval.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/GeneralPlanApproval.aspx.cs @@ -322,20 +322,10 @@ namespace FineUIPro.Web.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipment.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipment.aspx.cs index a7627848..afaedd1b 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipment.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipment.aspx.cs @@ -327,20 +327,23 @@ namespace FineUIPro.Web.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Right; cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; var font0 = workbook.CreateFont(); - font0.FontHeightInPoints = 12; - font0.IsBold = true; + font0.FontHeightInPoints = 11; + //font0.IsBold = true; cellStyle0.SetFont(font0); + // 第二步:创建新数据行 NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0); NPOI.SS.UserModel.IRow row = sheet.GetRow(0); @@ -388,7 +391,7 @@ namespace FineUIPro.Web.Comprehensive cell.SetCellValue(item.Supplier);//供货厂商 cell = row.CreateCell(7); - cell.CellStyle = cellStyle; + cell.CellStyle = cellStyle0; cell.SetCellValue(item.Counts);//本次数量 cell = row.CreateCell(8); @@ -396,7 +399,7 @@ namespace FineUIPro.Web.Comprehensive cell.SetCellValue(item.Unit);//单位 cell = row.CreateCell(9); - cell.CellStyle = cellStyle; + cell.CellStyle = cellStyle0; cell.SetCellValue(item.SamplingCount);//本次抽检数量 cell = row.CreateCell(10); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx.cs index b788b077..41427d4a 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachine.aspx.cs @@ -346,19 +346,20 @@ namespace FineUIPro.Web.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Right; cellStyle0.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; var font0 = workbook.CreateFont(); - font0.FontHeightInPoints = 12; - font0.IsBold = true; + font0.FontHeightInPoints = 11; cellStyle0.SetFont(font0); // 第二步:创建新数据行 NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0); @@ -445,7 +446,7 @@ namespace FineUIPro.Web.Comprehensive cell.SetCellValue(isO);//是否在校验期内 cell = row.CreateCell(11); - cell.CellStyle = cellStyle; + cell.CellStyle = cellStyle0; cell.SetCellValue(item.UnitsCount.HasValue ? item.UnitsCount.ToString() : "");//台数 cell = row.CreateCell(12); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPerson.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPerson.aspx.cs index 570f9cb5..25d54dd2 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPerson.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPerson.aspx.cs @@ -413,20 +413,11 @@ namespace FineUIPro.Web.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionTestPlan.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionTestPlan.aspx.cs index 70b59d90..67b39dc2 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionTestPlan.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionTestPlan.aspx.cs @@ -288,20 +288,10 @@ namespace FineUIPro.Web.CQMS.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/MajorPlanApproval.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/MajorPlanApproval.aspx.cs index 3e65c307..fa084818 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/MajorPlanApproval.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/MajorPlanApproval.aspx.cs @@ -323,20 +323,10 @@ namespace FineUIPro.Web.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/NCRManagement.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/NCRManagement.aspx.cs index e2034bc8..61c7cb53 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/NCRManagement.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/NCRManagement.aspx.cs @@ -378,20 +378,10 @@ namespace FineUIPro.Web.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/PressurePipe.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/PressurePipe.aspx.cs index 43613d57..ac9df4fe 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/PressurePipe.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/PressurePipe.aspx.cs @@ -315,20 +315,10 @@ namespace FineUIPro.Web.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/QualityAccident.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/QualityAccident.aspx.cs index 6cd67ae8..bd982a97 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/QualityAccident.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/QualityAccident.aspx.cs @@ -321,20 +321,10 @@ namespace FineUIPro.Web.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/ReviewDrawings.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/ReviewDrawings.aspx.cs index 7ea4448c..890bd48b 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/ReviewDrawings.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/ReviewDrawings.aspx.cs @@ -372,20 +372,10 @@ namespace FineUIPro.Web.CQMS.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/SiteVisaManagement.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/SiteVisaManagement.aspx.cs index ac6399c2..54414dac 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/SiteVisaManagement.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/SiteVisaManagement.aspx.cs @@ -328,20 +328,10 @@ namespace FineUIPro.Web.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/SpecialEquipment.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/SpecialEquipment.aspx.cs index e44a11cf..e4337bb2 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/SpecialEquipment.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/SpecialEquipment.aspx.cs @@ -309,20 +309,10 @@ namespace FineUIPro.Web.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.cs index 173e9d12..82136871 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecords.aspx.cs @@ -250,20 +250,10 @@ namespace FineUIPro.Web.CQMS.Comprehensive cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/ManageReport/CheckStatisc.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ManageReport/CheckStatisc.aspx.cs index 89ab0863..7b6003c0 100644 --- a/SGGL/FineUIPro.Web/CQMS/ManageReport/CheckStatisc.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ManageReport/CheckStatisc.aspx.cs @@ -429,20 +429,10 @@ namespace FineUIPro.Web.CQMS.ManageReport cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/ManageReport/DesignChangeStatisc.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ManageReport/DesignChangeStatisc.aspx.cs index 4bc3a73c..491a51d3 100644 --- a/SGGL/FineUIPro.Web/CQMS/ManageReport/DesignChangeStatisc.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ManageReport/DesignChangeStatisc.aspx.cs @@ -225,20 +225,10 @@ namespace FineUIPro.Web.CQMS.ManageReport cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/ManageReport/HJGLStatisc.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ManageReport/HJGLStatisc.aspx.cs index a6cd63f5..efcad6d3 100644 --- a/SGGL/FineUIPro.Web/CQMS/ManageReport/HJGLStatisc.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ManageReport/HJGLStatisc.aspx.cs @@ -177,20 +177,10 @@ namespace FineUIPro.Web.CQMS.ManageReport cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/ManageReport/NCRStatisc.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ManageReport/NCRStatisc.aspx.cs index 53c5a5d6..60ca2d1f 100644 --- a/SGGL/FineUIPro.Web/CQMS/ManageReport/NCRStatisc.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ManageReport/NCRStatisc.aspx.cs @@ -194,20 +194,10 @@ namespace FineUIPro.Web.CQMS.ManageReport cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/ProcessControl/CheckManStatistics.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ProcessControl/CheckManStatistics.aspx.cs index b11d0dba..43d89ba3 100644 --- a/SGGL/FineUIPro.Web/CQMS/ProcessControl/CheckManStatistics.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ProcessControl/CheckManStatistics.aspx.cs @@ -114,20 +114,10 @@ namespace FineUIPro.Web.CQMS.ProcessControl cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/ProcessControl/HotProessManage.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ProcessControl/HotProessManage.aspx.cs index acf0782d..9ba330af 100644 --- a/SGGL/FineUIPro.Web/CQMS/ProcessControl/HotProessManage.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ProcessControl/HotProessManage.aspx.cs @@ -287,20 +287,10 @@ namespace FineUIPro.Web.CQMS.ProcessControl cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionManagement.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionManagement.aspx.cs index a9d4f145..76a8d003 100644 --- a/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionManagement.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionManagement.aspx.cs @@ -288,20 +288,10 @@ namespace FineUIPro.Web.CQMS.ProcessControl cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionManagementStatistics.aspx b/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionManagementStatistics.aspx index e41e3da7..12620a86 100644 --- a/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionManagementStatistics.aspx +++ b/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionManagementStatistics.aspx @@ -21,7 +21,8 @@ - + + diff --git a/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionManagementStatistics.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionManagementStatistics.aspx.cs index dd91818a..5044cf3c 100644 --- a/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionManagementStatistics.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionManagementStatistics.aspx.cs @@ -29,7 +29,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl BLL.CNProfessionalService.InitCNProfessionalDownList(this.drpCNProfessional, false);//专业 drpCNProfessional.Items.Insert(0, new FineUIPro.ListItem("- 请选择专业 -", BLL.Const._Null)); } - else + else if(drpZhType.SelectedValue.Equals("2")) { BLL.UnitService.InitUnitDownList(this.drpCNProfessional, this.CurrUser.LoginProjectId, false);//施工分包商 drpCNProfessional.Items.Insert(0, new FineUIPro.ListItem("- 请选择单位名称 -", BLL.Const._Null)); @@ -73,14 +73,20 @@ namespace FineUIPro.Web.CQMS.ProcessControl //统计所给时间段的合格数量 managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, true); } - else + else if (ZyType == "2") { //统计所给时间段的全部数量 managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, false); //统计所给时间段的合格数量 managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, true); } - + else + { + //统计所给事件段的全部数量 + managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, false); + //统计所给事件段的合格数量 + managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, true); + } Statistics.CheckDate += string.Format("{0:yyyy-MM-dd}", DateTime.Now); Statistics.SunNumber = managementListSunNumber.Count(); Statistics.OneStatisticsSunNumber = managementListOneNumber.Count(); @@ -108,13 +114,20 @@ namespace FineUIPro.Web.CQMS.ProcessControl //统计所给事件段的合格数量 managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NextDate, true); } - else + else if (ZyType == "2") { //统计所给事件段的全部数量 managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NextDate, false); //统计所给事件段的合格数量 managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NextDate, true); } + else + { + //统计所给事件段的全部数量 + managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, false); + //统计所给事件段的合格数量 + managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, true); + } Statistics.CheckDate += string.Format("{0:yyyy-MM-dd}", NextDate); Statistics.SunNumber = managementListSunNumber.Count(); Statistics.OneStatisticsSunNumber = managementListOneNumber.Count(); @@ -142,7 +155,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, true); } - else + else if(ZyType=="2") { //统计所给事件段的全部数量 managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, false); @@ -150,6 +163,13 @@ namespace FineUIPro.Web.CQMS.ProcessControl managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, true); } + else + { + //统计所给事件段的全部数量 + managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, false); + //统计所给事件段的合格数量 + managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, true); + } Statistics.CheckDate += string.Format("{0:yyyy-MM-dd}", DateTime.Now); @@ -178,13 +198,20 @@ namespace FineUIPro.Web.CQMS.ProcessControl //统计所给事件段的合格数量 managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NewDate, true); } - else + else if (ZyType == "2") { //统计所给事件段的全部数量 managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NewDate, false); //统计所给事件段的合格数量 managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NewDate, true); } + else + { + //统计所给事件段的全部数量 + managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, false); + //统计所给事件段的合格数量 + managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, true); + } Statistics.CheckDate += string.Format("{0:yyyy-MM-dd}", NewDate); Statistics.SunNumber = managementListSunNumber.Count(); Statistics.OneStatisticsSunNumber = managementListOneNumber.Count(); @@ -226,7 +253,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl //统计所给事件段的合格数量 managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, true); } - else + else if(ZyType=="2") { //统计所给事件段的全部数量 managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, false); @@ -234,6 +261,13 @@ namespace FineUIPro.Web.CQMS.ProcessControl managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, DateTime.Now, true); } + else + { + //统计所给事件段的全部数量 + managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, false); + //统计所给事件段的合格数量 + managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, true); + } Statistics.CheckDate += string.Format("{0:yyyy-MM-dd}", DateTime.Now); Statistics.SunNumber = managementListSunNumber.Count(); Statistics.OneStatisticsSunNumber = managementListOneNumber.Count(); @@ -260,12 +294,19 @@ namespace FineUIPro.Web.CQMS.ProcessControl //统计所给事件段的合格数量 managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NewDate, true); } - else + else if(ZyType=="2") { //统计所给事件段的全部数量 managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NewDate, false); //统计所给事件段的合格数量 managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, NewDate, true); } + else + { + //统计所给事件段的全部数量 + managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, false); + //统计所给事件段的合格数量 + managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, true); + } Statistics.CheckDate += string.Format("{0:yyyy-MM-dd}", NewDate); Statistics.SunNumber = managementListSunNumber.Count(); Statistics.OneStatisticsSunNumber = managementListOneNumber.Count(); @@ -333,13 +374,20 @@ namespace FineUIPro.Web.CQMS.ProcessControl managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, EndDate, true); } - else + else if(ZyType=="2") { //统计所给时间段的全部数量 managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, EndDate, false); //统计所给时间段的合格数量 managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByUnitIdAndDate(this.CurrUser.LoginProjectId, cNProfessionalId, StartDate, EndDate, true); } + else + { + //统计所给事件段的全部数量 + managementListSunNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, false); + //统计所给事件段的合格数量 + managementListOneNumber = BLL.InspectionManagementService.getInspectionManagementDetailListByDate(this.CurrUser.LoginProjectId, StartDate, NewDate, true); + } Statistics.CheckDate = string.Format("{0:yyyy-MM-dd}", StartDate) + " 至 " + string.Format("{0:yyyy-MM-dd}", EndDate); Statistics.SunNumber = managementListSunNumber.Count(); Statistics.OneStatisticsSunNumber = managementListOneNumber.Count(); @@ -515,7 +563,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl BLL.CNProfessionalService.InitCNProfessionalDownList(this.drpCNProfessional, false);//专业 drpCNProfessional.Items.Insert(0, new FineUIPro.ListItem("- 请选择专业 -", BLL.Const._Null)); } - else + else if(drpZhType.SelectedValue.Equals("2")) { BLL.UnitService.InitUnitDownList(this.drpCNProfessional, this.CurrUser.LoginProjectId, false);//施工分包商 drpCNProfessional.Items.Insert(0, new FineUIPro.ListItem("- 请选择单位 -", BLL.Const._Null)); diff --git a/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionNotice.aspx b/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionNotice.aspx index 14cd79aa..ae285275 100644 --- a/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionNotice.aspx +++ b/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionNotice.aspx @@ -105,11 +105,13 @@ + - diff --git a/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionNotice.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionNotice.aspx.cs index 421e60bf..a5c44d64 100644 --- a/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionNotice.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionNotice.aspx.cs @@ -8,6 +8,7 @@ using System.Data.SqlClient; using System.IO; using System.Linq; using System.Text; +using System.Text.RegularExpressions; namespace FineUIPro.Web.CQMS.ProcessControl { @@ -185,7 +186,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl } //合格的情况下不允许修改 var model = Funs.DB.ProcessControl_InspectionManagement.FirstOrDefault(x => x.InspectionId == Grid1.SelectedRowID); - if (model.IsOnceQualified==true) + if (model.IsOnceQualified == true) { Alert.ShowInTop("该共检通知单已合格,不允许修改!", MessageBoxIcon.Warning); return; @@ -253,6 +254,10 @@ namespace FineUIPro.Web.CQMS.ProcessControl { this.btnMenuDel.Hidden = false; } + if (buttonList.Contains(BLL.Const.BtnSave)) + { + this.btnMenuCopy.Hidden = false; + } } } #endregion @@ -311,20 +316,10 @@ namespace FineUIPro.Web.CQMS.ProcessControl cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); @@ -435,17 +430,17 @@ namespace FineUIPro.Web.CQMS.ProcessControl var units = (from x in db.Base_Unit join y in db.Project_ProjectUnit on x.UnitId equals y.UnitId - where y.ProjectId==this.CurrUser.LoginProjectId && y.UnitType== BLL.Const.ProjectUnitType_4 + where y.ProjectId == this.CurrUser.LoginProjectId && y.UnitType == BLL.Const.ProjectUnitType_4 orderby x.UnitName select x).FirstOrDefault(); - if (units!=null) + if (units != null) { bookmarkUnitName.Text = units.UnitName; } } var projectModel = db.Base_Project.Where(x => x.ProjectId == this.CurrUser.LoginProjectId).FirstOrDefault(); var inspectionModel = db.ProcessControl_InspectionManagement.Where(x => x.InspectionId == Id).FirstOrDefault(); - + //项目编号 Bookmark bookmarkProjectCode = doc.Range.Bookmarks["projectCode"]; if (bookmarkProjectCode != null) @@ -575,7 +570,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl builder.StartTable(); builder.CellFormat.Borders.LineStyle = Aspose.Words.LineStyle.Single; builder.CellFormat.Borders.Color = System.Drawing.Color.Black; - + builder.Bold = false; builder.RowFormat.Height = 20; builder.Font.Size = 10; @@ -591,7 +586,8 @@ namespace FineUIPro.Web.CQMS.ProcessControl { builder.RowFormat.Height = 200 / ManagementDetaillList.Count; } - else { + else + { builder.RowFormat.Height = 20; } builder.CellFormat.Borders.Left.LineWidth = 1; @@ -602,7 +598,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl builder.CellFormat.Width = 156; builder.Write(ConvertControlPointType(item.ControlPointType)); builder.CellFormat.Borders.Left.LineWidth = 0; - // 控制点等级 + // 控制点等级 builder.InsertCell(); builder.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; builder.CellFormat.HorizontalMerge = Aspose.Words.Tables.CellMerge.First; @@ -612,11 +608,12 @@ namespace FineUIPro.Web.CQMS.ProcessControl var ControlPointType = ConvertClass(item.ControlPointType); #region 控制点等级 - if (ControlPointType.Contains("A") ) + if (ControlPointType.Contains("A")) { builder.Write("■A "); } - else { + else + { builder.Write("□A "); } if (ControlPointType.Contains("B")) @@ -838,8 +835,8 @@ namespace FineUIPro.Web.CQMS.ProcessControl builder.Write("注:如果业主有规定,执行业主的规定。 "); #endregion - - doc.Save(newUrl); + + doc.Save(newUrl); string fileName = Path.GetFileName(newUrl); FileInfo info = new FileInfo(newUrl); long fileSize = info.Length; @@ -860,7 +857,8 @@ namespace FineUIPro.Web.CQMS.ProcessControl } } - public class WorkBranchList { + public class WorkBranchList + { public string UnitWorkId { get; set; } public string Branch { get; set; } } @@ -974,9 +972,84 @@ namespace FineUIPro.Web.CQMS.ProcessControl uname = CarryUnitIds.ToString(); } return uname; - + } #endregion + #endregion + + /// + /// 复制 + /// + /// + /// + protected void btnMenuCopy_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length == 0) + { + Alert.ShowInTop("请至少选择一条记录", MessageBoxIcon.Warning); + return; + } + var inspection = BLL.InspectionManagementService.GetInspectionManagementById(this.Grid1.SelectedRowID); + if (inspection != null) + { + Model.ProcessControl_InspectionManagement newInspection = new Model.ProcessControl_InspectionManagement(); + newInspection.InspectionId = SQLHelper.GetNewID(typeof(Model.ProcessControl_InspectionManagement)); + newInspection.ProjectId = this.CurrUser.LoginProjectId; + newInspection.UnitId = inspection.UnitId; + newInspection.CNProfessionalId = inspection.CNProfessionalId; + newInspection.InspectionCode = inspection.InspectionCode; + newInspection.UnitWorkId = inspection.UnitWorkId; + newInspection.Branch = inspection.Branch; + newInspection.ControlPointType = inspection.ControlPointType; + newInspection.AcceptanceSite = inspection.AcceptanceSite; + newInspection.IsOnceQualified = inspection.IsOnceQualified; + newInspection.InspectionDate = inspection.InspectionDate; + newInspection.AttachUrl = inspection.AttachUrl; + newInspection.CheckDate = inspection.CheckDate; + newInspection.CheckMan = inspection.CheckMan; + newInspection.UnqualifiedReason = inspection.UnqualifiedReason; + + //通知单编号后有字母递增,无则加“a” + string fisrtE = inspection.NoticeCode.Substring(0,inspection.NoticeCode.Length - 1); + string lastE = inspection.NoticeCode.Substring(inspection.NoticeCode.Length - 1, 1); + bool b = Regex.IsMatch(lastE, "[a-zA-Z]"); + if (b) + { + int x = (int)Convert.ToByte(Convert.ToChar(lastE)); + newInspection.NoticeCode = fisrtE + Convert.ToChar(x + 1); + } + else + { + newInspection.NoticeCode = inspection.NoticeCode + "a"; + } + + newInspection.AcceptanceCheckMan = inspection.AcceptanceCheckMan; + newInspection.ParentDivisionProjectId = inspection.ParentDivisionProjectId; + newInspection.CompileMan = this.CurrUser.UserId; + newInspection.CompileDate = DateTime.Now; + newInspection.FileType = inspection.FileType; + newInspection.AttachUrl2 = inspection.AttachUrl2; + BLL.InspectionManagementService.AddInspectionManagement(newInspection); + + var details = InspectionManagementDetailService.GetInspectionDetails(inspection.InspectionId); + if (details.Count > 0) + { + foreach (var item in details) + { + Model.ProcessControl_InspectionManagementDetail newDetail = new Model.ProcessControl_InspectionManagementDetail(); + newDetail.InspectionDetailId = SQLHelper.GetNewID(typeof(Model.ProcessControl_InspectionManagementDetail)); + newDetail.InspectionId = newInspection.InspectionId; + newDetail.UnitWorkId = item.UnitWorkId; + newDetail.Branch = item.Branch; + newDetail.ControlPointType = item.ControlPointType; + newDetail.CreateDate = DateTime.Now; + BLL.InspectionManagementDetailService.AddInspectionDetail(newDetail); + } + } + ShowNotify("复制成功!"); + BindGrid(); + } + } } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionNotice.aspx.designer.cs b/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionNotice.aspx.designer.cs index 9f1a0b58..6aa89952 100644 --- a/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionNotice.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionNotice.aspx.designer.cs @@ -7,13 +7,11 @@ // //------------------------------------------------------------------------------ -namespace FineUIPro.Web.CQMS.ProcessControl -{ - - - public partial class InspectionNotice - { - +namespace FineUIPro.Web.CQMS.ProcessControl { + + + public partial class InspectionNotice { + /// /// form1 控件。 /// @@ -22,7 +20,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.HtmlControls.HtmlForm form1; - + /// /// PageManager1 控件。 /// @@ -31,7 +29,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.PageManager PageManager1; - + /// /// Panel1 控件。 /// @@ -40,7 +38,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Panel Panel1; - + /// /// Grid1 控件。 /// @@ -49,7 +47,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Grid Grid1; - + /// /// ToolSearch 控件。 /// @@ -58,7 +56,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Toolbar ToolSearch; - + /// /// drpUnitWork 控件。 /// @@ -67,7 +65,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpUnitWork; - + /// /// drpCNProfessional 控件。 /// @@ -76,7 +74,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList drpCNProfessional; - + /// /// txtStarTime 控件。 /// @@ -85,7 +83,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DatePicker txtStarTime; - + /// /// Label1 控件。 /// @@ -94,7 +92,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Label Label1; - + /// /// txtEndTime 控件。 /// @@ -103,7 +101,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DatePicker txtEndTime; - + /// /// btnSearch 控件。 /// @@ -112,7 +110,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnSearch; - + /// /// btnNew 控件。 /// @@ -121,7 +119,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnNew; - + /// /// btnOut 控件。 /// @@ -130,7 +128,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Button btnOut; - + /// /// lblPageIndex 控件。 /// @@ -139,7 +137,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.Label lblPageIndex; - + /// /// Label3 控件。 /// @@ -148,7 +146,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.Label Label3; - + /// /// lbtnFileUrl 控件。 /// @@ -157,7 +155,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::System.Web.UI.WebControls.LinkButton lbtnFileUrl; - + /// /// ToolbarText1 控件。 /// @@ -166,7 +164,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.ToolbarText ToolbarText1; - + /// /// ddlPageSize 控件。 /// @@ -175,7 +173,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.DropDownList ddlPageSize; - + /// /// Window1 控件。 /// @@ -184,7 +182,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Window Window1; - + /// /// Menu1 控件。 /// @@ -193,7 +191,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.Menu Menu1; - + /// /// btnMenuModify 控件。 /// @@ -202,16 +200,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.MenuButton btnMenuModify; - - /// - /// btnPrinter 控件。 - /// - /// - /// 自动生成的字段。 - /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 - /// - protected global::FineUIPro.MenuButton btnPrinter; - + /// /// btnMenuDel 控件。 /// @@ -220,5 +209,23 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 /// protected global::FineUIPro.MenuButton btnMenuDel; + + /// + /// btnPrinter 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnPrinter; + + /// + /// btnMenuCopy 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuCopy; } } diff --git a/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionNoticeEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionNoticeEdit.aspx.cs index 7f16cf78..dbaec460 100644 --- a/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionNoticeEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionNoticeEdit.aspx.cs @@ -22,6 +22,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl BLL.UnitService.InitUnitByProjectIdUnitTypeDropDownList(drpUnit, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, true);//施工分包商 BLL.CNProfessionalService.InitCNProfessionalDownList(this.drpCNProfessionalId, true);//专业 UserService.InitUserProjectIdUnitTypeDropDownList(this.drpAcceptanceCheckMan, this.CurrUser.LoginProjectId, string.Empty, false); + //UserService.InitUserNameProjectIdUnitTypeDropDownList(this.drpAcceptanceCheckMan, this.CurrUser.LoginProjectId, string.Empty, false); this.hdInspectionNoticeId.Text = Request.Params["inspectionId"]; if (!string.IsNullOrEmpty(Request.Params["View"])) { diff --git a/SGGL/FineUIPro.Web/CQMS/ProcessControl/NondestructiveTest_New.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ProcessControl/NondestructiveTest_New.aspx.cs index 15f2fd7a..9bf5f2ac 100644 --- a/SGGL/FineUIPro.Web/CQMS/ProcessControl/NondestructiveTest_New.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ProcessControl/NondestructiveTest_New.aspx.cs @@ -272,20 +272,10 @@ namespace FineUIPro.Web.CQMS.ProcessControl cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/CQMS/ProcessControl/TestPackageManagement.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ProcessControl/TestPackageManagement.aspx.cs index ba811d35..08fa8539 100644 --- a/SGGL/FineUIPro.Web/CQMS/ProcessControl/TestPackageManagement.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ProcessControl/TestPackageManagement.aspx.cs @@ -259,20 +259,10 @@ namespace FineUIPro.Web.CQMS.ProcessControl cellStyle.BorderLeft = NPOI.SS.UserModel.BorderStyle.Thin; cellStyle.Alignment = NPOI.SS.UserModel.HorizontalAlignment.Center; cellStyle.VerticalAlignment = NPOI.SS.UserModel.VerticalAlignment.Center; + cellStyle.WrapText = true;//自动换行 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); diff --git a/SGGL/FineUIPro.Web/File/Excel/CQMS/NCR统计模板.xls b/SGGL/FineUIPro.Web/File/Excel/CQMS/NCR统计模板.xls index 2b2ee259039d6c6b6017759fa3afc16d0189a8b0..ee483fc8cd98212625653d739d1218b8cba09a32 100644 GIT binary patch delta 235 zcmZoz!q~8caYGIZn}g~v@6ZL4i&)wi=WqVWqGe*V-;x0c*cgKuG8j^Uu!O;op_M^| zq1_f;+z2c#Y(F{F(nWtKD?bCnhmEXYMIRJE6b}OfGmv5eVn!%t1JYoy`G92(tAaBF z_Xi0ezmd_Afq`Q`qX2^d!vRJIAp1Wf2LlJgWC#0r#)QcW?2VaTTThdp6$=1xSvEod delta 237 zcmZoz!q~8caYGIZ+ksDsA=~FoE@Ek8?B4v7Ma#r!wIu@(urUTRWH6)xVF`mFLo0&_ zL$NKoxDiDavp}sjm|QYui6VSUALaR*7?)s+YTm-j4YD{oV+$o*&42z1O2r*%y$(F0I!KS761SM diff --git a/SGGL/FineUIPro.Web/File/Excel/CQMS/共检通知单模板.xls b/SGGL/FineUIPro.Web/File/Excel/CQMS/共检通知单模板.xls index 09e863ef1efb9cbd1c2c8287eb82dc9f91d1f9d2..8af57e880c8ae4a1c7341f4449efc47e925c4381 100644 GIT binary patch delta 210 zcmZoDXeii_!@`!Za(77Rg2_cJZHzxQ|71y$GPF=&00K6~V1^8aR3I#2Fl1f)P$H^lqUbv{507|T~knpAE<|gp%y6341})~C%38JVpN)(sNoGH*J{jW aRNCyRxt?W{ULY&$^<1FyH-{OoVgUfrGc%O{ delta 201 zcmZoDXeii_!@?F|%DMdbyvao@ZHyl_|71y$GBi+N00K6~V1^8aR3I#2Fl18f(@RF7B!em`F zV@8|JiE1*8f_D5sWh@M}3_J|XK)A|ya-aGwMuo|l8s0#1tHx|bh0TGQ>sclnuyAbB S3uI;e)UfRMyv diff --git a/SGGL/FineUIPro.Web/File/Excel/CQMS/控制点检查检测合格率统计模板.xls b/SGGL/FineUIPro.Web/File/Excel/CQMS/控制点检查检测合格率统计模板.xls index 076a94adfafdcbdb04a6e8995c91c054d4e4a19f..8939a178bc6ac1cc3f984d8395f984d97dc3975d 100644 GIT binary patch delta 192 zcmZoz!q~8caYGIZ+l1ITNudiS7qPT47H|H^qGe)u*^&VW*cgKuG8j^Uu!O;op_M^| zA=(yQ+z2fGd~%4TtNKA!eg=jQJ6XYMK4^d_0R{#ZAjJg4j8M!qS&>C}^J&X3tc)3x z57-+s?YEv>>HKN(bB8aCoRjZ3dIL!fr`bUAh?C#sH7>l2%$pUQZ?J6g2w-Jnh*btU Kb#s{SDi#3JEHUH& delta 210 zcmZoz!q~8caYGIZTR;e(#GHAPi&)wivp4@_(K0bSZOH%xY>dGS84RgFSi)e)(8?gf z5NwMsZUh#;KRLwGRedKbKLf*ujjUib9~3|o4+8@;kYWO2Mkwaoe8TcSD_a843Lb{Z z4_#y?zqA)(+HO6$(fQNl_YPkeIVL}G^ahd!PP2jJ87DtJcBp1{1|W-Zvxf5xmdOSz W9Gg4>SlJpjtP-CyZ*!RMDi#15g);yE diff --git a/SGGL/FineUIPro.Web/File/Excel/CQMS/控制点检查检测模板.xls b/SGGL/FineUIPro.Web/File/Excel/CQMS/控制点检查检测模板.xls index 394f8d82c74663d6ebe387785797d6e9e2d2652c..e49cb770a7778bbc0442d87c04cf24d86c30d5e4 100644 GIT binary patch delta 202 zcmZoDXeii_!@_pK#xW;!!Q>*AHpalsKUvbG7!4;U$csx_sxSZn8)Gm-2168D%%GSLb46dHb&3QKUvbG7&Rv+$csxFsxSZn8)Gm-216v~azr{u_wr}42R(6SA0E7q&D zJ@jpv?^C_0fAVI2^HyxBOY3RcHo84Z_mI<0cgLpgxFhq&oh;6_&F2L4!8RzyUaF+xbkMN9XqcINox18Y6J$N99v6?>^kyKQJgy&0uHYGF+r~ z6Ar^&y81`Q{*L#nxSz*sxzfIuI^BEynXX9n{c@n^Lkj_oI@|1>*vH-AbMBkYUg5i; z0rn+GW`PtR~vYjJ|Q=8hdw0F!Ut+j2^(5fBMg7#IsVK$ctm$dAL==dCv^{>>Utpy0Nc9; zzy?&sa1dbKjbH$B_(A6+7qcXfEu9zignVV1YsIx9(0)l8s2jXscGX&~t)7yqg_Ar?{rEALmJ~-pQTVlGQ8ssALzccJ3w1!6l0kjxCGJ$~#q&5qx0{;U8<} zV*Kj_EU`eQ>ASw0tWqjY_ldhc-OJ;;eV9$dyUp6yaMON&bnLqqPsYd`T!(9--Gfnh zEVg@Y;{W)VjJGCn)hi$SqKe($T2Upm<;F%FoQyDv=%mxNaQO7DO77#ZKTckUSNt7P z2;eUq5JUz7$rFVMk3xXAr}*VE#C|+SMRJPJDiEiMzfwf20PA|0ltxpUn$j4Y!D#BZ zIQiM&oOsU%ZwU*32U&{Ih3dzdK}DNTzHRp{Oou~fi^?H@azhh&_FAmXUc%;V#OnQ? LxMAU&^Ec=}{!PCe diff --git a/SGGL/FineUIPro.Web/File/Excel/CQMS/问题统计模板.xls b/SGGL/FineUIPro.Web/File/Excel/CQMS/问题统计模板.xls index bc5207106c3bf7f716ce86eea6be42652ed3d315..7f7d2ca0113fd4d00761e0d000534dcbf0e2f1a9 100644 GIT binary patch delta 212 zcmZoDXeii_!@~BVr?)9|!Q>*AHpb4)KUtEb3^f%PfPjrLm?4896$nch3>jJ(L>LNH z(8Z0w;(sUi$h)c^WaVdI_^^`|tmcCTh!S96U;$E0K+FimT$2@9gf}xQ2(hs(kY`}v zVVL}0TV}Gknh?`frOEwTpC;R?R|s8|=Lc$HVWhyvao@ZH$eZf3hS=87e9;00A3gFhd4IDiD@17&5dnh%jWT zpo<%U#lKGOk#|+!$;!{b@L?k>Sj`6o5XHm5zzn3AfS3`AIX5ZDvN6t>ET?A7bXIBd zbgfU5UDYdu8bbJi%2*g`fqFQA@POs!^XgiRj2x4HX?O!kH_h3M9Gf3$%CSr~VBy%L S7s$$L^h^2lyvjPvKH*pMoC`Qw&F9b z5f`)ozR@PtAvo=roG=sq^R@UzkKorG9-)J}rL%fBc98u6G1seA-4O2Pek_Zh^xZ5c z)`f!5+9sbr%h+k2Oi&evHPFk@rd+!1}TxeAh)t z5Wq<&(PY)xir3^$^Iq(gs-8Ij;026jf><&drO&;1BC~<>eNoM5JxD<^oTGgQjpa}R z-}ZIsMthxYcT(!LV6V+CaKTzQfqMUq*(4nX@Ek%U85qz znQeKu)J*-!Kd#-pn@ya=(cvwfajCGtZy_!vg)Ubt7MkMzG4~(Cn{o)tBY{#*#t*}{ j)uMZxekq(8Nt6mxDo=fh;aE0fz9{rCa*RJdQf7YvWcJNg delta 797 zcmZ{iO=uHQ5Xa|jb~m4!RW~ga6)TA*6%-62NMaLX+N8TlX=_q@P{e~EA_bwBVl_d? zO;L6bp@LKoB8bws;@6?HQV={T4IA4rgD=bQbDo%?P;babfi&xld zoR%&zzx7Mnsfe2ZM9gdb_*^?AZUIQ*NN5}W)WWzwG$|M1y75M{?uV`hQIAB?2>a|h z)2@%h349Tbq8jnpHQlZkBMH)VS+(7_w#H{t^bs@1y4{mPkLT-L(b_TQ6%Lbv|0T%Y<@Ohwt(q1(T-xZ9t}|b3matMf rW0qgapnU$=n8k&1#+*o-<5My{2)M@Z-mq>hk0+Uxo>*i!Kb-yxLp-{a diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/人员报验导入模板.xls b/SGGL/FineUIPro.Web/File/Excel/DataIn/人员报验导入模板.xls index ebd30f0592e7e19847c8286ebc8d16618f3e2078..6bea5e18658cd6cd417b39e9b63aeee35ba6d9cf 100644 GIT binary patch delta 292 zcmZoDX(-u{!@{<}*hn{Y!Q>*AHb%3}KUqroCeIU=n4BkUuz8!XERSKBA_EYxF$Oba zFr)%u34BGMlNGvI8D%ERs|5*)Gcbk*`}#kP<*wol`B2HlFu6hP0HeWVM|ESSCY8xnI-e$I zXh<-1>r8Ia&|?x;oV-cn1EbsI#hT8Hu9Kf@nlrjjme-QzcV*xP+VGcw3uqHJgX?5Z ztzbsc$#b>5f#gfA*^Hu_TeS;WHW^4Tv9!sl8f}&_GGLmlVPr5n4Bjpv3Z-YERUg&A_EYxF$Oba zFr)%u34lGU+5tw5$=>S5j1`;f)wvmqL1 zXy`HN8BgA$@qy8G@>)%2MwiJSHO(2_CTnU*^Sd)}1I_-+zy-8}o56i@uvRdm$mHc( z-azuR)@(+R&HdViERzjbxHcI`FtIdlJ)XW<#>jwavWbb*<}?!_MmC0X;lSY7TxZ(E F0sx}5NRa>l diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/图纸收发记录导入模板.xls b/SGGL/FineUIPro.Web/File/Excel/DataIn/图纸收发记录导入模板.xls index ed68a7f4c88b71a1bdd98eb82920bad7fa3f8a12..7bb81f379dc36ecf184cf936810294bc4b858d25 100644 GIT binary patch delta 218 zcmZoDX(-u{!@`!J&9@|E!Q>*AHpZo!f3n$i%U*sQE*j1$;!{b@ZlgUSj`6m5GBIE0OB$MF(VX$te5{U4q33d&a{aI0N*(b&LEG@YJ diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/培训记录导入模板.xls b/SGGL/FineUIPro.Web/File/Excel/DataIn/培训记录导入模板.xls index 969e47a4da30f3d32b7228267b5d1865d736987b..f861c908f03d6105cb6a0a9e78b6d15f8d85ad88 100644 GIT binary patch delta 199 zcmZoDXeii_!@?$DXCxE4U~&;l8{_iLKUr2u8MZ4h00A3gFhd4IDiD@17&5dnh%of4 zpo<%U#ib`-k#|);$;!{b@ZlgUSj`6m5GBIE0OB$MF(VXarfAM)6r7~x$HxfP3exufKMTv|7_BADlMPrnHtEH(vPv}p LUA#HTcpeJ?D9SB_ diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/机具报验导入模板.xls b/SGGL/FineUIPro.Web/File/Excel/DataIn/机具报验导入模板.xls index 57d5dc569d1ffd158db37e28753d110a50fecd5e..3ba4c985f1ffbbf6c2408c98b0c55d193d2cb65b 100644 GIT binary patch delta 214 zcmZpez}PT>aYGIZn?avzL&$>3MJ#QM0h@oaT+?6-n0!H3T++gX0SMR_gBdayQh~69 z!HA)iL4@JRBt2L4o2>i{3?DACf|Y!508ugw4D3LP35Xe?SZ4A>7VXXLdTZI(bo3Y) zco-(nvzD10W-7!q$7r&h)u+iZW)earI{ZLQEDW_kc_tuqRhisorpM$eGkKd?6&o)D vFT+Ky&1&XVjEvHg7g~4&$+s4>8KpOOT86W1va4WaYv{EBdSG*%a}x^yl5I4? delta 211 zcmZpez}PT>aYGIZn}YE99bB^}7qPT48f^Z_a!rHLVe$oCaY+di1|VQ#3}(n+NCm*AHpalsKUuh>4Gk3;fPjrLm?4896$nch3>jJ(L>Mep z(Z!9x;zuW&D7dO$WaVdI_;8XHtmcCSh>`%B0;HILm=TJ_Cr@Ni-n?5OiH$L0vYfgx z(_H1r;o6@jyJ|=>>P(K;uw!D-*gRiDijh%l@-9tpAjziHEEx^d{Tqk{KL81aSOzr) rQ3fFf4hFHwi?q}k87F_xHQxMJ>o?0LgNdxHzDJot7i^wpn#BSD&j2%; delta 238 zcmZoDX(-u{!@_nTE5CEutjR?zZH%6qf3k2%8)_;t00A3gFhd4IDiD@17&5dnh%gwc zqKg}W#rIA&QE*j1$;!{b@ZlgUSj`6m5GBIE0OB$MF(VX=gUUBiw^%VhI%4Jk%O(aDE2y@4d3Ro-5PF|&@J~>;*WHYPwZ}|_P2`Je%!1Q-}tfD{uDGeWVzWJMO?&Btw*vN5Ji z&UG?z0*BHwStwXWryf!OGU~cOlSCo9hCb FSO9K7EwKOq delta 185 zcmZoz!`QHfaYGIZTfv$6`R=nO7qPT4{czp}4ah%NO`DyYTR|}>WoSUz?&SGTbnOx}Z4J7xv&t~M=9O5H0sxlwFx3D6 diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/资料收发文登记记录导入模板.xls b/SGGL/FineUIPro.Web/File/Excel/DataIn/资料收发文登记记录导入模板.xls index b8ab3ffe66463956887d54cdfb03ca180b76522f..da32b34d143fb6a1852a878b3dd52cd64f4ab125 100644 GIT binary patch delta 194 zcmZpuXsFnb!@?$DINKt0!Q>*AHpU&Bf3h5sGF+g@00eA|!3-G;sX$o5V93zQAi}Uf z9bMcAEUq*8jl8S+NmhOah7Si>!D>DjfG80L1`wACh#8?+Zn7ea^yX{@MRrDx$-U~v zjITByRF`ICiZ$JQPeY5DQFbz?jyI4D)tL<>KkE2Rt~KCg6yEHsyP9Q_Q4A{^gIN~P Lxto*B=dl0)5{oUN delta 207 zcmZpuXsFnb!@{=UZxPSWnUjlH+88%%{>gGk%5a7v0}!w=1~X(Zqyk|HgCRpJg9yV6 zb#!qfu(-0ipyL7+8Q56A&{(vCL#e7U9js3X1HE43np- z8#6xId{SMSkxATT^D_-CW=84Bf;!$nGFE3cko>9R$HxrR3DVCDgbWOuLv>fPOg3QQ U*klyL%GO{b3v~PDB=dPJ01me=ApigX diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/超过一定规模的危大施工方案导入模板.xls b/SGGL/FineUIPro.Web/File/Excel/DataIn/超过一定规模的危大施工方案导入模板.xls index 8ca36be61f1225507d3df8b971700b195d193f89..1731459bac68f7a21a66d1501a62dad42e0bdb4d 100644 GIT binary patch delta 418 zcmZoz!Pu~ZaYGIZ+k!=&pF$Q)E@Ek8ygT_POFiSH&6TXbd3mH57%T(@9TXf`7#JpJ z2*!lNUPeVsx7vl|e*o5T?5tS!-aOqDv5jM2G02hxB5H>JU8$ zGQvX_Pf^V&gEaaDo;nwFsSb;mh$tE(c82#JAIzJ1Fr^wP)yU-rm70fbxn997x=U{H zlNQMy%Zpzs9(Wg|6!bk^U9e}bPbEpLh62nJ{^$)XPXb>O$-+9U@x2YBPzE2IV@T^E zBRHWML-(Q^z`7CtPFj&p@c>X>1Rmr+Bn(q8YiRo-31T|7>h=R!%FbtAR+NIeXyx%P z#-uR~pbM~J^dnAp3yvv#Gun6(j|jOaKE&(9z@0>*s6*$mZ*cM3MbJUAC2=`yIk;q7 zGMCeqlgnkx1qo1WDUjr206g;UA6|Vh4DZkeHwe}%0LFBch-m6*o-6t(&*O%P11Xg# r?8w-pXw3{>&-(fNLbc^Dr&w? - + From def6fc4422ab20ad21c097868fe77617bbb2fd44 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Thu, 9 May 2024 08:45:07 +0800 Subject: [PATCH 2/8] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user | 2 +- SGGL/WebAPI/WebAPI.csproj.user | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user index 9e91deff..63ca13cc 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user @@ -1,7 +1,7 @@  - Debug|Any CPU + Release|Any CPU true false diff --git a/SGGL/WebAPI/WebAPI.csproj.user b/SGGL/WebAPI/WebAPI.csproj.user index 5fe155da..bd497c6b 100644 --- a/SGGL/WebAPI/WebAPI.csproj.user +++ b/SGGL/WebAPI/WebAPI.csproj.user @@ -1,7 +1,7 @@  - Debug|Any CPU + Release|Any CPU true From c4e495aacb279c5cf56a4c1f9f36dc204ba937d4 Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Thu, 9 May 2024 15:18:08 +0800 Subject: [PATCH 3/8] =?UTF-8?q?20240509=20=E7=BB=BC=E5=90=88=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E6=A0=87=E5=BF=97=E5=8F=B7=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CQMS/Comprehensive/ConTechnologyDisclosureEdit.aspx.cs | 2 +- .../CQMS/Comprehensive/DataReceivingDocEdit.aspx.cs | 2 +- .../CQMS/Comprehensive/DesignChangeOrderEdit.aspx.cs | 4 ++-- .../CQMS/Comprehensive/DesignDetailsEdit.aspx.cs | 4 ++-- .../CQMS/Comprehensive/DesignDrawingsEdit.aspx.cs | 4 ++-- .../CQMS/Comprehensive/GeneralPlanApprovalEdit.aspx.cs | 2 +- .../CQMS/Comprehensive/InspectionEquipmentEdit.aspx.cs | 2 +- .../CQMS/Comprehensive/InspectionMachineEdit.aspx.cs | 4 ++-- .../CQMS/Comprehensive/InspectionPersonEdit.aspx.cs | 4 ++-- .../CQMS/Comprehensive/InspectionTestPlanEdit.aspx.cs | 2 +- .../CQMS/Comprehensive/MajorPlanApprovalEdit.aspx.cs | 2 +- .../CQMS/Comprehensive/NCRManagementEdit.aspx.cs | 4 ++-- .../FineUIPro.Web/CQMS/Comprehensive/PressurePipeEdit.aspx.cs | 4 ++-- .../CQMS/Comprehensive/QualityAccidentEdit.aspx.cs | 4 ++-- .../CQMS/Comprehensive/ReviewDrawingsEdit.aspx.cs | 4 ++-- .../CQMS/Comprehensive/SiteVisaManagementEdit.aspx.cs | 4 ++-- .../CQMS/Comprehensive/SpecialEquipmentEdit.aspx.cs | 4 ++-- .../CQMS/Comprehensive/TrainingRecordsEdit.aspx.cs | 2 +- SGGL/FineUIPro.Web/Web.config | 2 +- 19 files changed, 30 insertions(+), 30 deletions(-) diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosureEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosureEdit.aspx.cs index de6eb01f..30e346f3 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosureEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/ConTechnologyDisclosureEdit.aspx.cs @@ -93,7 +93,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive return; } - var q = Funs.DB.Comprehensive_ConTechnologyDisclosure.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.ConTechnologyDisclosureId != this.ConTechnologyDisclosureId || (this.ConTechnologyDisclosureId == null && x.ConTechnologyDisclosureId != null))); + var q = Funs.DB.Comprehensive_ConTechnologyDisclosure.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.ConTechnologyDisclosureId != this.ConTechnologyDisclosureId || (this.ConTechnologyDisclosureId == null && x.ConTechnologyDisclosureId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDocEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDocEdit.aspx.cs index d7b57600..d7159bba 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDocEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDocEdit.aspx.cs @@ -212,7 +212,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_DataReceivingDoc.FirstOrDefault(x => x.RemarkCode ==Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.DataReceivingDocId != this.DataReceivingDocId || (this.DataReceivingDocId == null && x.DataReceivingDocId != null))); + var q = Funs.DB.Comprehensive_DataReceivingDoc.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode ==Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.DataReceivingDocId != this.DataReceivingDocId || (this.DataReceivingDocId == null && x.DataReceivingDocId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignChangeOrderEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignChangeOrderEdit.aspx.cs index 8782ad1e..971fdfe0 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignChangeOrderEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignChangeOrderEdit.aspx.cs @@ -181,7 +181,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_DesignChangeOrder.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.DesignChangeOrderId != this.DesignChangeOrderId || (this.DesignChangeOrderId == null && x.DesignChangeOrderId != null))); + var q = Funs.DB.Comprehensive_DesignChangeOrder.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.DesignChangeOrderId != this.DesignChangeOrderId || (this.DesignChangeOrderId == null && x.DesignChangeOrderId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); @@ -269,7 +269,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_DesignChangeOrder.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.DesignChangeOrderId != this.DesignChangeOrderId || (this.DesignChangeOrderId == null && x.DesignChangeOrderId != null))); + var q = Funs.DB.Comprehensive_DesignChangeOrder.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.DesignChangeOrderId != this.DesignChangeOrderId || (this.DesignChangeOrderId == null && x.DesignChangeOrderId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignDetailsEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignDetailsEdit.aspx.cs index 32679055..b508159b 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignDetailsEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignDetailsEdit.aspx.cs @@ -176,7 +176,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_DesignDetails.FirstOrDefault(x => x.RemarCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.DesignDetailsId != this.DesignDetailsId || (this.DesignDetailsId == null && x.DesignDetailsId != null))); + var q = Funs.DB.Comprehensive_DesignDetails.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.DesignDetailsId != this.DesignDetailsId || (this.DesignDetailsId == null && x.DesignDetailsId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); @@ -263,7 +263,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_DesignDetails.FirstOrDefault(x => x.RemarCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.DesignDetailsId != this.DesignDetailsId || (this.DesignDetailsId == null && x.DesignDetailsId != null))); + var q = Funs.DB.Comprehensive_DesignDetails.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.DesignDetailsId != this.DesignDetailsId || (this.DesignDetailsId == null && x.DesignDetailsId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignDrawingsEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignDrawingsEdit.aspx.cs index 5d203926..7167b13b 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignDrawingsEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DesignDrawingsEdit.aspx.cs @@ -171,7 +171,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_DesignDrawings.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.DesignDrawingsId != this.DesignDrawingsId || (this.DesignDrawingsId == null && x.DesignDrawingsId != null))); + var q = Funs.DB.Comprehensive_DesignDrawings.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.DesignDrawingsId != this.DesignDrawingsId || (this.DesignDrawingsId == null && x.DesignDrawingsId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); @@ -257,7 +257,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_DesignDrawings.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.DesignDrawingsId != this.DesignDrawingsId || (this.DesignDrawingsId == null && x.DesignDrawingsId != null))); + var q = Funs.DB.Comprehensive_DesignDrawings.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.DesignDrawingsId != this.DesignDrawingsId || (this.DesignDrawingsId == null && x.DesignDrawingsId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/GeneralPlanApprovalEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/GeneralPlanApprovalEdit.aspx.cs index b39dbdef..12819210 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/GeneralPlanApprovalEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/GeneralPlanApprovalEdit.aspx.cs @@ -91,7 +91,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_GeneralPlanApproval.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.GeneralPlanApprovalId != this.GeneralPlanApprovalId || (this.GeneralPlanApprovalId == null && x.GeneralPlanApprovalId != null))); + var q = Funs.DB.Comprehensive_GeneralPlanApproval.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.GeneralPlanApprovalId != this.GeneralPlanApprovalId || (this.GeneralPlanApprovalId == null && x.GeneralPlanApprovalId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipmentEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipmentEdit.aspx.cs index 4da28c17..0ab3bba4 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipmentEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionEquipmentEdit.aspx.cs @@ -243,7 +243,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择报验单位!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_InspectionEquipment.FirstOrDefault(x => x.RemarkCode ==Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.InspectionEquipmentId != this.InspectionEquipmentId || (this.InspectionEquipmentId == null && x.InspectionEquipmentId != null))); + var q = Funs.DB.Comprehensive_InspectionEquipment.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.InspectionEquipmentId != this.InspectionEquipmentId || (this.InspectionEquipmentId == null && x.InspectionEquipmentId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachineEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachineEdit.aspx.cs index b747c313..775f42c2 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachineEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionMachineEdit.aspx.cs @@ -193,7 +193,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择报验单位!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_InspectionMachine.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.InspectionMachineId != this.InspectionMachineId || (this.InspectionMachineId == null && x.InspectionMachineId != null))); + var q = Funs.DB.Comprehensive_InspectionMachine.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.InspectionMachineId != this.InspectionMachineId || (this.InspectionMachineId == null && x.InspectionMachineId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); @@ -268,7 +268,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择报验单位!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_InspectionMachine.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.InspectionMachineId != this.InspectionMachineId || (this.InspectionMachineId == null && x.InspectionMachineId != null))); + var q = Funs.DB.Comprehensive_InspectionMachine.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.InspectionMachineId != this.InspectionMachineId || (this.InspectionMachineId == null && x.InspectionMachineId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPersonEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPersonEdit.aspx.cs index 68154aa6..45a6ea71 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPersonEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionPersonEdit.aspx.cs @@ -225,7 +225,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive return; } } - var q = Funs.DB.Comprehensive_InspectionPerson.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.InspectionPersonId != this.InspectionPersonId || (this.InspectionPersonId == null && x.InspectionPersonId != null))); + var q = Funs.DB.Comprehensive_InspectionPerson.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.InspectionPersonId != this.InspectionPersonId || (this.InspectionPersonId == null && x.InspectionPersonId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); @@ -410,7 +410,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive return; } } - var q = Funs.DB.Comprehensive_InspectionPerson.FirstOrDefault(x => x.RemarkCode ==Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.InspectionPersonId != this.InspectionPersonId || (this.InspectionPersonId == null && x.InspectionPersonId != null))); + var q = Funs.DB.Comprehensive_InspectionPerson.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode ==Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.InspectionPersonId != this.InspectionPersonId || (this.InspectionPersonId == null && x.InspectionPersonId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionTestPlanEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionTestPlanEdit.aspx.cs index 5acb22a7..19c4dc18 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionTestPlanEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/InspectionTestPlanEdit.aspx.cs @@ -105,7 +105,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Inspection_Test_Plan.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.Id != this.Id || (this.Id == null && x.Id != null))); + var q = Funs.DB.Inspection_Test_Plan.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.Id != this.Id || (this.Id == null && x.Id != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/MajorPlanApprovalEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/MajorPlanApprovalEdit.aspx.cs index cd64a4e1..2f927704 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/MajorPlanApprovalEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/MajorPlanApprovalEdit.aspx.cs @@ -90,7 +90,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_MajorPlanApproval.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.MajorPlanApprovalId != this.MajorPlanApprovalId || (this.MajorPlanApprovalId == null && x.MajorPlanApprovalId != null))); + var q = Funs.DB.Comprehensive_MajorPlanApproval.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.MajorPlanApprovalId != this.MajorPlanApprovalId || (this.MajorPlanApprovalId == null && x.MajorPlanApprovalId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/NCRManagementEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/NCRManagementEdit.aspx.cs index b6763aba..d17a66e0 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/NCRManagementEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/NCRManagementEdit.aspx.cs @@ -201,7 +201,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive return; } - var q = Funs.DB.Comprehensive_NCRManagement.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.NCRManagementId != this.NCRManagementId || (this.NCRManagementId == null && x.NCRManagementId != null))); + var q = Funs.DB.Comprehensive_NCRManagement.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.NCRManagementId != this.NCRManagementId || (this.NCRManagementId == null && x.NCRManagementId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); @@ -327,7 +327,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_NCRManagement.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.NCRManagementId != this.NCRManagementId || (this.NCRManagementId == null && x.NCRManagementId != null))); + var q = Funs.DB.Comprehensive_NCRManagement.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.NCRManagementId != this.NCRManagementId || (this.NCRManagementId == null && x.NCRManagementId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/PressurePipeEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/PressurePipeEdit.aspx.cs index 65d06056..6d75c0fe 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/PressurePipeEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/PressurePipeEdit.aspx.cs @@ -164,7 +164,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择所属单位!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_PressurePipe.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.PressurePipeId != this.PressurePipeId || (this.PressurePipeId == null && x.PressurePipeId != null))); + var q = Funs.DB.Comprehensive_PressurePipe.FirstOrDefault(x => x.Projctid == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.PressurePipeId != this.PressurePipeId || (this.PressurePipeId == null && x.PressurePipeId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); @@ -250,7 +250,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择所属单位!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_PressurePipe.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.PressurePipeId != this.PressurePipeId || (this.PressurePipeId == null && x.PressurePipeId != null))); + var q = Funs.DB.Comprehensive_PressurePipe.FirstOrDefault(x => x.Projctid == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.PressurePipeId != this.PressurePipeId || (this.PressurePipeId == null && x.PressurePipeId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/QualityAccidentEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/QualityAccidentEdit.aspx.cs index 7c08b396..350d6554 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/QualityAccidentEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/QualityAccidentEdit.aspx.cs @@ -152,7 +152,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive { if (drpUnit.SelectedValue != BLL.Const._Null) { - var q = Funs.DB.Comprehensive_QualityAccident.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.QualityAccidentId != this.QualityAccidentId || (this.QualityAccidentId == null && x.QualityAccidentId != null))); + var q = Funs.DB.Comprehensive_QualityAccident.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.QualityAccidentId != this.QualityAccidentId || (this.QualityAccidentId == null && x.QualityAccidentId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); @@ -232,7 +232,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive { if (drpUnit.SelectedValue != BLL.Const._Null) { - var q = Funs.DB.Comprehensive_QualityAccident.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.QualityAccidentId != this.QualityAccidentId || (this.QualityAccidentId == null && x.QualityAccidentId != null))); + var q = Funs.DB.Comprehensive_QualityAccident.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.QualityAccidentId != this.QualityAccidentId || (this.QualityAccidentId == null && x.QualityAccidentId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/ReviewDrawingsEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/ReviewDrawingsEdit.aspx.cs index f63213ef..78007deb 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/ReviewDrawingsEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/ReviewDrawingsEdit.aspx.cs @@ -212,7 +212,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_ReviewDrawings.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.Id != this.Id || (this.Id == null && x.Id != null))); + var q = Funs.DB.Comprehensive_ReviewDrawings.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.Id != this.Id || (this.Id == null && x.Id != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); @@ -293,7 +293,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_ReviewDrawings.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.Id != this.Id || (this.Id == null && x.Id != null))); + var q = Funs.DB.Comprehensive_ReviewDrawings.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.Id != this.Id || (this.Id == null && x.Id != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/SiteVisaManagementEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/SiteVisaManagementEdit.aspx.cs index 35cdefa5..fe9f9d7c 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/SiteVisaManagementEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/SiteVisaManagementEdit.aspx.cs @@ -174,7 +174,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_SiteVisaManagement.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.VisaId != this.VisaId || (this.VisaId == null && x.VisaId != null))); + var q = Funs.DB.Comprehensive_SiteVisaManagement.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.VisaId != this.VisaId || (this.VisaId == null && x.VisaId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); @@ -247,7 +247,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_SiteVisaManagement.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.VisaId != this.VisaId || (this.VisaId == null && x.VisaId != null))); + var q = Funs.DB.Comprehensive_SiteVisaManagement.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.VisaId != this.VisaId || (this.VisaId == null && x.VisaId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/SpecialEquipmentEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/SpecialEquipmentEdit.aspx.cs index 4c14e70a..136ff62f 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/SpecialEquipmentEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/SpecialEquipmentEdit.aspx.cs @@ -169,7 +169,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择所属单位!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_SpecialEquipment.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.SpecialEquipmentId != this.SpecialEquipmentId || (this.SpecialEquipmentId == null && x.SpecialEquipmentId != null))); + var q = Funs.DB.Comprehensive_SpecialEquipment.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.SpecialEquipmentId != this.SpecialEquipmentId || (this.SpecialEquipmentId == null && x.SpecialEquipmentId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); @@ -250,7 +250,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择所属单位!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_SpecialEquipment.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.SpecialEquipmentId != this.SpecialEquipmentId || (this.SpecialEquipmentId == null && x.SpecialEquipmentId != null))); + var q = Funs.DB.Comprehensive_SpecialEquipment.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.SpecialEquipmentId != this.SpecialEquipmentId || (this.SpecialEquipmentId == null && x.SpecialEquipmentId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsEdit.aspx.cs index 39e9e0dc..2d1c9f27 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/TrainingRecordsEdit.aspx.cs @@ -69,7 +69,7 @@ namespace FineUIPro.Web.CQMS.Comprehensive Alert.ShowInTop("请选择专业!", MessageBoxIcon.Warning); return; } - var q = Funs.DB.Comprehensive_TrainingRecords.FirstOrDefault(x => x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.TrainingRecordsId != this.TrainingRecordsId || (this.TrainingRecordsId == null && x.TrainingRecordsId != null))); + var q = Funs.DB.Comprehensive_TrainingRecords.FirstOrDefault(x => x.ProjectId == this.CurrUser.LoginProjectId && x.RemarkCode == Funs.GetNewInt(this.txtRemarkCode.Text.Trim()) && (x.TrainingRecordsId != this.TrainingRecordsId || (this.TrainingRecordsId == null && x.TrainingRecordsId != null))); if (q != null) { Alert.ShowInTop("标志编号已存在!", MessageBoxIcon.Warning); diff --git a/SGGL/FineUIPro.Web/Web.config b/SGGL/FineUIPro.Web/Web.config index 7c94e245..6223f868 100644 --- a/SGGL/FineUIPro.Web/Web.config +++ b/SGGL/FineUIPro.Web/Web.config @@ -12,7 +12,7 @@ - + From 563d401af65a65beaa0767d4864163005dfb0c67 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Fri, 10 May 2024 15:46:52 +0800 Subject: [PATCH 4/8] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../版本日志/SGGLDB_WH_2024-05-09-gaofei.sql | 2 + SGGL/BLL/Common/Const.cs | 4 + SGGL/BLL/JDGL/Check/MonthPlanService.cs | 29 +- SGGL/BLL/ProjectData/ProjectUnitService.cs | 26 + .../Excel/DataIn/月度计划情况导入模板.xls | Bin 0 -> 25088 bytes SGGL/FineUIPro.Web/FineUIPro.Web.csproj | 24 + SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user | 2 +- SGGL/FineUIPro.Web/JDGL/Check/MonthPlan.aspx | 8 +- .../JDGL/Check/MonthPlan.aspx.cs | 48 +- .../JDGL/Check/MonthPlan.aspx.designer.cs | 9 + .../JDGL/Check/MonthPlanEdit.aspx | 104 +++ .../JDGL/Check/MonthPlanEdit.aspx.cs | 188 ++++++ .../JDGL/Check/MonthPlanEdit.aspx.designer.cs | 168 +++++ .../FineUIPro.Web/JDGL/Check/MonthPlanIn.aspx | 105 +++ .../JDGL/Check/MonthPlanIn.aspx.cs | 615 ++++++++++++++++++ .../JDGL/Check/MonthPlanIn.aspx.designer.cs | 159 +++++ .../JDGL/Check/MonthPlanStatisc.aspx | 83 +++ .../JDGL/Check/MonthPlanStatisc.aspx.cs | 280 ++++++++ .../Check/MonthPlanStatisc.aspx.designer.cs | 132 ++++ .../JDGL/Check/QuantityCompletion.aspx.cs | 2 +- .../JDGL/Check/QuantityCompletionEdit.aspx | 55 -- .../JDGL/Check/QuantityCompletionIn.aspx | 2 +- SGGL/FineUIPro.Web/Web.config | 2 +- SGGL/FineUIPro.Web/common/Menu_JDGL.xml | 1 + SGGL/FineUIPro.Web/common/Menu_Personal.xml | 3 + SGGL/FineUIPro.Web/common/Menu_TestRun.xml | 13 +- SGGL/FineUIPro.Web/common/Menu_Transfer.xml | 18 + SGGL/FineUIPro.Web/common/Menu_ZHGL.xml | 4 + SGGL/Model/Model.cs | 24 + SGGL/WebAPI/WebAPI.csproj.user | 2 +- 30 files changed, 2014 insertions(+), 98 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_WH_2024-05-09-gaofei.sql create mode 100644 SGGL/FineUIPro.Web/File/Excel/DataIn/月度计划情况导入模板.xls create mode 100644 SGGL/FineUIPro.Web/JDGL/Check/MonthPlanEdit.aspx create mode 100644 SGGL/FineUIPro.Web/JDGL/Check/MonthPlanEdit.aspx.cs create mode 100644 SGGL/FineUIPro.Web/JDGL/Check/MonthPlanEdit.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/JDGL/Check/MonthPlanIn.aspx create mode 100644 SGGL/FineUIPro.Web/JDGL/Check/MonthPlanIn.aspx.cs create mode 100644 SGGL/FineUIPro.Web/JDGL/Check/MonthPlanIn.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/JDGL/Check/MonthPlanStatisc.aspx create mode 100644 SGGL/FineUIPro.Web/JDGL/Check/MonthPlanStatisc.aspx.cs create mode 100644 SGGL/FineUIPro.Web/JDGL/Check/MonthPlanStatisc.aspx.designer.cs diff --git a/DataBase/版本日志/SGGLDB_WH_2024-05-09-gaofei.sql b/DataBase/版本日志/SGGLDB_WH_2024-05-09-gaofei.sql new file mode 100644 index 00000000..9b651638 --- /dev/null +++ b/DataBase/版本日志/SGGLDB_WH_2024-05-09-gaofei.sql @@ -0,0 +1,2 @@ +alter table [dbo].[JDGL_MonthPlan] add SortIndex int null +GO \ No newline at end of file diff --git a/SGGL/BLL/Common/Const.cs b/SGGL/BLL/Common/Const.cs index fefebab6..1aa5cf7a 100644 --- a/SGGL/BLL/Common/Const.cs +++ b/SGGL/BLL/Common/Const.cs @@ -3148,6 +3148,10 @@ namespace BLL /// public const string QuantityCompletionTemplateUrl = "File\\Excel\\DataIn\\项目进度完成情况导入模板.xls"; /// + /// 月度计划情况导入模版文件原始的虚拟路径 + /// + public const string MonthPlanTemplateUrl = "File\\Excel\\DataIn\\月度计划情况导入模板.xls"; + /// /// 仪表索引 /// public const string InstrumentUrl = "File\\Excel\\TestRun\\仪表索引模板.xlsx"; diff --git a/SGGL/BLL/JDGL/Check/MonthPlanService.cs b/SGGL/BLL/JDGL/Check/MonthPlanService.cs index 9b21c6f6..e4977356 100644 --- a/SGGL/BLL/JDGL/Check/MonthPlanService.cs +++ b/SGGL/BLL/JDGL/Check/MonthPlanService.cs @@ -22,6 +22,16 @@ namespace BLL return Funs.DB.JDGL_MonthPlan.FirstOrDefault(e => e.MonthPlanId == MonthPlanId); } + /// + /// 根据主键获取月度计划情况 + /// + /// + /// + public static List GetMonthPlansByMonths(string projectId, DateTime months) + { + return (from x in Funs.DB.JDGL_MonthPlan where x.ProjectId == projectId && x.Months == months select x).ToList(); + } + /// /// 添加月度计划情况 /// @@ -42,6 +52,7 @@ namespace BLL Remark = MonthPlan.Remark, CompileMan = MonthPlan.CompileMan, CompileDate = MonthPlan.CompileDate, + SortIndex = MonthPlan.SortIndex, }; db.JDGL_MonthPlan.InsertOnSubmit(newMonthPlan); db.SubmitChanges(); @@ -65,7 +76,8 @@ namespace BLL newMonthPlan.Remark = MonthPlan.Remark; newMonthPlan.CompileMan = MonthPlan.CompileMan; newMonthPlan.CompileDate = MonthPlan.CompileDate; - + newMonthPlan.SortIndex = MonthPlan.SortIndex; + db.SubmitChanges(); } } @@ -84,5 +96,20 @@ namespace BLL db.SubmitChanges(); } } + + /// + /// 根据主键删除月度计划情况 + /// + /// + public static void DeleteAllMonthPlan(string projectId, DateTime months) + { + Model.SGGLDB db = Funs.DB; + var q = from x in db.JDGL_MonthPlan where x.ProjectId == projectId && x.Months == months select x; + if (q != null) + { + db.JDGL_MonthPlan.DeleteAllOnSubmit(q); + db.SubmitChanges(); + } + } } } diff --git a/SGGL/BLL/ProjectData/ProjectUnitService.cs b/SGGL/BLL/ProjectData/ProjectUnitService.cs index b923eeee..64850236 100644 --- a/SGGL/BLL/ProjectData/ProjectUnitService.cs +++ b/SGGL/BLL/ProjectData/ProjectUnitService.cs @@ -169,6 +169,32 @@ } } } + + /// + /// 项目类型单位表下拉框 + /// + /// 下拉框名字 + /// 是否显示请选择 + public static void InitUnitDropDownList2(FineUIPro.DropDownList dropName, string projectId, string unitType, bool isShowPlease) + { + using (Model.SGGLDB db = new Model.SGGLDB(Funs.ConnString)) + { + var pUnit = (from x in db.Project_ProjectUnit + join y in db.Base_Unit on x.UnitId equals y.UnitId + where x.ProjectId == projectId && x.UnitType == unitType + orderby y.UnitCode + select y).ToList(); + + dropName.DataValueField = "UnitName"; + dropName.DataTextField = "UnitName"; + dropName.DataSource = pUnit; + dropName.DataBind(); + if (isShowPlease) + { + Funs.FineUIPleaseSelect(dropName); + } + } + } #endregion /// diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/月度计划情况导入模板.xls b/SGGL/FineUIPro.Web/File/Excel/DataIn/月度计划情况导入模板.xls new file mode 100644 index 0000000000000000000000000000000000000000..53b08121b5e68ea2e6c221bbaee9fda4da314a96 GIT binary patch literal 25088 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 + + + @@ -13751,6 +13754,27 @@ MonthPlan.aspx + + MonthPlanEdit.aspx + ASPXCodeBehind + + + MonthPlanEdit.aspx + + + MonthPlanIn.aspx + ASPXCodeBehind + + + MonthPlanIn.aspx + + + MonthPlanStatisc.aspx + ASPXCodeBehind + + + MonthPlanStatisc.aspx + PipelineCompletion.aspx ASPXCodeBehind diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user index 63ca13cc..9e91deff 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user @@ -1,7 +1,7 @@  - Release|Any CPU + Debug|Any CPU true false diff --git a/SGGL/FineUIPro.Web/JDGL/Check/MonthPlan.aspx b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlan.aspx index 82708f7a..921a15fd 100644 --- a/SGGL/FineUIPro.Web/JDGL/Check/MonthPlan.aspx +++ b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlan.aspx @@ -16,7 +16,7 @@ @@ -30,6 +30,8 @@ OnClick="btnSave_Click"> + + @@ -53,7 +55,7 @@ SortField="UnitName" FieldType="String" HeaderText="责任单位" TextAlign="center" HeaderTextAlign="Center"> - @@ -78,7 +80,7 @@ - diff --git a/SGGL/FineUIPro.Web/JDGL/Check/MonthPlan.aspx.cs b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlan.aspx.cs index 86941399..594d2512 100644 --- a/SGGL/FineUIPro.Web/JDGL/Check/MonthPlan.aspx.cs +++ b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlan.aspx.cs @@ -19,7 +19,7 @@ namespace FineUIPro.Web.JDGL.Check { GetButtonPower(); btnNew.OnClientClick = Window1.GetShowReference("MonthPlanEdit.aspx") + "return false;"; - this.txtMonths.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now); + this.txtMonths.Text = string.Format("{0:yyyy-MM}", DateTime.Now); BindGrid(); } } @@ -51,6 +51,7 @@ namespace FineUIPro.Web.JDGL.Check protected void btnModify_Click(object sender, EventArgs e) { + Window1.Title = "录入"; PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("MonthPlanEdit.aspx?Months={0}", this.txtMonths.Text, "编辑 - "))); } @@ -59,34 +60,9 @@ namespace FineUIPro.Web.JDGL.Check /// private void BindGrid() { - string strSql = @"select qc.MonthPlanId,(select PlanNum from JDGL_MonthPlan where QuantityListId=ql.QuantityListId and Months=@month) as PlanNum, - (select RealNum from JDGL_MonthPlan where QuantityListId=ql.QuantityListId and Months=@month) as RealNum, - (select NextNum from JDGL_MonthPlan where QuantityListId=ql.QuantityListId and Months=@month) as NextNum,ql.DesignNum,ql.Name,ql.Unit,ql.SortIndex, - CONVERT(FLOAT, (select sum(ISNULL(PlanNum, 0)) from JDGL_MonthPlan where ProjectId = ql.ProjectId and QuantityListId = qc.QuantityListId and Months <= @month)) as TotalPlanNum, - CONVERT(FLOAT, (select sum(ISNULL(RealNum, 0)) from JDGL_MonthPlan where ProjectId = ql.ProjectId and QuantityListId = qc.QuantityListId and Months <= @month)) as TotalRealNum, - CONVERT(NVARCHAR(10), ((CAST(CASE ISNULL(qc.PlanNum, 0) WHEN 0 THEN 0 - - ELSE 100 * ISNULL(qc.RealNum, 0) / (1.0 * qc.PlanNum) END AS DECIMAL(9, 2))))) + '%' - - AS Rate, - CONVERT(NVARCHAR(10), ((CAST(CASE(select sum(ISNULL(PlanNum, 0)) from JDGL_MonthPlan where ProjectId = ql.ProjectId and QuantityListId = qc.QuantityListId and Months <= @month) WHEN 0 THEN 0 - - ELSE 100 * (select sum(ISNULL(RealNum, 0)) from JDGL_MonthPlan where ProjectId = ql.ProjectId and QuantityListId = qc.QuantityListId and Months <= @month) / (1.0 * (select sum(ISNULL(PlanNum, 0)) from JDGL_MonthPlan where ProjectId = ql.ProjectId and QuantityListId = qc.QuantityListId and Months <= @month)) END AS DECIMAL(9, 2)))))+'%' - - AS TotalRate, - CONVERT(NVARCHAR(10), ((CAST(CASE ISNULL(ql.DesignNum, 0) WHEN 0 THEN 0 - - ELSE 100 * (select sum(ISNULL(RealNum, 0)) from JDGL_MonthPlan where ProjectId = ql.ProjectId and QuantityListId = qc.QuantityListId and Months <= @month) / (1.0 * ql.DesignNum) END AS DECIMAL(9, 2)))))+'%' - - AS SumRate, - CONVERT(FLOAT, (select sum(ISNULL(PlanNum, 0)) from JDGL_MonthPlan where ProjectId = ql.ProjectId and QuantityListId = qc.QuantityListId and Months < qc.Months)) as LastTotalPlanNum, - CONVERT(FLOAT, (select sum(ISNULL(RealNum, 0)) from JDGL_MonthPlan where ProjectId = ql.ProjectId and QuantityListId = qc.QuantityListId and Months < qc.Months)) as LastTotalRealNum - from[dbo].JDGL_QuantityList ql - left join dbo.[JDGL_MonthPlan] qc on ql.QuantityListId=qc.QuantityListId -where qc.MonthPlanId=(select top 1 MonthPlanId from[JDGL_MonthPlan] q where q.QuantityListId=qc.QuantityListId and q.Months<=@month order by q.Months desc) and qc.ProjectId=@ProjectId order by ql.SortIndex, ql.Name"; - //string strSql = @"select * - // from dbo.View_JDGL_MonthPlan qc - // where qc.ProjectId=@ProjectId order by qc.SortIndex, qc.Name"; + string strSql = @"select mp.*,u.UnitName,us.UserName as DutyPersonName from [dbo].[JDGL_MonthPlan] mp +left join Base_Unit u on u.UnitId=mp.UnitId +left join Sys_User us on us.UserId=mp.DutyPerson where mp.ProjectId=@ProjectId and mp.Months=@month order by mp.SortIndex"; List listStr = new List(); listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); listStr.Add(new SqlParameter("@month", string.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(this.txtMonths.Text.Trim() + "-01")))); @@ -167,6 +143,7 @@ where qc.MonthPlanId=(select top 1 MonthPlanId from[JDGL_MonthPlan] q where q.Qu /// protected void btnImport_Click(object sender, EventArgs e) { + Window1.Title = "导入"; PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("MonthPlanIn.aspx?ProjectId={0}", this.CurrUser.LoginProjectId, "导入 - "))); } @@ -180,5 +157,18 @@ where qc.MonthPlanId=(select top 1 MonthPlanId from[JDGL_MonthPlan] q where q.Qu BindGrid(); } #endregion + + #region 统计 + /// + /// 统计分析 + /// + /// + /// + protected void BtnAnalyse_Click(object sender, EventArgs e) + { + Window1.Title = "统计"; + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("MonthPlanStatisc.aspx", "统计 - "))); + } + #endregion } } \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/JDGL/Check/MonthPlan.aspx.designer.cs b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlan.aspx.designer.cs index 48d93b0d..4f1d79dd 100644 --- a/SGGL/FineUIPro.Web/JDGL/Check/MonthPlan.aspx.designer.cs +++ b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlan.aspx.designer.cs @@ -75,6 +75,15 @@ namespace FineUIPro.Web.JDGL.Check { /// protected global::FineUIPro.Button btnSave; + /// + /// BtnAnalyse 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button BtnAnalyse; + /// /// btnNew 控件。 /// diff --git a/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanEdit.aspx b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanEdit.aspx new file mode 100644 index 00000000..33096eb3 --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanEdit.aspx @@ -0,0 +1,104 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MonthPlanEdit.aspx.cs" Inherits="FineUIPro.Web.JDGL.Check.MonthPlanEdit" %> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanEdit.aspx.cs b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanEdit.aspx.cs new file mode 100644 index 00000000..e9d081c9 --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanEdit.aspx.cs @@ -0,0 +1,188 @@ +using BLL; +using Newtonsoft.Json.Linq; +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; + +namespace FineUIPro.Web.JDGL.Check +{ + public partial class MonthPlanEdit : PageBase + { + /// + /// 项目id + /// + public string ProjectId + { + get + { + return (string)ViewState["ProjectId"]; + } + set + { + ViewState["ProjectId"] = value; + } + } + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + DateTime months = Convert.ToDateTime(DateTime.Now.Year.ToString() + "-" + DateTime.Now.Month.ToString() + "-01"); + if (!string.IsNullOrEmpty(Request.Params["Months"])) + { + months = Convert.ToDateTime(Request.Params["Months"] + "-01"); + } + BLL.ProjectUnitService.InitUnitDropDownList2(drpUnitId, this.CurrUser.LoginProjectId, BLL.Const.ProjectUnitType_2, false); + UserService.Init(drpDutyPerson, CurrUser.LoginProjectId, false); + this.txtMonth.Text = string.Format("{0:yyyy-MM}", months); + BindGrid(); + } + } + + /// + /// 加载Grid + /// + private void BindGrid() + { + DateTime months = Convert.ToDateTime(this.txtMonth.Text + "-01"); + Model.SGGLDB db = Funs.DB; + Grid1.DataSource = from x in db.JDGL_MonthPlan + where x.ProjectId == this.CurrUser.LoginProjectId && x.Months == months + orderby x.SortIndex + select new + { + x.MonthPlanId, + x.ProjectId, + x.Months, + UnitId = db.Base_Unit.First(y => y.UnitId == x.UnitId).UnitName, + x.NodeContent, + x.PlanDate, + DutyPerson = db.Sys_User.First(y => y.UserId == x.DutyPerson).UserName, + x.RealDate, + x.Remark, + }; + Grid1.DataBind(); + } + + #region 月份选择事件 + /// + /// 月份选择事件 + /// + /// + /// + protected void txtMonths_TextChanged(object sender, EventArgs e) + { + BindGrid(); + } + #endregion + + protected void btnSave_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(this.txtMonth.Text)) + { + ShowNotify("请选择月份!", MessageBoxIcon.Warning); + } + SaveData(true); + } + + private void SaveData(bool bl) + { + DateTime months = Convert.ToDateTime(this.txtMonth.Text + "-01"); + var list = GetDetails(); + var units = from x in Funs.DB.Base_Unit select x; + var users = from x in Funs.DB.Sys_User select x; + BLL.MonthPlanService.DeleteAllMonthPlan(this.CurrUser.LoginProjectId, months); + Model.SGGLDB db = Funs.DB; + int i = 1; + foreach (var item in list) + { + Model.JDGL_MonthPlan MonthPlan = new Model.JDGL_MonthPlan(); + MonthPlan.MonthPlanId = SQLHelper.GetNewID(typeof(Model.JDGL_MonthPlan)); + MonthPlan.ProjectId = this.CurrUser.LoginProjectId; + MonthPlan.Months = months; + var unit = units.FirstOrDefault(x => x.UnitName == item.UnitId); + if (unit != null) + { + MonthPlan.UnitId = unit.UnitId; + } + MonthPlan.NodeContent = item.NodeContent; + MonthPlan.PlanDate = item.PlanDate; + var user = users.FirstOrDefault(x => x.UserName == item.DutyPerson); + if (user != null) + { + MonthPlan.DutyPerson = user.UserId; + } + MonthPlan.RealDate = item.RealDate; + MonthPlan.Remark = item.Remark; + MonthPlan.CompileMan = this.CurrUser.UserId; + MonthPlan.CompileDate = DateTime.Now; + MonthPlan.SortIndex = i; + BLL.MonthPlanService.AddMonthPlan(MonthPlan); + i++; + } + ShowNotify("保存成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + + #region 增加按钮事件 + /// + /// 增加按钮事件 + /// + /// + /// + protected void btnNew_Click(object sender, EventArgs e) + { + var list = GetDetails(); + Model.JDGL_MonthPlan ql = new Model.JDGL_MonthPlan(); + ql.MonthPlanId = SQLHelper.GetNewID(); + list.Add(ql); + Grid1.DataSource = list; + Grid1.DataBind(); + } + private List GetDetails() + { + List list = new List(); + foreach (JObject mergedRow in Grid1.GetMergedData()) + { + JObject values = mergedRow.Value("values"); + int i = mergedRow.Value("index"); + Model.JDGL_MonthPlan ql = new Model.JDGL_MonthPlan(); + ql.MonthPlanId = Grid1.Rows[i].RowID; + ql.UnitId = values.Value("UnitId"); + ql.NodeContent = values.Value("NodeContent"); + ql.PlanDate = Funs.GetNewDateTime(values.Value("PlanDate")); + ql.DutyPerson = values.Value("DutyPerson"); + ql.RealDate = Funs.GetNewDateTime(values.Value("RealDate")); + ql.Remark = values.Value("Remark"); + list.Add(ql); + } + return list; + } + #endregion + + #region 行点击事件 + /// + /// Grid行点击事件 + /// + /// + /// + protected void Grid1_RowCommand(object sender, GridCommandEventArgs e) + { + string monthPlanId = Grid1.DataKeys[e.RowIndex][0].ToString(); + var list = GetDetails(); + if (e.CommandName == "del")//删除 + { + var Report = list.FirstOrDefault(x => x.MonthPlanId == monthPlanId); + if (Report != null) + { + list.Remove(Report); + } + this.Grid1.DataSource = list; + this.Grid1.DataBind(); + } + } + #endregion + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanEdit.aspx.designer.cs b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanEdit.aspx.designer.cs new file mode 100644 index 00000000..92339b8d --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanEdit.aspx.designer.cs @@ -0,0 +1,168 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.JDGL.Check { + + + public partial class MonthPlanEdit { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel17 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel17; + + /// + /// Toolbar5 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar5; + + /// + /// txtMonth 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtMonth; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// Form15 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form Form15; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar3; + + /// + /// btnNew 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnNew; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label1; + + /// + /// drpUnitId 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpUnitId; + + /// + /// txtNodeContent 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtNodeContent; + + /// + /// txtPlanDate 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtPlanDate; + + /// + /// drpDutyPerson 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList drpDutyPerson; + + /// + /// txtRealDate 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtRealDate; + + /// + /// txtRemark 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtRemark; + } +} diff --git a/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanIn.aspx b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanIn.aspx new file mode 100644 index 00000000..c0373daa --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanIn.aspx @@ -0,0 +1,105 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MonthPlanIn.aspx.cs" Inherits="FineUIPro.Web.JDGL.Check.MonthPlanIn" %> + + + + + + 导入信息 + + + +
+ + + + + + + + + + + + + + + + + <%----%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + + + + + --%> + + + + + diff --git a/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanIn.aspx.cs b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanIn.aspx.cs new file mode 100644 index 00000000..2b868129 --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanIn.aspx.cs @@ -0,0 +1,615 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.OleDb; +using System.IO; +using System.Linq; +using System.Web.UI; + +namespace FineUIPro.Web.JDGL.Check +{ + public partial class MonthPlanIn : PageBase + { + #region 定义变量 + /// + /// 上传预设的虚拟路径 + /// + private string initPath = Const.ExcelUrl; + + /// + /// 人员集合 + /// + public static List MonthPlans = new List(); + + /// + /// 错误集合 + /// + public static string errorInfos = string.Empty; + + /// + /// 项目ID + /// + public string ProjectId + { + get + { + return (string)ViewState["ProjectId"]; + } + set + { + ViewState["ProjectId"] = value; + } + } + #endregion + + #region 加载页面 + /// + /// 加载页面 + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.hdFileName.Text = string.Empty; + this.hdCheckResult.Text = string.Empty; + if (MonthPlans != null) + { + MonthPlans.Clear(); + } + errorInfos = string.Empty; + this.ProjectId = Request.Params["ProjectId"]; + } + } + #endregion + + #region 审核 + /// + /// 审核 + /// + /// + /// + protected void btnAudit_Click(object sender, EventArgs e) + { + try + { + if (this.fuAttachUrl.HasFile == false) + { + ShowNotify("请您选择Excel文件!", MessageBoxIcon.Warning); + return; + } + string IsXls = Path.GetExtension(this.fuAttachUrl.FileName).ToString().Trim().ToLower(); + if (IsXls != ".xls") + { + ShowNotify("只可以选择Excel文件!", MessageBoxIcon.Warning); + return; + } + if (MonthPlans != null) + { + MonthPlans.Clear(); + } + if (!string.IsNullOrEmpty(errorInfos)) + { + errorInfos = string.Empty; + } + string rootPath = Server.MapPath("~/"); + string initFullPath = rootPath + initPath; + if (!Directory.Exists(initFullPath)) + { + Directory.CreateDirectory(initFullPath); + } + + this.hdFileName.Text = BLL.Funs.GetNewFileName() + IsXls; + string filePath = initFullPath + this.hdFileName.Text; + this.fuAttachUrl.PostedFile.SaveAs(filePath); + //PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PersonDataAudit.aspx?FileName={0}&ProjectId={1}", this.hdFileName.Text, Request.Params["ProjectId"], "审核 - "))); + ImportXlsToData(rootPath + initPath + this.hdFileName.Text); + } + catch (Exception ex) + { + ShowNotify("'" + ex.Message + "'", MessageBoxIcon.Warning); + } + } + + #region 读Excel提取数据 + /// + /// 从Excel提取数据--》Dataset + /// + /// Excel文件路径名 + private void ImportXlsToData(string fileName) + { + try + { + string oleDBConnString = String.Empty; + oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;"; + oleDBConnString += "Data Source="; + oleDBConnString += fileName; + oleDBConnString += ";Extended Properties=Excel 8.0;"; + OleDbConnection oleDBConn = null; + OleDbDataAdapter oleAdMaster = null; + DataTable m_tableName = new DataTable(); + DataSet ds = new DataSet(); + + oleDBConn = new OleDbConnection(oleDBConnString); + oleDBConn.Open(); + m_tableName = oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); + + if (m_tableName != null && m_tableName.Rows.Count > 0) + { + + m_tableName.TableName = m_tableName.Rows[0]["TABLE_NAME"].ToString().Trim(); + + } + string sqlMaster; + sqlMaster = " SELECT * FROM [" + m_tableName.TableName + "]"; + oleAdMaster = new OleDbDataAdapter(sqlMaster, oleDBConn); + oleAdMaster.Fill(ds, "m_tableName"); + oleAdMaster.Dispose(); + oleDBConn.Close(); + oleDBConn.Dispose(); + + AddDatasetToSQL(ds.Tables[0], 6); + } + catch (Exception ex) + { + throw ex; + } + } + #endregion + + #region 将Dataset的数据导入数据库 + /// + /// 将Dataset的数据导入数据库 + /// + /// 数据集 + /// 数据集行数 + /// + private bool AddDatasetToSQL(DataTable pds, int Cols) + { + string result = string.Empty; + int ic, ir; + ic = pds.Columns.Count; + if (ic < Cols) + { + Alert.ShowInTop("导入Excel格式错误!Excel只有" + ic.ToString().Trim() + "行", MessageBoxIcon.Warning); + } + ir = pds.Rows.Count; + Model.SGGLDB db = Funs.DB; + var projectUnits = from x in db.Project_ProjectUnit + join y in db.Base_Unit on x.UnitId equals y.UnitId + where x.ProjectId == this.CurrUser.LoginProjectId + select new { x.UnitId, y.UnitName }; + var projectUsers = from x in db.Project_ProjectUser + join y in db.Sys_User on x.UserId equals y.UserId + where x.ProjectId == this.CurrUser.LoginProjectId + select new { x.UserId, y.UserName }; + if (pds != null && ir > 0) + { + for (int i = 0; i < ir; i++) + { + string col0 = pds.Rows[i][0].ToString().Trim(); + if (string.IsNullOrEmpty(col0)) + { + result += "第" + (i + 2).ToString() + "行," + "责任单位" + "," + "此项为必填项!" + "|"; + } + else + { + var unit = projectUnits.FirstOrDefault(e => e.UnitName == col0); + if (unit == null) + { + result += "第" + (i + 2).ToString() + "行," + "责任单位" + "," + "[" + col0 + "]不在项目单位中!" + "|"; + } + } + + string col1 = pds.Rows[i][1].ToString().Trim(); + if (string.IsNullOrEmpty(col1)) + { + result += "第" + (i + 2).ToString() + "行," + "节点内容" + "," + "此项为必填项!" + "|"; + } + + string col2 = pds.Rows[i][2].ToString().Trim(); + if (!string.IsNullOrEmpty(col2)) + { + try + { + DateTime dec = Convert.ToDateTime(col2); + } + catch (Exception) + { + result += "第" + (i + 2).ToString() + "行," + "计划完成时间" + "," + "[" + col2 + "]错误!" + "|"; + } + } + else + { + result += "第" + (i + 2).ToString() + "行," + "计划完成时间" + "," + "此项为必填项!" + "|"; + } + + string col3 = pds.Rows[i][3].ToString().Trim(); + if (string.IsNullOrEmpty(col3)) + { + result += "第" + (i + 2).ToString() + "行," + "五环责任人" + "," + "此项为必填项!" + "|"; + } + else + { + var user = projectUsers.FirstOrDefault(e => e.UserName == col3); + if (user == null) + { + result += "第" + (i + 2).ToString() + "行," + "五环责任人" + "," + "[" + col3 + "]不在项目用户信息中!" + "|"; + } + } + + string col4 = pds.Rows[i][4].ToString().Trim(); + if (!string.IsNullOrEmpty(col4)) + { + try + { + DateTime dec = Convert.ToDateTime(col4); + } + catch (Exception) + { + result += "第" + (i + 2).ToString() + "行," + "实际完成时间" + "," + "[" + col4 + "]错误!" + "|"; + } + } + } + if (!string.IsNullOrEmpty(result)) + { + result = result.Substring(0, result.LastIndexOf("|")); + errorInfos = result; + Alert alert = new Alert + { + Message = result, + Target = Target.Self + }; + alert.Show(); + + + } + else + { + errorInfos = string.Empty; + ShowNotify("审核完成,请点击导入!", MessageBoxIcon.Success); + } + } + else + { + ShowNotify("导入数据为空!", MessageBoxIcon.Warning); + } + return true; + } + #endregion + #endregion + + #region 导入 + /// + /// 导入 + /// + /// + /// + protected void btnImport_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(errorInfos)) + { + if (!string.IsNullOrEmpty(this.hdFileName.Text)) + { + string rootPath = Server.MapPath("~/"); + ImportXlsToData2(rootPath + initPath + this.hdFileName.Text); + } + else + { + ShowNotify("请先审核要导入的文件!", MessageBoxIcon.Warning); + } + } + else + { + Alert.ShowInTop("请先将错误数据修正,再重新导入保存!", MessageBoxIcon.Warning); + } + } + + #region Excel提取数据 + /// + /// 从Excel提取数据--》Dataset + /// + /// Excel文件路径名 + private void ImportXlsToData2(string fileName) + { + try + { + string oleDBConnString = String.Empty; + oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;"; + oleDBConnString += "Data Source="; + oleDBConnString += fileName; + oleDBConnString += ";Extended Properties=Excel 8.0;"; + OleDbConnection oleDBConn = null; + OleDbDataAdapter oleAdMaster = null; + DataTable m_tableName = new DataTable(); + DataSet ds = new DataSet(); + + oleDBConn = new OleDbConnection(oleDBConnString); + oleDBConn.Open(); + m_tableName = oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); + + if (m_tableName != null && m_tableName.Rows.Count > 0) + { + + m_tableName.TableName = m_tableName.Rows[0]["TABLE_NAME"].ToString().Trim(); + + } + string sqlMaster; + sqlMaster = " SELECT * FROM [" + m_tableName.TableName + "]"; + oleAdMaster = new OleDbDataAdapter(sqlMaster, oleDBConn); + oleAdMaster.Fill(ds, "m_tableName"); + oleAdMaster.Dispose(); + oleDBConn.Close(); + oleDBConn.Dispose(); + + AddDatasetToSQL2(ds.Tables[0], 6); + } + catch (Exception ex) + { + throw ex; + } + } + #endregion + + #region 将Dataset的数据导入数据库 + /// + /// 将Dataset的数据导入数据库 + /// + /// 数据集 + /// 数据集列数 + /// + private bool AddDatasetToSQL2(DataTable pds, int Cols) + { + int ic, ir; + MonthPlans.Clear(); + ic = pds.Columns.Count; + if (ic < Cols) + { + Alert.ShowInTop("导入Excel格式错误!Excel只有" + ic.ToString().Trim() + "列", MessageBoxIcon.Warning); + } + + ir = pds.Rows.Count; + Model.SGGLDB db = Funs.DB; + var projectUnits = from x in db.Project_ProjectUnit + join y in db.Base_Unit on x.UnitId equals y.UnitId + where x.ProjectId == this.CurrUser.LoginProjectId select new { x.UnitId,y.UnitName}; + var projectUsers = from x in db.Project_ProjectUser + join y in db.Sys_User on x.UserId equals y.UserId + where x.ProjectId == this.CurrUser.LoginProjectId select new { x.UserId,y.UserName}; + DateTime month = Convert.ToDateTime(this.txtMonth.Text.Trim()); + if (pds != null && ir > 0) + { + for (int i = 0; i < ir; i++) + { + Model.JDGL_MonthPlan MonthPlan = new Model.JDGL_MonthPlan(); + string col0 = pds.Rows[i][0].ToString().Trim(); + string col1 = pds.Rows[i][1].ToString().Trim(); + string col2 = pds.Rows[i][2].ToString().Trim(); + string col3 = pds.Rows[i][3].ToString().Trim(); + string col4 = pds.Rows[i][4].ToString().Trim(); + string col5 = pds.Rows[i][5].ToString().Trim(); + if (!string.IsNullOrEmpty(col0))//责任单位 + { + var projectUnit = projectUnits.FirstOrDefault(x=>x.UnitName==col0); + if (projectUnit != null) + { + MonthPlan.UnitId = projectUnit.UnitId; + } + } + if (!string.IsNullOrEmpty(col1))//节点内容 + { + MonthPlan.NodeContent = col1; + } + + if (!string.IsNullOrEmpty(col2))//计划完成时间 + { + MonthPlan.PlanDate = Funs.GetNewDateTime(col2); + + } + if (!string.IsNullOrEmpty(col3))//计划完成 + { + var projectUser = projectUsers.FirstOrDefault(x => x.UserName == col3); + if (projectUser != null) + { + MonthPlan.DutyPerson = projectUser.UserId; + } + } + if (!string.IsNullOrEmpty(col4))//实际完成时间 + { + MonthPlan.RealDate = Funs.GetNewDateTime(col4); + } + if (!string.IsNullOrEmpty(col5))//备注 + { + MonthPlan.Remark = col5; + } + int num = (from x in Funs.DB.JDGL_MonthPlan where x.Months == month && x.ProjectId == this.CurrUser.LoginProjectId select x).Count(); + MonthPlan.SortIndex = num + 1; + MonthPlan.MonthPlanId = SQLHelper.GetNewID(typeof(Model.JDGL_MonthPlan)); + MonthPlans.Add(MonthPlan); + } + if (MonthPlans.Count > 0) + { + this.Grid1.Hidden = false; + this.Grid1.DataSource = MonthPlans; + this.Grid1.DataBind(); + } + } + else + { + ShowNotify("导入数据为空!", MessageBoxIcon.Warning); + } + return true; + } + #endregion + #endregion + + #region 保存 + /// + /// 保存 + /// + /// + /// + protected void btnSave_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(this.txtMonth.Text.Trim())) + { + ShowNotify("请选择月份!", MessageBoxIcon.Warning); + return; + } + if (string.IsNullOrEmpty(errorInfos)) + { + var monthPlanLists = from x in Funs.DB.JDGL_MonthPlan where x.ProjectId == this.ProjectId select x; + string quantityListId = string.Empty; + int a = MonthPlans.Count(); + DateTime month = Convert.ToDateTime(this.txtMonth.Text.Trim()); + for (int i = 0; i < a; i++) + { + var oldMonthPlan = monthPlanLists.FirstOrDefault(x => x.ProjectId == this.ProjectId && x.Months == month && x.UnitId == MonthPlans[i].UnitId && x.NodeContent== MonthPlans[i].NodeContent); + if (oldMonthPlan == null) + { + Model.JDGL_MonthPlan newMonthPlan = new Model.JDGL_MonthPlan(); + newMonthPlan.MonthPlanId = SQLHelper.GetNewID(typeof(Model.JDGL_MonthPlan)); + newMonthPlan.ProjectId = this.ProjectId; + newMonthPlan.Months = month; + newMonthPlan.UnitId = MonthPlans[i].UnitId; + newMonthPlan.NodeContent = MonthPlans[i].NodeContent; + newMonthPlan.PlanDate = MonthPlans[i].PlanDate; + newMonthPlan.DutyPerson = MonthPlans[i].DutyPerson; + newMonthPlan.RealDate = MonthPlans[i].RealDate; + newMonthPlan.Remark = MonthPlans[i].Remark; + newMonthPlan.SortIndex= MonthPlans[i].SortIndex; + newMonthPlan.CompileMan = this.CurrUser.UserId; + newMonthPlan.CompileDate = DateTime.Now; + BLL.MonthPlanService.AddMonthPlan(newMonthPlan); + } + else + { + oldMonthPlan.NodeContent = MonthPlans[i].NodeContent; + oldMonthPlan.PlanDate = MonthPlans[i].PlanDate; + oldMonthPlan.DutyPerson = MonthPlans[i].DutyPerson; + oldMonthPlan.RealDate = MonthPlans[i].RealDate; + oldMonthPlan.Remark = MonthPlans[i].Remark; + BLL.MonthPlanService.UpdateMonthPlan(oldMonthPlan); + } + } + string rootPath = Server.MapPath("~/"); + string initFullPath = rootPath + initPath; + string filePath = initFullPath + this.hdFileName.Text; + if (filePath != string.Empty && System.IO.File.Exists(filePath)) + { + System.IO.File.Delete(filePath);//删除上传的XLS文件 + } + ShowNotify("导入成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + else + { + Alert.ShowInTop("请先将错误数据修正,再重新导入保存!", MessageBoxIcon.Warning); + } + } + #endregion + + #region 导出错误提示 + /// + /// 导出错误提示 + /// + /// + /// + protected void btnOut_Click(object sender, EventArgs e) + { + //string strFileName = DateTime.Now.ToString("yyyyMMdd-hhmmss"); + //System.Web.HttpContext HC = System.Web.HttpContext.Current; + //HC.Response.Clear(); + //HC.Response.Buffer = true; + //HC.Response.ContentEncoding = System.Text.Encoding.UTF8;//设置输出流为简体中文 + + ////---导出为Excel文件 + //HC.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8) + ".xls"); + //HC.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 + + //System.IO.StringWriter sw = new System.IO.StringWriter(); + //System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw); + //this.gvErrorInfo.RenderControl(htw); + //HC.Response.Write(sw.ToString()); + //HC.Response.End(); + } + + /// + /// 重载VerifyRenderingInServerForm方法,否则运行的时候会出现如下错误提示:“类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内” + /// + /// + public override void VerifyRenderingInServerForm(Control control) + { + } + #endregion + + #region 下载模板 + /// + /// 下载模板按钮 + /// + /// + /// + protected void btnDownLoad_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(Confirm.GetShowReference("确定下载导入模板吗?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirm_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel"))); + } + + /// + /// 下载导入模板 + /// + /// + /// + protected void PageManager1_CustomEvent(object sender, CustomEventArgs e) + { + if (e.EventArgument == "Confirm_OK") + { + string rootPath = Server.MapPath("~/"); + string uploadfilepath = rootPath + Const.MonthPlanTemplateUrl; + string filePath = Const.MonthPlanTemplateUrl; + string fileName = Path.GetFileName(filePath); + FileInfo info = new FileInfo(uploadfilepath); + long fileSize = info.Length; + Response.ClearContent(); + Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); + Response.ContentType = "excel/plain"; + Response.ContentEncoding = System.Text.Encoding.UTF8; + Response.AddHeader("Content-Length", fileSize.ToString().Trim()); + Response.TransmitFile(uploadfilepath, 0, fileSize); + Response.End(); + } + } + #endregion + + /// + /// + /// + /// + /// + protected string ConvertUnitName(object UnitId) + { + string name = string.Empty; + if (UnitId != null) + { + name = BLL.UnitService.GetUnitNameByUnitId(UnitId.ToString()); + } + return name; + } + + /// + /// + /// + /// + /// + protected string ConvertDutyPersonName(object DutyPerson) + { + string name = string.Empty; + if (DutyPerson != null) + { + name = BLL.UserService.GetUserNameByUserId(DutyPerson.ToString()); + } + return name; + } + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanIn.aspx.designer.cs b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanIn.aspx.designer.cs new file mode 100644 index 00000000..5f589525 --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanIn.aspx.designer.cs @@ -0,0 +1,159 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.JDGL.Check { + + + public partial class MonthPlanIn { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// Toolbar2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar2; + + /// + /// txtMonth 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtMonth; + + /// + /// btnAudit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAudit; + + /// + /// btnImport 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnImport; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// btnDownLoad 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnDownLoad; + + /// + /// fuAttachUrl 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FileUpload fuAttachUrl; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Label2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label2; + + /// + /// lbImageUrl 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lbImageUrl; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label1; + + /// + /// hdFileName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hdFileName; + + /// + /// hdCheckResult 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hdCheckResult; + } +} diff --git a/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanStatisc.aspx b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanStatisc.aspx new file mode 100644 index 00000000..e2b41974 --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanStatisc.aspx @@ -0,0 +1,83 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="MonthPlanStatisc.aspx.cs" Inherits="FineUIPro.Web.JDGL.Check.MonthPlanStatisc" %> + + + + + + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanStatisc.aspx.cs b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanStatisc.aspx.cs new file mode 100644 index 00000000..faf76327 --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanStatisc.aspx.cs @@ -0,0 +1,280 @@ +using System; +using System.Collections.Generic; +using System.IO; +using System.Linq; +using System.Text; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using BLL; +using AspNet = System.Web.UI.WebControls; + +namespace FineUIPro.Web.JDGL.Check +{ + public partial class MonthPlanStatisc : PageBase + { + private static List StatisticsList = new List(); + + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.txtMonths.Text = string.Format("{0:yyyy-MM}", DateTime.Now); + BindStatisc(); + } + } + protected void btnSearch_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(this.txtMonths.Text.Trim())) + { + Alert.ShowInTop("月份不能为空!", MessageBoxIcon.Warning); + return; + } + BindStatisc(); + } + #region 绑定GridView + /// + /// 绑定 + /// + /// + public void BindStatisc() + { + DateTime months = Convert.ToDateTime(this.txtMonths.Text + "-01"); + StatisticsList = new List(); + int i = 1; + Model.SGGLDB db = Funs.DB; + //所有集合 + var totalList = from x in db.JDGL_MonthPlan where x.ProjectId == this.CurrUser.LoginProjectId && x.Months == months select x; + if (this.ckType.SelectedValue == "1") //按责任单位 + { + var pUnit = from x in db.Project_ProjectUnit + join y in db.Base_Unit on x.UnitId equals y.UnitId + where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitType == BLL.Const.ProjectUnitType_2 + orderby y.UnitCode + select y; + foreach (var item in pUnit) + { + //当期集合 + var list = totalList.Where(x => x.UnitId == item.UnitId); + Model.JDGL_MonthPlan JDGL_MonthPlan = new Model.JDGL_MonthPlan(); + JDGL_MonthPlan.NodeContent = item.UnitName; + int a = list.Count(); + int b = list.Count(x => x.RealDate.HasValue); + JDGL_MonthPlan.UnitId = a.ToString(); + JDGL_MonthPlan.DutyPerson = b.ToString(); + if (a != 0)//被除数不能为零 + { + JDGL_MonthPlan.Remark = Math.Round((double)b / (double)a * 100, 2) + "%";//保留两位小数、后四舍五入 + } + else + { + JDGL_MonthPlan.Remark = "0%"; + } + StatisticsList.Add(JDGL_MonthPlan); + i++; + } + } + else //按五环责任人 + { + var user = (from x in db.Sys_User + join y in db.JDGL_MonthPlan on x.UserId equals y.DutyPerson + where y.ProjectId == this.CurrUser.LoginProjectId + orderby x.UserId + select x).Distinct().ToList(); + foreach (var item in user) + { + //所有集合 + var list = totalList.Where(x => x.DutyPerson == item.UserId); + Model.JDGL_MonthPlan JDGL_MonthPlan = new Model.JDGL_MonthPlan(); + JDGL_MonthPlan.NodeContent = item.UserName; + int a = list.Count(); + int b = list.Count(x => x.RealDate.HasValue); + JDGL_MonthPlan.UnitId = a.ToString(); + JDGL_MonthPlan.DutyPerson = b.ToString(); + if (a != 0)//被除数不能为零 + { + JDGL_MonthPlan.Remark = Math.Round((double)b / (double)a * 100, 2) + "%";//保留两位小数、后四舍五入 + } + else + { + JDGL_MonthPlan.Remark = "0%"; + } + StatisticsList.Add(JDGL_MonthPlan); + i++; + } + } + if (StatisticsList.Count() > 0) //增加总计 + { + Model.JDGL_MonthPlan StatisticsLast = new Model.JDGL_MonthPlan(); + StatisticsLast.NodeContent = "合计"; + int a = totalList.Count(); + int b = totalList.Count(x => x.RealDate.HasValue); + StatisticsLast.UnitId = a.ToString(); + StatisticsLast.DutyPerson = b.ToString(); + if (a != 0)//被除数不能为零 + { + StatisticsLast.Remark = Math.Round((double)b / (double)a * 100, 2) + "%";//保留两位小数、后四舍五入 + } + else + { + StatisticsLast.Remark = "0%"; + } + StatisticsList.Add(StatisticsLast); + } + this.Grid1.DataSource = StatisticsList; + this.Grid1.DataBind(); + } + #endregion + protected void ckType_SelectedIndexChanged(object sender, EventArgs e) + { + if (this.ckType.SelectedValue == "1") + { + this.Grid1.Columns[1].HeaderText = "责任单位"; + } + else + { + this.Grid1.Columns[1].HeaderText = "五环责任人"; + } + BindStatisc(); + } + protected void ddlPageSize_SelectedIndexChanged(object sender, EventArgs e) + { + BindStatisc(); + } + #region 导出按钮 + /// 导出按钮 + /// + /// + /// + protected void btnOut_Click(object sender, EventArgs e) + { + //string rootPath = Server.MapPath("~/"); + //string initTemplatePath = Const.JDGL_MonthPlanTemlUrl; + //string uploadfilepath = string.Empty; + //string newUrl = string.Empty; + //uploadfilepath = rootPath + initTemplatePath; + + //if (StatisticsList != null) + //{ + // string projectName = BLL.ProjectService.GetShortNameByProjectId(this.CurrUser.LoginProjectId); + // newUrl = uploadfilepath.Replace("NCR统计模板", "NCR统计(" + projectName + DateTime.Now.ToString("yyyyMMdd") + ")"); + // 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; + // cellStyle.WrapText = true;//自动换行 + // var font = workbook.CreateFont(); + // font.FontHeightInPoints = 11; + // cellStyle.SetFont(font); + // // 第二步:创建新数据行 + // NPOI.SS.UserModel.ISheet sheet = workbook.GetSheetAt(0); + // NPOI.SS.UserModel.IRow row = sheet.GetRow(0); + // NPOI.SS.UserModel.ICell cell; + // int i = 2; + // foreach (var item in StatisticsList) + // { + // // 第二步:创建新数据行 + // row = sheet.CreateRow(i); + // // 添加数据 + // cell = row.CreateCell(0); + // cell.CellStyle = cellStyle; + // cell.SetCellValue(item.WorkName);//工作名称 + + // cell = row.CreateCell(1); + // cell.CellStyle = cellStyle; + // cell.SetCellValue(item.CheckNum); + + // cell = row.CreateCell(2); + // cell.CellStyle = cellStyle; + // cell.SetCellValue(item.OKNum); + + // cell = row.CreateCell(3); + // cell.CellStyle = cellStyle; + // cell.SetCellValue(item.NotOKNum); + + // cell = row.CreateCell(4); + // cell.CellStyle = cellStyle; + // cell.SetCellValue(item.OKRate); + + // cell = row.CreateCell(5); + // 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); + //} + } + + /// + /// 导出方法 + /// + /// + /// + //private string GetGridTableHtml(Grid grid) + //{ + // StringBuilder sb = new StringBuilder(); + // sb.Append(""); + // sb.Append(""); + // sb.Append(""); + // grid.PageSize = 10000; + // BindStatisc(); + // foreach (GridColumn column in grid.Columns) + // { + // sb.AppendFormat("", column.HeaderText); + // } + // sb.Append(""); + // foreach (GridRow row in grid.Rows) + // { + // sb.Append(""); + // foreach (GridColumn column in grid.Columns) + // { + // string html = row.Values[column.ColumnIndex].ToString(); + // if (column.ColumnID == "tfNumber") + // { + // html = (row.FindControl("labNumber") as AspNet.Label).Text; + // } + // sb.AppendFormat("", html); + // } + + // sb.Append(""); + // } + + // sb.Append("
{0}
{0}
"); + + // return sb.ToString(); + //} + #endregion + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanStatisc.aspx.designer.cs b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanStatisc.aspx.designer.cs new file mode 100644 index 00000000..92ad596d --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/MonthPlanStatisc.aspx.designer.cs @@ -0,0 +1,132 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.JDGL.Check { + + + public partial class MonthPlanStatisc { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// txtMonths 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtMonths; + + /// + /// ckType 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.RadioButtonList ckType; + + /// + /// btnSearch 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSearch; + + /// + /// btnOut 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnOut; + + /// + /// lblPageIndex 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblPageIndex; + + /// + /// ToolbarSeparator1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarSeparator ToolbarSeparator1; + + /// + /// ToolbarText1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.ToolbarText ToolbarText1; + + /// + /// ddlPageSize 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DropDownList ddlPageSize; + } +} diff --git a/SGGL/FineUIPro.Web/JDGL/Check/QuantityCompletion.aspx.cs b/SGGL/FineUIPro.Web/JDGL/Check/QuantityCompletion.aspx.cs index 95013fdc..2aed0b93 100644 --- a/SGGL/FineUIPro.Web/JDGL/Check/QuantityCompletion.aspx.cs +++ b/SGGL/FineUIPro.Web/JDGL/Check/QuantityCompletion.aspx.cs @@ -19,7 +19,7 @@ namespace FineUIPro.Web.JDGL.Check { GetButtonPower(); btnNew.OnClientClick = Window1.GetShowReference("QuantityCompletionEdit.aspx") + "return false;"; - this.txtMonths.Text = string.Format("{0:yyyy-MM-dd}", DateTime.Now); + this.txtMonths.Text = string.Format("{0:yyyy-MM}", DateTime.Now); BindGrid(); } } diff --git a/SGGL/FineUIPro.Web/JDGL/Check/QuantityCompletionEdit.aspx b/SGGL/FineUIPro.Web/JDGL/Check/QuantityCompletionEdit.aspx index c37ac7fd..dc35fa11 100644 --- a/SGGL/FineUIPro.Web/JDGL/Check/QuantityCompletionEdit.aspx +++ b/SGGL/FineUIPro.Web/JDGL/Check/QuantityCompletionEdit.aspx @@ -95,61 +95,6 @@
- <%-- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - --%> diff --git a/SGGL/FineUIPro.Web/JDGL/Check/QuantityCompletionIn.aspx b/SGGL/FineUIPro.Web/JDGL/Check/QuantityCompletionIn.aspx index 0b91d671..a733a780 100644 --- a/SGGL/FineUIPro.Web/JDGL/Check/QuantityCompletionIn.aspx +++ b/SGGL/FineUIPro.Web/JDGL/Check/QuantityCompletionIn.aspx @@ -15,7 +15,7 @@ - diff --git a/SGGL/FineUIPro.Web/Web.config b/SGGL/FineUIPro.Web/Web.config index 7c94e245..f50b26d3 100644 --- a/SGGL/FineUIPro.Web/Web.config +++ b/SGGL/FineUIPro.Web/Web.config @@ -9,7 +9,7 @@
- + diff --git a/SGGL/FineUIPro.Web/common/Menu_JDGL.xml b/SGGL/FineUIPro.Web/common/Menu_JDGL.xml index e83a527e..2fac288a 100644 --- a/SGGL/FineUIPro.Web/common/Menu_JDGL.xml +++ b/SGGL/FineUIPro.Web/common/Menu_JDGL.xml @@ -10,6 +10,7 @@ + diff --git a/SGGL/FineUIPro.Web/common/Menu_Personal.xml b/SGGL/FineUIPro.Web/common/Menu_Personal.xml index 2854ffd9..a9d07855 100644 --- a/SGGL/FineUIPro.Web/common/Menu_Personal.xml +++ b/SGGL/FineUIPro.Web/common/Menu_Personal.xml @@ -6,4 +6,7 @@ + + + \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/common/Menu_TestRun.xml b/SGGL/FineUIPro.Web/common/Menu_TestRun.xml index b1a26ee1..68f5e44c 100644 --- a/SGGL/FineUIPro.Web/common/Menu_TestRun.xml +++ b/SGGL/FineUIPro.Web/common/Menu_TestRun.xml @@ -46,12 +46,12 @@ - - - + + + + - @@ -69,9 +69,11 @@ + + @@ -119,7 +121,8 @@ - + + diff --git a/SGGL/FineUIPro.Web/common/Menu_Transfer.xml b/SGGL/FineUIPro.Web/common/Menu_Transfer.xml index 91d9fd84..4d3b9e97 100644 --- a/SGGL/FineUIPro.Web/common/Menu_Transfer.xml +++ b/SGGL/FineUIPro.Web/common/Menu_Transfer.xml @@ -1,3 +1,21 @@  + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml b/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml index ed44c8fe..69859890 100644 --- a/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml +++ b/SGGL/FineUIPro.Web/common/Menu_ZHGL.xml @@ -83,4 +83,8 @@ + + + + \ No newline at end of file diff --git a/SGGL/Model/Model.cs b/SGGL/Model/Model.cs index 31e60f74..3cc446d4 100644 --- a/SGGL/Model/Model.cs +++ b/SGGL/Model/Model.cs @@ -212319,6 +212319,8 @@ namespace Model private System.Nullable _CompileDate; + private System.Nullable _SortIndex; + private EntityRef _Base_Project; private EntityRef _Base_Unit; @@ -212353,6 +212355,8 @@ namespace Model partial void OnCompileManChanged(); partial void OnCompileDateChanging(System.Nullable value); partial void OnCompileDateChanged(); + partial void OnSortIndexChanging(System.Nullable value); + partial void OnSortIndexChanged(); #endregion public JDGL_MonthPlan() @@ -212600,6 +212604,26 @@ namespace Model } } + [global::System.Data.Linq.Mapping.ColumnAttribute(Storage="_SortIndex", DbType="Int")] + public System.Nullable SortIndex + { + get + { + return this._SortIndex; + } + set + { + if ((this._SortIndex != value)) + { + this.OnSortIndexChanging(value); + this.SendPropertyChanging(); + this._SortIndex = value; + this.SendPropertyChanged("SortIndex"); + this.OnSortIndexChanged(); + } + } + } + [global::System.Data.Linq.Mapping.AssociationAttribute(Name="FK_JDGL_MonthPlan_Base_Project", Storage="_Base_Project", ThisKey="ProjectId", OtherKey="ProjectId", IsForeignKey=true)] public Base_Project Base_Project { diff --git a/SGGL/WebAPI/WebAPI.csproj.user b/SGGL/WebAPI/WebAPI.csproj.user index bd497c6b..5fe155da 100644 --- a/SGGL/WebAPI/WebAPI.csproj.user +++ b/SGGL/WebAPI/WebAPI.csproj.user @@ -1,7 +1,7 @@  - Release|Any CPU + Debug|Any CPU true From b25a98ad4374788f798b87d595c11ee654b77bd0 Mon Sep 17 00:00:00 2001 From: wendy <408182087@qq.com> Date: Mon, 13 May 2024 22:58:13 +0800 Subject: [PATCH 5/8] =?UTF-8?q?20240513=20=E4=BF=AE=E6=94=B9=E6=8E=A7?= =?UTF-8?q?=E5=88=B6=E7=82=B9=E6=A3=80=E6=9F=A5=E6=A3=80=E6=B5=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../版本日志/SGGLDB_WH_2024-05-13-bwj.sql | 3 +++ .../CQMS/Comprehensive/DataReceivingDoc.aspx | 2 +- .../CQMS/ManageReportNew/MonthReport.aspx.cs | 12 +++++++----- .../ManageReportNew/MonthReportEdit.aspx.cs | 4 ++-- .../ManageReportNew/WeekReportEdit.aspx.cs | 13 +------------ .../ProcessControl/CheckManStatistics.aspx.cs | 2 +- .../InspectionManagementStatistics.aspx.cs | 4 ---- .../File/Word/CQMS/项目质量周报.doc | Bin 65966 -> 66867 bytes .../File/Word/CQMS/项目质量月报.doc | Bin 66134 -> 67055 bytes SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user | 2 +- SGGL/WebAPI/WebAPI.csproj.user | 2 +- 11 files changed, 17 insertions(+), 27 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_WH_2024-05-13-bwj.sql diff --git a/DataBase/版本日志/SGGLDB_WH_2024-05-13-bwj.sql b/DataBase/版本日志/SGGLDB_WH_2024-05-13-bwj.sql new file mode 100644 index 00000000..429e321b --- /dev/null +++ b/DataBase/版本日志/SGGLDB_WH_2024-05-13-bwj.sql @@ -0,0 +1,3 @@ + +update ProcessControl_InspectionManagement set IsOnceQualified=1 +go \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx index 1a926684..51eb19ad 100644 --- a/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx +++ b/SGGL/FineUIPro.Web/CQMS/Comprehensive/DataReceivingDoc.aspx @@ -85,7 +85,7 @@ - + diff --git a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReport.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReport.aspx.cs index 588b9c69..eb7cdab0 100644 --- a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReport.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReport.aspx.cs @@ -230,9 +230,8 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //更新书签内容 Document doc = new Aspose.Words.Document(newUrl); DocumentBuilder builder = new DocumentBuilder(doc); - - - + //builder.CellFormat.VerticalAlignment = CellVerticalAlignment.Center; + //builder.ParagraphFormat.Alignment = ParagraphAlignment.Center; #region 头部静态列 //业主单位 var unitsYz = (from x in db.Base_Unit @@ -344,13 +343,16 @@ namespace FineUIPro.Web.CQMS.ManageReportNew row.Cells.Add(CreateCell(item.TargetValue, doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.MonthPer, doc, table.FirstRow.Cells[4].CellFormat.Width)); row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[5].CellFormat.Width)); + table.Rows.Insert(numberIndex, row); - + numberIndex += 1; } //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); - + //table.Alignment = Aspose.Words.Tables.TableAlignment.Center; + //builder.ParagraphFormat.Alignment = ParagraphAlignment.Center; + #endregion #region 本月主要工作内容 diff --git a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx.cs index 8459a6b6..67bf69dc 100644 --- a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReportEdit.aspx.cs @@ -103,8 +103,8 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //加载所有专业 CNProfessionals = (from x in db.Base_CNProfessional where x.CNProfessionalId != BLL.Const.CNProfessionalConstructId - //&& x.CNProfessionalId != BLL.Const.ComprehensiveId - orderby x.SortIndex + && x.CNProfessionalId != BLL.Const.CNProfessionalHSEId + orderby x.SortIndex select new ProfessionalsClass { CNProfessionalId=x.CNProfessionalId, diff --git a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/WeekReportEdit.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/WeekReportEdit.aspx.cs index 0bbb6454..e9a5d952 100644 --- a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/WeekReportEdit.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/WeekReportEdit.aspx.cs @@ -105,7 +105,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //加载所有专业 CNProfessionals = (from x in db.Base_CNProfessional where x.CNProfessionalId != BLL.Const.CNProfessionalConstructId - //&& x.CNProfessionalId != BLL.Const.ComprehensiveId + && x.CNProfessionalId != BLL.Const.CNProfessionalHSEId orderby x.SortIndex select new ProfessionalsClass { @@ -600,17 +600,6 @@ namespace FineUIPro.Web.CQMS.ManageReportNew int Quantity1Sum = 0; int Quantity2Sum = 0; - //加载所有专业 - //var CNProfessionals = from x in db.Base_CNProfessional - // where x.CNProfessionalId != BLL.Const.CNProfessionalConstructId - // && x.CNProfessionalId != BLL.Const.ComprehensiveId - // orderby x.SortIndex - // select new - // { - // x.CNProfessionalId, - // x.ProfessionalName - // }; - foreach (var item in CNProfessionals) { diff --git a/SGGL/FineUIPro.Web/CQMS/ProcessControl/CheckManStatistics.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ProcessControl/CheckManStatistics.aspx.cs index 43d89ba3..5c3b48e2 100644 --- a/SGGL/FineUIPro.Web/CQMS/ProcessControl/CheckManStatistics.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ProcessControl/CheckManStatistics.aspx.cs @@ -46,7 +46,7 @@ namespace FineUIPro.Web.CQMS.ProcessControl /// public void BindGvInspectionManagement() { - //List StatisticsList = new List(); + StatisticsList = new List(); Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId); StartDate = Convert.ToDateTime(project.StartDate); EndDate = DateTime.Now; diff --git a/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionManagementStatistics.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionManagementStatistics.aspx.cs index 5044cf3c..e290e18e 100644 --- a/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionManagementStatistics.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ProcessControl/InspectionManagementStatistics.aspx.cs @@ -3,10 +3,6 @@ using System; using System.Collections.Generic; using System.IO; using System.Linq; -using System.Text; -using System.Web; -using System.Web.UI; -using System.Web.UI.WebControls; namespace FineUIPro.Web.CQMS.ProcessControl { diff --git a/SGGL/FineUIPro.Web/File/Word/CQMS/项目质量周报.doc b/SGGL/FineUIPro.Web/File/Word/CQMS/项目质量周报.doc index 97ea9d3edee1459b4627120bce8984f4a4fbb78a..6cfd48e9c5b06a96a7a0b465cff90473268faef0 100644 GIT binary patch delta 44239 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�{=r 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 ay*<*DkdTDHc^+wjNJvbmNB95U_5T3qp<&?w delta 43453 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 diff --git a/SGGL/FineUIPro.Web/File/Word/CQMS/项目质量月报.doc b/SGGL/FineUIPro.Web/File/Word/CQMS/项目质量月报.doc index 5bb595082a8887c5cee40cbaec241ea85a421ac1..bb2f07656edab79211185b1d9ff7a62d35ace175 100644 GIT binary patch delta 43465 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 - Release|Any CPU + Debug|Any CPU true false diff --git a/SGGL/WebAPI/WebAPI.csproj.user b/SGGL/WebAPI/WebAPI.csproj.user index bd497c6b..5fe155da 100644 --- a/SGGL/WebAPI/WebAPI.csproj.user +++ b/SGGL/WebAPI/WebAPI.csproj.user @@ -1,7 +1,7 @@  - Release|Any CPU + Debug|Any CPU true From c57b03d6654a7e46a617fd8967c7855106cf4e6d Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Mon, 27 May 2024 16:39:11 +0800 Subject: [PATCH 6/8] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../版本日志/SGGLDB_WH_2024-05-09-gaofei.sql | 338 +++++++++++++++++- SGGL/FineUIPro.Web/Web.config | 2 +- 2 files changed, 338 insertions(+), 2 deletions(-) diff --git a/DataBase/版本日志/SGGLDB_WH_2024-05-09-gaofei.sql b/DataBase/版本日志/SGGLDB_WH_2024-05-09-gaofei.sql index 9b651638..99a52678 100644 --- a/DataBase/版本日志/SGGLDB_WH_2024-05-09-gaofei.sql +++ b/DataBase/版本日志/SGGLDB_WH_2024-05-09-gaofei.sql @@ -1,2 +1,338 @@ alter table [dbo].[JDGL_MonthPlan] add SortIndex int null -GO \ No newline at end of file +GO + + +--ȡǰ˴ +ALTER PROCEDURE [dbo].[Sp_Project_GetToDoItems] + @projectId NVARCHAR(50)=NULL, + @userId NVARCHAR(200)=NULL +AS +/*ȡǰ˴*/ +BEGIN +SELECT HazardRegisterId AS DataId + ,'B6BE5FE0-CB84-47FF-A6C3-5AD9E1CCE079' AS MenuId + ,'ȫѲ' AS MenuName + ,register.RegisterDef AS Content + ,UserId + ,users.UserName + ,register.RegisterDate AS DataTime + ,CONVERT(varchar(100),register.RegisterDate, 23) AS DataTimeStr + ,'../HSSE/HiddenInspection/HiddenRectificationRectify.aspx?HazardRegisterId='+register.HazardRegisterId AS PCUrl +FROM HSSE_Hazard_HazardRegister AS register +LEFT JOIN Sys_User AS users ON users.UserId =@userId +WHERE register.ProjectId=@projectId AND +((register.states = '1' AND (register.ResponsibleMan =@userId OR register.CCManIds LIKE ('%'+@userId+'%') )) +) +UNION ALL + +SELECT HazardRegisterId AS DataId + ,'B6BE5FE0-CB84-47FF-A6C3-5AD9E1CCE079' AS MenuId + ,'ȫѲȷ' AS MenuName + ,register.RegisterDef AS Content + ,UserId + ,users.UserName + ,register.RegisterDate AS DataTime + ,CONVERT(varchar(100),register.RegisterDate, 23) AS DataTimeStr + ,'../HSSE/HiddenInspection/HiddenRectificationConfirm.aspx?HazardRegisterId='+register.HazardRegisterId AS PCUrl +FROM HSSE_Hazard_HazardRegister AS register +LEFT JOIN Sys_User AS users ON users.UserId =@userId +WHERE register.ProjectId=@projectId AND +register.states = '2' AND register.CheckManId =@userId + +UNION ALL +SELECT CheckControlCode AS DataId + ,'B3E99BD9-FDC7-4F15-8C3C-A7821AC9E306' AS MenuId + ,'Ѳ' AS MenuName + ,checkControl.QuestionDef AS Content + ,UserId + ,users.UserName + ,checkControl.CheckDate AS DataTime + ,CONVERT(varchar(100),checkControl.CheckDate, 23) AS DataTimeStr + ,'../CQMS/Check/ChecklistEdit.aspx?ToDo=ToDo&CheckControlCode='+checkControl.CheckControlCode AS PCUrl +FROM Check_CheckControl AS checkControl +LEFT JOIN Sys_User AS users ON users.UserId =@userId +WHERE checkControl.ProjectId=@projectId AND +checkControl.State != '7' AND checkControl.CheckControlCode in (select CheckControlCode from Check_CheckControlApprove approve where approve.ApproveType!='S' and approve.ApproveMan=@userId and approve.ApproveDate is null ) + +UNION ALL +SELECT GJSXID AS DataId + ,'0BEA2126-7A48-40EB-8E21-99148E91A22B' AS MenuId + ,'ؼ' AS MenuName + ,GJSX.Detail AS Content + ,users.UserId + ,users.UserName + ,GJSX.CreateDate AS DataTime + ,CONVERT(varchar(100),GJSX.CreateDate, 23) AS DataTimeStr + ,'../PZHGL/GJSX/GJSXListEdit.aspx?ToDo=ToDo&EditType=Edit&ID='+GJSXID AS PCUrl +FROM GJSX +LEFT JOIN Sys_User AS users ON users.UserId =@userId +WHERE GJSX.ProjectId=@projectId AND +GJSX.State != 0 AND (((select count(*) from GJSX_detail detail where detail.Progress_user=@userId and detail.GJSXID=GJSX.GJSXID)=0 +and (select count(*) from GJSX_Process process where process.UserId=@userId and process.GJSXID=GJSX.GJSXID)>0) +or (GJSX.User_Acceptance like '%'+@userId+'%' and (select count(*) from GJSX_detail detail where detail.GJSXID=GJSX.GJSXID)=(select count(*) from GJSX_Process process where process.GJSXID=GJSX.GJSXID)) +) + +UNION ALL +SELECT InspectionEquipmentId AS DataId + ,'6c2c1e5e-1812-4e1c-a683-7125518e28c7' AS MenuId + ,'豸ϱȷ' AS MenuName + ,Equipment.InspectionName AS Content + ,UserId + ,users.UserName + ,Equipment.InspectionDate AS DataTime + ,CONVERT(varchar(100),Equipment.InspectionDate, 23) AS DataTimeStr + ,'../CQMS/Comprehensive/InspectionEquipmentEdit.aspx?ToDo=ToDo&InspectionEquipmentId='+Equipment.InspectionEquipmentId AS PCUrl +FROM Comprehensive_InspectionEquipment AS Equipment +LEFT JOIN Sys_User AS users ON users.UserId =@userId +WHERE Equipment.ProjectId=@projectId and +Equipment.Status!='3' AND Equipment.InspectionEquipmentId in (select InspectionEquipmentId from Comprehensive_InspectionEquipmentApprove approve where approve.ApproveType!='S' and approve.ApproveMan=@userId and approve.ApproveDate is null ) +UNION ALL +SELECT InspectionPersonId AS DataId + ,'8ed133de-5899-4687-878a-20b1f5280f18' AS MenuId + ,'Աȷ' AS MenuName + ,Person.PersonName AS Content + ,UserId + ,users.UserName + ,Person.CompileDate AS DataTime + ,CONVERT(varchar(100),Person.CompileDate, 23) AS DataTimeStr + ,'../CQMS/Comprehensive/InspectionPersonEdit.aspx?ToDo=ToDo&InspectionPersonId='+Person.InspectionPersonId AS PCUrl +FROM Comprehensive_InspectionPerson AS Person +LEFT JOIN Sys_User AS users ON users.UserId =@userId +WHERE Person.ProjectId=@projectId and +Person.Status!='3' AND Person.InspectionPersonId in (select InspectionPersonId from Comprehensive_InspectionPersonApprove approve where approve.ApproveType!='S' and approve.ApproveMan=@userId and approve.ApproveDate is null ) +UNION ALL +SELECT InspectionMachineId AS DataId + ,'aa55fad1-6c51-43f5-8c99-3c6aaae79118' AS MenuId + ,'߱ȷ' AS MenuName + ,Machine.InspectionMachineName AS Content + ,UserId + ,users.UserName + ,Machine.CompileDate AS DataTime + ,CONVERT(varchar(100),Machine.CompileDate, 23) AS DataTimeStr + ,'../CQMS/Comprehensive/InspectionMachineEdit.aspx?ToDo=ToDo&InspectionMachineId='+Machine.InspectionMachineId AS PCUrl +FROM Comprehensive_InspectionMachine AS Machine +LEFT JOIN Sys_User AS users ON users.UserId =@userId +WHERE Machine.ProjectId=@projectId and +Machine.Status!='3' AND Machine.InspectionMachineId in (select InspectionMachineId from Comprehensive_InspectionMachineApprove approve where approve.ApproveType!='S' and approve.ApproveMan=@userId and approve.ApproveDate is null ) +UNION ALL +SELECT ConstructSolutionId AS DataId + ,'91C4BFDB-0A51-4992-99CC-EB4EC185593D' AS MenuId + ,'ʩ' AS MenuName + ,Solution.SolutionName AS Content + ,UserId + ,users.UserName + ,Solution.CompileDate AS DataTime + ,CONVERT(varchar(100),Solution.CompileDate, 23) AS DataTimeStr + ,'../CQMS/Solution/EditConstructSolution.aspx?ToDo=ToDo&ConstructSolutionId='+Solution.ConstructSolutionId AS PCUrl +FROM Solution_CQMSConstructSolution AS Solution +LEFT JOIN Sys_User AS users ON users.UserId =@userId +WHERE Solution.ProjectId=@projectId and +Solution.State!='3' +AND Solution.ConstructSolutionId in +(select top 1 ConstructSolutionId from ( +SELECT Solution_CQMSConstructSolutionApprove.* +FROM Solution_CQMSConstructSolutionApprove, +(SELECT MIN([order]) AS [order],ConstructSolutionId FROM Solution_CQMSConstructSolutionApprove where ApproveType!='S' and ApproveDate is null GROUP BY ConstructSolutionId )b +WHERE Solution_CQMSConstructSolutionApprove.[order] = b.[order] and Solution_CQMSConstructSolutionApprove.ConstructSolutionId = b.ConstructSolutionId + ) approve +where approve.ApproveMan=@userId ) + +UNION ALL +SELECT InspectionId AS DataId + ,'4781f467-35bf-4cf2-aaa4-7960a175eb61' AS MenuId + ,'֪ͨ' AS MenuName + ,InspectionManagement.AcceptanceSite AS Content + ,UserId + ,users.UserName + ,InspectionManagement.CompileDate AS DataTime + ,CONVERT(varchar(100),InspectionManagement.CompileDate, 23) AS DataTimeStr + ,'../CQMS/ProcessControl/InspectionNoticeEdit.aspx?View=View&InspectionId='+InspectionManagement.InspectionId AS PCUrl +FROM ProcessControl_InspectionManagement AS InspectionManagement +LEFT JOIN Sys_User AS users ON users.UserId =@userId +WHERE InspectionManagement.ProjectId=@projectId and +dateadd(day,3,InspectionManagement.CompileDate)>getdate() and InspectionManagement.AcceptanceCheckMan like '%'+@userId+'%' +UNION ALL +SELECT CheckSpecialId AS DataId + ,'1B08048F-93ED-4E84-AE65-DB7917EA2DFB' AS MenuId + ,'ר' AS MenuName + ,CheckItemSet.CheckItemName AS Content + ,UserId + ,users.UserName + ,CheckSpecial.CheckTime AS DataTime + ,CONVERT(varchar(100),CheckSpecial.CheckTime, 23) AS DataTimeStr + ,'../HSSE/Check/CheckSpecialView.aspx?CheckSpecialId='+CheckSpecial.CheckSpecialId AS PCUrl +FROM Check_CheckSpecial AS CheckSpecial +LEFT JOIN Sys_User AS users ON users.UserId =@userId +LEFT JOIN Technique_CheckItemSet AS CheckItemSet ON CheckItemSet.CheckItemSetId =CheckSpecial.CheckItemSetId +WHERE CheckSpecial.ProjectId=@projectId and +dateadd(day,3,CheckSpecial.CheckTime)>getdate() and CheckSpecial.PartInPersonIds like '%'+@userId+'%' +UNION ALL +SELECT CheckColligationId AS DataId + ,'C198EBA8-9E23-4654-92E1-09C61105C522' AS MenuId + ,'ۺϼ' AS MenuName + ,case CheckType when '0' then 'ܼ' when '1' then '¼' else '' end AS Content + ,users.UserId + ,users.UserName + ,CheckColligation.CheckTime AS DataTime + ,CONVERT(varchar(100),CheckColligation.CheckTime, 23) AS DataTimeStr + ,'../HSSE/Check/CheckColligationEdit.aspx?CheckColligationId='+CheckColligation.CheckColligationId AS PCUrl +FROM Check_CheckColligation AS CheckColligation +LEFT JOIN Sys_User AS users ON users.UserId =@userId +LEFT JOIN Sys_FlowOperate AS FlowOperate ON CheckColligation.CheckColligationId=FlowOperate.DataId +LEFT JOIN Sys_User AS OperateUser ON FlowOperate.OperaterId=OperateUser.UserId +WHERE CheckColligation.ProjectId=@projectId and FlowOperate.IsClosed <> 1 and FlowOperate.OperaterId=@userId +UNION ALL +SELECT PatrolPlanId AS DataId + ,'D256E5C8-DC76-4F4D-BABE-A253418823F4' AS MenuId + ,'Ѳ' AS MenuName + ,HazardListItem.HazardItems AS Content + ,UserId + ,users.UserName + ,PatrolPlan.LimitCheckDate AS DataTime + ,CONVERT(varchar(100),PatrolPlan.LimitCheckDate, 23) AS DataTimeStr + ,'../HSSE/Hazard/RoutingInspectionEdit.aspx?PatrolPlanId='+PatrolPlan.PatrolPlanId AS PCUrl +FROM Hazard_PatrolPlan AS PatrolPlan +LEFT JOIN Sys_User AS users ON users.UserId =@userId +LEFT JOIN Hazard_HazardSelectedItem AS HazardListItem on HazardListItem.HazardSelectedItemId=PatrolPlan.HazardSelectedItemId +WHERE HazardListItem.ProjectId=@projectId and +dateadd(day,-3,PatrolPlan.LimitCheckDate)=22 and (select COUNT(*) from JDGL_QuantityCompletion WHERE ProjectId=@projectId and DATENAME(year,GETDATE())=DATENAME(year,EndDate) and DATENAME(MONTH,GETDATE())=DATENAME(MONTH,EndDate))=0) +or (DATEADD(day,60,(select top 1 EndDate from JDGL_QuantityCompletion WHERE ProjectId=@projectId order by EndDate desc))=22 and +DATENAME(year,GETDATE())=DATENAME(year,MonthPlan.PlanDate) and DATENAME(MONTH,GETDATE())=DATENAME(MONTH,MonthPlan.PlanDate) + + +ORDER BY DataTime DESC +END + + + + + + + + + + + + + + +GO + + diff --git a/SGGL/FineUIPro.Web/Web.config b/SGGL/FineUIPro.Web/Web.config index 9fc55c34..f50b26d3 100644 --- a/SGGL/FineUIPro.Web/Web.config +++ b/SGGL/FineUIPro.Web/Web.config @@ -12,7 +12,7 @@ - + From 3c73800853d8ea4c6d680540663e942e19183685 Mon Sep 17 00:00:00 2001 From: gaofei1985 <181547018@qq.com> Date: Tue, 14 May 2024 09:03:31 +0800 Subject: [PATCH 7/8] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../版本日志/SGGLDB_WH_2024-05-11-gaofei.sql | 112 + .../1-4进度管理(Menu_JDGL).sql | 13 + SGGL/BLL/BLL.csproj | 1 + SGGL/BLL/BoSheng/BOSHENGMonitorService.cs | 2 +- SGGL/BLL/Common/Const.cs | 11 +- SGGL/BLL/JDGL/Check/WeekPlanService.cs | 122 ++ .../CQMS/ManageReportNew/MonthReport.aspx.cs | 1877 ++++++++++++----- .../File/Excel/DataIn/周进度计划导入模板.xls | Bin 0 -> 25088 bytes SGGL/FineUIPro.Web/FineUIPro.Web.csproj | 16 + SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user | 2 +- SGGL/FineUIPro.Web/JDGL/Check/WeekPlan.aspx | 114 + .../FineUIPro.Web/JDGL/Check/WeekPlan.aspx.cs | 177 ++ .../JDGL/Check/WeekPlan.aspx.designer.cs | 150 ++ SGGL/FineUIPro.Web/JDGL/Check/WeekPlanIn.aspx | 125 ++ .../JDGL/Check/WeekPlanIn.aspx.cs | 735 +++++++ .../JDGL/Check/WeekPlanIn.aspx.designer.cs | 204 ++ SGGL/FineUIPro.Web/Web.config | 2 +- .../InspectionSummary.aspx.cs | 15 +- SGGL/FineUIPro.Web/common/Menu_JDGL.xml | 1 + SGGL/FineUIPro.Web/common/mainMenu_CQMS.aspx | 16 +- SGGL/FineUIPro.Web/common/mainProject2.aspx | 8 +- SGGL/FineUIPro.Web/common/main_new.aspx | 6 +- SGGL/FineUIPro.Web/common/main_new1.aspx | 10 +- SGGL/FineUIPro.Web/index.aspx.cs | 2 + SGGL/Model/Model.cs | 640 ++++++ SGGL/WebAPI/WebAPI.csproj.user | 2 +- 26 files changed, 3821 insertions(+), 542 deletions(-) create mode 100644 DataBase/版本日志/SGGLDB_WH_2024-05-11-gaofei.sql create mode 100644 SGGL/BLL/JDGL/Check/WeekPlanService.cs create mode 100644 SGGL/FineUIPro.Web/File/Excel/DataIn/周进度计划导入模板.xls create mode 100644 SGGL/FineUIPro.Web/JDGL/Check/WeekPlan.aspx create mode 100644 SGGL/FineUIPro.Web/JDGL/Check/WeekPlan.aspx.cs create mode 100644 SGGL/FineUIPro.Web/JDGL/Check/WeekPlan.aspx.designer.cs create mode 100644 SGGL/FineUIPro.Web/JDGL/Check/WeekPlanIn.aspx create mode 100644 SGGL/FineUIPro.Web/JDGL/Check/WeekPlanIn.aspx.cs create mode 100644 SGGL/FineUIPro.Web/JDGL/Check/WeekPlanIn.aspx.designer.cs diff --git a/DataBase/版本日志/SGGLDB_WH_2024-05-11-gaofei.sql b/DataBase/版本日志/SGGLDB_WH_2024-05-11-gaofei.sql new file mode 100644 index 00000000..c12f4b7d --- /dev/null +++ b/DataBase/版本日志/SGGLDB_WH_2024-05-11-gaofei.sql @@ -0,0 +1,112 @@ + INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed) + VALUES('56A54B4B-BBA3-4249-9FFC-3A60DAC79059','ܽȼƻ','JDGL/Check/WeekPlan.aspx',52,'0','Menu_JDGL',0,1,1) + GO + INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) + VALUES('9371CFCF-E162-49FD-BC48-CE178E153F51','56A54B4B-BBA3-4249-9FFC-3A60DAC79059','',1) + INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) + VALUES('DC978D83-FC78-4A7E-888A-581082F0F70D','56A54B4B-BBA3-4249-9FFC-3A60DAC79059','޸',2) + INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) + VALUES('BE4B07C7-EFE7-47F1-BBF9-A60930F70BDD','56A54B4B-BBA3-4249-9FFC-3A60DAC79059','ɾ',3) + INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) + VALUES('A8102F40-6E06-49EB-9471-3FF4DC745226','56A54B4B-BBA3-4249-9FFC-3A60DAC79059','',4) + GO + + +CREATE TABLE [dbo].[JDGL_WeekPlan]( + [WeekPlanId] [nvarchar](50) NOT NULL, + [ProjectId] [nvarchar](50) NULL, + [WeekNo] [nvarchar](50) NULL, + [StartDate] [datetime] NULL, + [EndDate] [datetime] NULL, + [UnitWork] [nvarchar](50) NULL, + [Major] [nvarchar](50) NULL, + [WorkContent] [nvarchar](500) NULL, + [UnitId] [nvarchar](50) NULL, + [DutyPerson] [nvarchar](50) NULL, + [PlanDate] [datetime] NULL, + [IsOK] [bit] NULL, + [Remark] [nvarchar](200) NULL, + [CompileMan] [nvarchar](50) NULL, + [CompileDate] [datetime] NULL, + [SortIndex] [int] NULL, + CONSTRAINT [PK_JDGL_WeekPlan] PRIMARY KEY CLUSTERED +( + [WeekPlanId] ASC +)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] +) ON [PRIMARY] + +GO + +ALTER TABLE [dbo].[JDGL_WeekPlan] WITH CHECK ADD CONSTRAINT [FK_JDGL_WeekPlan_Base_Project] FOREIGN KEY([ProjectId]) +REFERENCES [dbo].[Base_Project] ([ProjectId]) +GO + +ALTER TABLE [dbo].[JDGL_WeekPlan] CHECK CONSTRAINT [FK_JDGL_WeekPlan_Base_Project] +GO + +ALTER TABLE [dbo].[JDGL_WeekPlan] WITH CHECK ADD CONSTRAINT [FK_JDGL_WeekPlan_Base_Unit] FOREIGN KEY([UnitId]) +REFERENCES [dbo].[Base_Unit] ([UnitId]) +GO + +ALTER TABLE [dbo].[JDGL_WeekPlan] CHECK CONSTRAINT [FK_JDGL_WeekPlan_Base_Unit] +GO + +ALTER TABLE [dbo].[JDGL_WeekPlan] WITH CHECK ADD CONSTRAINT [FK_JDGL_WeekPlan_Sys_User] FOREIGN KEY([DutyPerson]) +REFERENCES [dbo].[Sys_User] ([UserId]) +GO + +ALTER TABLE [dbo].[JDGL_WeekPlan] CHECK CONSTRAINT [FK_JDGL_WeekPlan_Sys_User] +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JDGL_WeekPlan', @level2type=N'COLUMN',@level2name=N'WeekPlanId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ĿId' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JDGL_WeekPlan', @level2type=N'COLUMN',@level2name=N'ProjectId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ܺ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JDGL_WeekPlan', @level2type=N'COLUMN',@level2name=N'WeekNo' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ʼ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JDGL_WeekPlan', @level2type=N'COLUMN',@level2name=N'StartDate' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JDGL_WeekPlan', @level2type=N'COLUMN',@level2name=N'EndDate' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'/λ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JDGL_WeekPlan', @level2type=N'COLUMN',@level2name=N'UnitWork' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'רҵ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JDGL_WeekPlan', @level2type=N'COLUMN',@level2name=N'Major' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JDGL_WeekPlan', @level2type=N'COLUMN',@level2name=N'WorkContent' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ελ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JDGL_WeekPlan', @level2type=N'COLUMN',@level2name=N'UnitId' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'廷' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JDGL_WeekPlan', @level2type=N'COLUMN',@level2name=N'DutyPerson' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ƻʱ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JDGL_WeekPlan', @level2type=N'COLUMN',@level2name=N'PlanDate' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'״̬' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JDGL_WeekPlan', @level2type=N'COLUMN',@level2name=N'IsOK' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ע' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JDGL_WeekPlan', @level2type=N'COLUMN',@level2name=N'Remark' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JDGL_WeekPlan', @level2type=N'COLUMN',@level2name=N'CompileMan' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JDGL_WeekPlan', @level2type=N'COLUMN',@level2name=N'CompileDate' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JDGL_WeekPlan', @level2type=N'COLUMN',@level2name=N'SortIndex' +GO + +EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ܽȼƻ' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'JDGL_WeekPlan' +GO + + diff --git a/DataBase/菜单初始化脚本/1-4进度管理(Menu_JDGL).sql b/DataBase/菜单初始化脚本/1-4进度管理(Menu_JDGL).sql index 5cacfbb3..b592cf6f 100644 --- a/DataBase/菜单初始化脚本/1-4进度管理(Menu_JDGL).sql +++ b/DataBase/菜单初始化脚本/1-4进度管理(Menu_JDGL).sql @@ -104,6 +104,19 @@ go VALUES('F136D1B4-A988-42E7-AD7C-4A246B440D03','94287B92-7E96-4B90-BC6F-DAF30AE3B314','保存',4) GO + INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed) + VALUES('56A54B4B-BBA3-4249-9FFC-3A60DAC79059','周进度计划','JDGL/Check/WeekPlan.aspx',52,'0','Menu_JDGL',0,1,1) + GO + INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) + VALUES('9371CFCF-E162-49FD-BC48-CE178E153F51','56A54B4B-BBA3-4249-9FFC-3A60DAC79059','增加',1) + INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) + VALUES('DC978D83-FC78-4A7E-888A-581082F0F70D','56A54B4B-BBA3-4249-9FFC-3A60DAC79059','修改',2) + INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) + VALUES('BE4B07C7-EFE7-47F1-BBF9-A60930F70BDD','56A54B4B-BBA3-4249-9FFC-3A60DAC79059','删除',3) + INSERT INTO dbo.Sys_ButtonToMenu(ButtonToMenuId,MenuId,ButtonName,SortIndex) + VALUES('A8102F40-6E06-49EB-9471-3FF4DC745226','56A54B4B-BBA3-4249-9FFC-3A60DAC79059','保存',4) + GO + --INSERT INTO dbo.Sys_Menu(MenuId,MenuName,Url,SortIndex,SuperMenu,MenuType,IsOffice,IsEnd,IsUsed) --VALUES('27C1D718-2DC0-42A5-96C0-F7A2D0DBC5F6','进度测量标志(权重)设置','',20,'0','Menu_JDGL',0,0,1) --GO diff --git a/SGGL/BLL/BLL.csproj b/SGGL/BLL/BLL.csproj index 073bd892..6ef3d483 100644 --- a/SGGL/BLL/BLL.csproj +++ b/SGGL/BLL/BLL.csproj @@ -587,6 +587,7 @@ + diff --git a/SGGL/BLL/BoSheng/BOSHENGMonitorService.cs b/SGGL/BLL/BoSheng/BOSHENGMonitorService.cs index 30bf9248..bc5b5f4d 100644 --- a/SGGL/BLL/BoSheng/BOSHENGMonitorService.cs +++ b/SGGL/BLL/BoSheng/BOSHENGMonitorService.cs @@ -47,7 +47,7 @@ namespace BLL { try { - var getDataList = (from x in Funs.DB.Sys_DataExchange where x.IsUpdate == false select x).Take(100).ToList(); + var getDataList = (from x in Funs.DB.Sys_DataExchange where x.IsUpdate == false select x).Take(500).ToList(); if (getDataList.Count() > 0) { var getDataList0 = getDataList.Where(x => x.MessageText.Contains("\"Type\":0")).ToList(); diff --git a/SGGL/BLL/Common/Const.cs b/SGGL/BLL/Common/Const.cs index 1aa5cf7a..bae108bb 100644 --- a/SGGL/BLL/Common/Const.cs +++ b/SGGL/BLL/Common/Const.cs @@ -3152,6 +3152,10 @@ namespace BLL /// public const string MonthPlanTemplateUrl = "File\\Excel\\DataIn\\月度计划情况导入模板.xls"; /// + /// 周进度计划导入模版文件原始的虚拟路径 + /// + public const string WeekPlanTemplateUrl = "File\\Excel\\DataIn\\周进度计划导入模板.xls"; + /// /// 仪表索引 /// public const string InstrumentUrl = "File\\Excel\\TestRun\\仪表索引模板.xlsx"; @@ -5767,10 +5771,15 @@ namespace BLL public const string RectificationMeasureMenuId = "0629BAB1-DB1C-42CE-A333-49F3813617D7"; /// - /// 工程量完成情况 + /// 月度计划情况 /// public const string MonthPlanMenuId = "94287B92-7E96-4B90-BC6F-DAF30AE3B314"; + /// + /// 周进度计划 + /// + public const string WeekPlanMenuId = "56A54B4B-BBA3-4249-9FFC-3A60DAC79059"; + /// /// 进度完成情况 /// diff --git a/SGGL/BLL/JDGL/Check/WeekPlanService.cs b/SGGL/BLL/JDGL/Check/WeekPlanService.cs new file mode 100644 index 00000000..12deb96d --- /dev/null +++ b/SGGL/BLL/JDGL/Check/WeekPlanService.cs @@ -0,0 +1,122 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Text; +using System.Threading.Tasks; + +namespace BLL +{ + /// + /// 周计划情况 + /// + public class WeekPlanService + { + public static Model.SGGLDB db = Funs.DB; + + /// + /// 根据主键获取周计划情况 + /// + /// + /// + public static Model.JDGL_WeekPlan GetWeekPlanById(string WeekPlanId) + { + return Funs.DB.JDGL_WeekPlan.FirstOrDefault(e => e.WeekPlanId == WeekPlanId); + } + + /// + /// 根据主键获取周计划情况 + /// + /// + /// + public static List GetWeekPlansByWeeks(string projectId, string weekNo) + { + return (from x in Funs.DB.JDGL_WeekPlan where x.ProjectId == projectId && x.WeekNo == weekNo select x).ToList(); + } + + /// + /// 添加周计划情况 + /// + /// + public static void AddWeekPlan(Model.JDGL_WeekPlan WeekPlan) + { + Model.SGGLDB db = Funs.DB; + Model.JDGL_WeekPlan newWeekPlan = new Model.JDGL_WeekPlan + { + WeekPlanId = WeekPlan.WeekPlanId, + ProjectId = WeekPlan.ProjectId, + WeekNo = WeekPlan.WeekNo, + StartDate = WeekPlan.StartDate, + EndDate = WeekPlan.EndDate, + UnitWork = WeekPlan.UnitWork, + Major = WeekPlan.Major, + WorkContent = WeekPlan.WorkContent, + UnitId = WeekPlan.UnitId, + DutyPerson = WeekPlan.DutyPerson, + PlanDate = WeekPlan.PlanDate, + IsOK = WeekPlan.IsOK, + Remark = WeekPlan.Remark, + CompileMan = WeekPlan.CompileMan, + CompileDate = WeekPlan.CompileDate, + SortIndex = WeekPlan.SortIndex, + }; + db.JDGL_WeekPlan.InsertOnSubmit(newWeekPlan); + db.SubmitChanges(); + } + + /// + /// 修改周计划情况 + /// + /// + public static void UpdateWeekPlan(Model.JDGL_WeekPlan WeekPlan) + { + Model.SGGLDB db = Funs.DB; + Model.JDGL_WeekPlan newWeekPlan = db.JDGL_WeekPlan.FirstOrDefault(e => e.WeekPlanId == WeekPlan.WeekPlanId); + if (newWeekPlan != null) + { + newWeekPlan.UnitWork = WeekPlan.UnitWork; + newWeekPlan.Major = WeekPlan.Major; + newWeekPlan.WorkContent = WeekPlan.WorkContent; + newWeekPlan.UnitId = WeekPlan.UnitId; + newWeekPlan.DutyPerson = WeekPlan.DutyPerson; + newWeekPlan.PlanDate = WeekPlan.PlanDate; + newWeekPlan.IsOK = WeekPlan.IsOK; + newWeekPlan.Remark = WeekPlan.Remark; + newWeekPlan.CompileMan = WeekPlan.CompileMan; + newWeekPlan.CompileDate = WeekPlan.CompileDate; + newWeekPlan.SortIndex = WeekPlan.SortIndex; + + db.SubmitChanges(); + } + } + + /// + /// 根据主键删除周计划情况 + /// + /// + public static void DeleteWeekPlanByWeekPlanId(string WeekPlanId) + { + Model.SGGLDB db = Funs.DB; + var q = (from x in db.JDGL_WeekPlan where x.WeekPlanId == WeekPlanId select x).FirstOrDefault(); + if (q != null) + { + db.JDGL_WeekPlan.DeleteOnSubmit(q); + db.SubmitChanges(); + } + } + + /// + /// 根据主键删除周计划情况 + /// + /// + public static void DeleteAllWeekPlan(string projectId, string weekNo) + { + Model.SGGLDB db = Funs.DB; + var q = from x in db.JDGL_WeekPlan where x.ProjectId == projectId && x.WeekNo == weekNo select x; + if (q != null) + { + db.JDGL_WeekPlan.DeleteAllOnSubmit(q); + db.SubmitChanges(); + } + } + } +} diff --git a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReport.aspx.cs b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReport.aspx.cs index 588b9c69..e990e507 100644 --- a/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReport.aspx.cs +++ b/SGGL/FineUIPro.Web/CQMS/ManageReportNew/MonthReport.aspx.cs @@ -152,7 +152,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew * @param doc Document对象 * @return */ - public static Cell CreateCell(String value, Document doc, double cellWidth, string cellMerge = "",string CenterPage="") + public static Cell CreateCell(String value, Document doc, double cellWidth, string cellMerge = "", string CenterPage = "") { Cell cell = new Cell(doc); Paragraph p = new Paragraph(doc); @@ -177,7 +177,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //序号 value = " " + value; } - + p.AppendChild(new Run(doc, value)); @@ -217,10 +217,10 @@ namespace FineUIPro.Web.CQMS.ManageReportNew var endDate = Convert.ToDateTime(weekModel.EndDate); //获取project var pModel = db.Base_Project.FirstOrDefault(x => x.ProjectId == weekModel.ProjectId); - var urlHz = startDate.ToString("yyyyMMdd")+"-" + var urlHz = startDate.ToString("yyyyMMdd") + "-" + endDate.ToString("yyyyMMdd"); - newUrl = uploadfilepath.Replace("项目质量月报", pModel.ShortName + "项目质量月报(第"+ weekModel.SortId + "期)"+ urlHz); + newUrl = uploadfilepath.Replace("项目质量月报", pModel.ShortName + "项目质量月报(第" + weekModel.SortId + "期)" + urlHz); if (File.Exists(newUrl)) { @@ -242,9 +242,10 @@ namespace FineUIPro.Web.CQMS.ManageReportNew orderby x.UnitName select x).FirstOrDefault(); - Bookmark bkmark = doc.Range.Bookmarks["username"]; - if (bkmark != null) { - + Bookmark bkmark = doc.Range.Bookmarks["username"]; + if (bkmark != null) + { + if (unitsYz != null) { bkmark.Text = unitsYz.UnitName; @@ -256,14 +257,14 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //} } - bkmark= doc.Range.Bookmarks["projectNo"]; - if (bkmark!=null) + bkmark = doc.Range.Bookmarks["projectNo"]; + if (bkmark != null) { bkmark.Text = pModel.ProjectCode; } bkmark = doc.Range.Bookmarks["createdate"]; - if (bkmark!=null) + if (bkmark != null) { bkmark.Text = weekModel.CreateDate.ToString().Split(' ')[0].Replace('/', '.'); } @@ -275,7 +276,8 @@ namespace FineUIPro.Web.CQMS.ManageReportNew } bkmark = doc.Range.Bookmarks["quamanagername"]; - if (bkmark != null) { + if (bkmark != null) + { //var zlName = ""; ////根据项目获取质量经理 //var puserList = db.Project_ProjectUser.Where(x => x.ProjectId == weekModel.ProjectId && x.RoleId.Contains(BLL.Const.QAManager)).ToList(); @@ -297,19 +299,19 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { var sdate = Convert.ToDateTime(weekModel.StartDate); var edate = Convert.ToDateTime(weekModel.EndDate); - bkmark.Text = sdate.Year+"年"+ sdate.Month +"月"+ sdate.Day+"日至"+ + bkmark.Text = sdate.Year + "年" + sdate.Month + "月" + sdate.Day + "日至" + edate.Year + "年" + edate.Month + "月" + edate.Day + "日"; } bkmark = doc.Range.Bookmarks["reportindex"]; - if (bkmark!=null) + if (bkmark != null) { bkmark.Text = weekModel.SortId; } bkmark = doc.Range.Bookmarks["fromcode"]; //fromcode,项目号-RM-PQM-顺序号 - if (bkmark!=null) + if (bkmark != null) { bkmark.Text = pModel.ProjectCode + "-RM-PQM-" + weekModel.SortId; } @@ -323,12 +325,13 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //跳过页眉的表头 while (isYm) { - if (table.Range.Text.Substring(0, 2)!="序号") + if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } - else{ + else + { isYm = false; } } @@ -338,14 +341,14 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width,"","1")); + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); row.Cells.Add(CreateCell(item.ProStage, doc, table.FirstRow.Cells[1].CellFormat.Width)); row.Cells.Add(CreateCell(item.ProDescribe, doc, table.FirstRow.Cells[2].CellFormat.Width)); row.Cells.Add(CreateCell(item.TargetValue, doc, table.FirstRow.Cells[3].CellFormat.Width)); row.Cells.Add(CreateCell(item.MonthPer, doc, table.FirstRow.Cells[4].CellFormat.Width)); row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[5].CellFormat.Width)); table.Rows.Insert(numberIndex, row); - + numberIndex += 1; } //自动设置表格样式 @@ -359,7 +362,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew bkmark = doc.Range.Bookmarks["Content1"]; if (bkmark != null) { - bkmark.Text= txtReportList.FirstOrDefault(x => x.ContentType == "0").ContentText; + bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "0").ContentText; } bkmark = doc.Range.Bookmarks["Content2"]; @@ -379,10 +382,10 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "8").ContentText; } - + #endregion - var ContuructionAllList = db.Report_Construction_Plan.Where(x => x.ReportId == Id).OrderBy(x=>x.UnitOrMajor).ToList(); + var ContuructionAllList = db.Report_Construction_Plan.Where(x => x.ReportId == Id).OrderBy(x => x.UnitOrMajor).ToList(); #region 3.施工方案及检验试验计划审批情况 @@ -459,7 +462,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew } } numberIndex = 1; - int? num1 = 0, num2 = 0, num3=0; + int? num1 = 0, num2 = 0, num3 = 0; foreach (var item in wdsgfaList) { //创建行 @@ -473,7 +476,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew table.Rows.Insert(numberIndex, row); num1 += item.Quantity1; num2 += item.Quantity2; - num3+= item.Quantity3; + num3 += item.Quantity3; numberIndex += 1; } //自动设置表格样式 @@ -575,11 +578,14 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Quantity1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Quantity2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); + if (table.FirstRow != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.Quantity1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + row.Cells.Add(CreateCell(item.Quantity2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); + } table.Rows.Insert(numberIndex, row); num1 += item.Quantity1; num2 += item.Quantity2; @@ -590,11 +596,14 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建合计 //创建行 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); + if (table.FirstRow != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); + } table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 @@ -628,11 +637,14 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Quantity1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Quantity2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); + if (table.FirstRow != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width)); + row.Cells.Add(CreateCell(item.Quantity1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + row.Cells.Add(CreateCell(item.Quantity2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); + } table.Rows.Insert(numberIndex, row); num1 += item.Quantity1; num2 += item.Quantity2; @@ -643,11 +655,14 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建合计 //创建行 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); + if (table.FirstRow != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); + } table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 @@ -668,9 +683,11 @@ namespace FineUIPro.Web.CQMS.ManageReportNew } } int i = 1; - var cNProfessionals = from x in Funs.DB.Base_CNProfessional where x.CNProfessionalId != BLL.Const.CNProfessionalConstructId - && x.CNProfessionalId != BLL.Const.ComprehensiveId - orderby x.SortIndex select x; + var cNProfessionals = from x in Funs.DB.Base_CNProfessional + where x.CNProfessionalId != BLL.Const.CNProfessionalConstructId +&& x.CNProfessionalId != BLL.Const.ComprehensiveId + orderby x.SortIndex + select x; foreach (var item in cNProfessionals) { //专业下所有集合 @@ -695,7 +712,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew Quantity5Sum += Convert.ToInt32(checkStatisc.OneOKRate); Quantity6Sum += Convert.ToInt32(checkStatisc.TotalOneOKRate); } - if (StatisticsList.Count>0) + if (StatisticsList.Count > 0) { isYm = true; whileIndex += 1; @@ -719,14 +736,35 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell((numberIndex-1).ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell((numberIndex - 1).ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); row.Cells.Add(CreateCell(item.WorkName, doc, table.Rows[0].Cells[1].CellFormat.Width)); - row.Cells.Add(CreateCell(item.CheckNum.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TotalCheckNum.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.OKNum.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TotalOKNum.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - row.Cells.Add(CreateCell(item.OneOKRate.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TotalOneOKRate.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + if (table.Rows[1] != null) + { + if (table.Rows[1].Cells[2] != null) + { + row.Cells.Add(CreateCell(item.CheckNum.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + row.Cells.Add(CreateCell(item.TotalCheckNum.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + row.Cells.Add(CreateCell(item.OKNum.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + row.Cells.Add(CreateCell(item.TotalOKNum.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + row.Cells.Add(CreateCell(item.OneOKRate.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + row.Cells.Add(CreateCell(item.TotalOneOKRate.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, row); numberIndex += 1; @@ -738,13 +776,33 @@ namespace FineUIPro.Web.CQMS.ManageReportNew Row rowhj = new Row(doc); rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(Quantity1Sum.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(Quantity2Sum.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(Quantity3Sum.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(Quantity4Sum.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(Quantity5Sum.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(Quantity6Sum.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); - + if (table.Rows[1] != null) + { + if (table.Rows[1].Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(Quantity1Sum.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(Quantity2Sum.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + rowhj.Cells.Add(CreateCell(Quantity3Sum.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + rowhj.Cells.Add(CreateCell(Quantity4Sum.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + rowhj.Cells.Add(CreateCell(Quantity5Sum.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + rowhj.Cells.Add(CreateCell(Quantity6Sum.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 @@ -759,11 +817,11 @@ namespace FineUIPro.Web.CQMS.ManageReportNew #region 7.1合格焊工管理情况 - Quantity1Sum = 0; Quantity2Sum = 0; Quantity3Sum = 0; Quantity4Sum = 0; Quantity5Sum = 0; Quantity6Sum = 0; + Quantity1Sum = 0; Quantity2Sum = 0; Quantity3Sum = 0; Quantity4Sum = 0; Quantity5Sum = 0; Quantity6Sum = 0; int Quantity7Sum = 0, Quantity8Sum = 0; - + List PassWelderList = new List(); - + if (project != null) { if (project.StartDate != null) @@ -777,7 +835,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew where x.ProjectId == this.CurrUser.LoginProjectId && x.UnitType == BLL.Const.ProjectUnitType_2 orderby y.UnitCode select new { x.UnitId, y.UnitName }; - + foreach (var item in units) { @@ -835,7 +893,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew Quantity7Sum += passWelderStatisc.OtherMountGuard; Quantity8Sum += passWelderStatisc.OtherTotal; } - if (PassWelderList.Count>0) + if (PassWelderList.Count > 0) { isYm = true; whileIndex += 1; @@ -861,15 +919,41 @@ namespace FineUIPro.Web.CQMS.ManageReportNew Row row = new Row(doc); row.Cells.Add(CreateCell((numberIndex - 1).ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); row.Cells.Add(CreateCell(item.UnitName, doc, table.Rows[0].Cells[1].CellFormat.Width)); - - row.Cells.Add(CreateCell(item.PipeMountGuard.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.PipeTotal.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.SteelStructureMountGuard.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.SteelStructureTotal.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - row.Cells.Add(CreateCell(item.EquipmentMountGuard.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - row.Cells.Add(CreateCell(item.EquipmentTotal.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); - row.Cells.Add(CreateCell(item.OtherMountGuard.ToString(), doc, table.Rows[1].Cells[8].CellFormat.Width)); - row.Cells.Add(CreateCell(item.OtherTotal.ToString(), doc, table.Rows[1].Cells[9].CellFormat.Width)); + if (table.Rows[1] != null) + { + if (table.Rows[1].Cells[2] != null) + { + row.Cells.Add(CreateCell(item.PipeMountGuard.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + row.Cells.Add(CreateCell(item.PipeTotal.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + row.Cells.Add(CreateCell(item.SteelStructureMountGuard.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + row.Cells.Add(CreateCell(item.SteelStructureTotal.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + row.Cells.Add(CreateCell(item.EquipmentMountGuard.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + row.Cells.Add(CreateCell(item.EquipmentTotal.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + if (table.Rows[1].Cells[8] != null) + { + row.Cells.Add(CreateCell(item.OtherMountGuard.ToString(), doc, table.Rows[1].Cells[8].CellFormat.Width)); + } + if (table.Rows[1].Cells[9] != null) + { + row.Cells.Add(CreateCell(item.OtherTotal.ToString(), doc, table.Rows[1].Cells[9].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, row); numberIndex += 1; @@ -881,14 +965,41 @@ namespace FineUIPro.Web.CQMS.ManageReportNew Row rowhj = new Row(doc); rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(Quantity1Sum.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(Quantity2Sum.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(Quantity3Sum.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(Quantity4Sum.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(Quantity5Sum.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(Quantity6Sum.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(Quantity7Sum.ToString(), doc, table.Rows[1].Cells[8].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(Quantity8Sum.ToString(), doc, table.Rows[1].Cells[9].CellFormat.Width)); + if (table.Rows[1] != null) + { + if (table.Rows[1].Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(Quantity1Sum.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(Quantity2Sum.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + rowhj.Cells.Add(CreateCell(Quantity3Sum.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + rowhj.Cells.Add(CreateCell(Quantity4Sum.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + rowhj.Cells.Add(CreateCell(Quantity5Sum.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + rowhj.Cells.Add(CreateCell(Quantity6Sum.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + if (table.Rows[1].Cells[8] != null) + { + rowhj.Cells.Add(CreateCell(Quantity7Sum.ToString(), doc, table.Rows[1].Cells[8].CellFormat.Width)); + } + if (table.Rows[1].Cells[9] != null) + { + rowhj.Cells.Add(CreateCell(Quantity8Sum.ToString(), doc, table.Rows[1].Cells[9].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, rowhj); @@ -925,10 +1036,22 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Quantity1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Quantity2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); + if (table.FirstRow != null) + { + if (table.FirstRow.Cells[1] != null) + { + row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width)); + } + if (table.FirstRow.Cells[2] != null) + { + row.Cells.Add(CreateCell(item.Quantity1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + row.Cells.Add(CreateCell(item.Quantity2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); + } table.Rows.Insert(numberIndex, row); num1 += item.Quantity1; num2 += item.Quantity2; @@ -940,16 +1063,29 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row rowhj = new Row(doc); rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); + if (table.FirstRow != null) + { + if (table.FirstRow.Cells[1] != null) + { + rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); + } + if (table.FirstRow.Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); + } table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } - else { + else + { isYm = true; numberIndex = 1; whileIndex += 1; @@ -1169,7 +1305,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); - + //如果是第一列,或者 if (numberIndex == 1 || Unitname != item.CreateMan) @@ -1178,25 +1314,48 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { pageCount += 1; } - row.Cells.Add(CreateCell((pageCount).ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "0", "1")); - row.Cells.Add(CreateCell(item.CreateMan, doc, table.Rows[0].Cells[1].CellFormat.Width, "0")); - + if (table.Rows[0] != null) + { + row.Cells.Add(CreateCell((pageCount).ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "0", "1")); + row.Cells.Add(CreateCell(item.CreateMan, doc, table.Rows[0].Cells[1].CellFormat.Width, "0")); + } + Unitname = item.CreateMan; } else { - row.Cells.Add(CreateCell((pageCount).ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "1", "1")); - row.Cells.Add(CreateCell(item.CreateMan, doc, table.Rows[0].Cells[1].CellFormat.Width, "1")); + if (table.Rows[0] != null) + { + row.Cells.Add(CreateCell((pageCount).ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "1", "1")); + row.Cells.Add(CreateCell(item.CreateMan, doc, table.Rows[0].Cells[1].CellFormat.Width, "1")); + } Unitname = item.CreateMan; } - - row.Cells.Add(CreateCell(item.ProfessionalName.ToString(), doc, table.Rows[0].Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthQuantity.ToString(), doc, table.Rows[0].Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TotalQuantity.ToString(), doc, table.Rows[0].Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthRate.ToString(), doc, table.Rows[0].Cells[5].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TotalRate.ToString(), doc, table.Rows[0].Cells[6].CellFormat.Width)); + if (table.Rows[0] != null) + { + if (table.Rows[0].Cells[2] != null) + { + row.Cells.Add(CreateCell(item.ProfessionalName.ToString(), doc, table.Rows[0].Cells[2].CellFormat.Width)); + } + if (table.Rows[0].Cells[3] != null) + { + row.Cells.Add(CreateCell(item.MonthQuantity.ToString(), doc, table.Rows[0].Cells[3].CellFormat.Width)); + } + if (table.Rows[0].Cells[4] != null) + { + row.Cells.Add(CreateCell(item.TotalQuantity.ToString(), doc, table.Rows[0].Cells[4].CellFormat.Width)); + } + if (table.Rows[0].Cells[5] != null) + { + row.Cells.Add(CreateCell(item.MonthRate.ToString(), doc, table.Rows[0].Cells[5].CellFormat.Width)); + } + if (table.Rows[0].Cells[6] != null) + { + row.Cells.Add(CreateCell(item.TotalRate.ToString(), doc, table.Rows[0].Cells[6].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, row); numberIndex += 1; @@ -1204,27 +1363,46 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { pageCount += 1; } - + } //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); //创建合计 //创建行 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(totalNum0.ToString(), doc, table.Rows[0].Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(totalNum1.ToString(), doc, table.Rows[0].Cells[4].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[5].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[6].CellFormat.Width)); + if (table.Rows[0] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); + if (table.Rows[0].Cells[2] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[2].CellFormat.Width)); + } + if (table.Rows[0].Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(totalNum0.ToString(), doc, table.Rows[0].Cells[3].CellFormat.Width)); + } + if (table.Rows[0].Cells[4] != null) + { + rowhj.Cells.Add(CreateCell(totalNum1.ToString(), doc, table.Rows[0].Cells[4].CellFormat.Width)); + } + if (table.Rows[0].Cells[5] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[5].CellFormat.Width)); + } + if (table.Rows[0].Cells[6] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[6].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } - else { + else + { isYm = true; numberIndex = 1; whileIndex += 1; @@ -1244,15 +1422,18 @@ namespace FineUIPro.Web.CQMS.ManageReportNew } //创建合计 Row rowhj = new Row(doc); - double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; - double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; - double numcount2 = table.Rows[0].Cells[2].CellFormat.Width; - double numcount3 = table.Rows[0].Cells[3].CellFormat.Width; - double numcount4 = table.Rows[0].Cells[4].CellFormat.Width; - double numcount5 = table.Rows[0].Cells[5].CellFormat.Width; - double numcount6 = table.Rows[0].Cells[6].CellFormat.Width; - double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5 + numcount6; - rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + if (table.Rows[0] != null) + { + double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; + double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; + double numcount2 = table.Rows[0].Cells[2].CellFormat.Width; + double numcount3 = table.Rows[0].Cells[3].CellFormat.Width; + double numcount4 = table.Rows[0].Cells[4].CellFormat.Width; + double numcount5 = table.Rows[0].Cells[5].CellFormat.Width; + double numcount6 = table.Rows[0].Cells[6].CellFormat.Width; + double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5 + numcount6; + rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + } table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 @@ -1288,12 +1469,27 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Quantity1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Quantity2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.QuaRate.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[5].CellFormat.Width)); + if (table.FirstRow != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.UnitOrMajor, doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + row.Cells.Add(CreateCell(item.Quantity1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + row.Cells.Add(CreateCell(item.Quantity2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + row.Cells.Add(CreateCell(item.QuaRate.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + if (table.FirstRow.Cells[5] != null) + { + row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[5].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, row); num1 += item.Quantity1; num2 += item.Quantity2; @@ -1304,18 +1500,34 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建合计 //创建行 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[5].CellFormat.Width)); + if (table.FirstRow != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + if (table.FirstRow.Cells[5] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[5].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } - else { + else + { isYm = true; numberIndex = 1; whileIndex += 1; @@ -1335,14 +1547,21 @@ namespace FineUIPro.Web.CQMS.ManageReportNew } //创建合计 Row rowhj = new Row(doc); - double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; - double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; - double numcount2 = table.Rows[0].Cells[2].CellFormat.Width; - double numcount3 = table.Rows[0].Cells[3].CellFormat.Width; - double numcount4 = table.Rows[0].Cells[4].CellFormat.Width; - double numcount5 = table.Rows[0].Cells[5].CellFormat.Width; - double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5; - rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + if (table.Rows[0] != null) + { + double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; + double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; + double numcount2 = table.Rows[0].Cells[2].CellFormat.Width; + double numcount3 = table.Rows[0].Cells[3].CellFormat.Width; + double numcount4 = table.Rows[0].Cells[4].CellFormat.Width; + double numcount5 = 0; + if (table.Rows[0].Cells[5] != null) + { + numcount5 = table.Rows[0].Cells[5].CellFormat.Width; + } + double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5; + rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + } table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 @@ -1380,11 +1599,23 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); + if (table.FirstRow != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, row); num1 += item.MonthsCount; num2 += item.ProjectCount; @@ -1394,11 +1625,23 @@ namespace FineUIPro.Web.CQMS.ManageReportNew table.AutoFit(AutoFitBehavior.FixedColumnWidths); //创建合计 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); + if (table.FirstRow != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 @@ -1426,11 +1669,26 @@ namespace FineUIPro.Web.CQMS.ManageReportNew } //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width)); - row.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[1].CellFormat.Width)); - row.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); + if (table.FirstRow != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width)); + if (table.FirstRow.Cells[1] != null) + { + row.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[1].CellFormat.Width)); + } + if (table.FirstRow.Cells[2] != null) + { + row.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + row.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + row.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, row); } @@ -1468,21 +1726,38 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.Rows[0].Cells[1].CellFormat.Width)); - // 合并第一行的前两个单元格 - table.Rows[0].Cells[0].CellFormat.VerticalMerge = CellMerge.First; - table.Rows[1].Cells[0].CellFormat.VerticalMerge = CellMerge.Previous; - - row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - - row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - - row.Cells.Add(CreateCell(item.RectificationRate.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); - + if (table.Rows[0] != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.ContentName, doc, table.Rows[0].Cells[1].CellFormat.Width)); + // 合并第一行的前两个单元格 + table.Rows[0].Cells[0].CellFormat.VerticalMerge = CellMerge.First; + table.Rows[1].Cells[0].CellFormat.VerticalMerge = CellMerge.Previous; + if (table.Rows[1].Cells[2] != null) + { + row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + row.Cells.Add(CreateCell(item.RectificationRate.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + row.Cells.Add(CreateCell(item.Remarks.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex + 1, row); num1 += item.MonthsCount; @@ -1514,15 +1789,38 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建合计 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num5.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num6.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); - + if (table.Rows[0] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); + } + if (table.Rows[1] != null) + { + if (table.Rows[1].Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + rowhj.Cells.Add(CreateCell(num5.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + rowhj.Cells.Add(CreateCell(num6.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 @@ -1549,16 +1847,26 @@ namespace FineUIPro.Web.CQMS.ManageReportNew } //创建合计 Row rowhj = new Row(doc); - double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; - double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; - double numcount2 = table.Rows[1].Cells[2].CellFormat.Width; - double numcount3 = table.Rows[1].Cells[3].CellFormat.Width; - double numcount4 = table.Rows[1].Cells[4].CellFormat.Width; - double numcount5 = table.Rows[1].Cells[5].CellFormat.Width; - double numcount6 = table.Rows[1].Cells[6].CellFormat.Width; - double numcount7 = table.Rows[1].Cells[7].CellFormat.Width; - double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5 + numcount6 + numcount7; - rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + if (table.Rows[0] != null) + { + double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; + double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; + double numcount2 = table.Rows[1].Cells[2].CellFormat.Width; + double numcount3 = table.Rows[1].Cells[3].CellFormat.Width; + double numcount4 = table.Rows[1].Cells[4].CellFormat.Width; + double numcount5 = table.Rows[1].Cells[5].CellFormat.Width; + double numcount6 = 0, numcount7 = 0; + if (table.Rows[1].Cells[6] != null) + { + numcount6 = table.Rows[1].Cells[6].CellFormat.Width; + } + if (table.Rows[1].Cells[7] != null) + { + numcount7 = table.Rows[1].Cells[7].CellFormat.Width; + } + double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5 + numcount6 + numcount7; + rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + } table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 @@ -1595,22 +1903,38 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.Rows[0].Cells[1].CellFormat.Width)); - // 合并第一行的前两个单元格 - table.Rows[0].Cells[0].CellFormat.VerticalMerge = CellMerge.First; - table.Rows[1].Cells[0].CellFormat.VerticalMerge = CellMerge.Previous; - - row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - - row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - - row.Cells.Add(CreateCell(item.RectificationRate.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); - + if (table.Rows[0] != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.ContentName, doc, table.Rows[0].Cells[1].CellFormat.Width)); + // 合并第一行的前两个单元格 + table.Rows[0].Cells[0].CellFormat.VerticalMerge = CellMerge.First; + table.Rows[1].Cells[0].CellFormat.VerticalMerge = CellMerge.Previous; + if (table.Rows[1].Cells[2] != null) + { + row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + row.Cells.Add(CreateCell(item.RectificationRate.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + row.Cells.Add(CreateCell(item.Remarks.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex + 1, row); num1 += item.MonthsCount; @@ -1642,14 +1966,38 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建合计 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num5.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num6.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + if (table.Rows[0] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); + } + if (table.Rows[1] != null) + { + if (table.Rows[1].Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + rowhj.Cells.Add(CreateCell(num5.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + rowhj.Cells.Add(CreateCell(num6.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex + 1, rowhj); @@ -1677,16 +2025,26 @@ namespace FineUIPro.Web.CQMS.ManageReportNew } //创建合计 Row rowhj = new Row(doc); - double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; - double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; - double numcount2 = table.Rows[1].Cells[2].CellFormat.Width; - double numcount3 = table.Rows[1].Cells[3].CellFormat.Width; - double numcount4 = table.Rows[1].Cells[4].CellFormat.Width; - double numcount5 = table.Rows[1].Cells[5].CellFormat.Width; - double numcount6 = table.Rows[1].Cells[6].CellFormat.Width; - double numcount7 = table.Rows[1].Cells[7].CellFormat.Width; - double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5 + numcount6 + numcount7; - rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + if (table.Rows[0] != null) + { + double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; + double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; + double numcount2 = table.Rows[1].Cells[2].CellFormat.Width; + double numcount3 = table.Rows[1].Cells[3].CellFormat.Width; + double numcount4 = table.Rows[1].Cells[4].CellFormat.Width; + double numcount5 = table.Rows[1].Cells[5].CellFormat.Width; + double numcount6 = 0, numcount7 = 0; + if (table.Rows[1].Cells[6] != null) + { + numcount6 = table.Rows[1].Cells[6].CellFormat.Width; + } + if (table.Rows[1].Cells[7] != null) + { + numcount7 = table.Rows[1].Cells[7].CellFormat.Width; + } + double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5 + numcount6 + numcount7; + rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + } table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 @@ -1723,22 +2081,41 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.Rows[0].Cells[1].CellFormat.Width)); - // 合并第一行的前两个单元格 - table.Rows[0].Cells[0].CellFormat.VerticalMerge = CellMerge.First; - table.Rows[1].Cells[0].CellFormat.VerticalMerge = CellMerge.Previous; - - row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - - row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - - row.Cells.Add(CreateCell(item.RectificationRate.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); - + if (table.Rows[0] != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.ContentName, doc, table.Rows[0].Cells[1].CellFormat.Width)); + // 合并第一行的前两个单元格 + table.Rows[0].Cells[0].CellFormat.VerticalMerge = CellMerge.First; + } + if (table.Rows[1] != null) + { + table.Rows[1].Cells[0].CellFormat.VerticalMerge = CellMerge.Previous; + if (table.Rows[1].Cells[2] != null) + { + row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + row.Cells.Add(CreateCell(item.RectificationRate.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + row.Cells.Add(CreateCell(item.Remarks.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex + 1, row); num1 += item.MonthsCount; @@ -1770,15 +2147,38 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建合计 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num5.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num6.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); - + if (table.Rows[0] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); + } + if (table.Rows[1] != null) + { + if (table.Rows[1].Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + rowhj.Cells.Add(CreateCell(num5.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + rowhj.Cells.Add(CreateCell(num6.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 @@ -1805,16 +2205,26 @@ namespace FineUIPro.Web.CQMS.ManageReportNew } //创建合计 Row rowhj = new Row(doc); - double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; - double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; - double numcount2 = table.Rows[1].Cells[2].CellFormat.Width; - double numcount3 = table.Rows[1].Cells[3].CellFormat.Width; - double numcount4 = table.Rows[1].Cells[4].CellFormat.Width; - double numcount5 = table.Rows[1].Cells[5].CellFormat.Width; - double numcount6 = table.Rows[1].Cells[6].CellFormat.Width; - double numcount7 = table.Rows[1].Cells[7].CellFormat.Width; - double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5 + numcount6 + numcount7; - rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + if (table.Rows[0] != null && table.Rows[0] != null) + { + double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; + double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; + double numcount2 = table.Rows[1].Cells[2].CellFormat.Width; + double numcount3 = table.Rows[1].Cells[3].CellFormat.Width; + double numcount4 = table.Rows[1].Cells[4].CellFormat.Width; + double numcount5 = table.Rows[1].Cells[5].CellFormat.Width; + double numcount6 = 0, numcount7 = 0; + if (table.Rows[1].Cells[6] != null) + { + numcount6 = table.Rows[1].Cells[6].CellFormat.Width; + } + if (table.Rows[1].Cells[7] != null) + { + numcount7 = table.Rows[1].Cells[7].CellFormat.Width; + } + double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5 + numcount6 + numcount7; + rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + } table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 @@ -1851,22 +2261,41 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.Rows[0].Cells[1].CellFormat.Width)); - // 合并第一行的前两个单元格 - table.Rows[0].Cells[0].CellFormat.VerticalMerge = CellMerge.First; - table.Rows[1].Cells[0].CellFormat.VerticalMerge = CellMerge.Previous; - - row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - - row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - - row.Cells.Add(CreateCell(item.RectificationRate.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); - + if (table.Rows[0] != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.ContentName, doc, table.Rows[0].Cells[1].CellFormat.Width)); + // 合并第一行的前两个单元格 + table.Rows[0].Cells[0].CellFormat.VerticalMerge = CellMerge.First; + } + if (table.Rows[1] != null) + { + table.Rows[1].Cells[0].CellFormat.VerticalMerge = CellMerge.Previous; + if (table.Rows[1].Cells[2] != null) + { + row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + row.Cells.Add(CreateCell(item.RectificationRate.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + row.Cells.Add(CreateCell(item.Remarks.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex + 1, row); num1 += item.MonthsCount; @@ -1898,15 +2327,38 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建合计 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num5.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num6.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); - + if (table.Rows[0] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); + } + if (table.Rows[1] != null) + { + if (table.Rows[1].Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + rowhj.Cells.Add(CreateCell(num5.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + rowhj.Cells.Add(CreateCell(num6.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 @@ -1933,16 +2385,26 @@ namespace FineUIPro.Web.CQMS.ManageReportNew } //创建合计 Row rowhj = new Row(doc); - double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; - double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; - double numcount2 = table.Rows[1].Cells[2].CellFormat.Width; - double numcount3 = table.Rows[1].Cells[3].CellFormat.Width; - double numcount4 = table.Rows[1].Cells[4].CellFormat.Width; - double numcount5 = table.Rows[1].Cells[5].CellFormat.Width; - double numcount6 = table.Rows[1].Cells[6].CellFormat.Width; - double numcount7 = table.Rows[1].Cells[7].CellFormat.Width; - double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5 + numcount6 + numcount7; - rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + if (table.Rows[0] != null && table.Rows[1] != null) + { + double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; + double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; + double numcount2 = table.Rows[1].Cells[2].CellFormat.Width; + double numcount3 = table.Rows[1].Cells[3].CellFormat.Width; + double numcount4 = table.Rows[1].Cells[4].CellFormat.Width; + double numcount5 = table.Rows[1].Cells[5].CellFormat.Width; + double numcount6 = 0, numcount7 = 0; + if (table.Rows[1].Cells[6] != null) + { + numcount6 = table.Rows[1].Cells[6].CellFormat.Width; + } + if (table.Rows[1].Cells[7] != null) + { + numcount7 = table.Rows[1].Cells[7].CellFormat.Width; + } + double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5 + numcount6 + numcount7; + rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + } table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 @@ -1979,22 +2441,38 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.Rows[0].Cells[1].CellFormat.Width)); - // 合并第一行的前两个单元格 - table.Rows[0].Cells[0].CellFormat.VerticalMerge = CellMerge.First; - table.Rows[1].Cells[0].CellFormat.VerticalMerge = CellMerge.Previous; - - row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - - row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - - row.Cells.Add(CreateCell(item.RectificationRate.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); - + if (table.Rows[0] != null && table.Rows[1] != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.ContentName, doc, table.Rows[0].Cells[1].CellFormat.Width)); + // 合并第一行的前两个单元格 + table.Rows[0].Cells[0].CellFormat.VerticalMerge = CellMerge.First; + table.Rows[1].Cells[0].CellFormat.VerticalMerge = CellMerge.Previous; + if (table.Rows[1].Cells[2] != null) + { + row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + row.Cells.Add(CreateCell(item.RectificationRate.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + row.Cells.Add(CreateCell(item.Remarks.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex + 1, row); num1 += item.MonthsCount; @@ -2026,15 +2504,35 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建合计 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num5.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num6.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); - + if (table.Rows[0] != null && table.Rows[1] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); + if (table.Rows[1].Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + rowhj.Cells.Add(CreateCell(num5.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + rowhj.Cells.Add(CreateCell(num6.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 @@ -2061,16 +2559,26 @@ namespace FineUIPro.Web.CQMS.ManageReportNew } //创建合计 Row rowhj = new Row(doc); - double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; - double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; - double numcount2 = table.Rows[1].Cells[2].CellFormat.Width; - double numcount3 = table.Rows[1].Cells[3].CellFormat.Width; - double numcount4 = table.Rows[1].Cells[4].CellFormat.Width; - double numcount5 = table.Rows[1].Cells[5].CellFormat.Width; - double numcount6 = table.Rows[1].Cells[6].CellFormat.Width; - double numcount7 = table.Rows[1].Cells[7].CellFormat.Width; - double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5 + numcount6 + numcount7; - rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + if (table.Rows[0] != null && table.Rows[1] != null) + { + double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; + double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; + double numcount2 = table.Rows[1].Cells[2].CellFormat.Width; + double numcount3 = table.Rows[1].Cells[3].CellFormat.Width; + double numcount4 = table.Rows[1].Cells[4].CellFormat.Width; + double numcount5 = table.Rows[1].Cells[5].CellFormat.Width; + double numcount6 = 0, numcount7 = 0; + if (table.Rows[1].Cells[6] != null) + { + numcount6 = table.Rows[1].Cells[6].CellFormat.Width; + } + if (table.Rows[1].Cells[7] != null) + { + numcount7 = table.Rows[1].Cells[7].CellFormat.Width; + } + double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5 + numcount6 + numcount7; + rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + } table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 @@ -2107,22 +2615,38 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.Rows[0].Cells[1].CellFormat.Width)); - // 合并第一行的前两个单元格 - table.Rows[0].Cells[0].CellFormat.VerticalMerge = CellMerge.First; - table.Rows[1].Cells[0].CellFormat.VerticalMerge = CellMerge.Previous; - - row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - - row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - - row.Cells.Add(CreateCell(item.RectificationRate.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); - + if (table.Rows[0] != null && table.Rows[1] != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.ContentName, doc, table.Rows[0].Cells[1].CellFormat.Width)); + // 合并第一行的前两个单元格 + table.Rows[0].Cells[0].CellFormat.VerticalMerge = CellMerge.First; + table.Rows[1].Cells[0].CellFormat.VerticalMerge = CellMerge.Previous; + if (table.Rows[1].Cells[2] != null) + { + row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + row.Cells.Add(CreateCell(item.RectificationRate.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + row.Cells.Add(CreateCell(item.Remarks.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex + 1, row); num1 += item.MonthsCount; @@ -2154,15 +2678,35 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建合计 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num5.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num6.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); - + if (table.Rows[0] != null && table.Rows[1] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); + if (table.Rows[1].Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + rowhj.Cells.Add(CreateCell(num5.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + rowhj.Cells.Add(CreateCell(num6.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 @@ -2189,16 +2733,26 @@ namespace FineUIPro.Web.CQMS.ManageReportNew } //创建合计 Row rowhj = new Row(doc); - double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; - double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; - double numcount2 = table.Rows[1].Cells[2].CellFormat.Width; - double numcount3 = table.Rows[1].Cells[3].CellFormat.Width; - double numcount4 = table.Rows[1].Cells[4].CellFormat.Width; - double numcount5 = table.Rows[1].Cells[5].CellFormat.Width; - double numcount6 = table.Rows[1].Cells[6].CellFormat.Width; - double numcount7 = table.Rows[1].Cells[7].CellFormat.Width; - double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5 + numcount6 + numcount7; - rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + if (table.Rows[0] != null && table.Rows[1] != null) + { + double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; + double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; + double numcount2 = table.Rows[1].Cells[2].CellFormat.Width; + double numcount3 = table.Rows[1].Cells[3].CellFormat.Width; + double numcount4 = table.Rows[1].Cells[4].CellFormat.Width; + double numcount5 = table.Rows[1].Cells[5].CellFormat.Width; + double numcount6 = 0, numcount7 = 0; + if (table.Rows[1].Cells[6] != null) + { + numcount6 = table.Rows[1].Cells[6].CellFormat.Width; + } + if (table.Rows[1].Cells[7] != null) + { + numcount7 = table.Rows[1].Cells[7].CellFormat.Width; + } + double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5 + numcount6 + numcount7; + rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + } table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 @@ -2235,22 +2789,38 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.Rows[0].Cells[1].CellFormat.Width)); - // 合并第一行的前两个单元格 - table.Rows[0].Cells[0].CellFormat.VerticalMerge = CellMerge.First; - table.Rows[1].Cells[0].CellFormat.VerticalMerge = CellMerge.Previous; - - row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - - row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - - row.Cells.Add(CreateCell(item.RectificationRate.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); - + if (table.Rows[0] != null && table.Rows[1] != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.Rows[0].Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.ContentName, doc, table.Rows[0].Cells[1].CellFormat.Width)); + // 合并第一行的前两个单元格 + table.Rows[0].Cells[0].CellFormat.VerticalMerge = CellMerge.First; + table.Rows[1].Cells[0].CellFormat.VerticalMerge = CellMerge.Previous; + if (table.Rows[1].Cells[2] != null) + { + row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + row.Cells.Add(CreateCell(item.RectificationRate.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + row.Cells.Add(CreateCell(item.Remarks.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex + 1, row); num1 += item.MonthsCount; @@ -2282,15 +2852,35 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建合计 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num5.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num6.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); - + if (table.Rows[0] != null && table.Rows[1] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.Rows[0].Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.Rows[0].Cells[1].CellFormat.Width)); + if (table.Rows[1].Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.Rows[1].Cells[2].CellFormat.Width)); + } + if (table.Rows[1].Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.Rows[1].Cells[3].CellFormat.Width)); + } + if (table.Rows[1].Cells[4] != null) + { + rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.Rows[1].Cells[4].CellFormat.Width)); + } + if (table.Rows[1].Cells[5] != null) + { + rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.Rows[1].Cells[5].CellFormat.Width)); + } + if (table.Rows[1].Cells[6] != null) + { + rowhj.Cells.Add(CreateCell(num5.ToString(), doc, table.Rows[1].Cells[6].CellFormat.Width)); + } + if (table.Rows[1].Cells[7] != null) + { + rowhj.Cells.Add(CreateCell(num6.ToString(), doc, table.Rows[1].Cells[7].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 @@ -2317,16 +2907,26 @@ namespace FineUIPro.Web.CQMS.ManageReportNew } //创建合计 Row rowhj = new Row(doc); - double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; - double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; - double numcount2 = table.Rows[1].Cells[2].CellFormat.Width; - double numcount3 = table.Rows[1].Cells[3].CellFormat.Width; - double numcount4 = table.Rows[1].Cells[4].CellFormat.Width; - double numcount5 = table.Rows[1].Cells[5].CellFormat.Width; - double numcount6 = table.Rows[1].Cells[6].CellFormat.Width; - double numcount7 = table.Rows[1].Cells[7].CellFormat.Width; - double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5 + numcount6 + numcount7; - rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + if (table.Rows[0] != null && table.Rows[1] != null) + { + double numcount0 = table.Rows[0].Cells[0].CellFormat.Width; + double numcount1 = table.Rows[0].Cells[1].CellFormat.Width; + double numcount2 = table.Rows[1].Cells[2].CellFormat.Width; + double numcount3 = table.Rows[1].Cells[3].CellFormat.Width; + double numcount4 = table.Rows[1].Cells[4].CellFormat.Width; + double numcount5 = table.Rows[1].Cells[5].CellFormat.Width; + double numcount6 = 0, numcount7 = 0; + if (table.Rows[1].Cells[6] != null) + { + numcount6 = table.Rows[1].Cells[6].CellFormat.Width; + } + if (table.Rows[1].Cells[7] != null) + { + numcount7 = table.Rows[1].Cells[7].CellFormat.Width; + } + double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4 + numcount5 + numcount6 + numcount7; + rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); + } table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 @@ -2374,11 +2974,23 @@ namespace FineUIPro.Web.CQMS.ManageReportNew } //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); - row.Cells.Add(CreateCell(Convert.ToString(item.RectificationRate), doc, table.FirstRow.Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(Convert.ToString(item.TotationRate), doc, table.FirstRow.Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); + if (table.FirstRow != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + row.Cells.Add(CreateCell(Convert.ToString(item.RectificationRate), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + row.Cells.Add(CreateCell(Convert.ToString(item.TotationRate), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, row); //num1 += MonthsCountstring; //num2 += ProjectCountstring; @@ -2413,11 +3025,23 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建合计 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(QuantitySum1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(QuantitySum2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); + if (table.FirstRow != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(QuantitySum1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(QuantitySum2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 @@ -2454,12 +3078,27 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[5].CellFormat.Width)); + if (table.FirstRow != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + if (table.FirstRow.Cells[5] != null) + { + row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[5].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, row); num1 += item.MonthsCount; num2 += item.ProjectCount; @@ -2471,12 +3110,27 @@ namespace FineUIPro.Web.CQMS.ManageReportNew //创建合计 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[5].CellFormat.Width)); + if (table.FirstRow != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + if (table.FirstRow.Cells[5] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[5].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 @@ -2511,12 +3165,27 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[5].CellFormat.Width)); + if (table.FirstRow != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + if (table.FirstRow.Cells[5] != null) + { + row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[5].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, row); num3 += item.TotalNoBackCount; num1 += item.MonthsCount; @@ -2527,12 +3196,27 @@ namespace FineUIPro.Web.CQMS.ManageReportNew table.AutoFit(AutoFitBehavior.FixedColumnWidths); //创建合计 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[5].CellFormat.Width)); + if (table.FirstRow != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + if (table.FirstRow.Cells[5] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[5].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 @@ -2567,12 +3251,27 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[5].CellFormat.Width)); + if (table.FirstRow != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + if (table.FirstRow.Cells[5] != null) + { + row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[5].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, row); num1 += item.MonthsCount; num2 += item.ProjectCount; @@ -2583,12 +3282,27 @@ namespace FineUIPro.Web.CQMS.ManageReportNew table.AutoFit(AutoFitBehavior.FixedColumnWidths); //创建合计 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[5].CellFormat.Width)); + if (table.FirstRow != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + if (table.FirstRow.Cells[5] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[5].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 @@ -2624,12 +3338,27 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.RectificationRate.ToString(), doc, table.FirstRow.Cells[5].CellFormat.Width)); + if (table.FirstRow != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + if (table.FirstRow.Cells[5] != null) + { + row.Cells.Add(CreateCell(item.RectificationRate.ToString(), doc, table.FirstRow.Cells[5].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, row); num1 += item.MonthsCount; num2 += item.ProjectCount; @@ -2650,12 +3379,27 @@ namespace FineUIPro.Web.CQMS.ManageReportNew table.AutoFit(AutoFitBehavior.FixedColumnWidths); //创建合计 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.FirstRow.Cells[5].CellFormat.Width)); + if (table.FirstRow != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + if (table.FirstRow.Cells[5] != null) + { + rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.FirstRow.Cells[5].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 @@ -2690,12 +3434,27 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.RectificationRate, doc, table.FirstRow.Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[5].CellFormat.Width)); + if (table.FirstRow != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + row.Cells.Add(CreateCell(item.RectificationRate, doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + if (table.FirstRow.Cells[5] != null) + { + row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[5].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, row); num1 += item.MonthsCount; num2 += item.ProjectCount; @@ -2705,12 +3464,27 @@ namespace FineUIPro.Web.CQMS.ManageReportNew table.AutoFit(AutoFitBehavior.FixedColumnWidths); //创建合计 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[5].CellFormat.Width)); + if (table.FirstRow != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + if (table.FirstRow.Cells[5] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[5].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 @@ -2745,11 +3519,23 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); + if (table.FirstRow != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, row); num1 += item.MonthsCount; num2 += item.ProjectCount; @@ -2759,11 +3545,23 @@ namespace FineUIPro.Web.CQMS.ManageReportNew table.AutoFit(AutoFitBehavior.FixedColumnWidths); //创建合计 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); + if (table.FirstRow != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 @@ -2798,12 +3596,27 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[5].CellFormat.Width)); + if (table.FirstRow != null) + { + row.Cells.Add(CreateCell(numberIndex.ToString(), doc, table.FirstRow.Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.ContentName, doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + row.Cells.Add(CreateCell(item.MonthsCount.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + row.Cells.Add(CreateCell(item.ProjectCount.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + row.Cells.Add(CreateCell(item.MonthsBackCount.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + if (table.FirstRow.Cells[5] != null) + { + row.Cells.Add(CreateCell(item.TotalNoBackCount.ToString(), doc, table.FirstRow.Cells[5].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, row); num1 += item.MonthsCount; num2 += item.ProjectCount; @@ -2815,12 +3628,27 @@ namespace FineUIPro.Web.CQMS.ManageReportNew table.AutoFit(AutoFitBehavior.FixedColumnWidths); //创建合计 Row rowhj = new Row(doc); - rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); - rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); - rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.FirstRow.Cells[5].CellFormat.Width)); + if (table.FirstRow != null) + { + rowhj.Cells.Add(CreateCell("", doc, table.FirstRow.Cells[0].CellFormat.Width)); + rowhj.Cells.Add(CreateCell("合计", doc, table.FirstRow.Cells[1].CellFormat.Width)); + if (table.FirstRow.Cells[2] != null) + { + rowhj.Cells.Add(CreateCell(num1.ToString(), doc, table.FirstRow.Cells[2].CellFormat.Width)); + } + if (table.FirstRow.Cells[3] != null) + { + rowhj.Cells.Add(CreateCell(num2.ToString(), doc, table.FirstRow.Cells[3].CellFormat.Width)); + } + if (table.FirstRow.Cells[4] != null) + { + rowhj.Cells.Add(CreateCell(num3.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); + } + if (table.FirstRow.Cells[5] != null) + { + rowhj.Cells.Add(CreateCell(num4.ToString(), doc, table.FirstRow.Cells[5].CellFormat.Width)); + } + } table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 @@ -2852,12 +3680,27 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex18_1.ToString(), doc, table18_1.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitId, doc, table18_1.FirstRow.Cells[1].CellFormat.Width)); - row.Cells.Add(CreateCell(item.ProblemDesrioption, doc, table18_1.FirstRow.Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TreatmentMeasures, doc, table18_1.FirstRow.Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.ProcessingResults, doc, table18_1.FirstRow.Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remark, doc, table18_1.FirstRow.Cells[5].CellFormat.Width)); + if (table18_1.FirstRow != null) + { + row.Cells.Add(CreateCell(numberIndex18_1.ToString(), doc, table18_1.FirstRow.Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.UnitId, doc, table18_1.FirstRow.Cells[1].CellFormat.Width)); + if (table18_1.FirstRow.Cells[2] != null) + { + row.Cells.Add(CreateCell(item.ProblemDesrioption, doc, table18_1.FirstRow.Cells[2].CellFormat.Width)); + } + if (table18_1.FirstRow.Cells[3] != null) + { + row.Cells.Add(CreateCell(item.TreatmentMeasures, doc, table18_1.FirstRow.Cells[3].CellFormat.Width)); + } + if (table18_1.FirstRow.Cells[4] != null) + { + row.Cells.Add(CreateCell(item.ProcessingResults, doc, table18_1.FirstRow.Cells[4].CellFormat.Width)); + } + if (table18_1.FirstRow.Cells[5] != null) + { + row.Cells.Add(CreateCell(item.Remark, doc, table18_1.FirstRow.Cells[5].CellFormat.Width)); + } + } table18_1.Rows.Insert(numberIndex18_1, row); numberIndex18_1 += 1; @@ -2889,12 +3732,27 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex18_2.ToString(), doc, table18_2.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.UnitId, doc, table18_2.FirstRow.Cells[1].CellFormat.Width)); - row.Cells.Add(CreateCell(item.ProblemDesrioption, doc, table18_2.FirstRow.Cells[2].CellFormat.Width)); - row.Cells.Add(CreateCell(item.TreatmentMeasures, doc, table18_2.FirstRow.Cells[3].CellFormat.Width)); - row.Cells.Add(CreateCell(item.ProcessingResults, doc, table18_2.FirstRow.Cells[4].CellFormat.Width)); - row.Cells.Add(CreateCell(item.Remark, doc, table18_2.FirstRow.Cells[5].CellFormat.Width)); + if (table18_2.FirstRow != null) + { + row.Cells.Add(CreateCell(numberIndex18_2.ToString(), doc, table18_2.FirstRow.Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.UnitId, doc, table18_2.FirstRow.Cells[1].CellFormat.Width)); + if (table18_2.FirstRow.Cells[2] != null) + { + row.Cells.Add(CreateCell(item.ProblemDesrioption, doc, table18_2.FirstRow.Cells[2].CellFormat.Width)); + } + if (table18_2.FirstRow.Cells[3] != null) + { + row.Cells.Add(CreateCell(item.TreatmentMeasures, doc, table18_2.FirstRow.Cells[3].CellFormat.Width)); + } + if (table18_2.FirstRow.Cells[4] != null) + { + row.Cells.Add(CreateCell(item.ProcessingResults, doc, table18_2.FirstRow.Cells[4].CellFormat.Width)); + } + if (table18_2.FirstRow.Cells[5] != null) + { + row.Cells.Add(CreateCell(item.Remark, doc, table18_2.FirstRow.Cells[5].CellFormat.Width)); + } + } table18_2.Rows.Insert(numberIndex18_2, row); numberIndex18_2 += 1; @@ -2927,8 +3785,11 @@ namespace FineUIPro.Web.CQMS.ManageReportNew { //创建行 Row row = new Row(doc); - row.Cells.Add(CreateCell(numberIndex19.ToString(), doc, table19.FirstRow.Cells[0].CellFormat.Width, "", "1")); - row.Cells.Add(CreateCell(item.NextQualityControlContent, doc, table19.FirstRow.Cells[1].CellFormat.Width)); + if (table19.FirstRow != null) + { + row.Cells.Add(CreateCell(numberIndex19.ToString(), doc, table19.FirstRow.Cells[0].CellFormat.Width, "", "1")); + row.Cells.Add(CreateCell(item.NextQualityControlContent, doc, table19.FirstRow.Cells[1].CellFormat.Width)); + } table19.Rows.Insert(numberIndex19, row); numberIndex19 += 1; @@ -3105,7 +3966,7 @@ namespace FineUIPro.Web.CQMS.ManageReportNew if (bkmark != null) { bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "23-1").ContentText; - } + } bkmark = doc.Range.Bookmarks["ImageContent2"]; if (bkmark != null) diff --git a/SGGL/FineUIPro.Web/File/Excel/DataIn/周进度计划导入模板.xls b/SGGL/FineUIPro.Web/File/Excel/DataIn/周进度计划导入模板.xls new file mode 100644 index 0000000000000000000000000000000000000000..7d83766c40e083189165f6293a35b8a61e33ab0b GIT binary patch literal 25088 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 I{0~9@2aRF3fdBvi literal 0 HcmV?d00001 diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj index d76f0f88..dacec2ee 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj @@ -1403,6 +1403,8 @@ + + @@ -13922,6 +13924,20 @@ UndergroundPipeCompletionIn.aspx + + WeekPlan.aspx + ASPXCodeBehind + + + WeekPlan.aspx + + + WeekPlanIn.aspx + ASPXCodeBehind + + + WeekPlanIn.aspx + EarnedValueCurve.aspx ASPXCodeBehind diff --git a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user index 9e91deff..63ca13cc 100644 --- a/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user +++ b/SGGL/FineUIPro.Web/FineUIPro.Web.csproj.user @@ -1,7 +1,7 @@  - Debug|Any CPU + Release|Any CPU true false diff --git a/SGGL/FineUIPro.Web/JDGL/Check/WeekPlan.aspx b/SGGL/FineUIPro.Web/JDGL/Check/WeekPlan.aspx new file mode 100644 index 00000000..3d59cd90 --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/WeekPlan.aspx @@ -0,0 +1,114 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WeekPlan.aspx.cs" Inherits="FineUIPro.Web.JDGL.Check.WeekPlan" %> + + + + + + 周进度计划 + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/SGGL/FineUIPro.Web/JDGL/Check/WeekPlan.aspx.cs b/SGGL/FineUIPro.Web/JDGL/Check/WeekPlan.aspx.cs new file mode 100644 index 00000000..2484cb80 --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/WeekPlan.aspx.cs @@ -0,0 +1,177 @@ +using System; +using System.Collections.Generic; +using System.Linq; +using System.Web; +using System.Web.UI; +using System.Web.UI.WebControls; +using System.Data; +using System.Data.SqlClient; +using BLL; +using Newtonsoft.Json.Linq; + +namespace FineUIPro.Web.JDGL.Check +{ + public partial class WeekPlan : PageBase + { + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + GetButtonPower(); + btnNew.OnClientClick = Window1.GetShowReference("WeekPlanEdit.aspx") + "return false;"; + this.txtWeeks.Text = string.Format("{0:yyyy-MM}", DateTime.Now); + BindGrid(); + } + } + + #region 获取按钮权限 + /// + /// 获取按钮权限 + /// + /// + /// + private void GetButtonPower() + { + if (Request.Params["value"] == BLL.Const._Null) + { + return; + } + var buttonList = BLL.CommonService.GetAllButtonList(this.CurrUser.LoginProjectId, this.CurrUser.UserId, BLL.Const.WeekPlanMenuId); + if (buttonList.Count() > 0) + { + if (buttonList.Contains(BLL.Const.BtnSave)) + { + this.btnNew.Hidden = false; + this.btnModify.Hidden = false; + this.btnMenuDel.Hidden = false; + } + } + } + #endregion + + protected void btnModify_Click(object sender, EventArgs e) + { + Window1.Title = "录入"; + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WeekPlanEdit.aspx?Weeks={0}", this.txtWeeks.Text, "编辑 - "))); + } + + /// + /// 加载Grid + /// + private void BindGrid() + { + string strSql = @"select mp.*,u.UnitName,us.UserName as DutyPersonName,uw.UnitWorkName,cn.ProfessionalName,case mp.IsOK when 1 then '已完成' when 0 then '未完成' else '' end as IsOKStr from [dbo].[JDGL_WeekPlan] mp +left join Base_Unit u on u.UnitId=mp.UnitId +left join Sys_User us on us.UserId=mp.DutyPerson +left join WBS_UnitWork uw on uw.UnitWorkId=mp.UnitWork +left join Base_CNProfessional cn on cn.CNProfessionalId=mp.Major +where mp.ProjectId=@ProjectId and mp.WeekNo=@WeekNo order by mp.SortIndex"; + List listStr = new List(); + listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); + listStr.Add(new SqlParameter("@WeekNo", string.Format("{0:yyyy-MM-dd}", Convert.ToDateTime(this.txtWeeks.Text.Trim() + "-01")))); + SqlParameter[] parameter = listStr.ToArray(); + DataTable tb = SQLHelper.GetDataTableRunText(strSql, parameter); + Grid1.RecordCount = tb.Rows.Count; + //tb = GetFilteredTable(Grid1.FilteredData, tb); + var table = this.GetPagedDataTable(Grid1, tb); + Grid1.DataSource = table; + Grid1.DataBind(); + } + + #region 月份选择事件 + /// + /// 月份选择事件 + /// + /// + /// + protected void txtWeeks_TextChanged(object sender, EventArgs e) + { + BindGrid(); + } + #endregion + + #region 保存按钮 + /// + /// 保存按钮 + /// + /// + /// + protected void btnSave_Click(object sender, EventArgs e) + { + if (this.Grid1.Rows.Count > 0) + { + JArray mergedData = Grid1.GetMergedData(); + foreach (JObject mergedRow in mergedData) + { + JObject values = mergedRow.Value("values"); + int i = mergedRow.Value("index"); + Model.JDGL_WeekPlan WeekPlan = BLL.WeekPlanService.GetWeekPlanById(this.Grid1.Rows[i].RowID); + if (WeekPlan != null) + { + WeekPlan.CompileMan = this.CurrUser.UserId; + WeekPlan.CompileDate = DateTime.Now; + BLL.WeekPlanService.UpdateWeekPlan(WeekPlan); + } + } + Alert.ShowInTop("保存成功!", MessageBoxIcon.Success); + } + else + { + Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); + return; + } + } + #endregion + + protected void btnMenuDel_Click(object sender, EventArgs e) + { + if (Grid1.SelectedRowIndexArray.Length > 0) + { + foreach (int rowIndex in Grid1.SelectedRowIndexArray) + { + string rowID = Grid1.DataKeys[rowIndex][0].ToString(); + BLL.WeekPlanService.DeleteWeekPlanByWeekPlanId(rowID); + } + + BindGrid(); + ShowNotify("删除数据成功!", MessageBoxIcon.Success); + } + } + + #region 导入 + /// + /// 导入按钮 + /// + /// + /// + protected void btnImport_Click(object sender, EventArgs e) + { + Window1.Title = "导入"; + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WeekPlanIn.aspx?ProjectId={0}", this.CurrUser.LoginProjectId, "导入 - "))); + } + + /// + /// 关闭导入弹出窗口 + /// + /// + /// + protected void Window1_Close(object sender, WindowCloseEventArgs e) + { + BindGrid(); + } + #endregion + + #region 统计 + /// + /// 统计分析 + /// + /// + /// + protected void BtnAnalyse_Click(object sender, EventArgs e) + { + Window1.Title = "统计"; + PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WeekPlanStatisc.aspx", "统计 - "))); + } + #endregion + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/JDGL/Check/WeekPlan.aspx.designer.cs b/SGGL/FineUIPro.Web/JDGL/Check/WeekPlan.aspx.designer.cs new file mode 100644 index 00000000..3e7ac331 --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/WeekPlan.aspx.designer.cs @@ -0,0 +1,150 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.JDGL.Check { + + + public partial class WeekPlan { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// Panel1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Panel Panel1; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Toolbar1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar1; + + /// + /// txtWeeks 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtWeeks; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// BtnAnalyse 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button BtnAnalyse; + + /// + /// btnNew 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnNew; + + /// + /// btnModify 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnModify; + + /// + /// btnImport 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnImport; + + /// + /// lblPageIndex 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lblPageIndex; + + /// + /// Window1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Window Window1; + + /// + /// Menu1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Menu Menu1; + + /// + /// btnMenuDel 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.MenuButton btnMenuDel; + } +} diff --git a/SGGL/FineUIPro.Web/JDGL/Check/WeekPlanIn.aspx b/SGGL/FineUIPro.Web/JDGL/Check/WeekPlanIn.aspx new file mode 100644 index 00000000..d13ca509 --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/WeekPlanIn.aspx @@ -0,0 +1,125 @@ +<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WeekPlanIn.aspx.cs" Inherits="FineUIPro.Web.JDGL.Check.WeekPlanIn" %> + + + + + + 导入信息 + + + +
+ + + + + + + + + + + + + + + + + + + + <%----%> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <%-- + + + + + --%> + + + + + diff --git a/SGGL/FineUIPro.Web/JDGL/Check/WeekPlanIn.aspx.cs b/SGGL/FineUIPro.Web/JDGL/Check/WeekPlanIn.aspx.cs new file mode 100644 index 00000000..fbaf8fb4 --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/WeekPlanIn.aspx.cs @@ -0,0 +1,735 @@ +using BLL; +using System; +using System.Collections.Generic; +using System.Data; +using System.Data.OleDb; +using System.IO; +using System.Linq; +using System.Web.UI; + +namespace FineUIPro.Web.JDGL.Check +{ + public partial class WeekPlanIn : PageBase + { + #region 定义变量 + /// + /// 上传预设的虚拟路径 + /// + private string initPath = Const.ExcelUrl; + + /// + /// 人员集合 + /// + public static List WeekPlans = new List(); + + /// + /// 错误集合 + /// + public static string errorInfos = string.Empty; + + /// + /// 项目ID + /// + public string ProjectId + { + get + { + return (string)ViewState["ProjectId"]; + } + set + { + ViewState["ProjectId"] = value; + } + } + #endregion + + #region 加载页面 + /// + /// 加载页面 + /// + /// + /// + protected void Page_Load(object sender, EventArgs e) + { + if (!IsPostBack) + { + this.hdFileName.Text = string.Empty; + this.hdCheckResult.Text = string.Empty; + if (WeekPlans != null) + { + WeekPlans.Clear(); + } + errorInfos = string.Empty; + this.ProjectId = Request.Params["ProjectId"]; + } + } + #endregion + + #region 审核 + /// + /// 审核 + /// + /// + /// + protected void btnAudit_Click(object sender, EventArgs e) + { + try + { + if (this.fuAttachUrl.HasFile == false) + { + ShowNotify("请您选择Excel文件!", MessageBoxIcon.Warning); + return; + } + string IsXls = Path.GetExtension(this.fuAttachUrl.FileName).ToString().Trim().ToLower(); + if (IsXls != ".xls") + { + ShowNotify("只可以选择Excel文件!", MessageBoxIcon.Warning); + return; + } + if (WeekPlans != null) + { + WeekPlans.Clear(); + } + if (!string.IsNullOrEmpty(errorInfos)) + { + errorInfos = string.Empty; + } + string rootPath = Server.MapPath("~/"); + string initFullPath = rootPath + initPath; + if (!Directory.Exists(initFullPath)) + { + Directory.CreateDirectory(initFullPath); + } + + this.hdFileName.Text = BLL.Funs.GetNewFileName() + IsXls; + string filePath = initFullPath + this.hdFileName.Text; + this.fuAttachUrl.PostedFile.SaveAs(filePath); + //PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("PersonDataAudit.aspx?FileName={0}&ProjectId={1}", this.hdFileName.Text, Request.Params["ProjectId"], "审核 - "))); + ImportXlsToData(rootPath + initPath + this.hdFileName.Text); + } + catch (Exception ex) + { + ShowNotify("'" + ex.Message + "'", MessageBoxIcon.Warning); + } + } + + #region 读Excel提取数据 + /// + /// 从Excel提取数据--》Dataset + /// + /// Excel文件路径名 + private void ImportXlsToData(string fileName) + { + try + { + string oleDBConnString = String.Empty; + oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;"; + oleDBConnString += "Data Source="; + oleDBConnString += fileName; + oleDBConnString += ";Extended Properties=Excel 8.0;"; + OleDbConnection oleDBConn = null; + OleDbDataAdapter oleAdMaster = null; + DataTable m_tableName = new DataTable(); + DataSet ds = new DataSet(); + + oleDBConn = new OleDbConnection(oleDBConnString); + oleDBConn.Open(); + m_tableName = oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); + + if (m_tableName != null && m_tableName.Rows.Count > 0) + { + + m_tableName.TableName = m_tableName.Rows[0]["TABLE_NAME"].ToString().Trim(); + + } + string sqlMaster; + sqlMaster = " SELECT * FROM [" + m_tableName.TableName + "]"; + oleAdMaster = new OleDbDataAdapter(sqlMaster, oleDBConn); + oleAdMaster.Fill(ds, "m_tableName"); + oleAdMaster.Dispose(); + oleDBConn.Close(); + oleDBConn.Dispose(); + + AddDatasetToSQL(ds.Tables[0], 8); + } + catch (Exception ex) + { + throw ex; + } + } + #endregion + + #region 将Dataset的数据导入数据库 + /// + /// 将Dataset的数据导入数据库 + /// + /// 数据集 + /// 数据集行数 + /// + private bool AddDatasetToSQL(DataTable pds, int Cols) + { + string result = string.Empty; + int ic, ir; + ic = pds.Columns.Count; + if (ic < Cols) + { + Alert.ShowInTop("导入Excel格式错误!Excel只有" + ic.ToString().Trim() + "行", MessageBoxIcon.Warning); + } + ir = pds.Rows.Count; + Model.SGGLDB db = Funs.DB; + var projectUnits = from x in db.Project_ProjectUnit + join y in db.Base_Unit on x.UnitId equals y.UnitId + where x.ProjectId == this.CurrUser.LoginProjectId + select new { x.UnitId, y.UnitName }; + var cns = from x in db.Base_CNProfessional select x; + var unitWorks = from x in db.WBS_UnitWork where x.ProjectId == this.CurrUser.LoginProjectId select x; + var projectUsers = from x in db.Project_ProjectUser + join y in db.Sys_User on x.UserId equals y.UserId + where x.ProjectId == this.CurrUser.LoginProjectId + select new { x.UserId, y.UserName }; + if (pds != null && ir > 0) + { + for (int i = 0; i < ir; i++) + { + string col0 = pds.Rows[i][0].ToString().Trim(); + if (string.IsNullOrEmpty(col0)) + { + result += "第" + (i + 2).ToString() + "行," + "工序/单位工程" + "," + "此项为必填项!" + "|"; + } + else + { + var unitWork = unitWorks.FirstOrDefault(e => e.UnitWorkName == col0); + if (unitWork == null) + { + result += "第" + (i + 2).ToString() + "行," + "工序/单位工程" + "," + "[" + col0 + "]不在项目单位工程中!" + "|"; + } + } + + string col1 = pds.Rows[i][1].ToString().Trim(); + if (string.IsNullOrEmpty(col1)) + { + result += "第" + (i + 2).ToString() + "行," + "专业" + "," + "此项为必填项!" + "|"; + } + else + { + var cn = cns.FirstOrDefault(e => e.ProfessionalName == col1); + if (cn == null) + { + result += "第" + (i + 2).ToString() + "行," + "专业" + "," + "[" + col1 + "]不在专业信息中!" + "|"; + } + } + + string col2 = pds.Rows[i][2].ToString().Trim(); + if (string.IsNullOrEmpty(col2)) + { + result += "第" + (i + 2).ToString() + "行," + "工作项" + "," + "此项为必填项!" + "|"; + } + + string col3 = pds.Rows[i][3].ToString().Trim(); + if (string.IsNullOrEmpty(col3)) + { + result += "第" + (i + 2).ToString() + "行," + "责任单位" + "," + "此项为必填项!" + "|"; + } + else + { + var unit = projectUnits.FirstOrDefault(e => e.UnitName == col3); + if (unit == null) + { + result += "第" + (i + 2).ToString() + "行," + "责任单位" + "," + "[" + col3 + "]不在项目单位中!" + "|"; + } + } + + string col4 = pds.Rows[i][4].ToString().Trim(); + if (string.IsNullOrEmpty(col4)) + { + result += "第" + (i + 2).ToString() + "行," + "五环责任人" + "," + "此项为必填项!" + "|"; + } + else + { + var user = projectUsers.FirstOrDefault(e => e.UserName == col4); + if (user == null) + { + result += "第" + (i + 2).ToString() + "行," + "五环责任人" + "," + "[" + col4 + "]不在项目用户信息中!" + "|"; + } + } + + string col5 = pds.Rows[i][5].ToString().Trim(); + if (!string.IsNullOrEmpty(col5)) + { + try + { + DateTime dec = Convert.ToDateTime(col5); + } + catch (Exception) + { + result += "第" + (i + 2).ToString() + "行," + "计划完成时间" + "," + "[" + col5 + "]错误!" + "|"; + } + } + else + { + result += "第" + (i + 2).ToString() + "行," + "计划完成时间" + "," + "此项为必填项!" + "|"; + } + + string col6 = pds.Rows[i][6].ToString().Trim(); + if (!string.IsNullOrEmpty(col6)) + { + if (col6 != "已完成" && col6 != "未完成") + { + result += "第" + (i + 2).ToString() + "行," + "完成状态" + "," + "[" + col6 + "]错误!" + "|"; + } + } + } + if (!string.IsNullOrEmpty(result)) + { + result = result.Substring(0, result.LastIndexOf("|")); + errorInfos = result; + Alert alert = new Alert + { + Message = result, + Target = Target.Self + }; + alert.Show(); + + + } + else + { + errorInfos = string.Empty; + ShowNotify("审核完成,请点击导入!", MessageBoxIcon.Success); + } + } + else + { + ShowNotify("导入数据为空!", MessageBoxIcon.Warning); + } + return true; + } + #endregion + #endregion + + #region 导入 + /// + /// 导入 + /// + /// + /// + protected void btnImport_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(errorInfos)) + { + if (!string.IsNullOrEmpty(this.hdFileName.Text)) + { + string rootPath = Server.MapPath("~/"); + ImportXlsToData2(rootPath + initPath + this.hdFileName.Text); + } + else + { + ShowNotify("请先审核要导入的文件!", MessageBoxIcon.Warning); + } + } + else + { + Alert.ShowInTop("请先将错误数据修正,再重新导入保存!", MessageBoxIcon.Warning); + } + } + + #region Excel提取数据 + /// + /// 从Excel提取数据--》Dataset + /// + /// Excel文件路径名 + private void ImportXlsToData2(string fileName) + { + try + { + string oleDBConnString = String.Empty; + oleDBConnString = "Provider=Microsoft.Jet.OLEDB.4.0;"; + oleDBConnString += "Data Source="; + oleDBConnString += fileName; + oleDBConnString += ";Extended Properties=Excel 8.0;"; + OleDbConnection oleDBConn = null; + OleDbDataAdapter oleAdMaster = null; + DataTable m_tableName = new DataTable(); + DataSet ds = new DataSet(); + + oleDBConn = new OleDbConnection(oleDBConnString); + oleDBConn.Open(); + m_tableName = oleDBConn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null); + + if (m_tableName != null && m_tableName.Rows.Count > 0) + { + + m_tableName.TableName = m_tableName.Rows[0]["TABLE_NAME"].ToString().Trim(); + + } + string sqlMaster; + sqlMaster = " SELECT * FROM [" + m_tableName.TableName + "]"; + oleAdMaster = new OleDbDataAdapter(sqlMaster, oleDBConn); + oleAdMaster.Fill(ds, "m_tableName"); + oleAdMaster.Dispose(); + oleDBConn.Close(); + oleDBConn.Dispose(); + + AddDatasetToSQL2(ds.Tables[0], 8); + } + catch (Exception ex) + { + throw ex; + } + } + #endregion + + #region 将Dataset的数据导入数据库 + /// + /// 将Dataset的数据导入数据库 + /// + /// 数据集 + /// 数据集列数 + /// + private bool AddDatasetToSQL2(DataTable pds, int Cols) + { + int ic, ir; + WeekPlans.Clear(); + ic = pds.Columns.Count; + if (ic < Cols) + { + Alert.ShowInTop("导入Excel格式错误!Excel只有" + ic.ToString().Trim() + "列", MessageBoxIcon.Warning); + } + + ir = pds.Rows.Count; + Model.SGGLDB db = Funs.DB; + var projectUnits = from x in db.Project_ProjectUnit + join y in db.Base_Unit on x.UnitId equals y.UnitId + where x.ProjectId == this.CurrUser.LoginProjectId + select new { x.UnitId, y.UnitName }; + var projectUsers = from x in db.Project_ProjectUser + join y in db.Sys_User on x.UserId equals y.UserId + where x.ProjectId == this.CurrUser.LoginProjectId + select new { x.UserId, y.UserName }; + var cns = from x in db.Base_CNProfessional select x; + var unitWorks = from x in db.WBS_UnitWork where x.ProjectId == this.CurrUser.LoginProjectId select x; + string weekNo = this.txtWeekNo.Text.Trim(); + DateTime startDate = Convert.ToDateTime(this.txtStartDate.Text.Trim()); + DateTime endDate = Convert.ToDateTime(this.txtEndDate.Text.Trim()); + if (pds != null && ir > 0) + { + for (int i = 0; i < ir; i++) + { + Model.JDGL_WeekPlan WeekPlan = new Model.JDGL_WeekPlan(); + string col0 = pds.Rows[i][0].ToString().Trim(); + string col1 = pds.Rows[i][1].ToString().Trim(); + string col2 = pds.Rows[i][2].ToString().Trim(); + string col3 = pds.Rows[i][3].ToString().Trim(); + string col4 = pds.Rows[i][4].ToString().Trim(); + string col5 = pds.Rows[i][5].ToString().Trim(); + string col6 = pds.Rows[i][6].ToString().Trim(); + string col7 = pds.Rows[i][7].ToString().Trim(); + WeekPlan.WeekNo = weekNo; + WeekPlan.StartDate = startDate; + WeekPlan.EndDate = endDate; + if (!string.IsNullOrEmpty(col0))//单位工程 + { + var unitWork = unitWorks.FirstOrDefault(x => x.UnitWorkName == col0); + if (unitWork != null) + { + WeekPlan.UnitWork = unitWork.UnitWorkId; + } + } + if (!string.IsNullOrEmpty(col1))//专业 + { + var cn = cns.FirstOrDefault(x => x.ProfessionalName == col1); + if (cn != null) + { + WeekPlan.Major = cn.CNProfessionalId; + } + } + if (!string.IsNullOrEmpty(col2))//工作项 + { + WeekPlan.WorkContent = col2; + } + if (!string.IsNullOrEmpty(col3))//责任单位 + { + var projectUnit = projectUnits.FirstOrDefault(x => x.UnitName == col3); + if (projectUnit != null) + { + WeekPlan.UnitId = projectUnit.UnitId; + } + } + if (!string.IsNullOrEmpty(col4))//五环责任人 + { + var projectUser = projectUsers.FirstOrDefault(x => x.UserName == col4); + if (projectUser != null) + { + WeekPlan.DutyPerson = projectUser.UserId; + } + } + if (!string.IsNullOrEmpty(col5))//计划完成时间 + { + WeekPlan.PlanDate = Funs.GetNewDateTime(col5); + + } + if (!string.IsNullOrEmpty(col6))//完成状态 + { + WeekPlan.IsOK = col6 == "已完成" ? true : false; + } + if (!string.IsNullOrEmpty(col7))//备注 + { + WeekPlan.Remark = col7; + } + int num = (from x in Funs.DB.JDGL_WeekPlan where x.WeekNo == weekNo && x.ProjectId == this.CurrUser.LoginProjectId select x).Count(); + WeekPlan.SortIndex = num + 1; + WeekPlan.WeekPlanId = SQLHelper.GetNewID(typeof(Model.JDGL_WeekPlan)); + WeekPlans.Add(WeekPlan); + } + if (WeekPlans.Count > 0) + { + this.Grid1.Hidden = false; + this.Grid1.DataSource = WeekPlans; + this.Grid1.DataBind(); + } + } + else + { + ShowNotify("导入数据为空!", MessageBoxIcon.Warning); + } + return true; + } + #endregion + #endregion + + #region 保存 + /// + /// 保存 + /// + /// + /// + protected void btnSave_Click(object sender, EventArgs e) + { + if (string.IsNullOrEmpty(this.txtWeekNo.Text.Trim())) + { + ShowNotify("请选择周号!", MessageBoxIcon.Warning); + return; + } + if (string.IsNullOrEmpty(errorInfos)) + { + var WeekPlanLists = from x in Funs.DB.JDGL_WeekPlan where x.ProjectId == this.ProjectId select x; + string quantityListId = string.Empty; + int a = WeekPlans.Count(); + string weekNo = this.txtWeekNo.Text.Trim(); + + for (int i = 0; i < a; i++) + { + var oldWeekPlan = WeekPlanLists.FirstOrDefault(x => x.ProjectId == this.ProjectId && x.WeekNo == weekNo && x.UnitId == WeekPlans[i].UnitId && x.WorkContent == WeekPlans[i].WorkContent); + if (oldWeekPlan == null) + { + Model.JDGL_WeekPlan newWeekPlan = new Model.JDGL_WeekPlan(); + newWeekPlan.WeekPlanId = SQLHelper.GetNewID(typeof(Model.JDGL_WeekPlan)); + newWeekPlan.ProjectId = this.ProjectId; + newWeekPlan.WeekNo = weekNo; + newWeekPlan.StartDate= WeekPlans[i].StartDate; + newWeekPlan.EndDate = WeekPlans[i].EndDate; + newWeekPlan.UnitWork = WeekPlans[i].UnitWork; + newWeekPlan.Major = WeekPlans[i].Major; + newWeekPlan.WorkContent = WeekPlans[i].WorkContent; + newWeekPlan.UnitId = WeekPlans[i].UnitId; + newWeekPlan.DutyPerson = WeekPlans[i].DutyPerson; + newWeekPlan.PlanDate = WeekPlans[i].PlanDate; + newWeekPlan.IsOK = WeekPlans[i].IsOK; + newWeekPlan.Remark = WeekPlans[i].Remark; + newWeekPlan.SortIndex = WeekPlans[i].SortIndex; + newWeekPlan.CompileMan = this.CurrUser.UserId; + newWeekPlan.CompileDate = DateTime.Now; + BLL.WeekPlanService.AddWeekPlan(newWeekPlan); + } + else + { + oldWeekPlan.UnitWork = WeekPlans[i].UnitWork; + oldWeekPlan.Major = WeekPlans[i].Major; + oldWeekPlan.WorkContent = WeekPlans[i].WorkContent; + oldWeekPlan.UnitId = WeekPlans[i].UnitId; + oldWeekPlan.DutyPerson = WeekPlans[i].DutyPerson; + oldWeekPlan.PlanDate = WeekPlans[i].PlanDate; + oldWeekPlan.IsOK = WeekPlans[i].IsOK; + oldWeekPlan.Remark = WeekPlans[i].Remark; + BLL.WeekPlanService.UpdateWeekPlan(oldWeekPlan); + } + } + string rootPath = Server.MapPath("~/"); + string initFullPath = rootPath + initPath; + string filePath = initFullPath + this.hdFileName.Text; + if (filePath != string.Empty && System.IO.File.Exists(filePath)) + { + System.IO.File.Delete(filePath);//删除上传的XLS文件 + } + ShowNotify("导入成功!", MessageBoxIcon.Success); + PageContext.RegisterStartupScript(ActiveWindow.GetHidePostBackReference()); + } + else + { + Alert.ShowInTop("请先将错误数据修正,再重新导入保存!", MessageBoxIcon.Warning); + } + } + #endregion + + #region 导出错误提示 + /// + /// 导出错误提示 + /// + /// + /// + protected void btnOut_Click(object sender, EventArgs e) + { + //string strFileName = DateTime.Now.ToString("yyyyMMdd-hhmmss"); + //System.Web.HttpContext HC = System.Web.HttpContext.Current; + //HC.Response.Clear(); + //HC.Response.Buffer = true; + //HC.Response.ContentEncoding = System.Text.Encoding.UTF8;//设置输出流为简体中文 + + ////---导出为Excel文件 + //HC.Response.AddHeader("Content-Disposition", "attachment;filename=" + HttpUtility.UrlEncode(strFileName, System.Text.Encoding.UTF8) + ".xls"); + //HC.Response.ContentType = "application/ms-excel";//设置输出文件类型为excel文件。 + + //System.IO.StringWriter sw = new System.IO.StringWriter(); + //System.Web.UI.HtmlTextWriter htw = new System.Web.UI.HtmlTextWriter(sw); + //this.gvErrorInfo.RenderControl(htw); + //HC.Response.Write(sw.ToString()); + //HC.Response.End(); + } + + /// + /// 重载VerifyRenderingInServerForm方法,否则运行的时候会出现如下错误提示:“类型“GridView”的控件“GridView1”必须放在具有 runat=server 的窗体标记内” + /// + /// + public override void VerifyRenderingInServerForm(Control control) + { + } + #endregion + + #region 下载模板 + /// + /// 下载模板按钮 + /// + /// + /// + protected void btnDownLoad_Click(object sender, EventArgs e) + { + PageContext.RegisterStartupScript(Confirm.GetShowReference("确定下载导入模板吗?", String.Empty, MessageBoxIcon.Question, PageManager1.GetCustomEventReference(false, "Confirm_OK"), PageManager1.GetCustomEventReference("Confirm_Cancel"))); + } + + /// + /// 下载导入模板 + /// + /// + /// + protected void PageManager1_CustomEvent(object sender, CustomEventArgs e) + { + if (e.EventArgument == "Confirm_OK") + { + string rootPath = Server.MapPath("~/"); + string uploadfilepath = rootPath + Const.WeekPlanTemplateUrl; + string filePath = Const.WeekPlanTemplateUrl; + string fileName = Path.GetFileName(filePath); + FileInfo info = new FileInfo(uploadfilepath); + long fileSize = info.Length; + Response.ClearContent(); + Response.AddHeader("Content-Disposition", "attachment;filename=" + System.Web.HttpUtility.UrlEncode(fileName, System.Text.Encoding.UTF8)); + Response.ContentType = "excel/plain"; + Response.ContentEncoding = System.Text.Encoding.UTF8; + Response.AddHeader("Content-Length", fileSize.ToString().Trim()); + Response.TransmitFile(uploadfilepath, 0, fileSize); + Response.End(); + } + } + #endregion + + /// + /// + /// + /// + /// + protected string ConvertUnitName(object UnitId) + { + string name = string.Empty; + if (UnitId != null) + { + name = BLL.UnitService.GetUnitNameByUnitId(UnitId.ToString()); + } + return name; + } + + /// + /// + /// + /// + /// + protected string ConvertDutyPersonName(object DutyPerson) + { + string name = string.Empty; + if (DutyPerson != null) + { + name = BLL.UserService.GetUserNameByUserId(DutyPerson.ToString()); + } + return name; + } + + /// + /// + /// + /// + /// + protected string ConvertUnitWorkName(object UnitWork) + { + string name = string.Empty; + if (UnitWork != null) + { + Model.WBS_UnitWork uw = BLL.UnitWorkService.GetUnitWorkByUnitWorkId(UnitWork.ToString()); + if (uw != null) + { + name = uw.UnitWorkName; + } + } + return name; + } + + /// + /// + /// + /// + /// + protected string ConvertProfessionalName(object Major) + { + string name = string.Empty; + if (Major != null) + { + Model.Base_CNProfessional major = BLL.CNProfessionalService.GetCNProfessional(Major.ToString()); + if (major != null) + { + name = major.ProfessionalName; + } + } + return name; + } + + /// + /// + /// + /// + /// + protected string ConvertIsOK(object IsOK) + { + string name = string.Empty; + if (IsOK != null) + { + if (IsOK.ToString() == "True") + { + name = "已完成"; + } + else + { + name = "未完成"; + } + } + return name; + } + } +} \ No newline at end of file diff --git a/SGGL/FineUIPro.Web/JDGL/Check/WeekPlanIn.aspx.designer.cs b/SGGL/FineUIPro.Web/JDGL/Check/WeekPlanIn.aspx.designer.cs new file mode 100644 index 00000000..f23fddd1 --- /dev/null +++ b/SGGL/FineUIPro.Web/JDGL/Check/WeekPlanIn.aspx.designer.cs @@ -0,0 +1,204 @@ +//------------------------------------------------------------------------------ +// <自动生成> +// 此代码由工具生成。 +// +// 对此文件的更改可能导致不正确的行为,如果 +// 重新生成代码,则所做更改将丢失。 +// +//------------------------------------------------------------------------------ + +namespace FineUIPro.Web.JDGL.Check { + + + public partial class WeekPlanIn { + + /// + /// form1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.HtmlControls.HtmlForm form1; + + /// + /// PageManager1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.PageManager PageManager1; + + /// + /// SimpleForm1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Form SimpleForm1; + + /// + /// Toolbar2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Toolbar Toolbar2; + + /// + /// txtWeekNo 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.TextBox txtWeekNo; + + /// + /// txtStartDate 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtStartDate; + + /// + /// txtEndDate 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.DatePicker txtEndDate; + + /// + /// btnAudit 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnAudit; + + /// + /// btnImport 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnImport; + + /// + /// btnSave 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnSave; + + /// + /// btnDownLoad 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Button btnDownLoad; + + /// + /// fuAttachUrl 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.FileUpload fuAttachUrl; + + /// + /// Grid1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.Grid Grid1; + + /// + /// Label2 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label2; + + /// + /// Label3 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label3; + + /// + /// Label4 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label4; + + /// + /// lbImageUrl 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label lbImageUrl; + + /// + /// Label1 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label1; + + /// + /// Label5 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::System.Web.UI.WebControls.Label Label5; + + /// + /// hdFileName 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hdFileName; + + /// + /// hdCheckResult 控件。 + /// + /// + /// 自动生成的字段。 + /// 若要进行修改,请将字段声明从设计器文件移到代码隐藏文件。 + /// + protected global::FineUIPro.HiddenField hdCheckResult; + } +} diff --git a/SGGL/FineUIPro.Web/Web.config b/SGGL/FineUIPro.Web/Web.config index f50b26d3..963148f2 100644 --- a/SGGL/FineUIPro.Web/Web.config +++ b/SGGL/FineUIPro.Web/Web.config @@ -77,7 +77,7 @@ - + diff --git a/SGGL/FineUIPro.Web/ZHGL/InspectionSummary/InspectionSummary.aspx.cs b/SGGL/FineUIPro.Web/ZHGL/InspectionSummary/InspectionSummary.aspx.cs index 8968a929..f926ddf3 100644 --- a/SGGL/FineUIPro.Web/ZHGL/InspectionSummary/InspectionSummary.aspx.cs +++ b/SGGL/FineUIPro.Web/ZHGL/InspectionSummary/InspectionSummary.aspx.cs @@ -250,15 +250,12 @@ namespace FineUIPro.Web.ZHGL.InspectionSummary }).ToList(); //一次共检合格数 - var list20 = (from x in Funs.DB.ProcessControl_InspectionManagementDetail - join y in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals y.InspectionId - where y.IsOnceQualified == true && y.InspectionDate != null - select new { y.ProjectId,y.InspectionDate,y.IsOnceQualified,x.InspectionId, Isid= y.InspectionId }).ToList(); + var list20 = (from x in Funs.DB.ProcessControl_InspectionManagement + where x.IsOnceQualified == true + select new { x.ProjectId,x.CompileDate,x.IsOnceQualified,x.InspectionId, Isid= x.InspectionId }).ToList(); ////总数 - var list21 = (from x in Funs.DB.ProcessControl_InspectionManagementDetail - join y in Funs.DB.ProcessControl_InspectionManagement on x.InspectionId equals y.InspectionId - where y.InspectionDate != null - select new { y.ProjectId, x.InspectionId, Isid = y.InspectionId,y.InspectionDate }).ToList(); + var list21 = (from x in Funs.DB.ProcessControl_InspectionManagement + select new { x.ProjectId, x.InspectionId, Isid = x.InspectionId,x.CompileDate }).ToList(); //关键事项 var list22 = (from x in Funs.DB.GJSX @@ -639,7 +636,7 @@ namespace FineUIPro.Web.ZHGL.InspectionSummary if (hgs>0) { //验收日期 - model.CompileDate = list20.Where(x => x.ProjectId == pid).OrderByDescending(x => x.InspectionDate).FirstOrDefault().InspectionDate; + model.CompileDate = list20.Where(x => x.ProjectId == pid).OrderByDescending(x => x.CompileDate).FirstOrDefault().CompileDate; } model.SummeryResult = hgs.ToString(); allList.Add(model); diff --git a/SGGL/FineUIPro.Web/common/Menu_JDGL.xml b/SGGL/FineUIPro.Web/common/Menu_JDGL.xml index 2fac288a..b34c5503 100644 --- a/SGGL/FineUIPro.Web/common/Menu_JDGL.xml +++ b/SGGL/FineUIPro.Web/common/Menu_JDGL.xml @@ -11,6 +11,7 @@ + diff --git a/SGGL/FineUIPro.Web/common/mainMenu_CQMS.aspx b/SGGL/FineUIPro.Web/common/mainMenu_CQMS.aspx index 4e1a7268..e209644b 100644 --- a/SGGL/FineUIPro.Web/common/mainMenu_CQMS.aspx +++ b/SGGL/FineUIPro.Web/common/mainMenu_CQMS.aspx @@ -291,9 +291,9 @@ var one1 =<%=One1 %> var one2 =<%=One2 %> var one3 =<%=One3 %> - category_One('one1', "质量验收一次合格率", one1, one1 + "%") + category_One('one1', "施工质量一次共检合格率", one1, one1 + "%") category_One('one2', "焊接一次拍片合格率", one2, one2 + "%") - category_One('one3', "质量问题整改完成率", one3, one3 + "%") + category_One('one3', "质量巡检问题整改率", one3, one3 + "%")