/// <summary> /// 根据巷道ID设置巷道使用的预警规则,并根据巷道的参数更新规则参数 /// </summary> /// <param name="tunnelID"></param> public void SetTunnelSelectedRuleIdsAndUpdateParams(int tunnelID) { var all = PreWarningRulesBLL.GetTunnelBindingRuleIdsAndParams(tunnelID); if (all == null) { ClearSelectedRules(); return; } var lstRules = all.ToList(); //遍历Farpoint所有规则 var rows = fpRules.Sheets[0].Rows.Count; for (var i = DATA_START_IDX; i < rows; i++) { var curRuleInFp = int.Parse(fpRules.Sheets[0].Cells[i, 11].Value.ToString()); fpRules.Sheets[0].Cells[i, 0].Value = false; for (var j = 0; j < lstRules.Count; j++) { if (lstRules[j].Id == curRuleInFp) { fpRules.Sheets[0].Cells[i, 0].Value = true; var ruleEnt = GetEntityFromFarpointRow(i); //使用该方法速度较快(不用读数据库),不能用:PreWarningRulesBLL.GetPreWarningRulesEntityByRuleCode(curRuleInFp),速度慢! ruleEnt.UpdateRuleDescriptionByParams(lstRules[j].PreWarningParams); SetFarpointRowValues(i, ruleEnt); lstRules.Remove(lstRules[j]); break; } } } }
/// <summary> /// 更新巷道绑定的规则编码和参数信息 /// </summary> /// <param name="tunnelID"></param> /// <returns></returns> public bool UpdateTunnelBindingRuleCodeAndParamsInfo(int tunnelID) { //遍历Farpoint中所有规则编码,获取选中规则编码及参数信息 var lstParam = new List <RuleInfo>(); var nRows = fpRules.Sheets[0].Rows.Count; try { for (var i = DATA_START_IDX; i < nRows; i++) { if (fpRules.Sheets[0].Cells[i, 0] == null) { break; } if (bool.Parse(fpRules.Sheets[0].Cells[i, 0].Value.ToString())) { var oneInfo = GetEntityFromFarpointRow(i).GetRuleCodeAndParamsInfo(); lstParam.Add(oneInfo); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } return(PreWarningRulesBLL.UpdateRuleIdsAndParams2TunnelTable(tunnelID, lstParam.ToArray())); //return false; }
/// <summary> /// 根据筛选条件显示预警规则 /// </summary> /// <param name="filter">筛选条件</param> /// <returns>成功返回ture,否则false</returns> private bool FillFarpointCellsWithLocationFilter(RULE_TYPE_LOCATION_FILTER filter) { DataSet ds = null; switch (filter) { case RULE_TYPE_LOCATION_FILTER.JUE_JIN_RULES: //掘进工作面预警规则 ds = PreWarningRulesBLL.selectJueJinWarningRules(); break; case RULE_TYPE_LOCATION_FILTER.HUI_CAI_RULES: //回采工作面预警规则 ds = PreWarningRulesBLL.selectHuiCaiWarningRules(); break; case RULE_TYPE_LOCATION_FILTER.JUE_JIN_HUI_CAI_COMMON: //掘进和回采通用规则 ds = PreWarningRulesBLL.selectJueJinHuiCaiCommonRules(); break; case RULE_TYPE_LOCATION_FILTER.OTHERS: //其他地点 ds = PreWarningRulesBLL.selectOthersRules(); break; case RULE_TYPE_LOCATION_FILTER.WHOLE: //整个矿井 ds = PreWarningRulesBLL.selectAllWarningRules(); break; default: break; } return(FillFarpointCellsWithDataset(ds)); //return false; }
private bool FillFarpointCellsWithWarningTypeFilter(RULE_TYPE_WARNING_TYPE_FILTER warningType) { DataSet ds = null; ds = PreWarningRulesBLL.selectAllWarningRules(); var filterStr = Const_WM.WARNING_TYPE_OUT_OF_LIMIT; //设置过滤条件 switch (warningType) { case RULE_TYPE_WARNING_TYPE_FILTER.OUT_OF_LIMIT: //超限 filterStr = Const_WM.WARNING_TYPE_OUT_OF_LIMIT; break; case RULE_TYPE_WARNING_TYPE_FILTER.OUTBURST: //突出 filterStr = Const_WM.WARNING_TYPE_GAS_OUTBURST; break; case RULE_TYPE_WARNING_TYPE_FILTER.ALL: default: filterStr = Const.ALL_STRING; break; } var ret = FillFarpointCellsWithDataset(ds); //const int warningTypeFilterIdx = 3; //this.fpRules.ActiveSheet.AutoFilterColumn(warningTypeFilterIdx, filterStr, 0); return(ret); }
/// <summary> /// 更新规则参数至预警规则表 /// </summary> private void UpdateRuleParams2RuleTable() { var newEnt = GetEntFromProperyGrid(); newEnt.ModifyDate = DateTime.Now; SetFarpointRowValues(fpRules.Sheets[0].ActiveRow.Index, newEnt); //更新至预警规则数据库表 if (!PreWarningRulesBLL.updateWarningRulesInfo(newEnt)) { Alert.alert("更新预警规则至数据库失败!"); } }