using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using Core.Mes.Client.Comm.Server; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.Mcp.Control.Entity; using CoreFS.CA06; using Infragistics.Win; using Infragistics.Win.UltraWinEditors; using Infragistics.Win.UltraWinGrid; using Infragistics.Win.UltraWinToolbars; namespace Core.StlMes.Client.Mcp.Control.HeatTreatment { public partial class FrmChooseProbe : FrmBase { private readonly List _listDefault; public FrmChooseProbe(List listDefault, List listProbe, OpeBase Ob) { InitializeComponent(); ob = Ob; _listDefault = listDefault; var ProDefault = _listDefault.Where(p => p.ReportColumn.ToUpper() == "PROBE_QTY_NAME").ToList(); DataTable dt; if (ProDefault.Any() && ProDefault[0].DroplistUsed != "") { dt = ServerHelper.GetData( "com.steering.mes.mcp.heatTreatment.ScrapHelper.doQuery", new object[] { "4097",ProDefault[0].DroplistUsed.Split(';') }, ob); } else { dt = ServerHelper.GetData( "com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo", new object[] { "4097" }, ob); } List ListProbeAll = new List(); listProbe.ForEach(p => p.Chk = true); ListProbeAll.AddRange(listProbe); for (int i = 0; i < dt.Rows.Count; i++) { if (listProbe.Any(p => p.ProbeTypeCode == dt.Rows[i]["BASECODE"].ToString2())) continue; HttCrackDetectionProbeEntity a = new HttCrackDetectionProbeEntity(); a.ProbeTypeCode = dt.Rows[i]["BASECODE"].ToString2(); a.ProbeTypeName = dt.Rows[i]["BASENAME"].ToString2(); a.Chk = false; bool exits = false; var qty = listDefault.Where(p => p.ReportColumn == "PROBE_QTY_" + a.ProbeTypeCode).ToList(); if (qty.Any()) { exits = true; a.ProbeQty = qty.First().TextDefault; } var para = listDefault.Where(p => p.ReportColumn == "PROBE_PARAMETERS_" + a.ProbeTypeCode).ToList(); if (para.Any()) { exits = true; a.ProbeParameters = para.First().TextDefault; } if(exits) ListProbeAll.Add(a); } httCrackDetectionProbeEntityBindingSource.DataSource = ListProbeAll; ProbeType.DataSource = dt; ProbeType.ValueMember = "BASECODE"; ProbeType.DisplayMember = "BASENAME"; if (!_listDefault.Any(p => p.ReportColumn.StartsWith("PROBE_QTY_"))) ultraGridDetailDes1.DisplayLayout.Bands[0].Columns["ProbeQty"].Hidden = true; } private void ultraToolbarsManager1_ToolClick(object sender, ToolClickEventArgs e) { switch (e.Tool.Key) { case "Save": Save(); break; case "Close": CloseFrm(); break; } } protected override void OnLoad(EventArgs e) { base.OnLoad(e); foreach (var ugc in ultraGridDetailDes1.DisplayLayout.Bands[0].Columns) ugc.SortIndicator = SortIndicator.Disabled; ultraGridDetailDes1.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False; EntityHelper.ShowGridCaption(ultraGridDetailDes1.DisplayLayout.Bands[0]); } private void CloseFrm() { DialogResult = DialogResult.Cancel; Close(); } /// /// 保存可疑、剔除品 /// private void Save() { ultraGridDetailDes1.UpdateData(); List list = GetValue(); if (!list.Any()) { MessageBox.Show("请维护探头信息"); return; } if (list.Any(p => p.ProbeTypeCode == "")) { MessageBox.Show("请选择探头种类"); return; } if (! ultraGridDetailDes1.DisplayLayout.Bands[0].Columns["ProbeQty"].Hidden && list.Any(p => p.ProbeQty == "")) { MessageBox.Show("请输入探头个数"); return; } if (list.Any(p => p.ProbeParameters == "")) { MessageBox.Show("请输入探头参数"); return; } if (list.GroupBy(p => p.ProbeTypeCode).Max(p=>p.Count())>1) { MessageBox.Show("有重复的探头种类"); return; } DialogResult = DialogResult.OK; } private void ultraGridDetailDes1_InitializeTemplateAddRow(object sender, Infragistics.Win.UltraWinGrid.InitializeTemplateAddRowEventArgs e) { if (ultraGridDetailDes1.ActiveRow == null && ultraGridDetailDes1.Rows.Count<=0) e.TemplateAddRow.Activated = true; } private void ultraGridDetailDes1_InitializeRow(object sender, Infragistics.Win.UltraWinGrid.InitializeRowEventArgs e) { HttCrackDetectionProbeEntity data = e.Row.ListObject as HttCrackDetectionProbeEntity; if(data.ProbeTypeCode=="") return; var ProDefault = _listDefault.Where(p => p.ReportColumn.ToUpper() == "PROBE_PARAMETERS_" + data.ProbeTypeCode).ToList(); if (ProDefault.Any()) { if (ProDefault[0].ColumnType == "1" || ProDefault[0].ColumnType == "2") { UltraComboEditor UltraComboEditor = new UltraComboEditor(); if (ProDefault[0].DroplistUsed != "") { ProDefault[0].DroplistUsed.Split(';').ToList().ForEach(p => UltraComboEditor.Items.Add(p)); } else if (ProDefault[0].DroplistDefult != "") { DataTable dt = ServerHelper.GetData( "com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo", new object[] {ProDefault[0].DroplistDefult}, ob); UltraComboEditor.DataSource = dt; UltraComboEditor.DisplayMember = "BASENAME"; UltraComboEditor.ValueMember = "BASENAME"; } e.Row.Cells["probeParameters"].EditorComponent = UltraComboEditor; e.Row.Cells["probeParameters"].Style = ProDefault[0].ColumnType == "1" ? Infragistics.Win.UltraWinGrid.ColumnStyle.DropDownList : Infragistics.Win.UltraWinGrid.ColumnStyle.DropDown; } } ProDefault = _listDefault.Where(p => p.ReportColumn.ToUpper() =="PROBE_QTY_" + data.ProbeTypeCode).ToList(); if (ProDefault.Any()) { if (ProDefault[0].ColumnType == "1" || ProDefault[0].ColumnType == "2") { UltraComboEditor UltraComboEditor = new UltraComboEditor(); e.Row.Cells["probeQty"].EditorComponent = UltraComboEditor; if (ProDefault[0].DroplistUsed != "") { UltraComboEditor.DataSource = ProDefault[0].DroplistUsed.Split(';'); } else if (ProDefault[0].DroplistDefult != "") { DataTable dt = ServerHelper.GetData( "com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo", new object[] { ProDefault[0].DroplistDefult }, ob); UltraComboEditor.DataSource = dt; ProbeType.DisplayMember = "BASENAME"; ProbeType.ValueMember = "BASENAME"; } } } } public List GetValue() { ultraGridDetailDes1.UpdateData(); List data = httCrackDetectionProbeEntityBindingSource.DataSource as List; if (data.Any()) { return data.Where(p => p.Chk).ToList(); } return new List(); } private void ultraGridDetailDes1_CellChange(object sender, CellEventArgs e) { ultraGridDetailDes1.UpdateData(); if (e.Cell.Column.Key == "ProbeTypeCode") { HttCrackDetectionProbeEntity HttCrackDetectionProbeEntity = e.Cell.Row.ListObject as HttCrackDetectionProbeEntity; if (HttCrackDetectionProbeEntity == null) return; HttCrackDetectionProbeEntity.ProbeTypeName = e.Cell.Text; } } } }