public void UpdateTableContents(LibEntity.PreWarningResultTable preWarningResultTableEntity, int tunnelID) { if (preWarningResultTableEntity != null) { _tunnelID = tunnelID; //获取巷道实体信息 var tunnelEnt = Tunnel.Find(_tunnelID); // 标题 fpPreWarningResultTable.Sheets[0].Cells[0, 0].Text = tunnelEnt.TunnelName + "预警结果表"; // 预警日期 fpPreWarningResultTable.Sheets[0].Cells[3, 1].Text = preWarningResultTableEntity.PreWarningDate; // 预警时间 fpPreWarningResultTable.Sheets[0].Cells[3, 3].Text = preWarningResultTableEntity.PreWarningTime; /** 预警结果 **/ // 超限预警 fpPreWarningResultTable.Sheets[0].Cells[7, 2].Text = preWarningResultTableEntity.PreWarningResultArr[0].UltralimitPreWarning; // 超限预警-说明 fpPreWarningResultTable.Sheets[0].Cells[7, 5].Text = preWarningResultTableEntity.PreWarningResultArr[0].UltralimitPreWarningEX; // 突出预警 fpPreWarningResultTable.Sheets[0].Cells[9, 2].Text = preWarningResultTableEntity.PreWarningResultArr[0].OutburstPreWarning; // 突出预警-说明 fpPreWarningResultTable.Sheets[0].Cells[9, 5].Text = preWarningResultTableEntity.PreWarningResultArr[0].OutburstPreWarningEX; /** 预警依据 **/ for (var i = 1; i < preWarningResultTableEntity.PreWarningResultArr.Length; i++) { // 超限预警 fpPreWarningResultTable.Sheets[0].Cells[9 + i * 4, 2].Text = preWarningResultTableEntity.PreWarningResultArr[i].UltralimitPreWarning; // 超限预警-说明 fpPreWarningResultTable.Sheets[0].Cells[9 + i * 4, 5].Text = preWarningResultTableEntity.PreWarningResultArr[i].UltralimitPreWarningEX; var count = setCellHigh(preWarningResultTableEntity.PreWarningResultArr[i].UltralimitPreWarningEX); fpPreWarningResultTable.Sheets[0].Rows[10 + i * 4].Height = fpPreWarningResultTable.Sheets[0].Rows[9 + i * 4].Height * count; // 突出预警 fpPreWarningResultTable.Sheets[0].Cells[11 + i * 4, 2].Text = preWarningResultTableEntity.PreWarningResultArr[i].OutburstPreWarning; // 突出预警-说明 fpPreWarningResultTable.Sheets[0].Cells[11 + i * 4, 5].Text = preWarningResultTableEntity.PreWarningResultArr[i].OutburstPreWarningEX; var count2 = setCellHigh(preWarningResultTableEntity.PreWarningResultArr[i].OutburstPreWarningEX); fpPreWarningResultTable.Sheets[0].Rows[12 + i * 4].Height = fpPreWarningResultTable.Sheets[0].Rows[11 + i * 4].Height * count2; } } }
public static PreWarningResultTable Convert2WarningResultTableEntity(PreWarningResult[] results) { var tblEntRet = new PreWarningResultTable(); if (results == null || results.Length <= 0) { return(null); } //瓦斯数据预警结果 //地质构造数据预警结果 //煤层赋存 //通风 //采掘影响 //瓦斯数据预警结果 //瓦斯数据预警结果 //综合预警结果 var comprehensiveResultOutOfLimit = new PreWarningReasonsByType(); //超限综合预警结果 var comprehensiveResultOutburst = new PreWarningReasonsByType(); //突出综合预警结果 comprehensiveResultOutOfLimit.WarningLevel = WARNING_LEVEL_RESULT.NODATA; comprehensiveResultOutburst.WarningLevel = WARNING_LEVEL_RESULT.NODATA; #region 各种规则类别的超限和突出预警结果 var htResultsOutOfLimit = new Hashtable(); //超限预警结果 var htResultOutburst = new Hashtable(); //突出预警结果 string[] types = Const_WM.GetRuleTypeConstStrings(); int nTypes = types.Length; for (int i = 0; i < nTypes; i++) { htResultsOutOfLimit.Add(types[i], new PreWarningReasonsByType()); htResultOutburst.Add(types[i], new PreWarningReasonsByType()); } int nResultCnt = results.Length; for (int i = 0; i < nResultCnt; i++) { PreWarningResult curPreWarningResultEnt = results[i]; //获取规则编码对应的预警级别 WARNING_LEVEL_RESULT curRulesEntWarningLevel = curPreWarningResultEnt.PreWarningRulesEntity.GetRuleWarningLevel(); //单条预警原因 var tmpWarningReasonUnit = new PreWarningReasonUnit(); //获取最终显示给用户的规则描述 tmpWarningReasonUnit.Notes = curPreWarningResultEnt.PreWarningRulesEntity.GetRuleDescriptionWithoutAdditionalCharacter(); //在预警原因后面添加时间,以区分重复规则描述 tmpWarningReasonUnit.Notes += "("; tmpWarningReasonUnit.Notes += curPreWarningResultEnt.WarningDataCommonInfoEnt.Date.ToString("yyyy/MM/dd hh:mm:ss"); tmpWarningReasonUnit.Notes += ")"; //超限预警 if (curPreWarningResultEnt.PreWarningRulesEntity.WarningType == Const_WM.WARNING_TYPE_OUT_OF_LIMIT) { //超限预警当前规则类别的预警原因 //引用类型实体改值会反馈至其他实体 var outOfLimitCurTypeWarningReason = ((PreWarningReasonsByType) htResultsOutOfLimit[curPreWarningResultEnt.PreWarningRulesEntity.RuleType]); //超限预警最终预警级别 if (outOfLimitCurTypeWarningReason.WarningLevel < curRulesEntWarningLevel) { outOfLimitCurTypeWarningReason.WarningLevel = curRulesEntWarningLevel; } if (comprehensiveResultOutOfLimit.WarningLevel < curRulesEntWarningLevel) { comprehensiveResultOutOfLimit.WarningLevel = curRulesEntWarningLevel; } tmpWarningReasonUnit.WarningLevelResult = curRulesEntWarningLevel; //将预警原因添加至原因列表 outOfLimitCurTypeWarningReason.LstWarningResultDetails.Add(tmpWarningReasonUnit); } //突出预警 else if (results[i].PreWarningRulesEntity.WarningType == Const_WM.WARNING_TYPE_GAS_OUTBURST) { //超限预警当前规则类别的预警原因 //引用类型实体改值会反馈至其他实体 var outburstCurTypeWarningReason = ((PreWarningReasonsByType) htResultOutburst[curPreWarningResultEnt.PreWarningRulesEntity.RuleType]); //超限预警最终预警级别 if (outburstCurTypeWarningReason.WarningLevel < curRulesEntWarningLevel) { outburstCurTypeWarningReason.WarningLevel = curRulesEntWarningLevel; } if (comprehensiveResultOutburst.WarningLevel < curRulesEntWarningLevel) { comprehensiveResultOutburst.WarningLevel = curRulesEntWarningLevel; } tmpWarningReasonUnit.WarningLevelResult = curRulesEntWarningLevel; //将预警原因添加至原因列表 outburstCurTypeWarningReason.LstWarningResultDetails.Add(tmpWarningReasonUnit); } else { Alert.alert("未定义预警类型:" + results[i].PreWarningRulesEntity.WarningType); } } #endregion tblEntRet.PreWarningDate = DateTime.Now.ToString("yyyy/MM/dd"); tblEntRet.PreWarningResultArr = new[] { Convert2WarningResultTablePart(comprehensiveResultOutburst, comprehensiveResultOutOfLimit), //综合预警结果 Parse2WarningResultTablePart(htResultOutburst, htResultsOutOfLimit, Const_WM.RULE_TYPE_GAS), //瓦斯 Parse2WarningResultTablePart(htResultOutburst, htResultsOutOfLimit, Const_WM.RULE_TYPE_GEOLOGIC_STRUCTURE), //地质构造 Parse2WarningResultTablePart(htResultOutburst, htResultsOutOfLimit, Const_WM.RULE_TYPE_COAL_OCURRENCE), //"煤层赋存"; Parse2WarningResultTablePart(htResultOutburst, htResultsOutOfLimit, Const_WM.RULE_TYPE_VENTILATION), //"通风"; Parse2WarningResultTablePart(htResultOutburst, htResultsOutOfLimit, Const_WM.RULE_TYPE_MINING_INFLUENCE), //"采掘影响"; Parse2WarningResultTablePart(htResultOutburst, htResultsOutOfLimit, Const_WM.RULE_TYPE_SOLUTION), // "防突措施"; //Parse2WarningResultTablePart(htResultOutburst, htResultsOutOfLimit, Const_WM.RULE_TYPE_PREDICTION),// "日常预测"; Parse2WarningResultTablePart(htResultOutburst, htResultsOutOfLimit, Const_WM.RULE_TYPE_MANAGE_FACTOR), // "管理因素"; Parse2WarningResultTablePart(htResultOutburst, htResultsOutOfLimit, Const_WM.RULE_TYPE_OTHERS) //"其他"; }; //综合预警结果 string[] ruleTyps = Const_WM.GetRuleTypeConstStrings(); int nTypesResult = ruleTyps.Length; string finalOutburstStr = ""; string finalOutOfLimitStr = ""; for (int i = 0; i < nTypesResult; i++) { //突出 finalOutburstStr += ruleTyps[i]; finalOutburstStr += Const_WM.WARNING_REASON_COLON; finalOutburstStr += tblEntRet.PreWarningResultArr[i + 1].OutburstPreWarning; if (i != nTypesResult - 1) { finalOutburstStr += Const_WM.WARNING_REASON_SEPERATOR_SEMICOLON; finalOutburstStr += Const_WM.WARNING_REASON_SEPERATOR_RETURN; } else { finalOutburstStr += Const_WM.WARNING_REASON_END; } //超限 finalOutOfLimitStr += ruleTyps[i]; finalOutOfLimitStr += Const_WM.WARNING_REASON_COLON; finalOutOfLimitStr += tblEntRet.PreWarningResultArr[i + 1].UltralimitPreWarning; if (i != nTypesResult - 1) { finalOutOfLimitStr += Const_WM.WARNING_REASON_SEPERATOR_SEMICOLON; finalOutOfLimitStr += Const_WM.WARNING_REASON_SEPERATOR_RETURN; } else { finalOutOfLimitStr += Const_WM.WARNING_REASON_END; } } //综合预警结果 var comprehensiveResult = new PreWarningResultTableUnit(); comprehensiveResult.OutburstPreWarning = PreWarningResultTableUnit.ConvertWarningLevel2UserStr(comprehensiveResultOutburst.WarningLevel); comprehensiveResult.OutburstPreWarningEX = finalOutburstStr; comprehensiveResult.UltralimitPreWarning = PreWarningResultTableUnit.ConvertWarningLevel2UserStr(comprehensiveResultOutOfLimit.WarningLevel); comprehensiveResult.UltralimitPreWarningEX = finalOutOfLimitStr; tblEntRet.PreWarningResultArr[0] = comprehensiveResult; tblEntRet.PreWarningTime = DateTime.Now.ToString("hh:mm:ss"); return(tblEntRet); }
public PreWarningResultTable(LibEntity.PreWarningResultTable preWarningResultTableEntity, int tunnelID) { InitializeComponent(); _tunnelID = tunnelID; UpdateTableContents(preWarningResultTableEntity, tunnelID); }