예제 #1
0
        /// <summary>
        /// 刷新表单数据
        /// </summary>
        /// <param name="MeterGroup"></param>
        public void SetData(List <CLDC_DataCore.Model.DnbModel.DnbInfo.MeterBasicInfo> MeterGroup)
        {
            string strValue = "";

            string[] arrParam = null;

            m_intGlfx = cmb_Type.SelectedIndex;

            if (CLDC_DataCore.Const.GlobalUnit.g_CUS == null)
            {
                return;
            }
            int intSchemeCount = CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.CheckPlan.Count;

            CLDC_DataCore.Struct.StPlan_Function _Item = new CLDC_DataCore.Struct.StPlan_Function();

            for (int intInc = 0; intInc < intSchemeCount; intInc++)
            {
                if (GlobalUnit.g_CUS.DnbData.CheckPlan[intInc] is CLDC_DataCore.Struct.StPlan_Function)
                {
                    if (((CLDC_DataCore.Struct.StPlan_Function)GlobalUnit.g_CUS.DnbData.CheckPlan[intInc]).FunctionPrjID == Key)
                    {
                        _Item = (CLDC_DataCore.Struct.StPlan_Function)GlobalUnit.g_CUS.DnbData.CheckPlan[intInc];
                    }
                }
            }
            if (_Item.PrjParm == null)
            {
                return;
            }
            if (_Item.PrjParm.Length < 1)
            {
                return;
            }
            arrParam = _Item.PrjParm.Split('|');
            if (arrParam.Length < 3)
            {
                return;
            }

            m_intTestNum = int.Parse(arrParam[1]);

            if (Data_View == null)
            {
                return;
            }

            if (Data_View.Columns.Count == 0 || MeterGroup.Count == 0)
            {
                return;
            }

            if (Data_View.Rows.Count != MeterGroup.Count * (m_intTestNum + 1))           //如果当前数据表单行数小于电能表表位数,则需要重新创建对应数据表单
            {
                Data_View.Rows.Clear();
                for (int intIna = 0; intIna < MeterGroup.Count; intIna++)
                {
                    for (int intInb = 0; intInb <= m_intTestNum; intInb++)
                    {
                        int RowIndex = Data_View.Rows.Add();
                        if ((RowIndex + 1) % 2 == 0)
                        {
                            Data_View.Rows[RowIndex].DefaultCellStyle.BackColor = CLDC_DataCore.Const.Variable.Color_Grid_Alter;
                        }
                        else
                        {
                            Data_View.Rows[RowIndex].DefaultCellStyle.BackColor = CLDC_DataCore.Const.Variable.Color_Grid_Normal;
                        }
                        Data_View.Rows[RowIndex].HeaderCell.Value = MeterGroup[intIna].ToString();

                        Data_View.Rows[RowIndex].Cells[0].Value = MeterGroup[intIna].ToString();

                        if (intInb == 0)
                        {
                            strValue = "当前";
                        }
                        else
                        {
                            strValue = string.Format("上{0}次", intInb);
                        }

                        Data_View.Rows[RowIndex].Cells[1].Value = strValue;
                    }
                }
                Data_View.Refresh();
            }

            for (int intIna = 0; intIna < MeterGroup.Count; intIna++)
            {
                for (int intCurrentNum = 0; intCurrentNum <= m_intTestNum; intCurrentNum++)
                {
                    string _Key = Key + m_intGlfx.ToString("D2") + intCurrentNum.ToString("D2");
                    if (!MeterGroup[intIna].YaoJianYn)
                    {
                        continue;
                    }
                    int intRowIndex = intIna * (m_intTestNum + 1) + intCurrentNum;

                    if (!MeterGroup[intIna].MeterFunctions.ContainsKey(_Key))
                    {
                        for (int k = 0; k < 9; k++)
                        {
                            Data_View.Rows[intRowIndex].Cells[k + 2].Value = "";
                        }

                        continue;
                    }

                    if (MeterGroup[intIna].MeterFunctions[_Key].Mf_chrValue == null || MeterGroup[intIna].MeterFunctions[_Key].Mf_chrValue == string.Empty)
                    {
                        continue;
                    }

                    string[] arrValue  = null;
                    string[] arrEnergy = null;
                    if (MeterGroup[intIna].MeterFunctions[_Key].Mf_chrValue.IndexOf(',') == -1)
                    {
                        continue;
                    }
                    arrValue = MeterGroup[intIna].MeterFunctions[_Key].Mf_chrValue.Split(',');

                    if (arrValue.Length < 5)
                    {
                        continue;
                    }

                    Data_View.Rows[intRowIndex].Cells[2].Value = arrValue[0];
                    Data_View.Rows[intRowIndex].Cells[3].Value = arrValue[1];
                    Data_View.Rows[intRowIndex].Cells[4].Value = arrValue[2];
                    Data_View.Rows[intRowIndex].Cells[5].Value = arrValue[3];

                    arrEnergy = arrValue[4].Split('|');
                    if (arrEnergy.Length < 5)
                    {
                        continue;
                    }
                    for (int k = 0; k < arrEnergy.Length; k++)
                    {
                        Data_View.Rows[intRowIndex].Cells[k + 6].Value = arrEnergy[k];
                    }
                }
            }
        }
        /// <summary>
        /// 刷新数据事件
        /// </summary>
        /// <param name="meterGroup"></param>
        /// <param name="taiType"></param>
        /// <param name="taiId"></param>
        public void RefreshData(CLDC_DataCore.Model.DnbModel.DnbGroupInfo meterGroup, int CheckOrderID)
        {
            if (!(meterGroup.CheckPlan[CheckOrderID] is CLDC_DataCore.Struct.StPlan_Function))
            {
                return;
            }

            CLDC_DataCore.Struct.StPlan_Function _Item = (CLDC_DataCore.Struct.StPlan_Function)meterGroup.CheckPlan[CheckOrderID];

            bool bFind = false;

            if (Tab_Function.TabPages.Count > 1)            //如果Tab的页数大于1,那表示存在动态增加的数据页
            {
                if (Data_Dgn.Tag != null && Data_Dgn.Tag.ToString() == _Item.FunctionPrjID)
                {
                    bFind = true;
                }
                else
                {
                    for (int i = Tab_Function.TabPages.Count - 1; i > 0; i--)
                    {
                        Tab_Function.TabPages.RemoveAt(i);
                    }
                    bFind = false;
                }
            }

            if (!bFind)
            {
                Data_Dgn.Tag = _Item.FunctionPrjID;          //将ID值放到数据列表的Tag中,供数据刷新使用

                switch (_Item.FunctionPrjID)
                {
                case "001":
                {
                    Tab_Function.TabPages.Add("计量功能数据");
                    CLDC_MeterUI.UI_Detection_New.FunctionDataView.ViewComputation _Computate = new CLDC_MeterUI.UI_Detection_New.FunctionDataView.ViewComputation();
                    Tab_Function.TabPages[1].Controls.Add(_Computate);
                    _Computate.Dock   = DockStyle.Fill;
                    _Computate.Margin = new Padding(0);
                    break;
                }

                case "002":
                {
                    Tab_Function.TabPages.Add("计时功能数据");
                    CLDC_MeterUI.UI_Detection_New.FunctionDataView.ViewTimingData _Timing = new CLDC_MeterUI.UI_Detection_New.FunctionDataView.ViewTimingData();
                    Tab_Function.TabPages[1].Controls.Add(_Timing);
                    _Timing.Dock   = DockStyle.Fill;
                    _Timing.Margin = new Padding(0);
                    break;
                }

                case "003":
                {
                    Tab_Function.TabPages.Add("显示功能数据");
                    CLDC_MeterUI.UI_Detection_New.FunctionDataView.ViewShowFunction _show = new CLDC_MeterUI.UI_Detection_New.FunctionDataView.ViewShowFunction();
                    Tab_Function.TabPages[1].Controls.Add(_show);
                    _show.Dock   = DockStyle.Fill;
                    _show.Margin = new Padding(0);
                    break;
                }

                case "004":
                {
                    Tab_Function.TabPages.Add("费率时段功能数据");
                    CLDC_MeterUI.UI_Detection_New.FunctionDataView.ViewRatePeriod _ratePeriod = new CLDC_MeterUI.UI_Detection_New.FunctionDataView.ViewRatePeriod();
                    Tab_Function.TabPages[1].Controls.Add(_ratePeriod);
                    _ratePeriod.Dock   = DockStyle.Fill;
                    _ratePeriod.Margin = new Padding(0);
                    break;
                }

                case "005":
                {
                    Tab_Function.TabPages.Add("脉冲输出功能数据");
                    CLDC_MeterUI.UI_Detection_New.FunctionDataView.ViewPulseOutPut _pulse = new CLDC_MeterUI.UI_Detection_New.FunctionDataView.ViewPulseOutPut();
                    Tab_Function.TabPages[1].Controls.Add(_pulse);
                    _pulse.Dock   = DockStyle.Fill;
                    _pulse.Margin = new Padding(0);
                    break;
                }

                case "006":
                {
                    Tab_Function.TabPages.Add("最大需量功能数据");
                    CLDC_MeterUI.UI_Detection_New.FunctionDataView.ViewMaxDemand _MaxDemand = new CLDC_MeterUI.UI_Detection_New.FunctionDataView.ViewMaxDemand();
                    Tab_Function.TabPages[1].Controls.Add(_MaxDemand);
                    _MaxDemand.Dock   = DockStyle.Fill;
                    _MaxDemand.Margin = new Padding(0);
                    break;
                }
                }
            }
            this.RefreshGrid(meterGroup, CheckOrderID);

            Data_Dgn.Enabled = true;
        }