/// <summary> /// 增加一个走字项目 /// </summary> /// <param name="Glfx">功率方向</param> /// <param name="Method">试验方法(基本走字,还是标准表法)</param> /// <param name="Yj">元件</param> /// <param name="Glys">功率因素</param> /// <param name="xIb">电流倍数</param> /// <param name="Feilvstring">费率描述</param> /// <param name="ZuHeWc">是否做组合误差0不做,1做</param> /// <param name="Prj">具体走字项目列表</param> /// <returns></returns> public bool Add(Cus_PowerFangXiang Glfx , Cus_ZouZiMethod Method , Cus_PowerYuanJian Yj , string Glys , string xIb , string Feilvstring , string ZuHeWc , List <StPlan_ZouZi.StPrjFellv> Prj) { StPlan_ZouZi _ZouZi = new StPlan_ZouZi(); _ZouZi.PrjID = getZouZiPrjID(Glfx, Yj, Glys, xIb); _ZouZi.xIb = xIb; _ZouZi.Glys = Glys; _ZouZi.FeiLvString = Feilvstring; _ZouZi.ZouZiMethod = Method; _ZouZi.ZuHeWc = ZuHeWc; _ZouZi.ZouZiPrj = Prj; if (_LstZouZi.Contains(_ZouZi)) { return(false); } _LstZouZi.Add(_ZouZi); return(true); }
/// <summary> /// 移动走字项目 /// </summary> /// <param name="i">需要移动到的列表位置</param> /// <param name="Item">项目结构体</param> public void Move(int i, StPlan_ZouZi Item) { i = i < 0 ? 0 : i; i = i >= _LstZouZi.Count ? _LstZouZi.Count - 1 : i; this.Remove(Item); _LstZouZi.Insert(i, Item); return; }
/// <summary> /// 根据项目移除 /// </summary> /// <param name="Item">项目结构体</param> public void Remove(StPlan_ZouZi Item) { if (!_LstZouZi.Contains(Item)) { return; } _LstZouZi.Remove(Item); return; }
/// <summary> /// 加载走字方案 /// </summary> private bool Load() { _LstZouZi = new List <StPlan_ZouZi>(); string _ErrorString = ""; XmlNode _XmlNode = clsXmlControl.LoadXml(_FAPath, out _ErrorString); if (_ErrorString != "") { return(false); } try { //Cus_ZouZiMethod _Method =(Cus_ZouZiMethod)int.Parse(clsXmlControl.getNodeAttributeValue(_XmlNode, "JdFS")); for (int _i = 0; _i < _XmlNode.ChildNodes.Count; _i++) { StPlan_ZouZi _Item = new StPlan_ZouZi(); _Item.PrjID = _XmlNode.ChildNodes[_i].Attributes["PrjID"].Value; //项目ID _Item.Glys = _XmlNode.ChildNodes[_i].Attributes["Glys"].Value; //功率因素 _Item.xIb = _XmlNode.ChildNodes[_i].Attributes["xIb"].Value; //电流倍数 _Item.FeiLvString = _XmlNode.ChildNodes[_i].Attributes["feilv"].Value; //费率描述 _Item.ZouZiMethod = (Cus_ZouZiMethod)int.Parse(_XmlNode.ChildNodes[_i].Attributes["CheckType"].Value); //走字方法 _Item.ZuHeWc = _XmlNode.ChildNodes[_i].Attributes["ZuHeWc"].Value + ""; //是否做组合误差 if (_Item.ZuHeWc == "") { _Item.ZuHeWc = "0"; //是否做组合误差 } _Item.ZouZiPrj = new List <StPlan_ZouZi.StPrjFellv>(); //方案项目内容(走分费率) for (int _j = 0; _j < _XmlNode.ChildNodes[_i].ChildNodes.Count; _j++) { XmlNode _ChildNode = _XmlNode.ChildNodes[_i].ChildNodes[_j]; StPlan_ZouZi.StPrjFellv _Prj = new StPlan_ZouZi.StPrjFellv(); _Prj.FeiLv = (Cus_FeiLv)int.Parse(_ChildNode.Attributes["feilv"].Value); _Prj.StartTime = _ChildNode.Attributes["StartTime"].Value; _Prj.ZouZiTime = _ChildNode.Attributes["Time"].Value; _Item.ZouZiPrj.Add(_Prj); } _LstZouZi.Add(_Item); } return(true); } catch (Exception ex) { CLDC_DataCore.Function.ErrorLog.Write(ex); throw ex; //return false; } }
/// <summary> /// 加载方案项目 /// </summary> /// <param name="FaItem">方案项目</param> public void LoadFA(CLDC_DataCore.Model.Plan.Plan_ZouZi FaItem) { Dgv_Data.Rows.Clear(); base.FaName = FaItem.Name; try { Cmb_Fa.Text = FaItem.Name; } catch { Cmb_Fa.SelectedIndex = 0; } for (int _i = 0; _i < FaItem.Count; _i++) //循环方案对象 { StPlan_ZouZi _Obj = FaItem.getZouZiPrj(_i); //取出一个方案项目 string zouziShortDecript = string.Empty; for (int i = 0; i < _Obj.ZouZiPrj.Count; i++) { zouziShortDecript += _Obj.ZouZiPrj[i].FeiLv + _Obj.ZouZiPrj[i].ZouZiTime + " "; } //Dgv_Data.Rows[RowIndex].Cells[6].Value = zouziShortDecript; int RowIndex = Dgv_Data.Rows.Add(); Dgv_Data.Rows[RowIndex].Cells[0].Value = _i + 1; ((DataGridViewComboBoxCell)Dgv_Data.Rows[RowIndex].Cells[1]).Value = _Obj.PowerFangXiang.ToString(); //功率方向 ((DataGridViewComboBoxCell)Dgv_Data.Rows[RowIndex].Cells[2]).Value = _Obj.PowerYj.ToString(); //元件 ((DataGridViewComboBoxCell)Dgv_Data.Rows[RowIndex].Cells[3]).Value = _Obj.Glys; //功率因素 ((DataGridViewComboBoxCell)Dgv_Data.Rows[RowIndex].Cells[4]).Value = _Obj.xIb; //电流倍数 ((DataGridViewComboBoxCell)Dgv_Data.Rows[RowIndex].Cells[5]).Value = _Obj.ZouZiMethod.ToString(); //走字方法 Dgv_Data.Rows[RowIndex].Cells[6].Value = zouziShortDecript; Dgv_Data.Rows[RowIndex].Cells[6].Tag = _Obj.ZouZiPrj; //走字内容 Dgv_Data.Rows[RowIndex].Cells[7].Value = _Obj.ZuHeWc == "0" ? false : true; //组合误差 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[6].Value = CONST_NOTESTRING; Dgv_Data.Rows[RowIndex].Cells[Dgv_Data.Columns.Count - 1].Value = CONST_ADD; Dgv_Data.Rows[RowIndex].Cells[Dgv_Data.Columns.Count - 1].Style.ForeColor = Color.Blue; } this.UpDownButtonState(0); //设置上下移动按钮状态 }
/// <summary> /// 保存走字方案到XML文档 /// </summary> public void Save() { if (_LstZouZi.Count == 0) { return; } clsXmlControl _XmlNode = new clsXmlControl(); _XmlNode.appendchild("", "ZZSY", "Name", Name);//, "JdFS", ((int)_LstZouZi[0].ZouZiMethod).ToString()); for (int _i = 0; _i < _LstZouZi.Count; _i++) { StPlan_ZouZi _Item = _LstZouZi[_i]; XmlNode _ChildNode = _XmlNode.appendchild(true , "R" , "PrjID" , _Item.PrjID , "GLFX" , ((int)_Item.PowerFangXiang).ToString() , "Yj" , ((int)_Item.PowerYj).ToString() , "Glys" , _Item.Glys , "xIb" , _Item.xIb , "feilv" , _Item.FeiLvString , "CheckType" , ((int)_Item.ZouZiMethod).ToString() , "ZuHeWc" , _Item.ZuHeWc); for (int _j = 0; _j < _Item.ZouZiPrj.Count; _j++) { StPlan_ZouZi.StPrjFellv _Prj = _Item.ZouZiPrj[_j]; _ChildNode.AppendChild(clsXmlControl.CreateXmlNode("C", "feilv", ((int)_Prj.FeiLv).ToString(), "StartTime", _Prj.StartTime, "Time", _Prj.ZouZiTime)); } } _XmlNode.SaveXml(_FAPath); return; }
/// <summary> /// 创建方案,这个创建方案仅仅是创建方案项目列表,在09-7-2日以后使用 /// </summary> /// <returns></returns> public List <object> CreateFA(Model.DnbModel.DnbInfo.MeterBasicInfo mb_Info, ref string Ib, ref int Qs, ref string WcLimit) { List <object> CheckFaItem = new List <object>(); if (_Plan.Count == 0) { return(CheckFaItem); } for (int i = 0; i < _Plan.Count; i++) { StFAGroup _Item = _Plan[i]; switch (_Item.FAType) { case Cus_FAGroup.预先调试: //预热方案加载 Plan_PrepareTest _Pre = new Plan_PrepareTest(_TaiType, _Item.FAName); for (int j = 0; j < _Pre.Count; j++) { CheckFaItem.Add(_Pre.getDgnPrj(j)); } _Pre = null; break; case Cus_FAGroup.预热试验: //预热方案加载 Plan_YuRe _YuRe = new Plan_YuRe(_TaiType, _Item.FAName); for (int j = 0; j < _YuRe.Count; j++) { CheckFaItem.Add(_YuRe.getYuRePrj(j)); } _YuRe = null; break; case Cus_FAGroup.外观检查试验: //外观检查试验方案加载 Plan_WGJC _WGJC = new Plan_WGJC(_TaiType, _Item.FAName); for (int j = 0; j < _WGJC.Count; j++) { CheckFaItem.Add(_WGJC.getWGJCPrj(j)); } _WGJC = null; break; case Cus_FAGroup.起动试验: //启动方案项目加载 Plan_QiDong _QiDong = new Plan_QiDong(_TaiType, _Item.FAName); for (int j = 0; j < _QiDong.Count; j++) { StPlan_QiDong stQiD = _QiDong.getQiDongPrj(j); stQiD.CheckTimeAndIb(mb_Info.GuiChengName, CLDC_DataCore.Const.GlobalUnit.Clfs, CLDC_DataCore.Const.GlobalUnit.U, mb_Info.Mb_chrIb, mb_Info.Mb_chrBdj, mb_Info.Mb_chrBcs, mb_Info.Mb_BlnZnq, mb_Info.Mb_BlnHgq); CheckFaItem.Add(stQiD); } _QiDong = null; break; case Cus_FAGroup.潜动试验: //潜动项目方案加载 Plan_QianDong _QianDong = new Plan_QianDong(_TaiType, _Item.FAName); for (int j = 0; j < _QianDong.Count; j++) { StPlan_QianDong stQianD = _QianDong.getQianDongPrj(j); stQianD.CheckTimeAndIb(mb_Info.GuiChengName, CLDC_DataCore.Const.GlobalUnit.Clfs, CLDC_DataCore.Const.GlobalUnit.U, mb_Info.Mb_chrIb, mb_Info.Mb_chrBdj, mb_Info.Mb_chrBcs, mb_Info.Mb_BlnZnq, mb_Info.Mb_BlnHgq); CheckFaItem.Add(stQianD); } _QianDong = null; break; case Cus_FAGroup.基本误差试验: //基本误差试验方案加载 Plan_WcPoint _Wc = new Plan_WcPoint(_TaiType, _Item.FAName); Ib = _Wc.Qscz; Qs = _Wc.Czqs; WcLimit = _Wc.CzWcLimit; for (int j = 0; j < _Wc.Count; j++) { CheckFaItem.Add(_Wc.getCheckPoint(j)); } _Wc = null; break; case Cus_FAGroup.走字试验: //走字试验方案项目加载 Plan_ZouZi _Zouzi = new Plan_ZouZi(_TaiType, _Item.FAName); for (int j = 0; j < _Zouzi.Count; j++) { StPlan_ZouZi _ZouPrjPlan = _Zouzi.getZouZiPrj(j); for (int z = 0; z < _ZouPrjPlan.ZouZiPrj.Count; z++) { CheckFaItem.Add(_ZouPrjPlan.getNewPlan(z)); } } _Zouzi = null; break; case Cus_FAGroup.多功能试验: //多功能试验方案项目加载 Plan_Dgn _Dgn = new Plan_Dgn(_TaiType, _Item.FAName); for (int j = 0; j < _Dgn.Count; j++) { CheckFaItem.Add(_Dgn.getDgnPrj(j)); } _Dgn = null; break; case Cus_FAGroup.通讯协议检查试验: //通讯协议检查试验 Plan_ConnProtocolCheck _Cpc = new Plan_ConnProtocolCheck(_TaiType, _Item.FAName); for (int j = 0; j < _Cpc.Count; j++) { CheckFaItem.Add(_Cpc.getConnProtocolPrj(j)); } _Dgn = null; break; case Cus_FAGroup.影响量试验: Plan_Specal _Specal = new Plan_Specal(_TaiType, _Item.FAName); for (int j = 0; j < _Specal.Count; j++) { CheckFaItem.Add(_Specal.getSpecalPrj(j)); } _Specal = null; break; case Cus_FAGroup.载波试验: Plan_Carrier _ZaiBo = new Plan_Carrier(_TaiType, _Item.FAName); for (int j = 0; j < _ZaiBo.Count; j++) { CheckFaItem.Add(_ZaiBo.GetCarrierPrj(j)); } _ZaiBo = null; break; case Cus_FAGroup.误差一致性: Plan_ErrAccord _ErrAccord = new Plan_ErrAccord(_TaiType, _Item.FAName); for (int j = 0; j < _ErrAccord.Count; j++) { CheckFaItem.Add(_ErrAccord.getErrAccordPrj(j)); } _ErrAccord = null; break; case Cus_FAGroup.功耗试验: { Plan_PowerConsume _PowerConsume = new Plan_PowerConsume(_TaiType, _Item.FAName); for (int j = 0; j < _PowerConsume.Count; j++) { CheckFaItem.Add(_PowerConsume.getPowerConsumePrj(j)); } _PowerConsume = null; } break; case Cus_FAGroup.冻结功能试验: Plan_Freeze _Freeze = new Plan_Freeze(_TaiType, _Item.FAName); for (int j = 0; j < _Freeze.Count; j++) { CheckFaItem.Add(_Freeze.getFreezePrj(j)); } _Freeze = null; break; case Cus_FAGroup.费控功能试验: Plan_CostControl _CostControl = new Plan_CostControl(_TaiType, _Item.FAName); for (int j = 0; j < _CostControl.Count; j++) { CheckFaItem.Add(_CostControl.getCostControlPrj(j)); } _CostControl = null; break; case Cus_FAGroup.智能表功能试验: Plan_Function _Function = new Plan_Function(_TaiType, _Item.FAName); for (int j = 0; j < _Function.Count; j++) { CheckFaItem.Add(_Function.getFunctionPrj(j)); } _Function = null; break; case Cus_FAGroup.事件记录试验: Plan_EventLog _Eventlog = new Plan_EventLog(_TaiType, _Item.FAName); for (int j = 0; j < _Eventlog.Count; j++) { CheckFaItem.Add(_Eventlog.getEventLogPrj(j)); } _Eventlog = null; break; case Cus_FAGroup.数据转发试验: Plan_DataSendForRelay _DataSend = new Plan_DataSendForRelay(_TaiType, _Item.FAName); for (int j = 0; j < _DataSend.Count; j++) { CheckFaItem.Add(_DataSend.getDataSendForRelay(j)); } _DataSend = null; break; case Cus_FAGroup.工频耐压试验: Plan_Insulation planInsulation = new Plan_Insulation(_TaiType, _Item.FAName); for (int j = 0; j < planInsulation.Count; j++) { CheckFaItem.Add(planInsulation.GetPlan(j)); } planInsulation = null; break; case Cus_FAGroup.红外数据比对试验: Plan_Infrared planInfrared = new Plan_Infrared(_TaiType, _Item.FAName); for (int j = 0; j < planInfrared.Count; j++) { CheckFaItem.Add(planInfrared.GetCarrierPrj(j)); } planInfrared = null; break; case Cus_FAGroup.负荷记录试验: Plan_LoadRecord planA = new Plan_LoadRecord(_TaiType, _Item.FAName); for (int j = 0; j < planA.Count; j++) { CheckFaItem.Add(planA.GetCurrentPrj(j)); } planA = null; break; } } return(CheckFaItem); }