using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Text; using System.Windows.Forms; using Core.Mes.Client.Comm.Control; using com.steering.mes.mcp.entity; 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.UltraWinGrid; namespace Core.StlMes.Client.Mcp.Control.HeatTreatment { public partial class HighTreatFurnace : UserControl { private OpeBase ob; public OpeBase Ob { get { return ob; } set { ob = value; } } public void DisableFiltering() { ultraGrid1.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False; } public void SetFont(Font f1) { ultraGrid1.Font = f1; foreach (UltraGridColumn UltraGridColumn in ultraGrid1.DisplayLayout.Bands[0].Columns) { UltraGridColumn.Header.Appearance.FontData.Bold = f1.Bold ? DefaultableBoolean.True : DefaultableBoolean.False; UltraGridColumn.Header.Appearance.FontData.Name = f1.Name; UltraGridColumn.Header.Appearance.FontData.SizeInPoints = f1.SizeInPoints; } } public List PortHttBatchSampleResultEntitys { get; set; } public List ListAll { get; set; } /// /// 废品 /// public static List ScrappedList { private set; get; } public UltraGrid Grid { get { return this.ultraGrid1; }} public string gx { get; set; } public HttHheatResultEntity Value { get { ultraGrid1.UpdateData(); List list = httHheatResultEntityBindingSource.DataSource as List; if (list != null && list.Any()) { list[0].HheatOutTime = ultraGrid1.Rows[0].Cells["HheatOutTime"].Text; list[0].HheatEnterTime = ultraGrid1.Rows[0].Cells["HheatEnterTime"].Text; } return list == null || !list.Any() ? new HttHheatResultEntity() : list.FirstOrDefault(); } set { if (value == null) { httHheatResultEntityBindingSource.DataSource = new List() { new HttHheatResultEntity() }; ScrappedList = new List(); } else { httHheatResultEntityBindingSource.DataSource = new List() {value.Clone()}; if (ob == null || ob.MainUrl == "") return; DataTable dt1 = ServerHelper.GetData("com.steering.mes.mcp.Mch.FrmMcpLoading.getPerson", new object[] {ultraGrid1.Rows[0].Cells["ColGroup"].Text, Value.PlineName}, this.ob); //如果是“”里面添加的是条件 name.DataSource = dt1; name.DisplayMember = "NAME"; //name.ValueMember = "ID"; YdmBaseClass.SetComboItemHeight(name); if (!string.IsNullOrEmpty(value.ResultNo) && value.FailNum > 0 && value.FailNum != ScrappedList.Count) { ScrappedList = EntityHelper.GetData( "com.steering.mes.mcp.heatTreatment.FrmHttBugD.doQueryScrapNum", new object[] { "", value.ResultNo }, ob); } if (value.FailNum == 0) { ScrappedList = new List(); } SetWeight(); } ultraGrid1.Refresh(); } } public HighTreatFurnace() { ScrappedList = new DataSourceList(); InitializeComponent(); EntityHelper.ShowGridCaption(ultraGrid1.DisplayLayout.Bands[0]); } public void ShowPro(bool isPro) { ultraGrid1.DisplayLayout.Bands[0].Columns["Producer"].CellActivation = isPro? Activation.AllowEdit:Activation.ActivateOnly; ultraGrid1.DisplayLayout.Bands[0].Columns["ProducerTime"].CellActivation =isPro? Activation.AllowEdit : Activation.ActivateOnly; } private void ultraGrid1_CellChange(object sender, CellEventArgs e) { try { if (e.Cell.Column.Key.Equals("HheatOutTime") || e.Cell.Column.Key.Equals("HheatEnterTime")) return; ultraGrid1.UpdateData(); if (e.Cell.Column.Key.Equals("ColGroup")) { DataTable dt1 = ServerHelper.GetData("com.steering.mes.mcp.Mch.FrmMcpLoading.getPerson", new object[] { e.Cell.Row.Cells["ColGroup"].Text, Value.PlineName }, this.ob);//如果是“”里面添加的是条件 name.DataSource = dt1; name.DisplayMember = "NAME"; //name.ValueMember = "ID"; YdmBaseClass.SetComboItemHeight(name); } if (e.Cell.Column.Key.Equals("ProNum") && Value.ProNum != null && Value.ProcessSeq != null) { SetWeight(); } /*f (e.Cell.Column.Key.Equals("ProcessSeq") && Value.ProNum != null && Value.ProcessSeq != null) { List OkList = PortHttBatchSampleResultEntitys.Where( p => (p.ProcessSeq == Value.ProcessSeq && (p.MatStatus == "00" || p.MatStatus == "合格" || String.CompareOrdinal(p.OpProcessCode, gx) >= 0)) || (p.ProcessSeq > Value.ProcessSeq)).ToList(); int Count1 = ListAll.Where(p => p.ProcessSeq == Value.ProcessSeq).Sum(p => (int)(p.ProNum ?? 0)); Value.ProNum = OkList.Count - Count1; Value.ProWt = OkList.Skip(Count1).Take(OkList.Count - Count1).Sum(p => p.ActWeight); } */ ultraGrid1.Refresh(); } catch (Exception) { } } private void SetWeight() { if(PortHttBatchSampleResultEntitys==null || !PortHttBatchSampleResultEntitys.Any()) return; List OkList = PortHttBatchSampleResultEntitys.Where( p => (p.ProcessSeq == Value.ProcessSeq && (p.MatStatus == "00" || p.MatStatus == "合格") || String.CompareOrdinal(p.OpProcessCode, gx) >= 0) || (p.ProcessSeq > Value.ProcessSeq)).ToList(); if(!OkList.Any()) return; int Count1 = ListAll.Where(p => p.ProcessSeq == Value.ProcessSeq).Sum(p => (int)(p.ProNum ?? 0)); decimal AllWeight = (decimal)OkList.Sum(p => p.ActWeight); decimal Weight1 = (decimal)((int)Value.ProNum % OkList.Count > (OkList.Count - Count1 % OkList.Count) ? (OkList.Skip(Count1 % OkList.Count).Take(OkList.Count - Count1 % OkList.Count).Sum(p => p.ActWeight) + OkList.Take((int)Value.ProNum % OkList.Count - (OkList.Count - Count1 % OkList.Count)) .Sum(p => p.ActWeight)) : OkList.Skip(Count1 % OkList.Count).Take((int)Value.ProNum % OkList.Count).Sum(p => p.ActWeight)); Value.ProWt = AllWeight * ((int)Value.ProNum / OkList.Count) + Weight1; } private void craftImg_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { if(Value.HeatPlanNo==null) { return; } if (Value.PlineCode == null) { return; } FrmScrapHttNew matfrm = new FrmScrapHttNew(this.ob, null, ScrappedList, false, Value.HeatPlanNo,int.Parse(Value.ProcessSeq.ToString3()), "600402","","",null, ScrappedList.Concat(QuenTreatFurnace.ScrappedList).Concat(LowTreatFurnace.ScrappedList).SelectMany(p => p.MatNo.Split(',')).ToList()); matfrm.ShowDialog(); if (matfrm.DialogResult == DialogResult.OK) { ScrappedList = matfrm.ScrappedList; Value.FailNum = ScrappedList.Sum(p=>p.DefFillNum); } Value.FailNum = Value.FailNum ?? 0; ultraGrid1.PerformAction(UltraGridAction.ExitEditMode); this.ultraGrid1.UpdateData(); } } }