/// <summary>
 /// 编辑完成
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void Dgv_QiDong_CellLeave(object sender, DataGridViewCellEventArgs e)
 {
     if (!Dgv_QiDong[e.ColumnIndex, e.RowIndex].ReadOnly)
     {
         if (Dgv_QiDong[e.ColumnIndex, e.RowIndex].Value == null)
         {
             Dgv_QiDong.EndEdit();
             return;
         }
         string _TmpValue = Dgv_QiDong[e.ColumnIndex, e.RowIndex].Value.ToString();
         Dgv_QiDong.EndEdit();
         if (e.ColumnIndex != 4)
         {
             if (Dgv_QiDong[e.ColumnIndex, e.RowIndex].Value == null && Dgv_QiDong[e.ColumnIndex, e.RowIndex].Value.ToString() == string.Empty)
             {
                 Dgv_QiDong[e.ColumnIndex, e.RowIndex].Value = "0";
             }
             else if (!CLDC_DataCore.Function.Number.IsNumeric(Dgv_QiDong[e.ColumnIndex, e.RowIndex].Value.ToString()))
             {
                 Dgv_QiDong[e.ColumnIndex, e.RowIndex].Value = _TmpValue;
                 return;
             }
         }
         if (e.ColumnIndex == 1)
         {
             StPlan_QiDong _Item = (StPlan_QiDong)_DnbGroup.CheckPlan[(int)Dgv_QiDong.Rows[e.RowIndex].Tag];
             _Item.FloatxIb = float.Parse(Dgv_QiDong[e.ColumnIndex, e.RowIndex].Value.ToString());
             _Item.CheckTimeAndIb(_GuiCheng, _Clfs, _Ub, _Ib, _Dj, _Const, _Znq, _Hgq);
             Dgv_QiDong[2, e.RowIndex].Value = _Item.FloatIb;
             Dgv_QiDong[3, e.RowIndex].Value = _Item.CheckTime;
             Dgv_QiDong[3, e.RowIndex].Tag   = Dgv_QiDong[3, e.RowIndex].Value;
         }
     }
 }
 /// <summary>
 /// 移动启动项目
 /// </summary>
 /// <param name="i">需要移动到的列表位置</param>
 /// <param name="Item">项目结构体</param>
 public void Move(int i, StPlan_QiDong Item)
 {
     i = i < 0 ? 0 : i;
     i = i >= _LstQiDong.Count ? _LstQiDong.Count - 1 : i;
     this.Remove(Item);
     _LstQiDong.Insert(i, Item);
     return;
 }
 /// <summary>
 /// 根据项目移除
 /// </summary>
 /// <param name="Item">项目结构体</param>
 public void Remove(StPlan_QiDong Item)
 {
     if (!_LstQiDong.Contains(Item))
     {
         return;
     }
     _LstQiDong.Remove(Item);
     return;
 }
        /// <summary>
        /// 初始化表格
        /// </summary>
        private void CreateFaInfo()
        {
            int _FirstYaoJian = CLDC_MeterUI.UI_Detection_New.Main.GetFirstYaoJianMeterIndex(_DnbGroup);

            CLDC_DataCore.Model.DnbModel.DnbInfo.MeterBasicInfo _DnbInfo = _DnbGroup.MeterGroup[_FirstYaoJian];

            _Ub = float.Parse(_DnbInfo.Mb_chrUb);                 //电压

            _Ib = _DnbInfo.Mb_chrIb;                              //电流字符串

            _Dj = _DnbInfo.Mb_chrBdj;                             //等级 有功(无功)

            _GuiCheng = _DnbInfo.GuiChengName;                    //使用的规程名称

            _Const = _DnbInfo.Mb_chrBcs;                          //常数

            _Znq = _DnbInfo.Mb_BlnZnq;                            //止逆器

            _Hgq = _DnbInfo.Mb_BlnHgq;                            //互感器

            _Clfs = (CLDC_Comm.Enum.Cus_Clfs)_DnbInfo.Mb_intClfs; //测量方式

            for (int i = 0; i < _DnbGroup.CheckPlan.Count; i++)
            {
                if (!(_DnbGroup.CheckPlan[i] is StPlan_QiDong))
                {
                    continue;
                }

                StPlan_QiDong _Item = (StPlan_QiDong)_DnbGroup.CheckPlan[i];

                int _RowIndex = Dgv_QiDong.Rows.Add();

                Dgv_QiDong.Rows[_RowIndex].HeaderCell.Value = _Item.ToString();

                Dgv_QiDong.Rows[_RowIndex].Tag = i;

                Dgv_QiDong.Rows[_RowIndex].Cells[0].Value = _Item.PowerFangXiang.ToString();

                _Item.CheckTimeAndIb(_GuiCheng, _Clfs, _Ub, _Ib, _Dj, _Const, _Znq, _Hgq);                                                             //计算起动电流和起动时间

                Dgv_QiDong.Rows[_RowIndex].Cells[2].Value = _Item.FloatIb;                                                                             //起动电流

                Dgv_QiDong.Rows[_RowIndex].Cells[1].Value = Math.Round(_Item.FloatIb / CLDC_DataCore.Function.Number.GetCurrentByIb("1.0Ib", _Ib), 3); //反算起动电流倍数

                Dgv_QiDong.Rows[_RowIndex].Cells[1].Tag = Dgv_QiDong.Rows[_RowIndex].Cells[1].Value;                                                   //起动电流倍数副本

                Dgv_QiDong.Rows[_RowIndex].Cells[3].Value = Math.Round(_Item.CheckTime, 1);                                                            //起动试验时间

                Dgv_QiDong.Rows[_RowIndex].Cells[3].Tag = Dgv_QiDong.Rows[_RowIndex].Cells[3].Value;                                                   //起动时间副本

                Dgv_QiDong.Rows[_RowIndex].Cells[4].Value = _Item.DefaultValue == 1 ? true : false;                                                    //是否默认合格

                Dgv_QiDong.Rows[_RowIndex].Cells[4].Tag = Dgv_QiDong.Rows[_RowIndex].Cells[4].Value;                                                   //是否默认合格副本
            }
        }
        /// <summary>
        /// 增加一个启动项目
        /// </summary>
        /// <param name="Glfx">功率方向</param>
        /// <param name="xIb">电流倍数(数字)</param>
        /// <param name="xTime">时间倍数(多少倍起动时间)起动时间是根据规程计算</param>
        /// <param name="DefaultValue">是否默认合格0-不默认,1-默认,默认合格时该项目则不检定</param>
        /// <returns></returns>
        public bool Add(Cus_PowerFangXiang Glfx, float xIb, float xTime, int DefaultValue)
        {
            StPlan_QiDong _QiDong = new StPlan_QiDong();

            _QiDong.PowerFangXiang = Glfx;
            _QiDong.FloatxIb       = xIb;
            _QiDong.xTime          = xTime;
            _QiDong.DefaultValue   = DefaultValue;
            if (_LstQiDong.Contains(_QiDong))
            {
                return(false);
            }
            _LstQiDong.Add(_QiDong);
            return(true);
        }
        /// <summary>
        /// 加载启动方案
        /// </summary>
        private void Load()
        {
            _LstQiDong = new List <StPlan_QiDong>();
            string  _ErrorString = "";
            XmlNode _XmlNode     = clsXmlControl.LoadXml(_FAPath, out _ErrorString);

            if (_XmlNode == null)
            {
                return;
            }
            for (int _i = 0; _i < _XmlNode.ChildNodes.Count; _i++)
            {
                StPlan_QiDong _Qidong = new StPlan_QiDong();
                _Qidong.PowerFangXiang = (CLDC_Comm.Enum.Cus_PowerFangXiang) int.Parse(_XmlNode.ChildNodes[_i].Attributes["GLFX"].Value);
                _Qidong.FloatxIb       = float.Parse(_XmlNode.ChildNodes[_i].Attributes["xIb"].Value);
                _Qidong.xTime          = float.Parse(_XmlNode.ChildNodes[_i].Attributes["xTime"].Value);
                _Qidong.DefaultValue   = int.Parse(_XmlNode.ChildNodes[_i].Attributes["Default"].Value);
                _LstQiDong.Add(_Qidong);
            }
            return;
        }
        /// <summary>
        /// 检查方案项目参数是否被改变,如果改变就需要记录并准备下发
        /// </summary>
        /// <returns></returns>
        public bool ChangeFAPram()
        {
            bool Changed = false;

            for (int i = 0; i < Dgv_QiDong.Rows.Count; i++)
            {
                bool PrjChanged = false;

                StPlan_QiDong _Item = (StPlan_QiDong)_DnbGroup.CheckPlan[(int)Dgv_QiDong.Rows[i].Tag];
                if (Dgv_QiDong[1, i].Value != Dgv_QiDong[1, i].Tag)          //不等就是有修改
                {
                    Changed        = true;
                    PrjChanged     = true;
                    _Item.FloatxIb = float.Parse(Dgv_QiDong[1, i].Value.ToString());
                }
                if (Dgv_QiDong[3, i].Value != Dgv_QiDong[3, i].Tag)          //不等就是有修改
                {
                    Changed     = true;
                    PrjChanged  = true;
                    _Item.xTime = float.Parse(Dgv_QiDong[3, i].Value.ToString());
                }
                if (Dgv_QiDong[4, i].Value != Dgv_QiDong[4, i].Tag)          //不等就是有修改
                {
                    Changed            = true;
                    PrjChanged         = true;
                    _Item.DefaultValue = (bool)Dgv_QiDong[4, i].Value == false ? 0 : 1;
                }
                if (PrjChanged)
                {
                    _DnbGroup.CheckPlan.RemoveAt((int)Dgv_QiDong.Rows[i].Tag);
                    _DnbGroup.CheckPlan.Insert((int)Dgv_QiDong.Rows[i].Tag, _Item);
                }
            }

            return(Changed);
        }
Beispiel #8
0
        /// <summary>
        /// 方案加载
        /// </summary>
        /// <param name="FaItem">方案对象</param>
        public void LoadFA(CLDC_DataCore.Model.Plan.Plan_QiDong FaItem)
        {
            this.Cmd_Clear_Click(this, new EventArgs());

            base.FaName = FaItem.Name;

            try
            {
                Cmb_Fa.Text = FaItem.Name;
            }
            catch
            {
                Cmb_Fa.SelectedIndex = 0;
            }
            for (int i = 0; i < FaItem.Count; i++)
            {
                StPlan_QiDong _Obj = FaItem.getQiDongPrj(i);     //取出一个方案项目

                #region --------------填充数据---------------------------------
                switch (_Obj.PowerFangXiang)
                {
                case CLDC_Comm.Enum.Cus_PowerFangXiang.正向有功:
                    Chk_Pz.CheckState         = CheckState.Checked;
                    Chk_Default_Pz.CheckState = _Obj.DefaultValue == 0 ? CheckState.Unchecked : CheckState.Checked;
                    if (_Obj.FloatxIb == 0)
                    {
                        Rb_Auto_Pz.Checked = true;
                    }
                    else
                    {
                        Rb_Custom_Pz.Checked = true;
                        Txt_Pz.Text          = _Obj.FloatxIb.ToString();
                    }
                    if (_Obj.xTime == 0)
                    {
                        Rb_AutoT_Pz.Checked = true;
                    }
                    else
                    {
                        Rb_CustomT_Pz.Checked = true;
                        Txt_TPz.Text          = _Obj.xTime.ToString();
                    }
                    break;

                case CLDC_Comm.Enum.Cus_PowerFangXiang.反向有功:
                    Chk_Pf.CheckState         = CheckState.Checked;
                    Chk_Default_Pf.CheckState = _Obj.DefaultValue == 0 ? CheckState.Unchecked : CheckState.Checked;
                    if (_Obj.FloatxIb == 0)
                    {
                        Rb_Auto_Pf.Checked = true;
                    }
                    else
                    {
                        Rb_Custom_Pf.Checked = true;
                        Txt_Pf.Text          = _Obj.FloatxIb.ToString();
                    }
                    if (_Obj.xTime == 0)
                    {
                        Rb_AutoT_Pf.Checked = true;
                    }
                    else
                    {
                        Rb_CustomT_Pf.Checked = true;
                        Txt_TPf.Text          = _Obj.xTime.ToString();
                    }
                    break;

                case CLDC_Comm.Enum.Cus_PowerFangXiang.正向无功:
                    Chk_Qz.CheckState         = CheckState.Checked;
                    Chk_Default_Qz.CheckState = _Obj.DefaultValue == 0 ? CheckState.Unchecked : CheckState.Checked;
                    if (_Obj.FloatxIb == 0)
                    {
                        Rb_Auto_Qz.Checked = true;
                    }
                    else
                    {
                        Rb_Custom_Qz.Checked = true;
                        Txt_Qz.Text          = _Obj.FloatxIb.ToString();
                    }
                    if (_Obj.xTime == 0)
                    {
                        Rb_AutoT_Qz.Checked = true;
                    }
                    else
                    {
                        Rb_CustomT_Qz.Checked = true;
                        Txt_TQz.Text          = _Obj.xTime.ToString();
                    }
                    break;

                case CLDC_Comm.Enum.Cus_PowerFangXiang.反向无功:
                    Chk_Qf.CheckState         = CheckState.Checked;
                    Chk_Default_Qf.CheckState = _Obj.DefaultValue == 0 ? CheckState.Unchecked : CheckState.Checked;
                    if (_Obj.FloatxIb == 0)
                    {
                        Rb_Auto_Qf.Checked = true;
                    }
                    else
                    {
                        Rb_Custom_Qf.Checked = true;
                        Txt_Qf.Text          = _Obj.FloatxIb.ToString();
                    }
                    if (_Obj.xTime == 0)
                    {
                        Rb_AutoT_Qf.Checked = true;
                    }
                    else
                    {
                        Rb_CustomT_Qf.Checked = true;
                        Txt_TQf.Text          = _Obj.xTime.ToString();
                    }
                    break;
                }
                #endregion
            }
        }
        /// <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);
        }