Beispiel #1
0
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="DgnPlan">要求传入读取费率信息方案</param>
        public ViewReadPeriod(CLDC_DataCore.Struct.StPlan_Dgn DgnPlan)
        {
            InitializeComponent();
            if (DgnPlan.DgnPrjID != Key)        //如果项目ID不是读取费率信息的ID则退出!!
            {
                return;
            }
            string strShowValue = "运行时区|运行时段|第一套时区表数据|第二套时区表数据|第一套第1日时段表数据|第二套第1日时段表数据|标准时段表数据";

            string[] _ShowValues = strShowValue.Split('|');
            string[] _Values     = DgnPlan.PrjParm.Split('|');
            if (_Values.Length == -1 || _Values.Length == 0)
            {
                return;
            }


            for (int i = 0; i < _ShowValues.Length; i++)            //动态创建数据表单样式
            {
                int ColIndex = Data_View.Columns.Add("Data_" + i, _ShowValues[i]);
                Data_View.Columns[ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
                Data_View.Columns[ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                Data_View.Columns[ColIndex].SortMode = DataGridViewColumnSortMode.NotSortable;

                if (i == _ShowValues.Length - 1)
                {
                    Data_View.Columns[ColIndex].DefaultCellStyle.Font = new Font("Arial Black", 10);
                }
            }
        }
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="CostPlan">要求传入读取费率信息方案</param>
 public ViewRatesTime(CLDC_DataCore.Struct.StPlan_CostControl CostPlan)
 {
     InitializeComponent();
     CLDC_DataCore.Struct.StPlan_Dgn stD = new CLDC_DataCore.Struct.StPlan_Dgn();
     stD.DgnPrjID     = CostPlan.CostControlPrjID;
     stD.DgnPrjName   = CostPlan.CostControlPrjName;
     stD.OutPramerter = CostPlan.OutPramerter;
     stD.PrjParm      = CostPlan.PrjParm;
     InitViewCost(stD);
 }
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="DgnPlan">要求传入费率时段电能示值误差方案</param>
        public ViewRatePeriod(CLDC_DataCore.Struct.StPlan_Dgn DgnPlan)
        {
            InitializeComponent();
            //if (DgnPlan.DgnPrjID != Key)        //如果项目ID不是费率时段示值误差的ID则退出!!
            //    return;

            string[] _Values = DgnPlan.PrjParm.Split('|');
            if (_Values.Length == -1 || _Values.Length == 0)
            {
                return;
            }
            int _VLength = _Values.Length;

            if (_Values[_VLength - 1].Length == 4)
            {
                _VLength = _VLength - 2;
            }
            else if (_Values[_VLength - 1].Length == 1)
            {
                _VLength = _VLength - 1;
            }

            for (int i = 0; i < _VLength; i++)                                                       //动态创建数据表单样式
            {
                string _SDName = _Values[i].Substring(_Values[i].IndexOf('(') + 1).Replace(")", ""); //从字符串中解析出费率名

                int ColIndex = Data_View.Columns.Add("Data_" + i, string.Format("试验前({0})电量", _SDName));
                Data_View.Columns[ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
                Data_View.Columns[ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                Data_View.Columns[ColIndex].SortMode = DataGridViewColumnSortMode.NotSortable;

                ColIndex = Data_View.Columns.Add("Data_" + i, string.Format("试验后({0})电量", _SDName));
                Data_View.Columns[ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
                Data_View.Columns[ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                Data_View.Columns[ColIndex].SortMode = DataGridViewColumnSortMode.NotSortable;

                ColIndex = Data_View.Columns.Add("Data_" + i, string.Format("试验前(总)电量", _SDName));
                Data_View.Columns[ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
                Data_View.Columns[ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                Data_View.Columns[ColIndex].SortMode = DataGridViewColumnSortMode.NotSortable;

                ColIndex = Data_View.Columns.Add("Data_" + i, string.Format("试验后(总)电量", _SDName));
                Data_View.Columns[ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
                Data_View.Columns[ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                Data_View.Columns[ColIndex].SortMode = DataGridViewColumnSortMode.NotSortable;

                ColIndex = Data_View.Columns.Add("Data_" + i, string.Format("({0})误差", _SDName));
                Data_View.Columns[ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
                Data_View.Columns[ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                Data_View.Columns[ColIndex].DefaultCellStyle.Font      = new Font("Arial Black", 10);
                Data_View.Columns[ColIndex].SortMode = DataGridViewColumnSortMode.NotSortable;
            }
        }
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="DgnPlan">多功能方案(读电量)</param>
        public ViewDianLiang(CLDC_DataCore.Struct.StPlan_Dgn DgnPlan)
        {
            InitializeComponent();

            if (DgnPlan.DgnPrjID != Key)
            {
                return;                                    //如果当前传入的多功能方案项目不是读电量则退出
            }
            string[] _Values = DgnPlan.PrjParm.Split('|'); //分割方案内容,类型|方向 (类型(总峰平谷尖)|方向(P+P-Q+Q-Q1Q2Q3Q4))读为1,不读为0

            string[] _GLFX = { "P+", "P-", "Q+", "Q-", "Q1", "Q2", "Q3", "Q4" };

            string[] _FeiLv = { "(总)", "(峰)", "(平)", "(谷)", "(尖)" };

            string[] _FeiLvNo = { "0", "2", "3", "4", "1" };

            for (int i = 0; i < _Values[1].Length; i++)     //从方向开始循环
            {
                if (_Values[1].Substring(i, 1) != "1")
                {
                    continue;                                           //如果不等于1表示不读,也就不需要显示
                }
                for (int j = 0; j < _Values[0].Length; j++)             //如果方向要显示则开始循环类型
                {
                    if (_Values[0].Substring(j, 1) != "1")
                    {
                        continue;                                           //如果不等于1表示不读,也不需要显示
                    }
                    string _ColName = _GLFX[i] + _FeiLv[j];
                    string _Key     = string.Format("{0:d}|{1:d}", i, _FeiLvNo[j]);                            //方向|费率
                    int    ColIndex = Data_View.Columns.Add(string.Format("Data_{0:D}{1:D}", i, j), _ColName); //插入一个新列
                    Data_View.Columns[ColIndex].Tag          = _Key;
                    Data_View.Columns[ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.AllCells;
                    Data_View.Columns[ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                    Data_View.Columns[ColIndex].ReadOnly = true;
                    Data_View.Columns[ColIndex].SortMode = DataGridViewColumnSortMode.NotSortable;
                }
            }
        }
        private void InitViewCost(CLDC_DataCore.Struct.StPlan_Dgn DgnPlan)
        {
            if (DgnPlan.DgnPrjID != Key)        //如果项目ID不是读取费率信息的ID则退出!!
            {
                return;
            }

            LoadStepParam(DgnPlan);

            string strShowValue = string.Empty;

            if (needReadTest && needWriteTest)
            {
                strShowValue = "费率数(读)|费率电价(读)|结论(读)|费率数(写)|费率电价(写)|结论(写)";
            }
            else if (needReadTest)
            {
                strShowValue = "费率数(读)|费率电价(读)|结论(读)";
            }
            else if (needWriteTest)
            {
                strShowValue = "费率数(写)|费率电价(写)|结论(写)";
            }
            string[] _ShowValues = strShowValue.Split('|');
            string[] _Values     = DgnPlan.PrjParm.Split('|');
            if (_Values.Length == -1 || _Values.Length == 0)
            {
                return;
            }
            for (int i = 0; i < _ShowValues.Length; i++)            //动态创建数据表单样式
            {
                int ColIndex = Data_View.Columns.Add("Data_" + i, _ShowValues[i]);
                Data_View.Columns[ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
                Data_View.Columns[ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                Data_View.Columns[ColIndex].SortMode = DataGridViewColumnSortMode.NotSortable;
            }
        }
        /// <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_PrePareTest))
            {
                return;
            }

            CLDC_DataCore.Struct.StPlan_PrePareTest item  = (CLDC_DataCore.Struct.StPlan_PrePareTest)meterGroup.CheckPlan[CheckOrderID];
            CLDC_DataCore.Struct.StPlan_Dgn         _Item = new CLDC_DataCore.Struct.StPlan_Dgn();// (CLDC_DataCore.Struct.StPlan_Dgn)meterGroup.CheckPlan[CheckOrderID];
            _Item.DgnPrjName   = item.PrePrjName;
            _Item.DgnPrjID     = item.PrePrjID;
            _Item.PrjParm      = item.PrjParm;
            _Item.OutPramerter = item.OutPramerter;
            bool bFind = false;

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

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

                switch (_Item.DgnPrjID)
                {
                    #region
                case "002":
                {
                    int      Count;
                    string[] str = _Item.PrjParm.Split('|');
                    if (str.Length >= 2)
                    {
                        int.TryParse(str[1], out Count);
                    }
                    else
                    {
                        Count = 10;
                    }
                    Tab_Prepare.TabPages.Add("日计时误差数据");
                    CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewDateTimeErr _DateTimeErr = new CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewDateTimeErr(Count);
                    Tab_Prepare.TabPages[1].Controls.Add(_DateTimeErr);
                    _DateTimeErr.Dock   = DockStyle.Fill;
                    _DateTimeErr.Margin = new System.Windows.Forms.Padding(0);
                    break;
                }

                case "003":
                {
                    Tab_Prepare.TabPages.Add("费率时段数据");
                    CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewReadPeriod _Period = new CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewReadPeriod(_Item);
                    Tab_Prepare.TabPages[1].Controls.Add(_Period);
                    _Period.Dock   = DockStyle.Fill;
                    _Period.Margin = new System.Windows.Forms.Padding(0);
                    break;
                }

                case "004":
                case "028":
                case "029":
                case "030":
                {
                    Tab_Prepare.TabPages.Add("时段投切数据");
                    CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewSdtq _Sdtq = new CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewSdtq(_Item);
                    Tab_Prepare.TabPages[1].Controls.Add(_Sdtq);
                    _Sdtq.Dock   = DockStyle.Fill;
                    _Sdtq.Margin = new System.Windows.Forms.Padding(0);
                    break;
                }

                case "005":
                case "031":
                case "032":
                case "033":
                {
                    Tab_Prepare.TabPages.Add("计度器示值组合误差数据");
                    CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewRegister _Register = new CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewRegister(_Item);
                    Tab_Prepare.TabPages[1].Controls.Add(_Register);
                    _Register.Dock   = DockStyle.Fill;
                    _Register.Margin = new System.Windows.Forms.Padding(0);
                    break;
                }

                case "006":
                case "034":
                case "035":
                case "036":
                {
                    Tab_Prepare.TabPages.Add("费率时段示值误差数据");
                    CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewRatePeriod _RatePeriod = new CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewRatePeriod(_Item);
                    Tab_Prepare.TabPages[1].Controls.Add(_RatePeriod);
                    _RatePeriod.Dock   = DockStyle.Fill;
                    _RatePeriod.Margin = new System.Windows.Forms.Padding(0);
                    break;
                }

                case "013":
                {
                    Tab_Prepare.TabPages.Add("时间误差");
                    CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewGpsTime _Gps = new CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewGpsTime();
                    Tab_Prepare.TabPages[1].Controls.Add(_Gps);
                    _Gps.Dock   = DockStyle.Fill;
                    _Gps.Margin = new System.Windows.Forms.Padding(0);
                    break;
                }

                case "019":
                {
                    Tab_Prepare.TabPages.Add("电量寄存器检查");
                    CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewMemoryCheck _MemortCheck = new CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewMemoryCheck();
                    Tab_Prepare.TabPages[1].Controls.Add(_MemortCheck);
                    _MemortCheck.Dock   = DockStyle.Fill;
                    _MemortCheck.Margin = new System.Windows.Forms.Padding(0);
                    break;
                }

                case "014":
                {
                    Tab_Prepare.TabPages.Add("最大需量0.1Ib数据");
                    CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewMaxXl _MaxXl = new CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewMaxXl(_Item);
                    Tab_Prepare.TabPages[1].Controls.Add(_MaxXl);
                    _MaxXl.Dock   = DockStyle.Fill;
                    _MaxXl.Margin = new System.Windows.Forms.Padding(0);
                    break;
                }

                case "015":
                {
                    Tab_Prepare.TabPages.Add("最大需量1.0Ib数据");
                    CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewMaxXl _MaxXl = new CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewMaxXl(_Item);
                    Tab_Prepare.TabPages[1].Controls.Add(_MaxXl);
                    _MaxXl.Dock   = DockStyle.Fill;
                    _MaxXl.Margin = new System.Windows.Forms.Padding(0);
                    break;
                }

                case "016":
                {
                    Tab_Prepare.TabPages.Add("最大需量Imax数据");
                    CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewMaxXl _MaxXl = new CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewMaxXl(_Item);
                    Tab_Prepare.TabPages[1].Controls.Add(_MaxXl);
                    _MaxXl.Dock   = DockStyle.Fill;
                    _MaxXl.Margin = new System.Windows.Forms.Padding(0);
                    break;
                }

                case "017":
                {
                    Tab_Prepare.TabPages.Add("读取电量数据");
                    CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewDianLiang _DianLiang = new CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewDianLiang(_Item);
                    Tab_Prepare.TabPages[1].Controls.Add(_DianLiang);
                    _DianLiang.Dock   = DockStyle.Fill;
                    _DianLiang.Margin = new System.Windows.Forms.Padding(0);
                    break;
                }

                case "043":
                {
                    Tab_Prepare.TabPages.Add("阶梯电价检查");
                    CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewStepTariff stepPrice = new CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewStepTariff(_Item);
                    Tab_Prepare.TabPages[1].Controls.Add(stepPrice);
                    stepPrice.Dock   = DockStyle.Fill;
                    stepPrice.Margin = new System.Windows.Forms.Padding(0);
                }
                break;

                case "044":
                {
                    Tab_Prepare.TabPages.Add("费率电价检查");
                    CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewRatesTime ratesPrice = new CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewRatesTime(_Item);
                    Tab_Prepare.TabPages[1].Controls.Add(ratesPrice);
                    ratesPrice.Dock   = DockStyle.Fill;
                    ratesPrice.Margin = new System.Windows.Forms.Padding(0);
                }
                break;
                    #endregion
                }
            }
            this.RefreshGrid(meterGroup, CheckOrderID);

            Data_Prepare.Enabled = true;
        }
        /// <summary>
        /// 数据刷新
        /// </summary>
        /// <param name="MeterGroup">电能表数据集合</param>
        /// <param name="CheckOrderID">当前检定点</param>
        private void RefreshGrid(CLDC_DataCore.Model.DnbModel.DnbGroupInfo MeterGroup, int CheckOrderID)
        {
            CLDC_DataCore.Struct.StPlan_Dgn         _Item = new CLDC_DataCore.Struct.StPlan_Dgn();
            CLDC_DataCore.Struct.StPlan_PrePareTest item;
            string PlanName = string.Empty;

            if (MeterGroup.CheckPlan[CheckOrderID] is CLDC_DataCore.Struct.StPlan_PrePareTest)
            {
                item     = (CLDC_DataCore.Struct.StPlan_PrePareTest)MeterGroup.CheckPlan[CheckOrderID];
                PlanName = item.PrePrjName;
                if (PlanName.Contains("接线调试"))
                {
                }
                else
                {
                    _Item.OutPramerter = item.OutPramerter;
                    _Item.PrjParm      = item.PrjParm;
                    _Item.DgnPrjID     = item.PrePrjID;
                    _Item.DgnPrjName   = item.PrePrjName;
                }
            }
            else
            {
                return;
            }

            for (int i = 0; i < MeterGroup.MeterGroup.Count; i++)
            {
                CLDC_DataCore.Model.DnbModel.DnbInfo.MeterBasicInfo _MeterInfo = MeterGroup.MeterGroup[i];

                DataGridViewRow _Row = Data_Prepare.Rows[i];
                //表位号
                _Row.Cells[1].Value = _MeterInfo.ToString(); //插入表位号

                if (!_MeterInfo.YaoJianYn)                   //如果不检
                {
                    _Row.Cells[0].Value = false;
                    if (_MeterInfo.Mb_chrBcs == String.Empty || _MeterInfo.Mb_chrBdj == String.Empty)       //如果不检,并且常数或者等级都为空,则将勾选单元格设置为只读
                    {
                        _Row.Cells[0].ReadOnly = true;
                    }
                    for (int j = 2; j < _Row.Cells.Count; j++)
                    {
                        _Row.Cells[j].Value = string.Empty;
                    }
                    continue;
                }

                _Row.Cells[0].Value = true;

                _Row.Cells[2].Value = "预先调试:" + PlanName;
                if (Data_Prepare.Tag == null)
                {
                    return;
                }

                if (PlanName == "通信测试")
                {
                    _Row.Cells[3].Value = _MeterInfo.Mb_chrAddr;
                }
                else if (PlanName == "GPS对时")
                {
                    string itemKey = string.Empty;
                    itemKey = ((int)CLDC_Comm.Enum.Cus_DgnItem.GPS对时).ToString().PadLeft(3, '0');
                    if (_MeterInfo.MeterDgns.ContainsKey(itemKey))
                    {
                        _Row.Cells[3].Value = _MeterInfo.MeterDgns[itemKey].AVR_CONCLUSION;
                    }
                }
                else if (PlanName.Contains("费率时段检查"))
                {
                    string itemKey = item.PrePrjID + "04";

                    if (_MeterInfo.MeterDgns.ContainsKey(itemKey))
                    {
                        _Row.Cells[3].Value = _MeterInfo.MeterDgns[itemKey].Md_chrValue;
                    }
                }
                else if (PlanName.Contains("接线调试"))
                {
                    string itemKey = item.PrePrjID;

                    if (_MeterInfo.MeterErrors.ContainsKey(itemKey))
                    {
                        _Row.Cells[3].Value = _MeterInfo.MeterErrors[itemKey].Me_chrWcMore;
                    }
                }
                else
                {
                    _Row.Cells[3].Value = "--";
                }
                if (_MeterInfo.MeterDgns.ContainsKey(Data_Prepare.Tag.ToString()))           //如果数据中存在值那么久需要插入数据,这个地方插的值都是合格或者不合格,因为取的都是大编号,不是带具体值的小编号
                {
                    _Row.Cells[4].Value = _MeterInfo.MeterDgns[Data_Prepare.Tag.ToString()].Md_chrValue;
                    if ((MeterGroup.CheckState & CLDC_Comm.Enum.Cus_CheckStaute.检定) == CLDC_Comm.Enum.Cus_CheckStaute.检定 ||
                        (MeterGroup.CheckState & CLDC_Comm.Enum.Cus_CheckStaute.单步检定) == CLDC_Comm.Enum.Cus_CheckStaute.单步检定)
                    {
                        switch (_Item.DgnPrjID)
                        {
                        case "014":
                        case "015":
                        case "016":
                            string[] data = _Item.PrjParm.Split('|');
                            float    time = float.Parse(data[0]);
                            if (data.Length > 3)
                            {
                                float hcsj = data[1] != "" ? float.Parse(data[1]) : 0;
                                float hccs = data[2] != "" ? float.Parse(data[2]) : 0;
                                time += hcsj * hccs;
                            }
                            //_Row.Cells[3].Value = string.Format("{0}/{1} (当前运行/周期时间(分))", MeterGroup.NowMinute, _Item.PrjParm.Substring(0, _Item.PrjParm.IndexOf("|")));
                            _Row.Cells[3].Value = string.Format("{0}/{1} (当前运行/周期时间(分))", MeterGroup.NowMinute, time.ToString());
                            break;

                        case "029":         //校对需量
                            _Row.Cells[3].Value = string.Format("{0}/{1} (试验需要时间/当前已进行时间(分))", "2", MeterGroup.NowMinute);
                            break;

                        default:
                            _Row.Cells[3].Value = "";
                            break;
                        }
                    }
                    //if (_Row.Cells[4].Value != null)
                    //{
                    //    if (_Row.Cells[4].Value.ToString() == CLDC_DataCore.Const.Variable.CTG_BuHeGe)      //不合格修改当前行背景颜色
                    //    {
                    //        _Row.DefaultCellStyle.ForeColor = CLDC_DataCore.Const.Variable.Color_Grid_BuHeGe;
                    //    }
                    //    else
                    //    {
                    //        _Row.DefaultCellStyle.ForeColor = Color.Black;
                    //    }
                    //}
                }
                else if (_MeterInfo.MeterErrors.ContainsKey(Data_Prepare.Tag.ToString()))
                {
                    _Row.Cells[4].Value = _MeterInfo.MeterErrors[Data_Prepare.Tag.ToString()].Me_chrWcJl;
                }
                else
                {
                    //_Row.DefaultCellStyle.ForeColor = Color.Black;
                    _Row.Cells[4].Value = "";
                }
                if (_MeterInfo.Mb_Result == CLDC_DataCore.Const.Variable.CTG_BuHeGe)
                {
                    _Row.DefaultCellStyle.ForeColor = Color.Red;
                }
                else
                {
                    _Row.DefaultCellStyle.ForeColor = Color.Black;
                }
            }

            #region -----------------------------------------数据页刷新-------------------------------------------
            if (Tab_Prepare.TabPages.Count != 2)
            {
                return;                                            //如果没有附加数据页则返回
            }
            Control _Control = Tab_Prepare.TabPages[1].Controls[0];

            if (_Control is CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewDateTimeErr)         //如果是日计时误差
            {
                ((CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewDateTimeErr)_Control).SetData(MeterGroup.MeterGroup);
                return;
            }
            if (_Control is CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewReadPeriod)            //如果是费率时段检查
            {
                ((CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewReadPeriod)_Control).SetData(MeterGroup.MeterGroup);
                return;
            }
            if (_Control is CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewSdtq)            //如果是时段投切
            {
                ((CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewSdtq)_Control).SetData(MeterGroup.MeterGroup);
                return;
            }
            if (_Control is CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewRatePeriod)            //如果是费率时段示值误差
            {
                ((CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewRatePeriod)_Control).SetData(MeterGroup.MeterGroup);
                return;
            }
            if (_Control is CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewRegister)            //如果是计度器示值组合误差
            {
                ((CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewRegister)_Control).SetData(MeterGroup.MeterGroup);
                return;
            }
            if (_Control is CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewMemoryCheck)            //如果该控件是电量存储器检查的数据表单
            {
                ((CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewMemoryCheck)_Control).SetData(MeterGroup.MeterGroup);
                return;
            }
            if (_Control is CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewMaxXl)          //如果该控件是最大需量的数据表单
            {
                ((CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewMaxXl)_Control).SetData(MeterGroup.MeterGroup);
                return;
            }
            if (_Control is CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewDianLiang)          //如果该控件是读电量的数据表单
            {
                ((CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewDianLiang)_Control).SetData(MeterGroup.MeterGroup);
                return;
            }
            if (_Control is CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewGpsTime)            //如果是时间误差数据表单
            {
                ((CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewGpsTime)_Control).SetData(MeterGroup.MeterGroup);
                return;
            }
            if (_Control is CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewStepTariff)            //如果是时间误差数据表单
            {
                ((CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewStepTariff)_Control).SetData(MeterGroup.MeterGroup);
                return;
            }
            if (_Control is CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewRatesTime)            //如果是费率电价检查表
            {
                ((CLDC_MeterUI.UI_Detection_New.DgnDataView.ViewRatesTime)_Control).SetData(MeterGroup.MeterGroup);
                return;
            }
            #endregion
        }
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="DgnPlan">要求传入时段投切方案</param>
        public ViewSdtq(CLDC_DataCore.Struct.StPlan_Dgn DgnPlan)
        {
            InitializeComponent();
            //if (DgnPlan.DgnPrjID != Key)        //如果项目ID不是投切误差的ID则退出!!
            //    return;

            string[] _Values = DgnPlan.PrjParm.Split('|');
            if (_Values.Length == -1 || _Values.Length == 0)
            {
                return;
            }
            int _VLength = _Values.Length;

            if (_Values[_VLength - 1].Length == 4)
            {
                _VLength = _VLength - 2;
            }
            else if (_Values[_VLength - 1].Length == 1)
            {
                _VLength = _VLength - 1;
            }
            //int _ColIndex = Data_View.Columns.Add("Data_Z", "总电量");
            //Data_View.Columns[_ColIndex].Tag = 0;
            //Data_View.Columns[_ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
            //Data_View.Columns[_ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            //Data_View.Columns[_ColIndex].SortMode = DataGridViewColumnSortMode.NotSortable;

            //_FirstColIndex++;

            //for (int i = 0; i < _Values.Length; i++)
            //{
            //    string _SDName = _Values[i].Substring(_Values[i].IndexOf('(') + 1).Replace(")", "");     //从字符串中解析出费率名

            //    int ColIndex = Data_View.Columns.Add("FeiLv_" + i, string.Format("{0}电量", _SDName));
            //    Data_View.Columns[ColIndex].Tag = this.getFeiDlID(_SDName);         //记录费率ID
            //    Data_View.Columns[ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
            //    Data_View.Columns[ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            //    Data_View.Columns[_ColIndex].SortMode = DataGridViewColumnSortMode.NotSortable;

            //    _FirstColIndex++;

            //}

            if (GlobalUnit.isAutoRead)
            {
                _Values = GlobalUnit.strSDTQ;
            }
            for (int i = 0; i < _VLength; i++)                                                       //动态创建数据表单样式
            {
                string _SDName = _Values[i].Substring(_Values[i].IndexOf('(') + 1).Replace(")", ""); //从字符串中解析出费率名

                int ColIndex = Data_View.Columns.Add("Data_" + i, string.Format("标准投切时间({0})", _SDName));
                Data_View.Columns[ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
                Data_View.Columns[ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                Data_View.Columns[ColIndex].SortMode = DataGridViewColumnSortMode.NotSortable;

                ColIndex = Data_View.Columns.Add("Data_" + i, string.Format("实际投切时间({0})", _SDName));
                Data_View.Columns[ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
                Data_View.Columns[ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                Data_View.Columns[ColIndex].SortMode = DataGridViewColumnSortMode.NotSortable;

                ColIndex = Data_View.Columns.Add("Data_" + i, string.Format("投切误差({0})", _SDName));
                Data_View.Columns[ColIndex].AutoSizeMode = DataGridViewAutoSizeColumnMode.DisplayedCells;
                Data_View.Columns[ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                Data_View.Columns[ColIndex].DefaultCellStyle.Font      = new Font("Arial Black", 10);
                Data_View.Columns[ColIndex].SortMode = DataGridViewColumnSortMode.NotSortable;
            }
        }
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="DgnPlan">要求传入读取费率信息方案</param>
 public ViewRatesTime(CLDC_DataCore.Struct.StPlan_Dgn DgnPlan)
 {
     InitializeComponent();
     InitViewCost(DgnPlan);
 }
 /// <summary>
 /// 加载方案参数
 /// </summary>
 /// <param name="DgnPlan"></param>
 private void LoadStepParam(CLDC_DataCore.Struct.StPlan_Dgn DgnPlan)
 {
     string[] paramArray = DgnPlan.PrjParm.Split('|');
     needReadTest  = bool.Parse(paramArray[1]);
     needWriteTest = bool.Parse(paramArray[2]);
 }
        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="DgnPlan">多功能方案(最大需量)</param>
        public ViewMaxXl(CLDC_DataCore.Struct.StPlan_Dgn DgnPlan)
        {
            InitializeComponent();

            #region  -------------------------------处理需量表单样式-------------------------------------

            Key = DgnPlan.DgnPrjID;             //获取项目大ID

            string[] _Values = DgnPlan.PrjParm.Split('|');

            if (_Values.Length != 5)
            {
                return;
            }

            CycXl = _Values[0];                 //需量周期

            sTr_Glfx = _Values[4];              //功率方向

            for (int i = 0; i < sTr_Glfx.Length; i++)
            {
                if (sTr_Glfx.Substring(i, 1) == "1")
                {
                    int ColIndex = Data_View.Columns.Add("Data_" + i.ToString(), Arr_Glfx[i] + "标准需量");

                    Data_View.Columns[ColIndex].Tag = (i + 1).ToString();

                    Data_View.Columns[ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

                    ColIndex = Data_View.Columns.Add("Data_" + i.ToString(), Arr_Glfx[i] + "实际需量");

                    Data_View.Columns[ColIndex].Tag = (i + 1).ToString();

                    Data_View.Columns[ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;

                    ColIndex = Data_View.Columns.Add("Data_" + i.ToString(), Arr_Glfx[i] + "需量误差");

                    Data_View.Columns[ColIndex].Tag = (i + 1).ToString();

                    Data_View.Columns[ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
                }
            }
            if (_Values[3] == "1")
            {
                _Xlzq = true;           //要做需量周期误差

                int ColIndex = Data_View.Columns.Add("Col_1", "周期误差");
                Data_View.Columns[ColIndex].DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
            }

            //float _FillWeight = 100f / Data_View.Columns.Count;

            for (int i = 0; i < Data_View.Columns.Count; i++)
            {
                Data_View.Columns[i].AutoSizeMode = DataGridViewAutoSizeColumnMode.ColumnHeader;
                //Data_View.Columns[i].FillWeight = _FillWeight;
                Data_View.Columns[i].ReadOnly = true;
                Data_View.Columns[i].SortMode = DataGridViewColumnSortMode.NotSortable;
            }
            #endregion
        }
Beispiel #12
0
 /// <summary>
 /// 构造函数
 /// </summary>
 /// <param name="DgnPlan">要求传入读取费率信息方案</param>
 public ViewStepTariff(CLDC_DataCore.Struct.StPlan_Dgn DgnPlan)
 {
     InitializeComponent();
     InitCostView(DgnPlan);
 }