void CreateExceptionRecordsCell(ReportDownloadModel Datas, XWPFTable table, out CT_Row m_NewRow, out XWPFTableRow m_Row, out XWPFTableCell cell, out CT_Tc cttc, out CT_TcPr ctPr) { DealWithMergeCell(table, out m_NewRow, out m_Row, out cell, out cttc, out ctPr); StartMergeRow(cttc, ctPr, "异常记录"); cell = m_Row.CreateCell(); SetBoldFontCell(cell, "检测类型"); SetAlign(cell); cell = m_Row.CreateCell(); SetBoldFontCell(cell, "测点编号"); SetAlign(cell); cell = m_Row.CreateCell(); SetBoldFontCell(cell, "测点位置"); SetAlign(cell); cell = m_Row.CreateCell(); SetBoldFontCell(cell, "异常次数"); SetAlign(cell); for (int i = 1; i <= Datas.ExceptionRecordNumber; i++) { m_NewRow = new CT_Row(); m_Row = new XWPFTableRow(m_NewRow, table); table.AddRow(m_Row); cell = m_Row.CreateCell(); cttc = cell.GetCTTc(); ctPr = cttc.AddNewTcPr(); ctPr.AddNewVMerge().val = ST_Merge.@continue;//合并行 //横向创建4个单元格 for (int k = 1; k < 5; k++) { cell = m_Row.CreateCell(); SetAlign(cell); } } }
/// <summary> /// 创建一份报告 /// </summary> /// <returns></returns> public dynamic GetDownloadDatas(int reportId) { var resp = new FirstLevelSafetyAssessmentReportDownloadResponse(); IList <Func <FirstAssessment_FirstLevelSafetyAssessmentReportTable, bool> > reportPs = new List <Func <FirstAssessment_FirstLevelSafetyAssessmentReportTable, bool> >(); IList <Func <FirstAssessment_FirstLevelOfSafetyAssessmentExceptionRecordTable, bool> > exceptionRecordPs = new List <Func <FirstAssessment_FirstLevelOfSafetyAssessmentExceptionRecordTable, bool> >(); IList <Func <FirstAssessment_FirstLevelOfSafetyAssessmentResultsTable, bool> > resultsPs = new List <Func <FirstAssessment_FirstLevelOfSafetyAssessmentResultsTable, bool> >(); IEnumerable <FirstAssessment_FirstLevelOfSafetyAssessmentExceptionRecordTable> exceptionRecordData = new List <FirstAssessment_FirstLevelOfSafetyAssessmentExceptionRecordTable>(); try { DealWithExceptionRecordReportId(reportId, exceptionRecordPs); DealWithReportId(reportId, reportPs); DealWithResultsReportId(reportId, resultsPs); var exceptionRecordModels = _exceptionRecordDAL.FindBy(exceptionRecordPs, ServiceConstant.ExceptionRecordAssessmentReport).ToList(); var resultsModel = _resultDAL.FindBy(resultsPs, ServiceConstant.ResultsAssessmentReport).SingleOrDefault(); var reportModel = _reportDAL.FindBy(reportPs, ServiceConstant.ReportAssessmentReasons).SingleOrDefault(); var reportDownloadModel = new ReportDownloadModel(exceptionRecordModels, resultsModel, reportModel); //创建报告模板 resp.Report = _reportProcessor.Create(reportDownloadModel); resp.Succeed = true; } catch (Exception ex) { resp.Message = "报告下载出错!"; Log(ex); } return(resp); }
/// <summary> /// 异常记录动态赋值 /// </summary> /// <param name="Datas"></param> /// <param name="table"></param> static void SetExceptionRecordsValue(ReportDownloadModel Datas, XWPFTable table) { int j = ServiceConstant.FirstExceptionRecordRowNumber; foreach (var item in Datas.ExceptionRecordModels) { table.GetRow(j).GetCell(1).SetText(item.TestType); table.GetRow(j).GetCell(2).SetText(item.MonitoringPointsNumbers); table.GetRow(j).GetCell(3).SetText(item.MonitoringPointsPositions); table.GetRow(j).GetCell(4).SetText(item.ExceptionNumber.ToString()); j++; } }
/// <summary> /// 对“评估结果”动态赋值,若测试类型为异常,则“评估结果”内容为红色字体 /// </summary> /// <param name="Datas"></param> /// <param name="table"></param> void SetAssessmentResultsValue(ReportDownloadModel Datas, XWPFTable table) { int disExceptionNumber = 0; int strExceptionNumber = 0; int cabExceptionNumber = 0; foreach (var item in Datas.ExceptionRecordModels) { switch (item.TestType) { case "索力": cabExceptionNumber++; break; case "位移": disExceptionNumber++; break; case "钢拱肋应变": strExceptionNumber++; break; case "钢格构应变": strExceptionNumber++; break; case "混凝土应变": strExceptionNumber++; break; default: break; } } if (disExceptionNumber > 0) { SetRedFontCell(table.GetRow(3).GetCell(2), Datas.ResultsModel.DisplacementAssessmentResult); } else { table.GetRow(3).GetCell(2).SetText(Datas.ResultsModel.DisplacementAssessmentResult); } table.GetRow(3).GetCell(4).SetText(Datas.ResultsModel.DisplacementAssessmentSuggestion); if (strExceptionNumber > 0) { SetRedFontCell(table.GetRow(4).GetCell(2), Datas.ResultsModel.StrainAssessmentResult); } else { table.GetRow(4).GetCell(2).SetText(Datas.ResultsModel.StrainAssessmentResult); } table.GetRow(4).GetCell(4).SetText(Datas.ResultsModel.StrainAssessmentSuggestion); if (strExceptionNumber > 0) { SetRedFontCell(table.GetRow(5).GetCell(2), Datas.ResultsModel.CableForceAssessmentResult); } else { table.GetRow(5).GetCell(2).SetText(Datas.ResultsModel.CableForceAssessmentResult); } table.GetRow(5).GetCell(4).SetText(Datas.ResultsModel.CableForceAssessmentSuggestion); table.GetRow(3).MergeCells(2, 3); table.GetRow(4).MergeCells(2, 3); table.GetRow(5).MergeCells(2, 3); }
/// <summary> /// 对评估报告表格表头动态赋值 /// </summary> /// <param name="Datas"></param> /// <param name="table"></param> static void SetReportHeaderValue(ReportDownloadModel Datas, XWPFTable table) { table.GetRow(0).GetCell(4).SetText(Datas.ReportModel.ReportPeriods); table.GetRow(1).GetCell(1).SetText(Datas.ReportModel.AssessmentReasons.AssessmentReasons); table.GetRow(1).GetCell(4).SetText(DateTimeHelper.FormatDateTime(Datas.ReportModel.ReportTime)); }