public void RefreshData(CLDC_DataCore.Model.DnbModel.DnbGroupInfo meterGroup, int CheckOrderID) { this.RefreshGrid(meterGroup, CheckOrderID); Data_LoadRecord.Enabled = true; CLDC_DataCore.Struct.StPlan_LoadRecord _Item = (CLDC_DataCore.Struct.StPlan_LoadRecord)meterGroup.CheckPlan[CheckOrderID]; bool bFind = false; if (Tab_EventLog.TabPages.Count > 1) //如果Tab的页数大于1,那表示存在动态增加的数据页 { if (Data_LoadRecord.Tag != null && Data_LoadRecord.Tag.ToString() == _Item.PrjID) { bFind = true; } else { for (int i = Tab_EventLog.TabPages.Count - 1; i > 0; i--) { Tab_EventLog.TabPages.RemoveAt(i); } bFind = false; } } if (!bFind) { Data_LoadRecord.Tag = _Item.PrjID; //将ID值放到数据列表的Tag中,供数据刷新使用 switch (_Item.PrjID) { case "001": { Tab_EventLog.TabPages.Add("负荷记录数据"); CLDC_MeterUI.UI_Detection_New.LoadRecordDataView.ViewLoadRecord _View = new CLDC_MeterUI.UI_Detection_New.LoadRecordDataView.ViewLoadRecord(); Tab_EventLog.TabPages[1].Controls.Add(_View); _View.Dock = DockStyle.Fill; _View.Margin = new System.Windows.Forms.Padding(0); break; } } } }
/// <summary> /// 刷新表单数据 /// </summary> /// <param name="MeterGroup"></param> public void SetData(List <CLDC_DataCore.Model.DnbModel.DnbInfo.MeterBasicInfo> MeterGroup) { int intRecordType = 1; int intTestNum = 0; string[] arrParam = null; int intSchemeCount = CLDC_DataCore.Const.GlobalUnit.g_CUS.DnbData.CheckPlan.Count; int intKey = int.Parse(Key); CLDC_DataCore.Struct.StPlan_LoadRecord _Item = new CLDC_DataCore.Struct.StPlan_LoadRecord(); for (int intInc = 0; intInc < intSchemeCount; intInc++) { if (GlobalUnit.g_CUS.DnbData.CheckPlan[intInc] is CLDC_DataCore.Struct.StPlan_LoadRecord) { if (((CLDC_DataCore.Struct.StPlan_LoadRecord)GlobalUnit.g_CUS.DnbData.CheckPlan[intInc]).PrjID == Key) { _Item = (CLDC_DataCore.Struct.StPlan_LoadRecord)GlobalUnit.g_CUS.DnbData.CheckPlan[intInc]; intTestNum = _Item.OverTime / 1;// _Item.MarginTime; } } } intRecordType = cmb_RecordType.SelectedIndex + 1; if (intTestNum < 1) { return; } if (intTestNum > 10) { intTestNum = 10; } if (Data_View.Columns.Count == 0 || MeterGroup.Count == 0) { return; } if (Data_View.Rows.Count != MeterGroup.Count * intTestNum) //如果当前数据表单行数小于电能表表位数,则需要重新创建对应数据表单 { Data_View.Rows.Clear(); for (int intIna = 0; intIna < MeterGroup.Count; intIna++) { for (int intInb = 0; intInb < 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[intIna * intTestNum + intInb].Cells[0].Value = string.Format("第{0}表位", intIna + 1); Data_View.Rows[intIna * intTestNum + intInb].Cells[1].Value = string.Format("第{0}次", intInb + 1); } } Data_View.Refresh(); } for (int intIna = 0; intIna < MeterGroup.Count; intIna++) //循环将电能表数据集合中的时段投切数据值插入到表格中 { for (int intCurrentNum = 1; intCurrentNum <= intTestNum; intCurrentNum++) { if (!MeterGroup[intIna].YaoJianYn) { continue; } string _Key = Key + intRecordType.ToString("D2") + intCurrentNum.ToString("D2"); if (MeterGroup[intIna].MeterLoadRecords == null) { continue; } if (!MeterGroup[intIna].MeterLoadRecords.ContainsKey(_Key)) { for (int k = 0; k < 2; k++) { Data_View.Rows[intIna * intTestNum + intCurrentNum - 1].Cells[k + 2].Value = ""; } continue; } if (MeterGroup[intIna].MeterLoadRecords[_Key].Ml_chrValue == null || MeterGroup[intIna].MeterLoadRecords[_Key].Ml_chrValue == string.Empty) { continue; } else { string[] arrValue = null; if (MeterGroup[intIna].MeterLoadRecords[_Key].Ml_chrValue.IndexOf(',') == -1) { continue; } arrValue = MeterGroup[intIna].MeterLoadRecords[_Key].Ml_chrValue.Split(','); for (int k = 0; k < arrValue.Length; k++) { Data_View.Rows[intIna * intTestNum + intCurrentNum - 1].Cells[k + 2].Value = arrValue[k]; } } } } }
/// <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_LoadRecord _Item = (CLDC_DataCore.Struct.StPlan_LoadRecord)MeterGroup.CheckPlan[CheckOrderID]; bool bFind = false; if (Tab_EventLog.TabPages.Count > 1) //如果Tab的页数大于1,那表示存在动态增加的数据页 { if (Data_LoadRecord.Tag != null && Data_LoadRecord.Tag.ToString() == _Item.PrjID) { bFind = true; } else { for (int i = Tab_EventLog.TabPages.Count - 1; i > 0; i--) { Tab_EventLog.TabPages.RemoveAt(i); } bFind = false; } } if (!bFind) { Data_LoadRecord.Tag = _Item.PrjID; //将ID值放到数据列表的Tag中,供数据刷新使用 switch (_Item.PrjID) { case "001": { Tab_EventLog.TabPages.Add("负荷记录数据"); CLDC_MeterUI.UI_Detection_New.LoadRecordDataView.ViewLoadRecord _View = new CLDC_MeterUI.UI_Detection_New.LoadRecordDataView.ViewLoadRecord(); Tab_EventLog.TabPages[1].Controls.Add(_View); _View.Dock = DockStyle.Fill; _View.Margin = new System.Windows.Forms.Padding(0); break; } } } for (int i = 0; i < MeterGroup.MeterGroup.Count; i++) { CLDC_DataCore.Model.DnbModel.DnbInfo.MeterBasicInfo _MeterInfo = MeterGroup.MeterGroup[i]; DataGridViewRow Row = Data_LoadRecord.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 = _Item.ToString(); if (Data_LoadRecord.Tag == null) { return; } if (_MeterInfo.MeterLoadRecords == null) { _MeterInfo.MeterLoadRecords = new Dictionary <string, CLDC_DataCore.Model.DnbModel.DnbInfo.MeterLoadRecord>(); } if (_MeterInfo.MeterLoadRecords.ContainsKey(Data_LoadRecord.Tag.ToString())) //如果数据中存在值那么久需要插入数据,这个地方插的值都是合格或者不合格,因为取的都是大编号,不是带具体值的小编号 { Row.Cells[3].Value = "100%"; Row.Cells[4].Value = _MeterInfo.MeterLoadRecords[Data_LoadRecord.Tag.ToString()].Ml_Result; } 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; } } if (Tab_EventLog.TabPages.Count != 2) { return; //如果没有附加数据页则返回 } Control _Control = Tab_EventLog.TabPages[1].Controls[0]; if (_Control is CLDC_MeterUI.UI_Detection_New.LoadRecordDataView.ViewLoadRecord) { ((CLDC_MeterUI.UI_Detection_New.LoadRecordDataView.ViewLoadRecord)_Control).SetData(MeterGroup.MeterGroup); return; } }