/// <summary> /// 加载载波方案到载波数据列表 /// </summary> private void Load() { m_Lst_CarrierPlan = new List <StPlan_Carrier>(); string str_Error = ""; XmlNode xmlNode = clsXmlControl.LoadXml(_FAPath, out str_Error); if (str_Error != "") { return; } for (int _i = 0; _i < xmlNode.ChildNodes.Count; _i++) { StPlan_Carrier stCarrierPlan = new StPlan_Carrier(); stCarrierPlan.str_Name = xmlNode.ChildNodes[_i].Attributes["Name"].Value; stCarrierPlan.str_Code = xmlNode.ChildNodes[_i].Attributes["Code"].Value; if (xmlNode.ChildNodes[_i].Attributes["Times"] != null) { stCarrierPlan.int_Times = int.Parse(xmlNode.ChildNodes[_i].Attributes["Times"].Value.ToString()); } if (xmlNode.ChildNodes[_i].Attributes["Interval"] != null) { stCarrierPlan.int_Interval = int.Parse(xmlNode.ChildNodes[_i].Attributes["Interval"].Value.ToString()); } if (xmlNode.ChildNodes[_i].Attributes["ModuleSwaps"] != null) { stCarrierPlan.b_ModuleSwaps = xmlNode.ChildNodes[_i].Attributes["ModuleSwaps"].Value.ToString() == "1" ? true : false; } m_Lst_CarrierPlan.Add(stCarrierPlan); } }
/// <summary> /// 移动载波项目 /// </summary> /// <param name="p_int_MoveToIndex">需要移动到的列表位置</param> /// <param name="p_scp_Item">项目结构体</param> public void Move(int p_int_MoveToIndex, StPlan_Carrier p_scp_Item) { p_int_MoveToIndex = p_int_MoveToIndex < 0 ? 0 : p_int_MoveToIndex; p_int_MoveToIndex = p_int_MoveToIndex >= m_Lst_CarrierPlan.Count ? m_Lst_CarrierPlan.Count - 1 : p_int_MoveToIndex; this.Remove(p_scp_Item); m_Lst_CarrierPlan.Insert(p_int_MoveToIndex, p_scp_Item); return; }
/// <summary> /// 根据项目移除 /// </summary> /// <param name="Item">项目结构体</param> public void Remove(StPlan_Carrier p_scp_Item) { if (!m_Lst_CarrierPlan.Contains(p_scp_Item)) { return; } m_Lst_CarrierPlan.Remove(p_scp_Item); return; }
/// <summary> /// 加载方案项目 /// </summary> /// <param name="p_pcc_Item">方案项目</param> public void LoadPlan(CLDC_DataCore.Model.Plan.Plan_Carrier p_pcc_Item) { Dgv_Data.Rows.Clear(); base.FaName = p_pcc_Item.Name; try { Cmb_Fa.Text = p_pcc_Item.Name; } catch { Cmb_Fa.SelectedIndex = 0; } //【遍历方案对象】 for (int _i = 0; _i < p_pcc_Item.Count; _i++) { //【取出一个方案项目】 StPlan_Carrier _Obj = p_pcc_Item.GetCarrierPrj(_i); int RowIndex = Dgv_Data.Rows.Add(); Dgv_Data.Rows[RowIndex].Cells[0].Value = _i + 1; ((DataGridViewComboBoxCell)Dgv_Data.Rows[RowIndex].Cells[1]).Value = _Obj.str_Name; //项目名称 ((DataGridViewCell)Dgv_Data.Rows[RowIndex].Cells[2]).Value = _Obj.str_Code; //标识符 ((DataGridViewCheckBoxCell)Dgv_Data.Rows[RowIndex].Cells[3]).Value = _Obj.b_ModuleSwaps; //载波模块互换 Dgv_Data.Rows[RowIndex].Cells[Dgv_Data.Columns.Count - 1].Value = "删除"; //删除按钮 Dgv_Data[Dgv_Data.Columns.Count - 1, RowIndex].Style.ForeColor = Color.Red; //删除按钮为红色 } //【最后增加一个空行,用于新增】 { int RowIndex = Dgv_Data.Rows.Add(); Dgv_Data.Rows[RowIndex].Cells[Dgv_Data.Columns.Count - 1].Value = "添加"; Dgv_Data.Rows[RowIndex].Cells[Dgv_Data.Columns.Count - 1].Style.ForeColor = Color.Blue; } //【设置上下移动按钮状态】 this.UpDownButtonState(0); }
/// <summary> /// 数据刷新 /// </summary> /// <param name="meterGroup">电能表数据集合</param> /// <param name="CheckOrderID">当前检定点</param> public void RefreshData(CLDC_DataCore.Model.DnbModel.DnbGroupInfo meterGroup, int CheckOrderID) { bool bFind = false; StPlan_Carrier _Item = (StPlan_Carrier)meterGroup.CheckPlan[CheckOrderID]; if (Tab_Carrier.TabPages.Count > 1) //如果Tab的页数大于1,那表示存在动态增加的数据页 { if (Data_Carrier.Tag != null) { bFind = true; } else { for (int i = Tab_Carrier.TabPages.Count - 1; i > 0; i--) { Tab_Carrier.TabPages.RemoveAt(i); } bFind = false; } } if (!bFind) { Data_Carrier.Tag = _Item.str_PrjID; //将ID值放到数据列表的Tag中,供数据刷新使用 Tab_Carrier.TabPages.Add("载波数据"); CLDC_MeterUI.UI_Detection_New.CarrierView.ViewCarrier _Carrier = new CLDC_MeterUI.UI_Detection_New.CarrierView.ViewCarrier(); Tab_Carrier.TabPages[1].Controls.Add(_Carrier); _Carrier.Dock = DockStyle.Fill; _Carrier.Margin = new System.Windows.Forms.Padding(0); } this.RefreshGrid(meterGroup, CheckOrderID); Data_Carrier.Enabled = true; }
/// <summary> /// 添加一个载波项目 /// </summary> /// <param name="p_int_Order"></param> /// <param name="p_str_Type">载波试验类型</param> /// <param name="p_str_Name">项目名称</param> /// <param name="p_strCode">标识符</param> /// <param name="p_int_Times">发送次数</param> /// <param name="p_flt_Succ">成功率</param> /// <param name="p_int_Interval">间隔时间(秒)</param> /// <returns></returns> public bool Add(int p_int_Order, string p_str_Name, string p_strCode, bool b_ModuleSwaps) { StPlan_Carrier scp_Item = new StPlan_Carrier(); scp_Item.str_Name = p_str_Name; scp_Item.str_Code = p_strCode; scp_Item.b_ModuleSwaps = b_ModuleSwaps; if (b_ModuleSwaps) { scp_Item.int_Times = 5; scp_Item.int_Interval = 10; } if (m_Lst_CarrierPlan.Contains(scp_Item)) { Move(p_int_Order, scp_Item); } else { m_Lst_CarrierPlan.Insert(p_int_Order, scp_Item); } return(true); }
private void thShowData(object obj) { CheckPlan = CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.CheckPlan; CLDC_DataCore.Model.DnbModel.DnbInfo.MeterBasicInfo curMeter = null; if (CLDC_DataCore.Const.GlobalUnit.g_CUS == null) { return; } lock (objShowDataLock) { bool isRead = false; string strKey = string.Empty; for (int bw = 0; bw < BwCount; bw++) { //if (bw > BwCount) break; string strMessageValue = string.Empty; curMeter = CLDC_DataCore.Const.GlobalUnit.Meter(bw); /*表格显示中的表位序号是从1开始*/ ClientTable.SetCheckBoxValue(bw + 1, curMeter.YaoJianYn); if (!curMeter.YaoJianYn) { continue; } if (CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.ActiveItemID < 0 || CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.CheckState == CLDC_Comm.Enum.Cus_CheckStaute.停止检定) { //参数录入状态下刷新时显示条形码 strMessageValue = curMeter.Mb_ChrTxm; } else { //数据验证 //if (curMeter.MeterPlan == null || curMeter.MeterPlan.CheckPlan == null) continue; //if (CheckPlan.Count <= CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.ActiveItemID) return; strKey = ""; object curPlan = CheckPlan[CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.ActiveItemID]; if (curPlan is CLDC_DataCore.Struct.StPlan_ZouZi) { strKey = ((CLDC_DataCore.Struct.StPlan_ZouZi)curPlan).PrjID; } CLDC_DataCore.Model.DnbModel.DnbInfo.MeterResult curResult = null; #region 预热数据显示 if (curPlan is StPlan_YuRe) { strMessageValue = "预热中"; } #endregion #region 起动/启动数据 else if (curPlan is StPlan_QiDong) { strKey = ((int)CLDC_Comm.Enum.Cus_MeterResultPrjID.起动试验).ToString("D3"); strKey += ((int)((StPlan_QiDong)curPlan).PowerFangXiang).ToString(); if (curMeter.MeterResults.ContainsKey(strKey)) { curResult = curMeter.MeterResults[strKey]; strMessageValue = curResult.Mr_chrRstValue; isRead = curResult.Mr_chrRstValue == CLDC_DataCore.Const.Variable.CTG_BuHeGe; } else { strMessageValue = "准备检定"; } } #endregion #region 潜动试验显示 else if (curPlan is StPlan_QianDong) { strKey = ((int)CLDC_Comm.Enum.Cus_MeterResultPrjID.潜动试验).ToString("000"); strKey += ((int)((StPlan_QianDong)curPlan).PowerFangXiang).ToString(); if (curMeter.MeterResults.ContainsKey(strKey)) { curResult = curMeter.MeterResults[strKey]; strMessageValue = curResult.Mr_chrRstValue; isRead = curResult.Mr_chrRstValue == CLDC_DataCore.Const.Variable.CTG_BuHeGe; } else { strMessageValue = "准备检定"; } } #endregion #region 基本误差/标准偏差 else if (curPlan is StPlan_WcPoint) { //strKey = "P_" + CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.ActiveItemID; StPlan_WcPoint _curPoint = (StPlan_WcPoint)curPlan; CLDC_DataCore.Model.DnbModel.DnbInfo.MeterError curErroWc = null; strKey = _curPoint.PrjID; if (curMeter.MeterErrors.ContainsKey(strKey)) { curErroWc = curMeter.MeterErrors[strKey]; string[] strErrorValue = curErroWc.Me_chrWcMore.Split('|'); if (strErrorValue.Length > 0) { strMessageValue = strErrorValue[0]; } if (curErroWc.Me_chrWcJl == CLDC_DataCore.Const.Variable.CTG_BuHeGe) { isRead = true; } } } #endregion #region ----------特殊检定----------- else if (curPlan is StPlan_SpecalCheck) { //Comm.Struct.CheckPoint _curPoint = (Comm.Struct.CheckPoint)curPlan; strKey = "P_" + CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.ActiveItemID; CLDC_DataCore.Model.DnbModel.DnbInfo.MeterSpecialErr curErroWc = null; //strKey = _curPoint.PrjID; if (curMeter.MeterSpecialErrs.ContainsKey(strKey)) { curErroWc = curMeter.MeterSpecialErrs[strKey]; string[] strErrorValue = curErroWc.Mse_Wc.Split('|'); if (strErrorValue.Length > 0) { strMessageValue = strErrorValue[0]; } if (curErroWc.Mse_Result == CLDC_DataCore.Const.Variable.CTG_BuHeGe) { isRead = true; } } } #endregion #region 走字数据 else if (curPlan is StPlan_ZouZi) { CLDC_DataCore.Model.DnbModel.DnbInfo.MeterZZError curZZerror = null; if (curMeter.MeterZZErrors.ContainsKey(strKey)) { curZZerror = curMeter.MeterZZErrors[strKey]; if (m_VerifyStep == CLDC_Comm.Enum.Cus_stVerifyStep.走字试验录起码 || m_VerifyStep == CLDC_Comm.Enum.Cus_stVerifyStep.走字试验录止码) { strMessageValue = ""; } else if (m_VerifyStep == CLDC_Comm.Enum.Cus_stVerifyStep.走字试验录止码完毕) { //止码 strMessageValue = curZZerror.Mz_chrZiMa.ToString(); } else if (m_VerifyStep == CLDC_Comm.Enum.Cus_stVerifyStep.走字试验录起码完毕) { //起码 strMessageValue = curZZerror.Mz_chrQiMa.ToString(); } else if (m_VerifyStep == CLDC_Comm.Enum.Cus_stVerifyStep.计算误差完毕) { //起码 strMessageValue = curZZerror.Mz_chrWc.ToString(); } else { //中途进入 if (curZZerror.Mz_chrZiMa != -1) { strMessageValue = curZZerror.Mz_chrZiMa.ToString(); } else if (curZZerror.Mz_chrQiMa != -1) { strMessageValue = curZZerror.Mz_chrQiMa.ToString(); } else { strMessageValue = ""; } } if (curZZerror.Mz_chrJL == CLDC_DataCore.Const.Variable.CTG_BuHeGe) { isRead = true; } } } #endregion #region 多功能数据 else if (curPlan is CLDC_DataCore.Struct.StPlan_Dgn) { strMessageValue = "检定中"; CLDC_DataCore.Struct.StPlan_Dgn DgnPlan = (CLDC_DataCore.Struct.StPlan_Dgn)curPlan; } #endregion #region 载波数据 else if (curPlan is StPlan_Carrier) { strMessageValue = "检定中"; StPlan_Carrier CarrierPlan = (StPlan_Carrier)curPlan; } #endregion else { //MUSTDO:走字,多功能检定客户端显示还没有做 } } //更新到UI ClientTable.SetTextValue(bw + 1, strMessageValue); ClientTable.SetTextBackColorValue(bw + 1, isRead); } } }