using System; using System.Collections.Generic; using System.ComponentModel; using System.Drawing; using System.Data; using System.Linq; using System.Reflection; using System.Text; using System.Windows.Forms; using com.steering.mes.mcp.entity; using Core.StlMes.Client.Mcp.Control.Entity; using CoreFS.CA06; using Infragistics.Win.UltraWinGrid; namespace Core.StlMes.Client.Mcp.Control.Common { public partial class CommonCrackMain : UserControl { public CommonCrackMain() { InitializeComponent(); commonCrackBodyNum1.ultraGrid1.CellChange+=ultraGrid1_CellChange; } private void ultraGrid1_CellChange(object sender, CellEventArgs e) { commonCrackBodyNum1.ultraGrid1.UpdateData(); SetValue(commonCrackBodyNum1.Value, Lists); } public OpeBase Ob { set { commonCrackBodyNum1.Ob = value; commonCrackPara1.Ob = value; } } public void DisableFiltering() { commonCrackBodyNum1.DisableFiltering(); commonCrackPara1.DisableFiltering(); } public void SetFont(Font f1) { commonCrackBodyNum1.SetFont(f1); commonCrackPara1.SetFont(f1); } private string _machineNo = "1"; private string _plineCode = ""; private string _judgeStove = ""; private string _BatchNo = ""; private string _reportNo = ""; private List Lists = new List(); public void SetGetMatNoFunc(Func> func) { commonCrackBodyNum1.GetMatNo = func; } public string SuspiciousCode { get { return commonCrackBodyNum1.SuspiciousCode; } set { commonCrackBodyNum1.SuspiciousCode = value; } } public string ScrappedCode { get { return commonCrackBodyNum1.ScrappedCode; } set { commonCrackBodyNum1.ScrappedCode = value; } } public string UnPassCode { get { return commonCrackBodyNum1.UnPassCode; } set { commonCrackBodyNum1.UnPassCode = value; } } public void ChangeValue(HttCrackDetectionEtEntity data,List _list) { ResetData(data); SetValue(data, _list); } public void DefaultCraftInfo(DataTable Stand,string ReportNo) { commonCrackPara1.SetStand(Stand); //commonCrackPara1.DefaulFromCraft(Stand, ReportNo); } public void SetReportNumber(string ReportNumber) { commonCrackPara1.SetReportNumber(ReportNumber); } private void SetValue(HttCrackDetectionEtEntity data, List _list) { commonCrackBodyNum1.Value = data; Lists = _list; if (_machineNo != data.MachineNo || data.PlineCode != _plineCode) { if (data.PlineCode != _plineCode) { var MachineNos = Lists.Select(p => p.MachineNo).Distinct().OrderBy(p=>p).ToList(); commonCrackBodyNum1.SetMachine(MachineNos); } commonCrackPara1.SetValue(data.PlineCode, Lists.Where(p => p.MachineNo == data.MachineNo).ToList()); } if (data.ReportNo != _reportNo || data.JudgeStoveNo != _judgeStove || data.BatchNo != _BatchNo || _machineNo != data.MachineNo) { commonCrackPara1.DefaulFromCraft(data.ReportNo); } _judgeStove = data.JudgeStoveNo; _BatchNo = data.BatchNo; _reportNo = data.ReportNo; _machineNo = data.MachineNo; _plineCode = data.PlineCode; } public void ResetData(HttCrackDetectionEtEntity data) { if (data.MachineNo == "") data.MachineNo = "1"; data.PassNum = 0; data.DubiousNum = 0; data.FtestingNum = 0; data.FpassNum = 0; data.EwasteNum = 0; data.EpassNum = 0; data.PendingNum = 0; data.PassNumEt = 0; data.DubiousNumEt = 0; data.FtestingNumEt = 0; data.FpassNumEt = 0; data.EwasteNumEt = 0; data.EpassNumEt = 0; data.ManualPassNum = 0; data.DisqualifiedNum = 0; data.ManualFtestingNum = 0; data.RejectedNum = 0; data.QualifiedNumAfterCut = 0; data.RejectNum = 0; data.FinalNum = 0; switch (_type) { case "1": //管体超声 data.PassNum = data.TestingNum; data.EpassNum = data.TestingNum; data.TestingPosition = "0"; break; case "2": //管体涡流 data.PassNumEt = data.TestingNum; data.EpassNumEt = data.TestingNum; data.TestingPosition = "0"; break; case "3": //管端 data.ManualPassNum = data.TestingNum; data.FinalNum = data.TestingNum; data.TestingPosition = "1"; break; case "4": //通用回报界面 -- 没设置任何配置 默认只回报类型 等级 废品 data.FinalNum = data.TestingNum; data.TestingPosition = "1"; break; case "5": //委外特殊情况 data.FinalNum = data.TestingNum; data.TestingPosition = "0"; break; case "6": //委外特殊情况 data.FinalNum = data.TestingNum; data.TestingPosition = "1"; break; case "7": data.FinalNum = data.TestingNum; data.PassNum = data.TestingNum; data.TestingPosition = "1"; break; case "8": data.FinalNum = data.TestingNum; data.PassNum = data.TestingNum; data.TestingPosition = "1"; break; } } private string _type = ""; public string Type { get { return _type; } set { if (_type == "1" || _type == "8") { commonCrackBodyNum1.ultraGrid1.CellChange -= UltraGrid1OnCellChange1; } else if (_type == "3") { commonCrackBodyNum1.ultraGrid1.CellChange -= UltraGrid1OnCellChange2; } _type = value; foreach (var column in commonCrackBodyNum1.ultraGrid1.DisplayLayout.Bands[0].Columns) { column.Hidden = true; } List columns = new List(); switch (_type) { case "1": //管体超声 columns = new List() { "MachineNo", "PassNum", "DubiousNum", "FtestingNum", "FpassNum", "EwasteNum", "EpassNum", "PendingNum", "TestingTime" }; commonCrackBodyNum1.EditScrap = () => { commonCrackBodyNum1.Value.EwasteNum = commonCrackBodyNum1.ScrappedList.Sum(p => p.FailNum); commonCrackBodyNum1.Value.EwasteWt = commonCrackBodyNum1.ScrappedList.Sum(p => p.FailWt); commonCrackBodyNum1.Value.EwasteReason = commonCrackBodyNum1.ScrappedList.Any() ? commonCrackBodyNum1.ScrappedList.Select(p => p.FailTypeName).Distinct().Aggregate((a, b) => (string.IsNullOrEmpty(a) ? "" : (a + ",")) + b) : "/"; // commonCrackBodyNum1.Value.FtestingNum = commonCrackBodyNum1.Value.DubiousNum - commonCrackBodyNum1.Value.EwasteNum; commonCrackBodyNum1.Value.EpassNum = commonCrackBodyNum1.Value.TestingNum - commonCrackBodyNum1.Value.PendingNum - commonCrackBodyNum1.Value.EwasteNum; }; commonCrackBodyNum1.EditSuspicious = () => { commonCrackBodyNum1.Value.DubiousNum = commonCrackBodyNum1.SuspiciousList.Sum(p => p.FailNum); commonCrackBodyNum1.Value.FtestingReason = commonCrackBodyNum1.SuspiciousList.Any() ? commonCrackBodyNum1.SuspiciousList.Select(p => p.FailTypeName).Distinct().Aggregate((a, b) => (string.IsNullOrEmpty(a) ? "" : (a + ",")) + b) : "/"; commonCrackBodyNum1.Value.FtestingNum = commonCrackBodyNum1.Value.DubiousNum - commonCrackBodyNum1.Value.PendingNum; commonCrackBodyNum1.Value.FpassNum = commonCrackBodyNum1.Value.FtestingNum - commonCrackBodyNum1.Value.EwasteNum; commonCrackBodyNum1.Value.PassNum = commonCrackBodyNum1.Value.TestingNum - commonCrackBodyNum1.Value.DubiousNum; }; commonCrackBodyNum1.ultraGrid1.CellChange += UltraGrid1OnCellChange1; break; case "2": //管体涡流 columns = new List() { "MachineNo", "PassNumEt", "DubiousNumEt", "FtestingNumEt", "FpassNumEt", "EwasteNumEt", "EpassNumEt" }; commonCrackBodyNum1.EditScrap = () => { commonCrackBodyNum1.Value.EwasteNumEt = commonCrackBodyNum1.ScrappedList.Sum(p => p.FailNum); commonCrackBodyNum1.Value.EwasteWt = commonCrackBodyNum1.ScrappedList.Sum(p => p.FailWt); commonCrackBodyNum1.Value.EwasteReason = commonCrackBodyNum1.ScrappedList.Any() ? commonCrackBodyNum1.ScrappedList.Select(p => p.FailTypeName).Distinct().Aggregate((a, b) => (string.IsNullOrEmpty(a) ? "" : (a + ",")) + b) : "/"; commonCrackBodyNum1.Value.EpassNumEt = commonCrackBodyNum1.Value.TestingNum - commonCrackBodyNum1.Value.EwasteNumEt; }; commonCrackBodyNum1.EditSuspicious = () => { commonCrackBodyNum1.Value.DubiousNumEt = commonCrackBodyNum1.SuspiciousList.Sum(p => p.FailNum); commonCrackBodyNum1.Value.FtestingReason = commonCrackBodyNum1.SuspiciousList.Any() ? commonCrackBodyNum1.SuspiciousList.Select(p => p.FailTypeName).Distinct().Aggregate((a, b) => (string.IsNullOrEmpty(a) ? "" : (a + ",")) + b) : "/"; commonCrackBodyNum1.Value.FtestingNumEt = commonCrackBodyNum1.Value.DubiousNumEt; commonCrackBodyNum1.Value.FpassNumEt = commonCrackBodyNum1.Value.DubiousNumEt - commonCrackBodyNum1.Value.EwasteNumEt; ; }; break; case "3": //管端 columns = new List() { "MachineNo", "manualPassNum", "DisqualifiedNum", "ManualFtestingNum", "RejectedNum", "QualifiedNumAfterCut","RejectNum", "FinalNum" }; commonCrackBodyNum1.EditScrap = () => { commonCrackBodyNum1.Value.RejectNum = commonCrackBodyNum1.ScrappedList.Sum(p => p.FailNum); commonCrackBodyNum1.Value.FinalNum = commonCrackBodyNum1.Value.TestingNum - commonCrackBodyNum1.Value.RejectNum; commonCrackBodyNum1.Value.QualifiedNumAfterCut = commonCrackBodyNum1.Value.RejectedNum - commonCrackBodyNum1.Value.RejectNum; commonCrackBodyNum1.Value.EwasteWt = commonCrackBodyNum1.ScrappedList.Sum(p => p.FailWt); commonCrackBodyNum1.Value.EwasteReason = commonCrackBodyNum1.ScrappedList.Any() ? commonCrackBodyNum1.ScrappedList.Select(p => p.FailTypeName).Distinct().Aggregate((a, b) => (string.IsNullOrEmpty(a) ? "" : (a + ",")) + b) : "/"; }; commonCrackBodyNum1.EditUnpass = () => { commonCrackBodyNum1.Value.DisqualifiedNum = commonCrackBodyNum1.UnPassList.Sum(p => p.FailNum); commonCrackBodyNum1.Value.ManualPassNum = commonCrackBodyNum1.Value.TestingNum - commonCrackBodyNum1.Value.DisqualifiedNum; commonCrackBodyNum1.Value.RejectedNum = commonCrackBodyNum1.Value.DisqualifiedNum - commonCrackBodyNum1.Value.ManualFtestingNum; commonCrackBodyNum1.Value.QualifiedNumAfterCut = commonCrackBodyNum1.Value.RejectedNum - commonCrackBodyNum1.Value.RejectNum; commonCrackBodyNum1.Value.DisqualifiedReason = commonCrackBodyNum1.UnPassList.Any() ? commonCrackBodyNum1.UnPassList.Select(p => p.FailTypeName).Distinct().Aggregate((a, b) => (string.IsNullOrEmpty(a) ? "" : (a + ",")) + b) : "/"; }; commonCrackBodyNum1.ultraGrid1.CellChange += UltraGrid1OnCellChange2; break; case "4": //通用回报界面 -- 没设置任何配置 默认只回报类型 等级 废品 columns = new List() { "MachineNo", "TestingType", "TestingGrade", "RejectNum", "FinalNum" }; commonCrackBodyNum1.EditScrap = () => { commonCrackBodyNum1.Value.RejectNum = commonCrackBodyNum1.ScrappedList.Sum(p => p.FailNum); commonCrackBodyNum1.Value.FinalNum = commonCrackBodyNum1.Value.TestingNum - commonCrackBodyNum1.Value.RejectNum; commonCrackBodyNum1.Value.EwasteWt = commonCrackBodyNum1.ScrappedList.Sum(p => p.FailWt); commonCrackBodyNum1.Value.EwasteReason = commonCrackBodyNum1.ScrappedList.Any() ? commonCrackBodyNum1.ScrappedList.Select(p => p.FailTypeName).Distinct().Aggregate((a, b) => (string.IsNullOrEmpty(a) ? "" : (a + ",")) + b) : "/"; }; break; case "5": //委外探伤线 管体 特殊处理 columns = new List() { "MachineNo", "ManualFtestingNum", "QualifiedNumAfterCut", "RejectNum", "FinalNum" }; commonCrackBodyNum1.EditScrap = () => { commonCrackBodyNum1.Value.RejectNum = commonCrackBodyNum1.ScrappedList.Sum(p => p.FailNum); commonCrackBodyNum1.Value.FinalNum = commonCrackBodyNum1.Value.TestingNum - commonCrackBodyNum1.Value.RejectNum; commonCrackBodyNum1.Value.EwasteWt = commonCrackBodyNum1.ScrappedList.Sum(p => p.FailWt); commonCrackBodyNum1.Value.EwasteReason = commonCrackBodyNum1.ScrappedList.Any() ? commonCrackBodyNum1.ScrappedList.Select(p => p.FailTypeName).Distinct().Aggregate((a, b) => (string.IsNullOrEmpty(a) ? "" : (a + ",")) + b) : "/"; }; commonCrackBodyNum1.EditUnpass = () => { commonCrackBodyNum1.Value.DisqualifiedNum = commonCrackBodyNum1.UnPassList.Sum(p => p.FailNum); commonCrackBodyNum1.Value.ManualPassNum = commonCrackBodyNum1.Value.TestingNum - commonCrackBodyNum1.Value.DisqualifiedNum; commonCrackBodyNum1.Value.DisqualifiedReason = commonCrackBodyNum1.UnPassList.Any() ? commonCrackBodyNum1.UnPassList.Select(p => p.FailTypeName).Distinct().Aggregate((a, b) => (string.IsNullOrEmpty(a) ? "" : (a + ",")) + b) : "/"; }; break; case "6": //委外探伤线 管端 特殊处理 columns = new List() { "MachineNo", "ManualFtestingNum", "QualifiedNumAfterCut", "RejectNum", "FinalNum" }; commonCrackBodyNum1.EditScrap = () => { commonCrackBodyNum1.Value.RejectNum = commonCrackBodyNum1.ScrappedList.Sum(p => p.FailNum); commonCrackBodyNum1.Value.FinalNum = commonCrackBodyNum1.Value.TestingNum - commonCrackBodyNum1.Value.RejectNum; commonCrackBodyNum1.Value.EwasteWt = commonCrackBodyNum1.ScrappedList.Sum(p => p.FailWt); commonCrackBodyNum1.Value.EwasteReason = commonCrackBodyNum1.ScrappedList.Any() ? commonCrackBodyNum1.ScrappedList.Select(p => p.FailTypeName).Distinct().Aggregate((a, b) => (string.IsNullOrEmpty(a) ? "" : (a + ",")) + b) : "/"; }; commonCrackBodyNum1.EditUnpass = () => { commonCrackBodyNum1.Value.DisqualifiedNum = commonCrackBodyNum1.UnPassList.Sum(p => p.FailNum); commonCrackBodyNum1.Value.ManualPassNum = commonCrackBodyNum1.Value.TestingNum - commonCrackBodyNum1.Value.DisqualifiedNum; commonCrackBodyNum1.Value.DisqualifiedReason = commonCrackBodyNum1.UnPassList.Any() ? commonCrackBodyNum1.UnPassList.Select(p => p.FailTypeName).Distinct().Aggregate((a, b) => (string.IsNullOrEmpty(a) ? "" : (a + ",")) + b) : "/"; }; break; case "7": //管端 磁粉 天淮 columns = new List() { "MachineNo", "PassNum", "DubiousNum", "FtestingNum", "FpassNum", "QualifiedNumAfterCut", "RejectNum", "FinalNum" }; commonCrackBodyNum1.EditScrap = () => { commonCrackBodyNum1.Value.RejectNum = commonCrackBodyNum1.ScrappedList.Sum(p => p.FailNum); commonCrackBodyNum1.Value.FinalNum = commonCrackBodyNum1.Value.TestingNum - commonCrackBodyNum1.Value.RejectNum; commonCrackBodyNum1.Value.EwasteWt = commonCrackBodyNum1.ScrappedList.Sum(p => p.FailWt); commonCrackBodyNum1.Value.EwasteReason = commonCrackBodyNum1.ScrappedList.Any() ? commonCrackBodyNum1.ScrappedList.Select(p => p.FailTypeName).Distinct().Aggregate((a, b) => (string.IsNullOrEmpty(a) ? "" : (a + ",")) + b) : "/"; }; commonCrackBodyNum1.EditSuspicious = () => { commonCrackBodyNum1.Value.DubiousNum = commonCrackBodyNum1.SuspiciousList.Sum(p => p.FailNum); commonCrackBodyNum1.Value.FtestingReason = commonCrackBodyNum1.SuspiciousList.Any() ? commonCrackBodyNum1.SuspiciousList.Select(p => p.FailTypeName).Distinct().Aggregate((a, b) => (string.IsNullOrEmpty(a) ? "" : (a + ",")) + b) : "/"; commonCrackBodyNum1.Value.FtestingNum = commonCrackBodyNum1.Value.DubiousNum - commonCrackBodyNum1.Value.PendingNum; commonCrackBodyNum1.Value.FpassNum = commonCrackBodyNum1.Value.FtestingNum - commonCrackBodyNum1.Value.EwasteNum; commonCrackBodyNum1.Value.PassNum = commonCrackBodyNum1.Value.TestingNum - commonCrackBodyNum1.Value.DubiousNum; }; break; case "8": //管体超声 columns = new List() { "MachineNo", "PassNum", "DubiousNum", "FtestingNum", "FpassNum","QualifiedNumAfterCut", "EwasteNum", "EpassNum", "PendingNum", "TestingTime" }; commonCrackBodyNum1.EditScrap = () => { commonCrackBodyNum1.Value.EwasteNum = commonCrackBodyNum1.ScrappedList.Sum(p => p.FailNum); commonCrackBodyNum1.Value.EwasteWt = commonCrackBodyNum1.ScrappedList.Sum(p => p.FailWt); commonCrackBodyNum1.Value.EwasteReason = commonCrackBodyNum1.ScrappedList.Any() ? commonCrackBodyNum1.ScrappedList.Select(p => p.FailTypeName).Distinct().Aggregate((a, b) => (string.IsNullOrEmpty(a) ? "" : (a + ",")) + b) : "/"; // commonCrackBodyNum1.Value.FtestingNum = commonCrackBodyNum1.Value.DubiousNum - commonCrackBodyNum1.Value.EwasteNum; commonCrackBodyNum1.Value.EpassNum = commonCrackBodyNum1.Value.TestingNum - commonCrackBodyNum1.Value.PendingNum - commonCrackBodyNum1.Value.EwasteNum; }; commonCrackBodyNum1.EditSuspicious = () => { commonCrackBodyNum1.Value.DubiousNum = commonCrackBodyNum1.SuspiciousList.Sum(p => p.FailNum); commonCrackBodyNum1.Value.FtestingReason = commonCrackBodyNum1.SuspiciousList.Any() ? commonCrackBodyNum1.SuspiciousList.Select(p => p.FailTypeName).Distinct().Aggregate((a, b) => (string.IsNullOrEmpty(a) ? "" : (a + ",")) + b) : "/"; commonCrackBodyNum1.Value.FtestingNum = commonCrackBodyNum1.Value.DubiousNum - commonCrackBodyNum1.Value.PendingNum; commonCrackBodyNum1.Value.FpassNum = commonCrackBodyNum1.Value.FtestingNum - commonCrackBodyNum1.Value.EwasteNum; commonCrackBodyNum1.Value.PassNum = commonCrackBodyNum1.Value.TestingNum - commonCrackBodyNum1.Value.DubiousNum; }; commonCrackBodyNum1.ultraGrid1.CellChange += UltraGrid1OnCellChange1; break; } for (int i = 0; i < columns.Count; i++) { commonCrackBodyNum1.ultraGrid1.DisplayLayout.Bands[0].Columns[columns[i]].RowLayoutColumnInfo .OriginX = i*2; commonCrackBodyNum1.ultraGrid1.DisplayLayout.Bands[0].Columns[columns[i]].Hidden = false; } } } private void UltraGrid1OnCellChange1(object sender, CellEventArgs cellEventArgs) { if (_type != "1") return; commonCrackBodyNum1.Value.EpassNum = commonCrackBodyNum1.Value.TestingNum - commonCrackBodyNum1.Value.PendingNum - commonCrackBodyNum1.Value.EwasteNum; } private void UltraGrid1OnCellChange2(object sender, CellEventArgs e) { if (_type != "3") return; if (e.Cell.Column.Key == "ManualFtestingNum") { commonCrackBodyNum1.Value.RejectedNum = commonCrackBodyNum1.Value.DisqualifiedNum - commonCrackBodyNum1.Value.ManualFtestingNum; commonCrackBodyNum1.Value.RejectedNum = commonCrackBodyNum1.Value.RejectedNum < 0 ? 0 : commonCrackBodyNum1.Value.RejectedNum; commonCrackBodyNum1.Value.QualifiedNumAfterCut = commonCrackBodyNum1.Value.RejectedNum - commonCrackBodyNum1.Value.RejectNum; } if (e.Cell.Column.Key == "RejectedNum") { commonCrackBodyNum1.Value.RejectedNum = commonCrackBodyNum1.Value.DisqualifiedNum - commonCrackBodyNum1.Value.ManualFtestingNum; commonCrackBodyNum1.Value.RejectedNum = commonCrackBodyNum1.Value.RejectedNum < 0 ? 0 : commonCrackBodyNum1.Value.RejectedNum; commonCrackBodyNum1.Value.QualifiedNumAfterCut = commonCrackBodyNum1.Value.RejectedNum - commonCrackBodyNum1.Value.RejectNum; } } public int ContextHight { get { return commonCrackPara1.Height + commonCrackBodyNum1.ultraGrid1.Height; } } } }