Exemplo n.º 1
0
        public override void SetData(CLDC_DataCore.Model.DnbModel.DnbInfo.MeterBasicInfo MeterInfo, bool allowedit)
        {
            base.SetData(MeterInfo, allowedit);

            Grid_Main.Rows.Clear();

            //将MeterInfo.MeterZZErrors的Item项目枚举出,把所有Key字符串放到DataTable中,并且按照升序检索出来
            DataTable dtKeys = new DataTable();

            dtKeys.Columns.Add("Keys", typeof(string));
            dtKeys.Columns.Add("PrjId", typeof(string));

            foreach (string Key in MeterInfo.MeterZZErrors.Keys)
            {
                CLDC_DataCore.Model.DnbModel.DnbInfo.MeterZZError MeterError = MeterInfo.MeterZZErrors[Key];
                dtKeys.Rows.Add(Key, MeterError.Me_chrProjectNo);
            }
            DataRow[] Rows = dtKeys.Select("Keys <>'' and PrjId <> ''", "PrjId asc");

            //Grid_Main.SuspendLayout();

            for (int j = 0; j < Rows.Length; j++)
            {
                if (MeterInfo.MeterZZErrors.Count == 0)
                {
                    continue;
                }
                CLDC_DataCore.Model.DnbModel.DnbInfo.MeterZZError meterError = MeterInfo.MeterZZErrors[Rows[j][0].ToString()];
                string prjId = meterError.Me_chrProjectNo;

                int rowIndex = Grid_Main.Rows.Add();

                Grid_Main["表位", rowIndex].Value = MeterInfo.ToString();

                Grid_Main["功率方向", rowIndex].Value = ((CLDC_Comm.Enum.Cus_PowerFangXiang) int.Parse(meterError.Mz_chrJdfx)).ToString();

                switch (prjId[1])
                {
                case '1':
                    Grid_Main["功率元件", rowIndex].Value = "合元"; break;

                case '2':
                    Grid_Main["功率元件", rowIndex].Value = "A元"; break;

                case '3':
                    Grid_Main["功率元件", rowIndex].Value = "B元"; break;

                case '4':
                    Grid_Main["功率元件", rowIndex].Value = "C元"; break;

                default:
                    break;
                }

                Grid_Main["功率因数", rowIndex].Value = meterError.Mz_chrGlys;

                Grid_Main["负载电流", rowIndex].Value = meterError.Mz_chrxIbString;

                switch (prjId[6])
                {
                case '0':
                    Grid_Main["费率", rowIndex].Value = "总"; break;

                case '1':
                    Grid_Main["费率", rowIndex].Value = "尖"; break;

                case '2':
                    Grid_Main["费率", rowIndex].Value = "峰"; break;

                case '3':
                    Grid_Main["费率", rowIndex].Value = "平"; break;

                case '4':
                    Grid_Main["费率", rowIndex].Value = "谷"; break;

                default:
                    break;
                }

                Grid_Main["起码", rowIndex].Value    = meterError.Mz_chrQiMa.ToString();
                Grid_Main["止码", rowIndex].Value    = meterError.Mz_chrZiMa.ToString();
                Grid_Main["表码差", rowIndex].Value   = meterError.Mz_chrQiZiMaC ?? "";
                Grid_Main["表脉冲", rowIndex].Value   = meterError.Mz_chrPules;
                Grid_Main["标准表脉冲", rowIndex].Value = meterError.AVR_STANDARD_METER_ENERGY;
                Grid_Main["误差", rowIndex].Value    = meterError.Mz_chrWc;
                Grid_Main["结论", rowIndex].Value    = meterError.Mz_chrJL;
            }
            SpanRow(0, Grid_Main.Rows.Count, 0);
        }
Exemplo n.º 2
0
        private void thShowData(object obj)
        {
            CheckPlan = CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.CheckPlan;
            CLDC_DataCore.Model.DnbModel.DnbInfo.MeterBasicInfo curMeter = null;
            if (CLDC_DataCore.Const.GlobalUnit.g_CUS == null)
            {
                return;
            }
            lock (objShowDataLock)
            {
                bool   isRead = false;
                string strKey = string.Empty;
                for (int bw = 0; bw < BwCount; bw++)
                {
                    //if (bw > BwCount) break;
                    string strMessageValue = string.Empty;
                    curMeter = CLDC_DataCore.Const.GlobalUnit.Meter(bw);
                    /*表格显示中的表位序号是从1开始*/
                    ClientTable.SetCheckBoxValue(bw + 1, curMeter.YaoJianYn);
                    if (!curMeter.YaoJianYn)
                    {
                        continue;
                    }
                    if (CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.ActiveItemID < 0 ||
                        CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.CheckState == CLDC_Comm.Enum.Cus_CheckStaute.停止检定)
                    {
                        //参数录入状态下刷新时显示条形码
                        strMessageValue = curMeter.Mb_ChrTxm;
                    }
                    else
                    {
                        //数据验证
                        //if (curMeter.MeterPlan == null || curMeter.MeterPlan.CheckPlan == null) continue;
                        //if (CheckPlan.Count <= CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.ActiveItemID) return;

                        strKey = "";
                        object curPlan = CheckPlan[CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.ActiveItemID];
                        if (curPlan is CLDC_DataCore.Struct.StPlan_ZouZi)
                        {
                            strKey = ((CLDC_DataCore.Struct.StPlan_ZouZi)curPlan).PrjID;
                        }
                        CLDC_DataCore.Model.DnbModel.DnbInfo.MeterResult curResult = null;

                        #region 预热数据显示
                        if (curPlan is StPlan_YuRe)
                        {
                            strMessageValue = "预热中";
                        }
                        #endregion

                        #region 起动/启动数据
                        else if (curPlan is StPlan_QiDong)
                        {
                            strKey  = ((int)CLDC_Comm.Enum.Cus_MeterResultPrjID.起动试验).ToString("D3");
                            strKey += ((int)((StPlan_QiDong)curPlan).PowerFangXiang).ToString();

                            if (curMeter.MeterResults.ContainsKey(strKey))
                            {
                                curResult       = curMeter.MeterResults[strKey];
                                strMessageValue = curResult.Mr_chrRstValue;
                                isRead          = curResult.Mr_chrRstValue == CLDC_DataCore.Const.Variable.CTG_BuHeGe;
                            }
                            else
                            {
                                strMessageValue = "准备检定";
                            }
                        }
                        #endregion

                        #region 潜动试验显示
                        else if (curPlan is StPlan_QianDong)
                        {
                            strKey  = ((int)CLDC_Comm.Enum.Cus_MeterResultPrjID.潜动试验).ToString("000");
                            strKey += ((int)((StPlan_QianDong)curPlan).PowerFangXiang).ToString();

                            if (curMeter.MeterResults.ContainsKey(strKey))
                            {
                                curResult = curMeter.MeterResults[strKey];

                                strMessageValue = curResult.Mr_chrRstValue;
                                isRead          = curResult.Mr_chrRstValue == CLDC_DataCore.Const.Variable.CTG_BuHeGe;
                            }
                            else
                            {
                                strMessageValue = "准备检定";
                            }
                        }
                        #endregion

                        #region 基本误差/标准偏差
                        else if (curPlan is StPlan_WcPoint)
                        {
                            //strKey = "P_" + CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.ActiveItemID;
                            StPlan_WcPoint _curPoint = (StPlan_WcPoint)curPlan;
                            CLDC_DataCore.Model.DnbModel.DnbInfo.MeterError curErroWc = null;
                            strKey = _curPoint.PrjID;
                            if (curMeter.MeterErrors.ContainsKey(strKey))
                            {
                                curErroWc = curMeter.MeterErrors[strKey];

                                string[] strErrorValue = curErroWc.Me_chrWcMore.Split('|');
                                if (strErrorValue.Length > 0)
                                {
                                    strMessageValue = strErrorValue[0];
                                }
                                if (curErroWc.Me_chrWcJl == CLDC_DataCore.Const.Variable.CTG_BuHeGe)
                                {
                                    isRead = true;
                                }
                            }
                        }

                        #endregion

                        #region ----------特殊检定-----------
                        else if (curPlan is StPlan_SpecalCheck)
                        {
                            //Comm.Struct.CheckPoint _curPoint = (Comm.Struct.CheckPoint)curPlan;
                            strKey = "P_" + CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.ActiveItemID;

                            CLDC_DataCore.Model.DnbModel.DnbInfo.MeterSpecialErr curErroWc = null;
                            //strKey = _curPoint.PrjID;
                            if (curMeter.MeterSpecialErrs.ContainsKey(strKey))
                            {
                                curErroWc = curMeter.MeterSpecialErrs[strKey];

                                string[] strErrorValue = curErroWc.Mse_Wc.Split('|');
                                if (strErrorValue.Length > 0)
                                {
                                    strMessageValue = strErrorValue[0];
                                }
                                if (curErroWc.Mse_Result == CLDC_DataCore.Const.Variable.CTG_BuHeGe)
                                {
                                    isRead = true;
                                }
                            }
                        }
                        #endregion

                        #region 走字数据
                        else if (curPlan is StPlan_ZouZi)
                        {
                            CLDC_DataCore.Model.DnbModel.DnbInfo.MeterZZError curZZerror = null;
                            if (curMeter.MeterZZErrors.ContainsKey(strKey))
                            {
                                curZZerror = curMeter.MeterZZErrors[strKey];
                                if (m_VerifyStep == CLDC_Comm.Enum.Cus_stVerifyStep.走字试验录起码 || m_VerifyStep == CLDC_Comm.Enum.Cus_stVerifyStep.走字试验录止码)
                                {
                                    strMessageValue = "";
                                }
                                else if (m_VerifyStep == CLDC_Comm.Enum.Cus_stVerifyStep.走字试验录止码完毕)
                                {
                                    //止码
                                    strMessageValue = curZZerror.Mz_chrZiMa.ToString();
                                }
                                else if (m_VerifyStep == CLDC_Comm.Enum.Cus_stVerifyStep.走字试验录起码完毕)
                                {
                                    //起码
                                    strMessageValue = curZZerror.Mz_chrQiMa.ToString();
                                }
                                else if (m_VerifyStep == CLDC_Comm.Enum.Cus_stVerifyStep.计算误差完毕)
                                {
                                    //起码
                                    strMessageValue = curZZerror.Mz_chrWc.ToString();
                                }
                                else
                                {
                                    //中途进入
                                    if (curZZerror.Mz_chrZiMa != -1)
                                    {
                                        strMessageValue = curZZerror.Mz_chrZiMa.ToString();
                                    }
                                    else if (curZZerror.Mz_chrQiMa != -1)
                                    {
                                        strMessageValue = curZZerror.Mz_chrQiMa.ToString();
                                    }
                                    else
                                    {
                                        strMessageValue = "";
                                    }
                                }
                                if (curZZerror.Mz_chrJL == CLDC_DataCore.Const.Variable.CTG_BuHeGe)
                                {
                                    isRead = true;
                                }
                            }
                        }
                        #endregion

                        #region 多功能数据
                        else if (curPlan is CLDC_DataCore.Struct.StPlan_Dgn)
                        {
                            strMessageValue = "检定中";
                            CLDC_DataCore.Struct.StPlan_Dgn DgnPlan = (CLDC_DataCore.Struct.StPlan_Dgn)curPlan;
                        }
                        #endregion

                        #region 载波数据
                        else if (curPlan is StPlan_Carrier)
                        {
                            strMessageValue = "检定中";
                            StPlan_Carrier CarrierPlan = (StPlan_Carrier)curPlan;
                        }
                        #endregion

                        else
                        {
                            //MUSTDO:走字,多功能检定客户端显示还没有做
                        }
                    }
                    //更新到UI
                    ClientTable.SetTextValue(bw + 1, strMessageValue);
                    ClientTable.SetTextBackColorValue(bw + 1, isRead);
                }
            }
        }
Exemplo n.º 3
0
        public override void SetData(CLDC_DataCore.Model.DnbModel.DnbGroupInfo MeterGroup, bool allowedit)
        {
            base.SetData(MeterGroup, allowedit);

            Grid_Main.Rows.Clear();

            //将MeterInfo.MeterZZErrors的Item项目枚举出,把所有Key字符串放到DataTable中,并且按照升序检索出来
            DataTable dtKeys = new DataTable();

            dtKeys.Columns.Add("Keys", typeof(string));
            dtKeys.Columns.Add("PrjId", typeof(string));

            foreach (string Key in MeterGroup.MeterGroup[MeterGroup.GetFirstYaoJianMeterBwh()].MeterZZErrors.Keys)
            {
                CLDC_DataCore.Model.DnbModel.DnbInfo.MeterZZError MeterError = MeterGroup.MeterGroup[MeterGroup.GetFirstYaoJianMeterBwh()].MeterZZErrors[Key];
                dtKeys.Rows.Add(Key, MeterError.Me_chrProjectNo);
            }
            DataRow[] Rows = dtKeys.Select("Keys <>'' and PrjId <> ''", "PrjId asc");

            //Grid_Main.SuspendLayout();
            for (int i = 0; i < _MeterGroup._Bws; i++)
            {
                for (int j = 0; j < Rows.Length; j++)
                {
                    if (MeterGroup.MeterGroup[i].MeterZZErrors.Count == 0)
                    {
                        continue;
                    }
                    if (!MeterGroup.MeterGroup[i].MeterZZErrors.ContainsKey(Rows[j][0].ToString()))
                    {
                        continue;
                    }
                    CLDC_DataCore.Model.DnbModel.DnbInfo.MeterZZError meterError = MeterGroup.MeterGroup[i].MeterZZErrors[Rows[j][0].ToString()];
                    string prjId = meterError.Me_chrProjectNo;

                    int rowIndex = Grid_Main.Rows.Add();

                    Grid_Main["表位", rowIndex].Value = MeterGroup.MeterGroup[i].ToString();
                    if (meterError.Mz_chrJdfx.Length > 0)
                    {
                        if (CLDC_DataCore.Function.Number.IsNumeric(meterError.Mz_chrJdfx))
                        {
                            Grid_Main["功率方向", rowIndex].Value = (CLDC_Comm.Enum.Cus_PowerFangXiang) int.Parse(meterError.Mz_chrJdfx);
                        }
                        else
                        {
                            Grid_Main["功率方向", rowIndex].Value = Enum.Parse(typeof(CLDC_Comm.Enum.Cus_PowerFangXiang), meterError.Mz_chrJdfx);
                        }
                    }
                    else
                    {
                        Grid_Main["功率方向", rowIndex].Value = "";
                    }

                    switch (prjId.Substring(1, 1))
                    {
                    case "1":
                        Grid_Main["功率元件", rowIndex].Value = "合元"; break;

                    case "2":
                        Grid_Main["功率元件", rowIndex].Value = "A元"; break;

                    case "3":
                        Grid_Main["功率元件", rowIndex].Value = "B元"; break;

                    case "4":
                        Grid_Main["功率元件", rowIndex].Value = "C元"; break;

                    default:
                        break;
                    }

                    Grid_Main["功率因数", rowIndex].Value = meterError.Mz_chrGlys;

                    Grid_Main["负载电流", rowIndex].Value = meterError.Mz_chrxIbString;

                    Grid_Main["费率", rowIndex].Value = meterError.Mz_chrFl;

                    Grid_Main["起码", rowIndex].Value    = meterError.Mz_chrQiMa.ToString();
                    Grid_Main["止码", rowIndex].Value    = meterError.Mz_chrZiMa.ToString();
                    Grid_Main["表码差", rowIndex].Value   = meterError.Mz_chrQiZiMaC ?? "";
                    Grid_Main["表脉冲", rowIndex].Value   = meterError.Mz_chrPules;
                    Grid_Main["标准表脉冲", rowIndex].Value = meterError.AVR_STANDARD_METER_ENERGY;
                    Grid_Main["误差", rowIndex].Value    = meterError.Mz_chrWc;
                    Grid_Main["结论", rowIndex].Value    = meterError.Mz_chrJL;
                }
            }
            SpanRow(0, Grid_Main.Rows.Count, 0);
        }
Exemplo n.º 4
0
        /// <summary>
        /// 输入框输入完毕事件
        /// </summary>
        /// <param name="Bwh">表位号(1-BW)</param>
        /// <param name="Value">输入值</param>
        private bool ClientTable_TxtInputOver(int Bwh, string Value)
        {
            MessageBoxEx.UseSystemLocalizedString = true;
            string strMessage;

            if (CLDC_DataCore.Const.GlobalUnit.g_CUS == null)
            {
                return(false);
            }
            if (Bwh < 1 || Bwh > BwCount)
            {
                return(false);
            }
            CLDC_DataCore.Model.DnbModel.DnbInfo.MeterBasicInfo curMeter = CLDC_DataCore.Const.GlobalUnit.Meter(Bwh - 1);
            if (curMeter == null)
            {
                return(false);
            }

            string ItemKey = "";

            if (CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.CheckPlan[CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.ActiveItemID] is CLDC_DataCore.Struct.StPlan_ZouZi)
            {
                ItemKey = ((CLDC_DataCore.Struct.StPlan_ZouZi)CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.CheckPlan[CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.ActiveItemID]).PrjID;
            }
            CLDC_DataCore.Model.DnbModel.DnbInfo.MeterZZError ZZError = null;
            //在这儿根据参数录入状态进行判断
            switch (m_VerifyStep)
            {
            case CLDC_Comm.Enum.Cus_stVerifyStep.参数录入:
            {
                //检查条形码是否重复
                CLDC_DataCore.Model.DnbModel.DnbInfo.MeterBasicInfo tmpMeter = null;
                for (int i = 0; i < BwCount; i++)
                {
                    if (i == Bwh - 1)
                    {
                        continue;
                    }
                    tmpMeter = CLDC_DataCore.Const.GlobalUnit.Meter(i);
                    if (tmpMeter != null && Value == tmpMeter.Mb_ChrTxm)
                    {
                        strMessage = string.Format("条形码[{0}]已经在{1}表位存在!", Value, curMeter.ToString());
                        //CLDC_Comm.Speechs.Speech.Instance.SpeakChina(strMessage);
                        MessageBoxEx.Show(this, strMessage, "错误", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
                        return(false);
                    }
                }
                //语音朗读条码后四位
                strMessage = Value.Substring(Value.Length - 4, 4);
                // CLDC_Comm.Speechs.Speech.Instance.SpeakChina(strMessage);
                /*条码解析开始*/
                CLDC_DataCore.Model.DnbModel.DnbInfo.MeterBasicInfo MeterInfo = null;
                if (OnGetMeterInfo != null)
                {
                    MeterInfo = OnGetMeterInfo(Value);
                }
                if (MeterInfo != null)
                {
                    MeterInfo.SetBno(Bwh);
                    CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.MeterGroup[Bwh - 1] = MeterInfo;
                    /*发送到服务器*/
                    CLDC_DataCore.Command.Model.SendMeterData_Ask cmdOneMeter = new CLDC_DataCore.Command.Model.SendMeterData_Ask();
                    //cmdOneMeter.MeterData = MeterInfo;
                    CLDC_CTNProtocol.CTNPCommand cmdResponse;
                    sendMessage(cmdOneMeter, out cmdResponse);
                    if (cmdResponse == null)
                    {
                        MessageBoxEx.Show(this, "上传数据到控制中心出错");
                        return(false);
                    }
                }
                else
                {
                    curMeter.Mb_ChrTxm = Value;
                    //上报服务器
                    CLDC_DataCore.Command.Txm.InputTxm_Update_Ask cmdAsk = new CLDC_DataCore.Command.Txm.InputTxm_Update_Ask();
                    CLDC_CTNProtocol.CTNPCommand cmdAnswer;
                    cmdAsk.Txm = Value;
                    cmdAsk.Bwh = Bwh - 1;

                    sendMessage(cmdAsk, out cmdAnswer);
                    if (cmdAnswer == null)
                    {
                        MessageBoxEx.Show(this, "操作失败!请重新扫描", "操作失败", MessageBoxButtons.OK, MessageBoxIcon.Warning);
                        ClientTable.SelectedBwh = Bwh;
                    }
                }
                GlobalUnit.g_MsgControl.OutMessage(string.Format("第表{0}位扫描完成", Bwh), true);
                break;
            }

            case CLDC_Comm.Enum.Cus_stVerifyStep.走字试验录起码:
            {
                if (!curMeter.MeterZZErrors.ContainsKey(ItemKey))
                {
                    GlobalUnit.g_MsgControl.OutMessage("没有发现数据节点", false);
                    return(false);
                }
                if (!CLDC_DataCore.Function.Number.IsNumeric(Value))
                {
                    GlobalUnit.g_MsgControl.OutMessage("请输入数字!", false);
                    return(false);
                }
                GlobalUnit.g_MsgControl.OutMessage(Bwh + "输入完成!", false);
                ZZError            = curMeter.MeterZZErrors[ItemKey];
                ZZError.Mz_chrQiMa = float.Parse(Value);
                break;
            }

            case CLDC_Comm.Enum.Cus_stVerifyStep.走字试验录止码:
            {
                if (!curMeter.MeterZZErrors.ContainsKey(ItemKey))
                {
                    GlobalUnit.g_MsgControl.OutMessage("没有发现数据节点", false);
                    return(false);
                }
                if (!CLDC_DataCore.Function.Number.IsNumeric(Value))
                {
                    GlobalUnit.g_MsgControl.OutMessage("请输入数字!", false);
                    return(false);
                }
                GlobalUnit.g_MsgControl.OutMessage(Bwh + "输入完成!", false);

                ZZError            = curMeter.MeterZZErrors[ItemKey];
                ZZError.Mz_chrZiMa = float.Parse(Value);
                break;
            }

            default:
            {
                MessageBoxEx.Show(this, "错误的状态:" + m_VerifyStep.ToString());
                break;
            }
            }
            return(true);
        }