using System; using System.Collections.Generic; using System.Linq; using System.Windows.Forms; using Core.Mes.Client.Comm.Control; using Core.Mes.Client.Comm.Format; using Core.Mes.Client.Comm.Tool; using Core.StlMes.Client.PlnSaleOrd.BaseMethod; using Core.StlMes.Client.PlnSaleOrd.炼钢计划.entity; using CoreFS.CA06; using Infragistics.Win.UltraWinToolbars; namespace Core.StlMes.Client.PlnSaleOrd.炼钢计划 { public partial class FrmSteelSupplement : FrmBase { private double[] SmeltingQty; public FrmSteelSupplement() { InitializeComponent(); } public List ListSource { get { return plnSteelforOrdNewEntityBindingSource.DataSource as List; } set { plnSteelforOrdNewEntityBindingSource.DataSource = value; } } private void utmMain_ToolClick(object sender, ToolClickEventArgs e) { switch (e.Tool.Key) { case "Forming": // ButtonTool Forming(); break; case "Add": // ButtonTool // Place code here Add(); break; case "Delete": // ButtonTool // Place code here Delete(); break; case "Close": // ButtonTool // Place code here DialogResult = DialogResult.No; break; } } private void Delete() { if (ListSource.Count <= 1) { MessageUtil.ShowWarning("没有余材可删除!"); return; } ListSource.RemoveAt(1); ugOrder.DataBind(); ugOrder.Refresh(); } private void Forming() { if ((ListSource == null) || (ListSource.Count <= 0)) return; // Place code here if (SmeltingQty == null) SmeltingQty = SteelHelper.GetData( "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.GetSmeltingQty", new object[] {ListSource[0].EfPlineCode}, ob) as double[]; var toltalWeight = ListSource.Sum(p => (double) (p.TotWeightM ?? 0)); if ((SmeltingQty != null) && (SmeltingQty.Length > 2) && ((toltalWeight < SmeltingQty[1]) || (toltalWeight > SmeltingQty[2]))) { MessageUtil.ShowWarning(string.Format("不在电炉产线的出钢量范围[{0},{1}]内,无法组炉 !", SmeltingQty[1], SmeltingQty[2])); return; } var param = SteelHelper.SetData("com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.SteelSupplement", new object[] {ListSource.Select(JSONFormat.Format).ToList(), UserInfo.GetUserName()}, ob); if (param != null) DialogResult = DialogResult.OK; } private void Add() { if (ListSource.Count > 1) { MessageUtil.ShowWarning("已经存在余材!"); return; } var plnSteelforOrdNewEntity = ListSource.FirstOrDefault(); if (plnSteelforOrdNewEntity != null) { var newPlnSteelforOrdNewEntity = plnSteelforOrdNewEntity.Clone() as PlnSteelforOrdNewEntity; if (newPlnSteelforOrdNewEntity == null) return; if (SmeltingQty == null) SmeltingQty = SteelHelper.GetData( "com.steering.pss.plnsaleord.steelMarkingPlan.FrmSteelManagement.GetSmeltingQty", new object[] {newPlnSteelforOrdNewEntity.EfPlineCode}, ob) as double[]; if ((SmeltingQty != null) && (SmeltingQty.Length > 0)) { var weight = SmeltingQty[0] - (double) (plnSteelforOrdNewEntity.TotWeightM ?? 0); newPlnSteelforOrdNewEntity.TotMumM = (long)Math.Ceiling(weight / (double) (newPlnSteelforOrdNewEntity .WeightM ?? 0)); newPlnSteelforOrdNewEntity.TotWeightM = newPlnSteelforOrdNewEntity.TotMumM* newPlnSteelforOrdNewEntity.WeightM; } newPlnSteelforOrdNewEntity.SurplusType = "1"; newPlnSteelforOrdNewEntity.Surplusflag = "1"; ListSource.Add(newPlnSteelforOrdNewEntity); ugOrder.DataBind(); ugOrder.Refresh(); } } private void FrmSteelSupplement_Load(object sender, EventArgs e) { EntityHelper.ShowGridCaption(ugOrder.DisplayLayout.Bands[0]); BaseHelper.setOtherColumnReadOnly(ugOrder, new[] {"TotMumM", "TotWeightM"}); //绑定Valuelist 根据实体类值显示 var list = SteelManagementHelper.GetValuelistLogic(); SteelManagementHelper.SetGridValuelist(ref ugOrder, "IfSurplusAlloted", ref list); list = SteelManagementHelper.GetStatus(); SteelManagementHelper.SetGridValuelist(ref ugOrder, "Status", ref list); list = SteelManagementHelper.GetValuelistLogic(); SteelManagementHelper.SetGridValuelist(ref ugOrder, "Surplusflag", ref list); list = SteelManagementHelper.GetSurplusType(); SteelManagementHelper.SetGridValuelist(ref ugOrder, "SurplusType", ref list); list = SteelManagementHelper.GetCastingtype(); SteelManagementHelper.SetGridValuelist(ref ugOrder, "Castingtype", ref list); list = SteelManagementHelper.GetSurplusflag(); SteelManagementHelper.SetGridValuelist(ref ugOrder, "GetSurplusflag", ref list); GridHelper.RefreshAndAutoSize(ugOrder); } } }