/// <summary> /// 谐波方案数据加载 /// </summary> public void Load() { string ErrorString = ""; XmlNode _XmlNode = CLDC_DataCore.DataBase.clsXmlControl.LoadXml(System.Windows.Forms.Application.StartupPath + CLDC_DataCore.Const.Variable.CONST_XIEBO, out ErrorString); XieBoCol.Clear(); _FaName.Clear(); if (ErrorString != "") //有错误,一般存在的错误在于未找到该谐波配置文件,未找到则初始化一个空的谐波文件 { _XmlNode = CLDC_DataCore.DataBase.clsXmlControl.CreateXmlNode("XieBo"); CLDC_DataCore.DataBase.clsXmlControl.SaveXml(_XmlNode, System.Windows.Forms.Application.StartupPath + CLDC_DataCore.Const.Variable.CONST_XIEBO); } for (int i = 0; i < _XmlNode.ChildNodes.Count; i++) { _FaName.Add(_XmlNode.ChildNodes[i].Attributes[0].Value); //获取方案名称 List <CLDC_DataCore.Struct.StXieBo> Items = new List <CLDC_DataCore.Struct.StXieBo>(); //方案项目内容 for (int j = 0; j < _XmlNode.ChildNodes[i].ChildNodes.Count; j++) //进入第二层XML节点 { CLDC_DataCore.Struct.StXieBo Item = new CLDC_DataCore.Struct.StXieBo(); XmlNode _ChildNode = _XmlNode.ChildNodes[i].ChildNodes[j]; //这一个节点是原件 Item.YuanJian = (CLDC_Comm.Enum.Cus_PowerYuanJian) int.Parse(_ChildNode.Attributes[0].Value); //原件 for (int z = 0; z < _ChildNode.ChildNodes.Count; z++) //进入第三层XML节点 { XmlNode _CChildNode = _ChildNode.ChildNodes[z]; //这一个节点标志是电压还是电流 Item.IsUb = _CChildNode.Attributes[0].Value.ToString().ToLower() == "u" ? true : false; for (int w = 0; w < _CChildNode.ChildNodes.Count; w++) //进入第四层XML节点 { Item.Num = int.Parse(_CChildNode.ChildNodes[w].Attributes[0].Value); //次数 Item.Extent = float.Parse(_CChildNode.ChildNodes[w].Attributes[1].Value); //幅度 Item.Xw = float.Parse(_CChildNode.ChildNodes[w].Attributes[2].Value); //谐波相位 Items.Add(Item.Clone()); //加入一个谐波项目 } } } XieBoCol.Add(_FaName[_FaName.Count - 1], Items); //加入一个谐波方案 } }
/// <summary> /// 获取项目列表,作临时存储用 /// </summary> /// <param name="IsUb"></param> /// <returns></returns> private List <CLDC_DataCore.Struct.StXieBo> GetXieBoPrjList(RadioButton ControlItem, bool IsUb) { List <CLDC_DataCore.Struct.StXieBo> Items = new List <CLDC_DataCore.Struct.StXieBo>(); CLDC_Comm.Enum.Cus_PowerYuanJian _Yuan = new CLDC_Comm.Enum.Cus_PowerYuanJian(); if (ControlItem.Name.ToLower().IndexOf("a") >= 0) { _Yuan = CLDC_Comm.Enum.Cus_PowerYuanJian.A; } else if (ControlItem.Name.ToLower().IndexOf("b") >= 0) { _Yuan = CLDC_Comm.Enum.Cus_PowerYuanJian.B; } else if (ControlItem.Name.ToLower().IndexOf("c") >= 0) { _Yuan = CLDC_Comm.Enum.Cus_PowerYuanJian.C; } else { return(Items); } DataGridView _DgvData = IsUb ? Dgv_DataU : Dgv_DataI; for (int i = 0; i < _DgvData.Rows.Count; i++) { CLDC_DataCore.Struct.StXieBo Item = new CLDC_DataCore.Struct.StXieBo(); Item.IsUb = IsUb; //是不是电压 Item.Num = int.Parse(_DgvData[0, i].Value.ToString()); //谐波次数 Item.YuanJian = _Yuan; //相元 Item.Extent = float.Parse(_DgvData[1, i].Value.ToString()); //幅度 Item.Xw = float.Parse(_DgvData[2, i].Value.ToString()); //相位 Items.Add(Item); } return(Items); }