using System; using System.Collections.Generic; using System.Data; using System.Data.SqlClient; using System.IO; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using Aspose.Words; using Aspose.Words.Tables; using BLL; namespace FineUIPro.Web.CQMS.ManageReportNew { public partial class WeekReport : PageBase { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) { BindGrid(); GetButtonPower(); } } public void BindGrid() { string strSql = @"select Id, Sortid, StartDate, EndDate, ProjectId,ReportType from Report_WeekAndMonthReport_New C where C.ReportType='2' AND C.ProjectId = @ProjectId"; List listStr = new List(); listStr.Add(new SqlParameter("@ProjectId", this.CurrUser.LoginProjectId)); 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(); } /// /// 分页 /// /// /// protected void Grid1_PageIndexChange(object sender, GridPageEventArgs e) { BindGrid(); } /// /// 格式化字符串 /// /// /// protected static string ConvertDate(object reportId) { string date = string.Empty; if (reportId != null) { var r = BLL.WeekAndMonthReportNewService.Detail(reportId.ToString()); if (r != null) { date = string.Format("{0:yyyy-MM-dd}", r.StartDate) + " 至 " + string.Format("{0:yyyy-MM-dd}", r.EndDate); } } return date; } /// /// Grid行双击事件 /// /// /// protected void Grid1_RowDoubleClick(object sender, GridRowClickEventArgs e) { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WeekReportEdit.aspx?reportId=" + Grid1.SelectedRowID, "添加 - "))); } protected void btnNew_Click(object sender, EventArgs e) { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WeekReportEdit.aspx", "添加 - "))); } protected void btnMenuModify_Click(object sender, EventArgs e) { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WeekReportEdit.aspx?reportId=" + Grid1.SelectedRowID, "添加 - "))); } protected void btnMenuView_Click(object sender, EventArgs e) { PageContext.RegisterStartupScript(Window1.GetShowReference(String.Format("WeekReportEdit.aspx?view=view&reportId=" + Grid1.SelectedRowID, "查看 - "))); } 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(); //本周质量目标管理情况 CqmsTargetService.Delete(rowID); TextBoxContentService.Delete(rowID); Report_CQMS_MonthReportItemService.DeleteReportItemByReportId(rowID); WeekAndMonthReportNewService.Delete(rowID); } BindGrid(); ShowNotify("删除数据成功!", MessageBoxIcon.Success); } } protected void Window1_Close(object sender, WindowCloseEventArgs e) { 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.WeekReportNewMenuId); if (buttonList.Count() > 0) { if (buttonList.Contains(BLL.Const.BtnModify)) { this.btnMenuModify.Hidden = false; } if (buttonList.Contains(BLL.Const.BtnDelete)) { this.btnMenuDel.Hidden = false; } } } #endregion #region 导出 /** * 创建列值 * @param value 要插入的值 * @param doc Document对象 * @return */ public static Cell CreateCell(String value, Document doc, double cellWidth, string cellMerge = "", string CenterPage = "", string cellUnitLeft = "") { Cell cell = new Cell(doc); Paragraph p = new Paragraph(doc); if (!string.IsNullOrEmpty(cellMerge)) { if (cellMerge == "0") { cell.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.First;//竖直方向合并的第一个单元格 } else { cell.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.Previous;//竖直方向合并的第一个单元格 } } else { cell.CellFormat.VerticalMerge = Aspose.Words.Tables.CellMerge.None; } if (!string.IsNullOrEmpty(CenterPage)) { //序号 value = " " + value; } if (!string.IsNullOrEmpty(cellUnitLeft)) { p.ParagraphFormat.Alignment = ParagraphAlignment.Left;//表格中字体居左 } else { p.ParagraphFormat.Alignment = ParagraphAlignment.Center;//表格中字体居中 } p.AppendChild(new Run(doc, value)); cell.CellFormat.Width = cellWidth; cell.CellFormat.VerticalAlignment = Aspose.Words.Tables.CellVerticalAlignment.Center; cell.CellFormat.Borders.LineWidth = 1.5; cell.AppendChild(p); return cell; } protected void btnPrinter_Click(object sender, EventArgs e) { if (Grid1.SelectedRowIndexArray.Length == 0) { Alert.ShowInTop("请至少选择一条记录!", MessageBoxIcon.Warning); return; } string Id = Grid1.SelectedRowID;//质量周报的主键 try { string rootPath = Server.MapPath("~/"); string initTemplatePath = string.Empty; string uploadfilepath = string.Empty; string newUrl = string.Empty; string filePath = string.Empty; Model.SGGLDB db = Funs.DB; initTemplatePath = Const.WeekReportNewTemplateUrl; uploadfilepath = rootPath + initTemplatePath; //newUrl = uploadfilepath.Replace(".doc", "(" + Funs.GetNewFileName() + ")" + ".doc"); //名称XX项目质量周报第几期 //根据id获取质量月报主表数据 var weekModel = db.Report_WeekAndMonthReport_New.FirstOrDefault(x => x.Id == Id); var startDate = Convert.ToDateTime(weekModel.StartDate); var endDate = Convert.ToDateTime(weekModel.EndDate); //获取project var pModel = db.Base_Project.FirstOrDefault(x => x.ProjectId == weekModel.ProjectId); var urlHz = startDate.ToString("yyyyMMdd") + "-" + endDate.ToString("yyyyMMdd"); newUrl = uploadfilepath.Replace("项目质量周报", pModel.ShortName + "项目质量周报(第" + weekModel.SortId + "期)" + urlHz); if (File.Exists(newUrl)) { File.Delete(newUrl); } File.Copy(uploadfilepath, newUrl); //更新书签内容 Document doc = new Aspose.Words.Document(newUrl); DocumentBuilder builder = new DocumentBuilder(doc); #region 头部静态列 //业主单位 var unitsYz = (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 orderby x.UnitName select x).FirstOrDefault(); Bookmark bkmark = doc.Range.Bookmarks["username"]; if (bkmark != null) { if (unitsYz != null) { bkmark.Text = unitsYz.UnitName; } //var uModel = db.Sys_User.FirstOrDefault(x => x.UserId == weekModel.CreateMan); //if (uModel!=null) //{ // bkmark.Text = uModel.UserName; //} } bkmark = doc.Range.Bookmarks["projectNo"]; if (bkmark != null) { bkmark.Text = pModel.ProjectCode; } bkmark = doc.Range.Bookmarks["createdate"]; if (bkmark != null) { bkmark.Text = weekModel.CreateDate.ToString().Split(' ')[0].Replace('/', '.'); } bkmark = doc.Range.Bookmarks["projectname"]; if (bkmark != null) { bkmark.Text = pModel.ProjectName; } bkmark = doc.Range.Bookmarks["quamanagername"]; if (bkmark != null) { //var zlName = ""; ////根据项目获取质量经理 //var puserList = db.Project_ProjectUser.Where(x => x.ProjectId == weekModel.ProjectId && x.RoleId.Contains(BLL.Const.QAManager)).ToList(); //foreach (var item in puserList) //{ // zlName+= db.Sys_User.FirstOrDefault(x => x.UserId == item.UserId).UserName+","; //} var getPUser = Funs.DB.Project_ProjectUser.Where(x => x.ProjectId == weekModel.ProjectId); ////质量经理 var qa = getPUser.FirstOrDefault(x => x.RoleId.Contains(BLL.Const.QAManager)); bkmark.Text = db.Sys_User.FirstOrDefault(x => x.UserId == qa.UserId).UserName; } bkmark = doc.Range.Bookmarks["reportAlldate"]; //20XX年XX月XX日至20XX年XX月XX日 if (bkmark != null) { var sdate = Convert.ToDateTime(weekModel.StartDate); var edate = Convert.ToDateTime(weekModel.EndDate); bkmark.Text = sdate.Year + "年" + sdate.Month + "月" + sdate.Day + "日至" + edate.Year + "年" + edate.Month + "月" + edate.Day + "日"; } bkmark = doc.Range.Bookmarks["reportindex"]; if (bkmark != null) { bkmark.Text = weekModel.SortId; } bkmark = doc.Range.Bookmarks["fromcode"]; //fromcode,项目号-RM-PQM-顺序号 if (bkmark != null) { bkmark.Text = pModel.ProjectCode + "-RM-PQM-" + weekModel.SortId; } #endregion #region 本月质量目标管理情况 //获取word文档中的第二个表格 int whileIndex = 1; Aspose.Words.Tables.Table table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, 1, true); bool isYm = true; //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } var cqrmTargetList = db.Report_CqmsTarget.Where(x => x.ReportId == Id).OrderBy(x => x.SortId); int numberIndex = 1; foreach (var item in cqrmTargetList) { //创建行 Row row = new Row(doc); 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, "", "", "unit")); row.Cells.Add(CreateCell(item.ProDescribe, doc, table.FirstRow.Cells[2].CellFormat.Width, "", "", "unit")); 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, "", "", "unit")); table.Rows.Insert(numberIndex, row); numberIndex += 1; } //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); #endregion #region 本月主要工作内容 var txtReportList = Funs.DB.Report_TextBoxContent.Where(x => x.ReportId == Id).ToList(); bkmark = doc.Range.Bookmarks["Content1"]; if (bkmark != null) { bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "0").ContentText; } bkmark = doc.Range.Bookmarks["Content2"]; if (bkmark != null) { bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "1").ContentText; } bkmark = doc.Range.Bookmarks["Content3"]; if (bkmark != null) { bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "2").ContentText; } bkmark = doc.Range.Bookmarks["Content8"]; if (bkmark != null) { 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(); #region 3.施工方案及检验试验计划审批情况 #region 一般施工方案审批情况 var ybsgfaList = ContuructionAllList.Where(x => x.ReType == "0").ToList(); if (ybsgfaList.Count() > 0) { isYm = true; whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0; foreach (var item in ybsgfaList) { //创建行 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, "", "", "unit")); 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, "", "", "unit")); table.Rows.Insert(numberIndex, row); num1 += item.Quantity1; num2 += item.Quantity2; numberIndex += 1; } //自动设置表格样式 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, "", "", "unit")); 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); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 危大工程方案审批情况 var wdsgfaList = ContuructionAllList.Where(x => x.ReType == "1").ToList(); if (wdsgfaList.Count > 0) { isYm = true; whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0, num3 = 0; foreach (var item in wdsgfaList) { //创建行 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, "", "", "unit")); 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.Quantity3.ToString(), doc, table.FirstRow.Cells[4].CellFormat.Width)); row.Cells.Add(CreateCell(item.Remarks, doc, table.FirstRow.Cells[5].CellFormat.Width, "", "", "unit")); table.Rows.Insert(numberIndex, row); num1 += item.Quantity1; num2 += item.Quantity2; num3 += item.Quantity3; numberIndex += 1; } //自动设置表格样式 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, "", "", "unit")); 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)); table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 质量控制点或检验试验计划(ITP)情况 var itpList = ContuructionAllList.Where(x => x.ReType == "2").ToList(); if (itpList.Count > 0) { isYm = true; whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0; foreach (var item in itpList) { //创建行 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, "", "", "unit")); table.Rows.Insert(numberIndex, row); num1 += item.Quantity1; num2 += item.Quantity2; numberIndex += 1; } //自动设置表格样式 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)); table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #endregion #region 设计交底管理情况 var sjjdList = ContuructionAllList.Where(x => x.ReType == "3").ToList(); if (sjjdList.Count > 0) { isYm = true; whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0; foreach (var item in sjjdList) { //创建行 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, "", "", "unit")); table.Rows.Insert(numberIndex, row); num1 += item.Quantity1; num2 += item.Quantity2; numberIndex += 1; } //自动设置表格样式 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)); table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 图纸会审管理情况 var tzhsList = ContuructionAllList.Where(x => x.ReType == "4").ToList(); if (tzhsList.Count > 0) { isYm = true; whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0; foreach (var item in tzhsList) { //创建行 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, "", "", "unit")); table.Rows.Insert(numberIndex, row); num1 += item.Quantity1; num2 += item.Quantity2; numberIndex += 1; } //自动设置表格样式 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)); table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 6.设计变更管理情况 int Quantity1Sum = 0, Quantity2Sum = 0, Quantity3Sum = 0, Quantity4Sum = 0, Quantity5Sum = 0, Quantity6Sum = 0; DateTime projectStartDate = Convert.ToDateTime("2015-01-01"); List StatisticsList = new List(); Model.Base_Project project = BLL.ProjectService.GetProjectByProjectId(this.CurrUser.LoginProjectId); if (project != null) { if (project.StartDate != null) { projectStartDate = Convert.ToDateTime(project.StartDate); } } 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; foreach (var item in cNProfessionals) { //专业下所有集合 List totalManagementList = BLL.DesignChangeOrderService.GetDesignChangeOrderListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, item.CNProfessionalId, projectStartDate, DateTime.Now); //专业下当期集合 List managementList = BLL.DesignChangeOrderService.GetDesignChangeOrderListByCNProfessionalIdAndDate(this.CurrUser.LoginProjectId, item.CNProfessionalId, startDate, endDate); Model.CheckStatisc checkStatisc = new Model.CheckStatisc(); checkStatisc.Num = i; checkStatisc.WorkName = item.ProfessionalName; checkStatisc.CheckNum = managementList.Count(); checkStatisc.TotalCheckNum = totalManagementList.Count(); checkStatisc.OKNum = managementList.Count(x => x.ApprovalDate != null); checkStatisc.TotalOKNum = totalManagementList.Count(x => x.ApprovalDate != null); checkStatisc.OneOKRate = managementList.Count(x => x.ImplementationFrontState == "已完成").ToString(); //当期完成数 checkStatisc.TotalOneOKRate = totalManagementList.Count(x => x.ImplementationFrontState == "已完成").ToString(); //累计完成数 StatisticsList.Add(checkStatisc); Quantity1Sum += checkStatisc.CheckNum; Quantity2Sum += checkStatisc.TotalCheckNum; Quantity3Sum += checkStatisc.OKNum; Quantity4Sum += checkStatisc.TotalOKNum; Quantity5Sum += Convert.ToInt32(checkStatisc.OneOKRate); Quantity6Sum += Convert.ToInt32(checkStatisc.TotalOneOKRate); } if (StatisticsList.Count > 0) { isYm = true; whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 2; //需要插入的table foreach (var item in StatisticsList) { //创建行 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.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)); table.Rows.Insert(numberIndex, row); numberIndex += 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(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)); table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 7.1合格焊工管理情况 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) { projectStartDate = Convert.ToDateTime(project.StartDate); } } i = 1; var units = from x in Funs.DB.Project_ProjectUnit join y in Funs.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 new { x.UnitId, y.UnitName }; foreach (var item in units) { var query = from c in db.Comprehensive_InspectionPerson join u in db.Base_Unit on c.UnitId equals u.UnitId into unitJoin from u in unitJoin.DefaultIfEmpty() join cn in db.Base_CNProfessional on c.CNProfessionalId equals cn.CNProfessionalId into cnJoin from cn in cnJoin.DefaultIfEmpty() join p in db.Base_Post on c.PostId equals p.PostId into postJoin from p in postJoin.DefaultIfEmpty() where c.ProjectId == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId select new { c.InspectionPersonId, c.ProjectId, u.UnitId, u.UnitName, c.PersonName, c.ApprovalTime, cn.ProfessionalName, p.PostName }; //单位下所有集合 // List totalWelderList = BLL.PersonManageService.GetWelderListByUnitId(this.CurrUser.LoginProjectId, item.UnitId); //List welderList = BLL.PersonManageService.GetWelderListByUnitIdAndDate(this.CurrUser.LoginProjectId, item.UnitId, startDate, endDate); var totalWelderList = query.ToList(); var welderList = query .Where(x => (x.ApprovalTime >= Convert.ToDateTime(startDate) && x.ApprovalTime <= Convert.ToDateTime(endDate))); Model.PassWelderStatisc passWelderStatisc = new Model.PassWelderStatisc(); passWelderStatisc.Num = i; passWelderStatisc.UnitName = item.UnitName; passWelderStatisc.PipeMountGuard = welderList.Count(x => x.ProfessionalName == "管道" && x.PostName == "焊工"); passWelderStatisc.PipeTotal = totalWelderList.Count(x => x.ProfessionalName == "管道" && x.PostName == "焊工"); passWelderStatisc.SteelStructureMountGuard = welderList.Count(x => x.ProfessionalName == "土建" && x.PostName == "焊工"); passWelderStatisc.SteelStructureTotal = totalWelderList.Count(x => x.ProfessionalName == "土建" && x.PostName == "焊工"); passWelderStatisc.EquipmentMountGuard = welderList.Count(x => x.ProfessionalName == "设备" && x.PostName == "焊工"); passWelderStatisc.EquipmentTotal = totalWelderList.Count(x => x.ProfessionalName == "设备" && x.PostName == "焊工"); passWelderStatisc.OtherMountGuard = welderList.Count(x => x.ProfessionalName != "管道" && x.ProfessionalName != "土建" && x.ProfessionalName != "设备" && x.PostName == "焊工"); passWelderStatisc.OtherTotal = totalWelderList.Count(x => x.ProfessionalName != "管道" && x.ProfessionalName != "土建" && x.ProfessionalName != "设备" && x.PostName == "焊工"); PassWelderList.Add(passWelderStatisc); i++; Quantity1Sum += passWelderStatisc.PipeMountGuard; Quantity2Sum += passWelderStatisc.PipeTotal; Quantity3Sum += passWelderStatisc.SteelStructureMountGuard; Quantity4Sum += passWelderStatisc.SteelStructureTotal; Quantity5Sum += passWelderStatisc.EquipmentMountGuard; Quantity6Sum += passWelderStatisc.EquipmentTotal; Quantity7Sum += passWelderStatisc.OtherMountGuard; Quantity8Sum += passWelderStatisc.OtherTotal; } if (PassWelderList.Count > 0) { isYm = true; whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 2; //需要插入的table foreach (var item in PassWelderList) { //创建行 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, "", "", "unit")); 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)); table.Rows.Insert(numberIndex, row); numberIndex += 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, "", "", "unit")); 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)); table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 7.2PQR/WPS报验情况 var pqrList = ContuructionAllList.Where(x => x.ReType == "5").ToList(); if (pqrList.Count > 0) { isYm = true; whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0; foreach (var item in pqrList) { //创建行 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, "", "", "unit")); 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, "", "", "unit")); table.Rows.Insert(numberIndex, row); num1 += item.Quantity1; num2 += item.Quantity2; numberIndex += 1; } //自动设置表格样式 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, "", "", "unit")); 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); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } else { isYm = true; numberIndex = 1; whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } //创建合计 Row rowhj = new Row(doc); double numcount0 = table.FirstRow.Cells[0].CellFormat.Width; double numcount1 = table.FirstRow.Cells[1].CellFormat.Width; double numcount2 = table.FirstRow.Cells[2].CellFormat.Width; double numcount3 = table.FirstRow.Cells[3].CellFormat.Width; double numcount4 = table.FirstRow.Cells[4].CellFormat.Width; double numcount = numcount0 + numcount1 + numcount2 + numcount3 + numcount4; rowhj.Cells.Add(CreateCell("暂无数据", doc, numcount)); table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 7.3无损检测管理情况 var NondestructiveTestlist = new List(); //加载所有施工分包单位 units = from x in Funs.DB.Project_ProjectUnit join y in Funs.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 new { x.UnitId, y.UnitName }; int? totalNum0 = 0, totalNum1 = 0;//拍片数量合计 foreach (var item in units) { int? num0 = 0, num1 = 0;//拍片数量小计 var query = from c in db.ProcessControl_NondestructiveTest_New join u in db.Base_Unit on c.UnitId equals u.UnitId where c.ProjectId == this.CurrUser.LoginProjectId && c.UnitId == item.UnitId && c.CreateDate >= Convert.ToDateTime(startDate) && c.CreateDate <= Convert.ToDateTime(endDate) orderby c.CreateDate descending select new { c.CreateDate, c.ProjectId, u.UnitId, u.UnitName, c.ProfessionalName, c.MonthQuantity, c.TotalQuantity, c.MonthRate, c.TotalRate }; if (query.ToList().Count > 0) { //加载工艺管道 var gygdModel = query.FirstOrDefault(x => x.ProfessionalName == "工艺管道"); var model = new Model.ProcessControl_NondestructiveTest_New(); model.Id = Guid.NewGuid().ToString(); model.CreateMan = item.UnitName;//用作存储施工单位名称 model.ProfessionalName = "工艺管道"; if (gygdModel != null) { model.MonthQuantity = gygdModel.MonthQuantity; model.TotalQuantity = gygdModel.TotalQuantity; model.MonthRate = gygdModel.MonthRate + "%"; model.TotalRate = gygdModel.TotalRate + "%"; #region 小计和合计 //小计 num0 += gygdModel.MonthQuantity; num1 += gygdModel.TotalQuantity; //合计 totalNum0 += gygdModel.MonthQuantity; totalNum1 += gygdModel.TotalQuantity; #endregion NondestructiveTestlist.Add(model); } else { model.MonthQuantity = 0; model.TotalQuantity = 0; model.MonthRate = "0%"; model.TotalRate = "0%"; NondestructiveTestlist.Add(model); } //地管 gygdModel = query.FirstOrDefault(x => x.ProfessionalName == "地管"); model = new Model.ProcessControl_NondestructiveTest_New(); model.Id = Guid.NewGuid().ToString(); model.CreateMan = item.UnitName;//用作存储施工单位名称 model.ProfessionalName = "地管"; if (gygdModel != null) { model.MonthQuantity = gygdModel.MonthQuantity; model.TotalQuantity = gygdModel.TotalQuantity; model.MonthRate = gygdModel.MonthRate + "%"; model.TotalRate = gygdModel.TotalRate + "%"; #region 小计和合计 //小计 num0 += gygdModel.MonthQuantity; num1 += gygdModel.TotalQuantity; //合计 totalNum0 += gygdModel.MonthQuantity; totalNum1 += gygdModel.TotalQuantity; #endregion NondestructiveTestlist.Add(model); } else { model.MonthQuantity = 0; model.TotalQuantity = 0; model.MonthRate = "0%"; model.TotalRate = "0%"; NondestructiveTestlist.Add(model); } //非标 gygdModel = query.FirstOrDefault(x => x.ProfessionalName == "非标"); model = new Model.ProcessControl_NondestructiveTest_New(); model.Id = Guid.NewGuid().ToString(); model.CreateMan = item.UnitName;//用作存储施工单位名称 model.ProfessionalName = "非标"; if (gygdModel != null) { model.MonthQuantity = gygdModel.MonthQuantity; model.TotalQuantity = gygdModel.TotalQuantity; model.MonthRate = gygdModel.MonthRate + "%"; model.TotalRate = gygdModel.TotalRate + "%"; #region 小计和合计 //小计 num0 += gygdModel.MonthQuantity; num1 += gygdModel.TotalQuantity; //合计 totalNum0 += gygdModel.MonthQuantity; totalNum1 += gygdModel.TotalQuantity; #endregion NondestructiveTestlist.Add(model); } else { model.MonthQuantity = 0; model.TotalQuantity = 0; model.MonthRate = "0%"; model.TotalRate = "0%"; NondestructiveTestlist.Add(model); } //小计 model = new Model.ProcessControl_NondestructiveTest_New(); model.Id = Guid.NewGuid().ToString(); model.CreateMan = item.UnitName;//用作存储施工单位名称 model.ProfessionalName = "小计"; model.MonthQuantity = num0; model.TotalQuantity = num1; model.MonthRate = ""; model.TotalRate = ""; NondestructiveTestlist.Add(model); } } if (NondestructiveTestlist.Count > 0) { isYm = true; whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; //需要插入的table var Unitname = ""; int pageCount = 1; foreach (var item in NondestructiveTestlist) { //创建行 Row row = new Row(doc); //如果是第一列,或者 if (numberIndex == 1 || Unitname != item.CreateMan) { if (Unitname != item.CreateMan && numberIndex != 1) { 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", "", "unit")); 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", "", "unit")); 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)); table.Rows.Insert(numberIndex, row); numberIndex += 1; if (Unitname != item.CreateMan) { 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, "", "", "unit")); 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)); table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } else { isYm = true; numberIndex = 1; whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } //创建合计 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)); table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 8.设备材料报验管理情况 var sbclbyList = ContuructionAllList.Where(x => x.ReType == "6").ToList(); if (sbclbyList.Count > 0) { isYm = true; whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { //获取到第一列是序号的列 if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0; foreach (var item in sbclbyList) { //创建行 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, "", "", "unit")); 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, "", "", "unit")); table.Rows.Insert(numberIndex, row); num1 += item.Quantity1; num2 += item.Quantity2; numberIndex += 1; } //自动设置表格样式 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, "", "", "unit")); 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)); table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } else { isYm = true; numberIndex = 1; whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } //创建合计 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)); table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion var reportItem = db.Report_CQMS_MonthReportItem.Where(x => x.ReportId == Id).OrderBy(x => x.ContentName).ToList(); #region 9.计量器具报验管理情况 var measuringInspection = reportItem.Where(x => x.ReType == "9").ToList(); if (measuringInspection.Count > 0) { isYm = true; //whileIndex += 1; whileIndex = 13; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0; foreach (var item in measuringInspection) { //创建行 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, "", "", "unit")); 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, "", "", "unit")); table.Rows.Insert(numberIndex, row); num1 += item.MonthsCount; num2 += item.ProjectCount; numberIndex += 1; } //自动设置表格样式 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, "", "", "unit")); 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); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } else { isYm = true; numberIndex = 1; whileIndex = 13; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } //创建行 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)); table.Rows.Insert(numberIndex, row); } #endregion #region 10.现场质量共检数据 #region 10-1 土建 var TJInspection = reportItem.Where(x => x.ReType == "10-1").ToList(); if (TJInspection != null || TJInspection.Count > 0) { isYm = true; //whileIndex += 1; whileIndex = 14; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0, num3 = 0, num4 = 0; string num5 = string.Empty; string num6 = string.Empty; foreach (var item in TJInspection) { //创建行 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)); table.Rows.Insert(numberIndex + 1, row); num1 += item.MonthsCount; num2 += item.MonthsBackCount; num3 += item.ProjectCount; num4 += item.TotalNoBackCount; numberIndex += 1; } //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); if (num1 != 0)//被除数不能为零 { num5 = Math.Round((double)num3 / (double)num1 * 100, 2) + "%";//保留两位小数、后四舍五入 } else { num5 = "0%"; } if (num2 != 0)//被除数不能为零 { num6 = Math.Round((double)num4 / (double)num2 * 100, 2) + "%";//保留两位小数、后四舍五入 } else { num6 = "0%"; } //创建合计 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)); table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } else { isYm = true; numberIndex = 1; whileIndex = 14; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } //创建合计 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)); table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 10-2 设备 var SBInspection = reportItem.Where(x => x.ReType == "10-2").ToList(); if (SBInspection != null || SBInspection.Count > 0) { isYm = true; //whileIndex += 1; whileIndex = 15; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0, num3 = 0, num4 = 0; string num5 = string.Empty; string num6 = string.Empty; foreach (var item in SBInspection) { //创建行 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)); table.Rows.Insert(numberIndex + 1, row); num1 += item.MonthsCount; num2 += item.MonthsBackCount; num3 += item.ProjectCount; num4 += item.TotalNoBackCount; numberIndex += 1; } //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); if (num1 != 0)//被除数不能为零 { num5 = Math.Round((double)num3 / (double)num1 * 100, 2) + "%";//保留两位小数、后四舍五入 } else { num5 = "0%"; } if (num2 != 0)//被除数不能为零 { num6 = Math.Round((double)num4 / (double)num2 * 100, 2) + "%";//保留两位小数、后四舍五入 } else { num6 = "0%"; } //创建合计 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)); table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } else { isYm = true; numberIndex = 1; whileIndex = 15; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } //创建合计 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)); table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 10-3 管道 var GDInspection = reportItem.Where(x => x.ReType == "10-3").ToList(); if (GDInspection != null || GDInspection.Count > 0) { isYm = true; //whileIndex += 1; whileIndex = 16; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0, num3 = 0, num4 = 0; string num5 = string.Empty; string num6 = string.Empty; foreach (var item in GDInspection) { //创建行 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)); table.Rows.Insert(numberIndex + 1, row); num1 += item.MonthsCount; num2 += item.MonthsBackCount; num3 += item.ProjectCount; num4 += item.TotalNoBackCount; numberIndex += 1; } //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); if (num1 != 0)//被除数不能为零 { num5 = Math.Round((double)num3 / (double)num1 * 100, 2) + "%";//保留两位小数、后四舍五入 } else { num5 = "0%"; } if (num2 != 0)//被除数不能为零 { num6 = Math.Round((double)num4 / (double)num2 * 100, 2) + "%";//保留两位小数、后四舍五入 } else { num6 = "0%"; } //创建合计 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)); table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } else { isYm = true; numberIndex = 1; whileIndex = 16; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } //创建合计 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)); table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 10-4 电气 var DQInspection = reportItem.Where(x => x.ReType == "10-4").ToList(); if (DQInspection != null || DQInspection.Count > 0) { isYm = true; //whileIndex += 1; whileIndex = 17; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0, num3 = 0, num4 = 0; string num5 = string.Empty; string num6 = string.Empty; foreach (var item in DQInspection) { //创建行 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)); table.Rows.Insert(numberIndex + 1, row); num1 += item.MonthsCount; num2 += item.MonthsBackCount; num3 += item.ProjectCount; num4 += item.TotalNoBackCount; numberIndex += 1; } //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); if (num1 != 0)//被除数不能为零 { num5 = Math.Round((double)num3 / (double)num1 * 100, 2) + "%";//保留两位小数、后四舍五入 } else { num5 = "0%"; } if (num2 != 0)//被除数不能为零 { num6 = Math.Round((double)num4 / (double)num2 * 100, 2) + "%";//保留两位小数、后四舍五入 } else { num6 = "0%"; } //创建合计 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)); table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } else { isYm = true; numberIndex = 1; whileIndex = 17; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } //创建合计 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)); table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 10-5.仪表 var YBInspection = reportItem.Where(x => x.ReType == "10-5").ToList(); if (YBInspection != null || YBInspection.Count > 0) { isYm = true; //whileIndex += 1; whileIndex = 18; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0, num3 = 0, num4 = 0; string num5 = string.Empty; string num6 = string.Empty; foreach (var item in YBInspection) { //创建行 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)); table.Rows.Insert(numberIndex + 1, row); num1 += item.MonthsCount; num2 += item.MonthsBackCount; num3 += item.ProjectCount; num4 += item.TotalNoBackCount; numberIndex += 1; } //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); if (num1 != 0)//被除数不能为零 { num5 = Math.Round((double)num3 / (double)num1 * 100, 2) + "%";//保留两位小数、后四舍五入 } else { num5 = "0%"; } if (num2 != 0)//被除数不能为零 { num6 = Math.Round((double)num4 / (double)num2 * 100, 2) + "%";//保留两位小数、后四舍五入 } else { num6 = "0%"; } //创建合计 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)); table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } else { isYm = true; numberIndex = 1; whileIndex = 18; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } //创建合计 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)); table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 10-6.防腐 var FFInspection = reportItem.Where(x => x.ReType == "10-6").ToList(); if (FFInspection != null || FFInspection.Count > 0) { isYm = true; //whileIndex += 1; whileIndex = 19; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0, num3 = 0, num4 = 0; string num5 = string.Empty; string num6 = string.Empty; foreach (var item in FFInspection) { //创建行 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)); table.Rows.Insert(numberIndex + 1, row); num1 += item.MonthsCount; num2 += item.MonthsBackCount; num3 += item.ProjectCount; num4 += item.TotalNoBackCount; numberIndex += 1; } //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); if (num1 != 0)//被除数不能为零 { num5 = Math.Round((double)num3 / (double)num1 * 100, 2) + "%";//保留两位小数、后四舍五入 } else { num5 = "0%"; } if (num2 != 0)//被除数不能为零 { num6 = Math.Round((double)num4 / (double)num2 * 100, 2) + "%";//保留两位小数、后四舍五入 } else { num6 = "0%"; } //创建合计 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)); table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } else { isYm = true; numberIndex = 1; whileIndex = 19; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } //创建合计 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)); table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 10-7.消防 var XFInspection = reportItem.Where(x => x.ReType == "10-7").ToList(); if (XFInspection != null || XFInspection.Count > 0) { isYm = true; //whileIndex += 1; whileIndex = 20; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0, num3 = 0, num4 = 0; string num5 = string.Empty; string num6 = string.Empty; foreach (var item in XFInspection) { //创建行 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)); table.Rows.Insert(numberIndex + 1, row); num1 += item.MonthsCount; num2 += item.MonthsBackCount; num3 += item.ProjectCount; num4 += item.TotalNoBackCount; numberIndex += 1; } //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); if (num1 != 0)//被除数不能为零 { num5 = Math.Round((double)num3 / (double)num1 * 100, 2) + "%";//保留两位小数、后四舍五入 } else { num5 = "0%"; } if (num2 != 0)//被除数不能为零 { num6 = Math.Round((double)num4 / (double)num2 * 100, 2) + "%";//保留两位小数、后四舍五入 } else { num6 = "0%"; } //创建合计 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)); table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } else { isYm = true; numberIndex = 1; whileIndex = 20; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } //创建合计 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)); table.Rows.Insert(numberIndex + 1, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 10.总数 var InspectionDataInspection = reportItem.Where(x => x.ReType == "10").ToList(); if (InspectionDataInspection != null || InspectionDataInspection.Count > 0) { isYm = true; //whileIndex += 1; whileIndex = 21; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; //decimal? num1 = 0, num2 = 0; //decimal MonthsCountstring = 0, ProjectCountstring = 0; int CheckNum = 0, OKNum = 0, TotalCheckNum = 0, TotalOKNum = 0; string QuantitySum1 = String.Empty;//本月检查合格点数/本月检查点数 string QuantitySum2 = String.Empty;//累计检查合格点数/累计检查点数 foreach (var item in InspectionDataInspection) { if (string.IsNullOrEmpty(item.RectificationRate)) { item.RectificationRate = "0%"; } if (string.IsNullOrEmpty(item.TotationRate)) { item.TotationRate = "0%"; } //创建行 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, "", "", "unit")); 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)); table.Rows.Insert(numberIndex, row); //num1 += MonthsCountstring; //num2 += ProjectCountstring; CheckNum += Convert.ToInt32(item.MonthsCount); OKNum += Convert.ToInt32(item.ProjectCount); TotalCheckNum += Convert.ToInt32(item.MonthsBackCount); TotalOKNum += Convert.ToInt32(item.TotalNoBackCount); numberIndex += 1; } //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); if (CheckNum != 0)//被除数不能为零 { QuantitySum1 = Math.Round((decimal)OKNum / (decimal)CheckNum * 100, 2) + "%";//保留两位小数、后四舍五入 } else { QuantitySum1 = "0%"; } if (TotalCheckNum != 0)//被除数不能为零 { QuantitySum2 = Math.Round((decimal)TotalOKNum / (decimal)TotalCheckNum * 100, 2) + "%";//保留两位小数、后四舍五入 } else { QuantitySum2 = "0%"; } //创建合计 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, "", "", "unit")); 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)); table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #endregion #region 11.压力管道监检情况 var PressureInspection = reportItem.Where(x => x.ReType == "11").ToList(); if (PressureInspection.Count > 0) { isYm = true; //whileIndex += 1; whileIndex = 22; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0, num3 = 0; foreach (var item in PressureInspection) { //创建行 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, "", "", "unit")); 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, "", "", "unit")); table.Rows.Insert(numberIndex, row); num1 += item.MonthsCount; num2 += item.ProjectCount; num3 += item.TotalNoBackCount; numberIndex += 1; } //自动设置表格样式 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, "", "", "unit")); 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)); table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 12.管道试压包管理情况 var PipingInspection = reportItem.Where(x => x.ReType == "12").ToList(); if (PipingInspection.Count > 0) { isYm = true; //whileIndex += 1; whileIndex = 23; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0, num3 = 0; foreach (var item in PipingInspection) { //创建行 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, "", "", "unit")); 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, "", "", "unit")); table.Rows.Insert(numberIndex, row); num3 += item.TotalNoBackCount; num1 += item.MonthsCount; num2 += item.ProjectCount; numberIndex += 1; } //自动设置表格样式 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, "", "", "unit")); 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)); table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 13.特种设备监检情况 var SpecialInspection = reportItem.Where(x => x.ReType == "13").ToList(); if (SpecialInspection.Count > 0) { isYm = true; //whileIndex += 1; whileIndex = 24; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0, num3 = 0; foreach (var item in SpecialInspection) { //创建行 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, "", "", "unit")); 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, "", "", "unit")); table.Rows.Insert(numberIndex, row); num1 += item.MonthsCount; num2 += item.ProjectCount; num3 += item.TotalNoBackCount; numberIndex += 1; } //自动设置表格样式 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, "", "", "unit")); 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)); table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 14.NCR管理情况 var NcrManagementInspection = reportItem.Where(x => x.ReType == "14").ToList(); if (NcrManagementInspection.Count > 0) { isYm = true; //whileIndex += 1; whileIndex = 25; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0, num3 = 0; string num4 = string.Empty; foreach (var item in NcrManagementInspection) { //创建行 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, "", "", "unit")); 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)); table.Rows.Insert(numberIndex, row); num1 += item.MonthsCount; num2 += item.ProjectCount; num3 += item.TotalNoBackCount; numberIndex += 1; } if (num2 != 0)//被除数不能为零 { num4 = Math.Round((double)num2 / (double)num3 * 100, 2) + "%";//保留两位小数、后四舍五3 } else { num4 = "0%"; } //自动设置表格样式 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, "", "", "unit")); 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)); table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 15.质量巡检情况 var qualityInspections = reportItem.Where(x => x.ReType == "1").ToList(); if (qualityInspections.Count > 0) { isYm = true; //whileIndex += 1; whileIndex = 26; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0; foreach (var item in qualityInspections) { //创建行 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, "", "", "unit")); 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, "", "", "unit")); table.Rows.Insert(numberIndex, row); num1 += item.MonthsCount; num2 += item.ProjectCount; numberIndex += 1; } //自动设置表格样式 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, "", "", "unit")); 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)); table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 16.质量专项检查情况 var specialChecks = reportItem.Where(x => x.ReType == "2").ToList(); if (specialChecks.Count > 0) { isYm = true; //whileIndex += 1; whileIndex = 27; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0; foreach (var item in specialChecks) { //创建行 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, "", "", "unit")); 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, "", "", "unit")); table.Rows.Insert(numberIndex, row); num1 += item.MonthsCount; num2 += item.ProjectCount; numberIndex += 1; } //自动设置表格样式 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, "", "", "unit")); 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); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 17.质量文件上报情况 var fileReports = reportItem.Where(x => x.ReType == "3").ToList(); if (fileReports.Count > 0) { isYm = true; //whileIndex += 1; whileIndex = 28; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); //跳过页眉的表头 while (isYm) { if (table.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm = false; } } numberIndex = 1; int? num1 = 0, num2 = 0, num3 = 0, num4 = 0; foreach (var item in fileReports) { //创建行 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, "", "", "unit")); 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)); table.Rows.Insert(numberIndex, row); num1 += item.MonthsCount; num2 += item.ProjectCount; num3 += item.MonthsBackCount; num4 += item.TotalNoBackCount; numberIndex += 1; } //自动设置表格样式 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, "", "", "unit")); 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)); table.Rows.Insert(numberIndex, rowhj); //自动设置表格样式 table.AutoFit(AutoFitBehavior.FixedColumnWidths); } #endregion #region 18.本月质量问题处理情况 #region (1)原材料问题 whileIndex = 29; Aspose.Words.Tables.Table table18_1 = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); bool isYm18_1 = true; //跳过页眉的表头 while (isYm18_1) { if (table18_1.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table18_1 = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm18_1 = false; } } var rowMaterialProblems = db.Report_RowMaterialProblem.Where(x => x.ReportId == Id); int numberIndex18_1 = 1; foreach (var item in rowMaterialProblems) { //创建行 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, "", "", "unit")); row.Cells.Add(CreateCell(item.ProblemDesrioption, doc, table18_1.FirstRow.Cells[2].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.TreatmentMeasures, doc, table18_1.FirstRow.Cells[3].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.ProcessingResults, doc, table18_1.FirstRow.Cells[4].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.Remark, doc, table18_1.FirstRow.Cells[5].CellFormat.Width, "", "", "unit")); table18_1.Rows.Insert(numberIndex18_1, row); numberIndex18_1 += 1; } //自动设置表格样式 table18_1.AutoFit(AutoFitBehavior.FixedColumnWidths); #endregion #region (2)施工过程问题 whileIndex = 30; Aspose.Words.Tables.Table table18_2 = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); bool isYm18_2 = true; //跳过页眉的表头 while (isYm18_2) { if (table18_2.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table18_2 = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm18_2 = false; } } var constructionProblems = db.Report_ConstructionProblems.Where(x => x.ReportId == Id); int numberIndex18_2 = 1; foreach (var item in constructionProblems) { //创建行 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, "", "", "unit")); row.Cells.Add(CreateCell(item.ProblemDesrioption, doc, table18_2.FirstRow.Cells[2].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.TreatmentMeasures, doc, table18_2.FirstRow.Cells[3].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.ProcessingResults, doc, table18_2.FirstRow.Cells[4].CellFormat.Width, "", "", "unit")); row.Cells.Add(CreateCell(item.Remark, doc, table18_2.FirstRow.Cells[5].CellFormat.Width, "", "", "unit")); table18_2.Rows.Insert(numberIndex18_2, row); numberIndex18_2 += 1; } //自动设置表格样式 table18_2.AutoFit(AutoFitBehavior.FixedColumnWidths); #endregion #endregion #region 19.下月质量控制重点 whileIndex = 31; Aspose.Words.Tables.Table table19 = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); bool isYm19 = true; //跳过页眉的表头 while (isYm19) { if (table19.Range.Text.Substring(0, 2) != "序号") { whileIndex += 1; table19 = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, whileIndex, true); } else { isYm19 = false; } } var nextQualityControls = db.Report_NextQualityControl.Where(x => x.ReportId == Id); int numberIndex19 = 1; foreach (var item in nextQualityControls) { //创建行 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, "", "", "unit")); table19.Rows.Insert(numberIndex19, row); numberIndex19 += 1; } //自动设置表格样式 table19.AutoFit(AutoFitBehavior.FixedColumnWidths); #endregion #region 20.项目质量体系审核 bkmark = doc.Range.Bookmarks["Content20"]; if (bkmark != null) { bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "20").ContentText; } #endregion #region 21.类似项目管理经验教训应对措施及跟踪 bkmark = doc.Range.Bookmarks["Content21"]; if (bkmark != null) { bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "21").ContentText; } #endregion #region 22.附件 bkmark = doc.Range.Bookmarks["Content22"]; if (bkmark != null) { bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "22").ContentText; } #endregion #region 23.施工照片 string imageUrl = "res/images/R-C.png"; var imageUrl1 = txtReportList.FirstOrDefault(x => x.ContentType == "23-1").ImageUrl; if (!string.IsNullOrWhiteSpace(imageUrl1) && imageUrl1 != imageUrl) { string rootPathUrl = rootPath.Replace("\\", "/"); string url = rootPathUrl + imageUrl1; //DocumentBuilder builder = new DocumentBuilder(doc); builder.MoveToBookmark("ImageUrl1"); if (!string.IsNullOrEmpty(url)) { System.Drawing.Size JpgSize; float Wpx; float Hpx; UploadAttachmentService.getJpgSize(rootPathUrl + imageUrl1, out JpgSize, out Wpx, out Hpx); //double w = 1; //w = JpgSize.Width / 50.0; if (File.Exists(url)) { //builder.InsertImage(url, JpgSize.Width / w, JpgSize.Height / w); builder.InsertImage(url, 200, 150); } } } var imageUrl2 = txtReportList.FirstOrDefault(x => x.ContentType == "23-2").ImageUrl; if (!string.IsNullOrWhiteSpace(imageUrl2) && imageUrl2 != imageUrl) { string rootPathUrl = rootPath.Replace("\\", "/"); string url = rootPathUrl + imageUrl2; //DocumentBuilder builder = new DocumentBuilder(doc); builder.MoveToBookmark("ImageUrl2"); if (!string.IsNullOrEmpty(url)) { System.Drawing.Size JpgSize; float Wpx; float Hpx; UploadAttachmentService.getJpgSize(rootPathUrl + imageUrl2, out JpgSize, out Wpx, out Hpx); //double w = 1; //w = JpgSize.Width / 50.0; if (File.Exists(url)) { //builder.InsertImage(url, JpgSize.Width / w, JpgSize.Height / w); builder.InsertImage(url, 200, 150); } } } var imageUrl3 = txtReportList.FirstOrDefault(x => x.ContentType == "23-3").ImageUrl; if (!string.IsNullOrWhiteSpace(imageUrl3) && imageUrl3 != imageUrl) { string rootPathUrl = rootPath.Replace("\\", "/"); string url = rootPathUrl + imageUrl3; //DocumentBuilder builder = new DocumentBuilder(doc); builder.MoveToBookmark("ImageUrl3"); if (!string.IsNullOrEmpty(url)) { System.Drawing.Size JpgSize; float Wpx; float Hpx; UploadAttachmentService.getJpgSize(rootPathUrl + imageUrl3, out JpgSize, out Wpx, out Hpx); //double w = 1; //w = JpgSize.Width / 50.0; if (File.Exists(url)) { //builder.InsertImage(url, JpgSize.Width / w, JpgSize.Height / w); builder.InsertImage(url, 200, 150); } } } var imageUrl4 = txtReportList.FirstOrDefault(x => x.ContentType == "23-4").ImageUrl; if (!string.IsNullOrWhiteSpace(imageUrl4) && imageUrl4 != imageUrl) { string rootPathUrl = rootPath.Replace("\\", "/"); string url = rootPathUrl + imageUrl4; //DocumentBuilder builder = new DocumentBuilder(doc); builder.MoveToBookmark("ImageUrl4"); if (!string.IsNullOrEmpty(url)) { System.Drawing.Size JpgSize; float Wpx; float Hpx; UploadAttachmentService.getJpgSize(rootPathUrl + imageUrl4, out JpgSize, out Wpx, out Hpx); //double w = 1; //w = JpgSize.Width / 50.0; if (File.Exists(url)) { //builder.InsertImage(url, JpgSize.Width / w, JpgSize.Height / w); builder.InsertImage(url, 200, 150); } } } var imageUrl5 = txtReportList.FirstOrDefault(x => x.ContentType == "23-5").ImageUrl; if (!string.IsNullOrWhiteSpace(imageUrl5) && imageUrl5 != imageUrl) { string rootPathUrl = rootPath.Replace("\\", "/"); string url = rootPathUrl + imageUrl5; //DocumentBuilder builder = new DocumentBuilder(doc); builder.MoveToBookmark("ImageUrl5"); if (!string.IsNullOrEmpty(url)) { System.Drawing.Size JpgSize; float Wpx; float Hpx; UploadAttachmentService.getJpgSize(rootPathUrl + imageUrl5, out JpgSize, out Wpx, out Hpx); //double w = 1; //w = JpgSize.Width / 50.0; if (File.Exists(url)) { //builder.InsertImage(url, JpgSize.Width / w, JpgSize.Height / w); builder.InsertImage(url, 200, 150); } } } var imageUrl6 = txtReportList.FirstOrDefault(x => x.ContentType == "23-6").ImageUrl; if (!string.IsNullOrWhiteSpace(imageUrl6) && imageUrl6 != imageUrl) { string rootPathUrl = rootPath.Replace("\\", "/"); string url = rootPathUrl + imageUrl6; //DocumentBuilder builder = new DocumentBuilder(doc); builder.MoveToBookmark("ImageUrl6"); if (!string.IsNullOrEmpty(url)) { System.Drawing.Size JpgSize; float Wpx; float Hpx; UploadAttachmentService.getJpgSize(rootPathUrl + imageUrl6, out JpgSize, out Wpx, out Hpx); //double w = 1; //w = JpgSize.Width / 50.0; if (File.Exists(url)) { //builder.InsertImage(url, JpgSize.Width / w, JpgSize.Height / w); builder.InsertImage(url, 200, 150); } } } bkmark = doc.Range.Bookmarks["ImageContent1"]; if (bkmark != null) { bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "23-1").ContentText; } bkmark = doc.Range.Bookmarks["ImageContent2"]; if (bkmark != null) { bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "23-2").ContentText; } bkmark = doc.Range.Bookmarks["ImageContent3"]; if (bkmark != null) { bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "23-3").ContentText; } bkmark = doc.Range.Bookmarks["ImageContent4"]; if (bkmark != null) { bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "23-4").ContentText; } bkmark = doc.Range.Bookmarks["ImageContent5"]; if (bkmark != null) { bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "23-5").ContentText; } bkmark = doc.Range.Bookmarks["ImageContent6"]; if (bkmark != null) { bkmark.Text = txtReportList.FirstOrDefault(x => x.ContentType == "23-6").ContentText; } #endregion #region 设置页眉上的数据 whileIndex = 1; table = (Aspose.Words.Tables.Table)doc.GetChild(NodeType.Table, 1, true); if (unitsYz != null) { //业主名称 table.Rows[0].Cells[2].FirstParagraph.Runs[0].Text = unitsYz.UnitName; } //项目号 table.Rows[0].Cells[4].FirstParagraph.Runs[0].Text = pModel.ProjectCode; //项目名称 table.Rows[2].Cells[2].FirstParagraph.Runs[0].Text = pModel.ProjectName; table.Rows[2].Cells[3].FirstParagraph.Runs[0].Text = pModel.ProjectCode + "-RM-PQM-" + weekModel.SortId; //总页数 table.Rows[4].Cells[5].FirstParagraph.Runs[0].Text = doc.PageCount.ToString(); bkmark = doc.Range.Bookmarks["CountPage"]; if (bkmark != null) { bkmark.Text = doc.PageCount.ToString(); } //页眉是第二个表 //tableIndex—要移动的表的索引。 //rowIndex - 表中行的索引。 //columnIndex—表中列的索引。 //字符在单元格中的索引。目前只能指定0移动到单元格的开头,或指定 - 1移动到单元格的结尾。 //builder.MoveToCell(1,0,2,0); //builder.Write(unitsYz.UnitName); #endregion doc.Save(newUrl); 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); } catch (Exception ex) { Alert.ShowInTop(ex.Message, MessageBoxIcon.Warning); throw; } } #endregion } }