using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Reflection; 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.UltraWinGrid; using NPOI.SS.Formula.Functions; using ColumnStyle = Infragistics.Win.UltraWinGrid.ColumnStyle; namespace Core.StlMes.Client.Mcp.Control.HeatTreatment { public partial class CommonCrackPara : UserControl { public CommonCrackPara() { InitializeComponent(); EntityHelper.ShowGridCaption(ugPara.DisplayLayout.Bands[0]); list = new List() { new HttCrackDetectionParaEntity() }; httCrackDetectionParaEntityBindingSource.DataSource = list; listProbe = new List(); listStand = new List(); } private DataTable _dtStand = null; private OpeBase ob; public OpeBase Ob { get { return ob; } set { ob = value; } } private string _plineCode = ""; public List listProbe { get; set; } public List listStand { get; set; } public void SetLevl() { if(list==null || !list.Any()) return; if (listNames.Any(p => p.UserName == list[0].OperatorName)) list[0].OperatorLevel = listNames.Where(p => p.UserName == list[0].OperatorName).Select(p => p.UseridGrade).FirstOrDefault(); if (listNames.Any(p => p.UserName == list[0].Signatory)) list[0].SignatoryLevel = listNames.Where(p => p.UserName == list[0].Signatory).Select(p => p.UseridGrade).FirstOrDefault(); } private List listNames =new List(); public List list { private set; get; } public void DisableFiltering() { ugPara.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False; /* foreach (var ugc in ugPara.DisplayLayout.Bands[0].Columns) { ugc.SortIndicator = SortIndicator.Disabled; }*/ ugPara.DisplayLayout.Bands[0].Override.HeaderClickAction = HeaderClickAction.Select; } private List HttReportDefaultEntity = null; public void SetValue(List HttDefault) { SetValue(_plineCode,HttDefault); } public void SetValue(string PlineCode, List HttDefault) { //有设置数据 不再赋默认值 bool HasData = false; // 产线更换 重新绑定 bool ChangePlineCode = false; HttReportDefaultEntity = HttDefault; #region MyRegion list = new List() {new HttCrackDetectionParaEntity()}; listProbe = new List(); listStand = new List(); _plineCode = PlineCode; ChangePlineCode = true; #endregion #region 根据产线 默认 绑定 设置默认值 if (HttReportDefaultEntity != null && HttReportDefaultEntity.Any()) { var Properties = list[0].GetType().GetProperties(); if (ChangePlineCode) { foreach (var ultraGridColumn in ugPara.DisplayLayout.Bands[0].Columns) { ultraGridColumn.Hidden = true; ultraGridColumn.EditorComponent = null; ultraGridColumn.Style = ColumnStyle.Default; ultraGridColumn.ValueList = null; } } for (int i = 0; i < HttReportDefaultEntity.Count; i++) { HttReportDefaultEntity defaultEntity = HttReportDefaultEntity[i]; var Propertie = Properties.Where( p => p.Name.ToUpper() == defaultEntity.ReportColumn.Replace("_", "").ToUpper()) .ToList(); if (Propertie.Any()) { if (ChangePlineCode) { ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].Hidden = defaultEntity.ColumnVisible == "0" ; /* ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].RowLayoutColumnInfo.OriginX = (i/4)* 2; ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].RowLayoutColumnInfo.OriginY = (i%4)* 2; */ ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].RowLayoutColumnInfo.OriginX =int.Parse(defaultEntity.OriginX.ToString3()); ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].RowLayoutColumnInfo.OriginY = int.Parse(defaultEntity.OriginY.ToString3()); ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].RowLayoutColumnInfo.PreferredCellSize = new System.Drawing.Size(int.Parse(defaultEntity.CellSizeWidth.ToString3()), int.Parse(defaultEntity.CellSizeHigh.ToString3())); ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].RowLayoutColumnInfo.PreferredLabelSize = new System.Drawing.Size(int.Parse(defaultEntity.LabelSizeWidth.ToString3()), int.Parse(defaultEntity.LabelSizeHigh.ToString3())); ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].RowLayoutColumnInfo.SpanX = int.Parse(defaultEntity.SpanX.ToString3()); ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].RowLayoutColumnInfo.SpanY = int.Parse(defaultEntity.SpanY.ToString3()); } if (defaultEntity.ColumnType == "0") { if (!HasData) SetPropertyValue(Propertie[0], list[0], defaultEntity.TextDefault); } else if (defaultEntity.ColumnType == "1" || defaultEntity.ColumnType == "2") { if (ChangePlineCode) { ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].Style = defaultEntity.ColumnType == "1" ? ColumnStyle.DropDownList : ColumnStyle.DropDown; ValueList vlist = new ValueList(); string[] chooses = defaultEntity.DroplistUsed.Split(';'); if (defaultEntity.DroplistDefult != "") { var dt = ServerHelper.GetData( "com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo", new object[] { defaultEntity.DroplistDefult }, ob); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow row in dt.Rows) { if (defaultEntity.DroplistUsed == "") vlist.ValueListItems.Add(row["BASENAME"].ToString()); else if ( defaultEntity.DroplistUsed.Split(';') .Contains(row["BASECODE"].ToString()) || defaultEntity.DroplistUsed.Split(';') .Contains(row["BASENAME"].ToString())) { vlist.ValueListItems.Add(row["BASENAME"].ToString()); } } } } else { foreach (var choose in chooses) { vlist.ValueListItems.Add(choose.Replace("\n", "\r\n")); } } ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].ValueList = vlist; } if (!HasData) SetPropertyValue(Propertie[0], list[0], defaultEntity.TextDefault); } else if (defaultEntity.ColumnType == "99") { if (defaultEntity.ReportColumn.ToUpper() == "PROBE_NAME") { if (!HasData) { ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].EditorComponent = utProbe; ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always; var dt = ServerHelper.GetData( "com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo", new object[] {"4097"}, ob); if (defaultEntity.TextDefault != "") { string[] defaultProbe = defaultEntity.TextDefault.Split(';'); if (dt != null && dt.Rows.Count > 0 && defaultProbe.Length > 0) { foreach (string Probe in defaultProbe) { listProbe.Add(new HttCrackDetectionProbeEntity() { ProbeTypeCode = Probe, ProbeTypeName = dt.AsEnumerable() .Where(p => p["BASECODE"].ToString() == Probe) .Select(p => p["BASENAME"].ToString()) .FirstOrDefault(), ProbeQty = HttReportDefaultEntity.Any( p => p.ReportColumn.ToUpper() == "PROBE_QTY_" + Probe) ? HttReportDefaultEntity.Where( p => p.ReportColumn.ToUpper() == "PROBE_QTY_" + Probe). Select(p => p.TextDefault).FirstOrDefault() : "", ProbeParameters = HttReportDefaultEntity.Any( p => p.ReportColumn.ToUpper() == "PROBE_PARAMETERS_" + Probe) ? HttReportDefaultEntity.Where( p => p.ReportColumn.ToUpper() == "PROBE_PARAMETERS_" + Probe). Select(p => p.TextDefault).FirstOrDefault() : "" }); } list[0].ProbeName = listProbe.Any() ? listProbe.Select(p => p.ProbeTypeName) .Aggregate((a, b) => a + (a == "" ? "" : ",") + b) : ""; } } } } if (defaultEntity.ReportColumn.ToUpper() == "STANDARD_NAME") { ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].EditorComponent = utStandard; ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always; } } } } } #endregion if (ChangePlineCode) { listNames = EntityHelper.GetData( "com.steering.mes.mcp.heatTreatment.FrmHttCrackDetectResult.getHttSign", new object[] { PlineCode, "4"}, ob); if (listNames.Any()) { ValueList vlist = new ValueList(); foreach (HttSignatureEntity row in listNames) { vlist.ValueListItems.Add(row.UserName); } ugPara.DisplayLayout.Bands[0].Columns["OperatorName"].ValueList = vlist; ugPara.DisplayLayout.Bands[0].Columns["OperatorName"].Style = ColumnStyle.DropDown; ugPara.DisplayLayout.Bands[0].Columns["OperatorName"].ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always; ugPara.DisplayLayout.Bands[0].Columns["Signatory"].ValueList = vlist; ugPara.DisplayLayout.Bands[0].Columns["Signatory"].Style = ColumnStyle.DropDown; ugPara.DisplayLayout.Bands[0].Columns["Signatory"].ButtonDisplayStyle = Infragistics.Win.UltraWinGrid.ButtonDisplayStyle.Always; } } httCrackDetectionParaEntityBindingSource.DataSource = list; ugPara.Refresh(); } public bool CheckNull(out string Message) { Message = ""; if (list == null || list.Count <= 0) return true; HttCrackDetectionParaEntity data = list[0]; foreach (HttReportDefaultEntity defaultEntity in HttReportDefaultEntity.Where(p => p.CheckNull == "1").ToList()) { var Properties = list[0].GetType().GetProperties(); var Propertie = Properties.Where( p => p.Name.ToUpper() == defaultEntity.ReportColumn.Replace("_", "").ToUpper()) .ToList(); if (Propertie.Any()) { if (Propertie[0].GetValue(data,null).ToString2() == "") { object[] desAttributes = (Propertie[0].GetCustomAttributes(typeof(DescriptionAttribute), false)); if (desAttributes.Length > 0) { Message = ((DescriptionAttribute)desAttributes[0]).Description + "不能为空"; } return false; } } } return true; } public void SetValue(HttReportDefaultEntity defaultEntity,string ChangeKey) { if (list == null || !list.Any()) list = new List() {new HttCrackDetectionParaEntity()}; var Properties = list[0].GetType().GetProperties(); var Propertie = Properties.Where( p => p.Name.ToUpper() == defaultEntity.ReportColumn.Replace("_", "").ToUpper()) .ToList(); if (Propertie.Any()) { switch (ChangeKey) { case "ColumnType": if (defaultEntity.ReportColumn.ToUpper() == "PROBE_NAME" || defaultEntity.ReportColumn.ToUpper() == "STANDARD_NAME") { return; } if (defaultEntity.ColumnType == "0") { ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].Style = ColumnStyle.Default; ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].ValueList = null; } else if (defaultEntity.ColumnType == "1" || defaultEntity.ColumnType == "2") { ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].Style = defaultEntity.ColumnType == "1" ? ColumnStyle.DropDownList : ColumnStyle.DropDown; ValueList vlist1 = new ValueList(); string[] chooses1 = defaultEntity.DroplistUsed.Split(';'); if (defaultEntity.DroplistDefult != "" && defaultEntity.DroplistUsed == "") { var dt = ServerHelper.GetData( "com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo", new object[] { defaultEntity.DroplistDefult }, ob); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow row in dt.Rows) { vlist1.ValueListItems.Add(row["BASENAME"].ToString()); } } } else { foreach (var choose in chooses1) { vlist1.ValueListItems.Add(choose); } } ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].ValueList = vlist1; } break; case "TextDefault": if (defaultEntity.ReportColumn.ToUpper() == "PROBE_NAME" ) { listProbe = new DataSourceList(); var dt = ServerHelper.GetData( "com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo", new object[] { "4097" }, ob); string[] defaultProbe = defaultEntity.TextDefault.Split(';'); if (dt != null && dt.Rows.Count > 0 && defaultProbe.Length > 0) { foreach (string Probe in defaultProbe) { listProbe.Add(new HttCrackDetectionProbeEntity() { ProbeTypeCode = Probe, ProbeTypeName = dt.AsEnumerable() .Where(p => p["BASECODE"].ToString() == Probe) .Select(p => p["BASENAME"].ToString()) .FirstOrDefault(), ProbeQty = HttReportDefaultEntity.Any( p => p.ReportColumn.ToUpper() == "PROBE_QTY_" + Probe) ? HttReportDefaultEntity.Where( p => p.ReportColumn.ToUpper() == "PROBE_QTY_" + Probe). Select(p => p.TextDefault).FirstOrDefault() : "", ProbeParameters = HttReportDefaultEntity.Any( p => p.ReportColumn.ToUpper() == "PROBE_PARAMETERS_" + Probe) ? HttReportDefaultEntity.Where( p => p.ReportColumn.ToUpper() == "PROBE_PARAMETERS_" + Probe). Select(p => p.TextDefault).FirstOrDefault() : "" }); } list[0].ProbeName = listProbe.Any() ? listProbe.Select(p => p.ProbeTypeName).Aggregate((a, b) => a + (a == "" ? "" : ",") + b) : ""; } }else if (defaultEntity.ReportColumn.ToUpper() == "STANDARD_NAME") { listStand = new List(); list[0].StandardName = ""; } else { SetPropertyValue(Propertie[0], list[0], defaultEntity.TextDefault); } break; case "DroplistDefult": if (defaultEntity.ReportColumn.ToUpper() == "PROBE_NAME" || defaultEntity.ReportColumn.ToUpper() == "STANDARD_NAME") { return; } if (defaultEntity.DroplistUsed == "") { ValueList vlist1 = new ValueList(); var dt = ServerHelper.GetData( "com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo", new object[] { defaultEntity.DroplistDefult }, ob); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow row in dt.Rows) { vlist1.ValueListItems.Add(row["BASENAME"].ToString()); } } ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].ValueList = vlist1; } break; case "DroplistUsed": if (defaultEntity.ReportColumn.ToUpper() == "PROBE_NAME" || defaultEntity.ReportColumn.ToUpper() == "STANDARD_NAME") { return; } ValueList vlist = new ValueList(); string[] chooses = defaultEntity.DroplistUsed.Split(';'); if (defaultEntity.DroplistDefult != "" && defaultEntity.DroplistUsed == "") { var dt = ServerHelper.GetData( "com.steering.mes.mcp.collarMaterial.ComBaseInfo.getBaseInfo", new object[] { defaultEntity.DroplistDefult }, ob); if (dt != null && dt.Rows.Count > 0) { foreach (DataRow row in dt.Rows) { vlist.ValueListItems.Add(row["BASENAME"].ToString()); } } } else { foreach (var choose in chooses) { vlist.ValueListItems.Add(choose.Replace("\n", "\r\n")); } } ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].ValueList = vlist; break; case "ColumnVisible": ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].Hidden = defaultEntity.ColumnVisible != "1"; break; case "OriginX": ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].RowLayoutColumnInfo.OriginX = int.Parse(defaultEntity.OriginX.ToString3()); break; case "OriginY": ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].RowLayoutColumnInfo.OriginY = int.Parse(defaultEntity.OriginY.ToString3()); break; case "SpanX": ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].RowLayoutColumnInfo.SpanX = int.Parse(defaultEntity.SpanX.ToString3()); break; case "SpanY": ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].RowLayoutColumnInfo.SpanY = int.Parse(defaultEntity.SpanY.ToString3()); break; case "CellSizeWidth" : case "CellSizeHigh": ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].RowLayoutColumnInfo.PreferredCellSize = new System.Drawing.Size(int.Parse(defaultEntity.CellSizeWidth.ToString3()), int.Parse(defaultEntity.CellSizeHigh.ToString3())); break; case "LabelSizeWidth": case "LabelSizeHigh": ugPara.DisplayLayout.Bands[0].Columns[Propertie[0].Name].RowLayoutColumnInfo.PreferredLabelSize = new System.Drawing.Size(int.Parse(defaultEntity.LabelSizeWidth.ToString3()), int.Parse(defaultEntity.LabelSizeHigh.ToString3())); break; } } ugPara.UpdateData(); ugPara.Refresh(); } public void SetData(List datas,List probes, List stands, string PlineCode, List HttDefault){ SetValue(PlineCode, HttDefault); list = datas; listProbe = probes; listStand = stands; httCrackDetectionParaEntityBindingSource.DataSource = list; httCrackDetectionParaEntityBindingSource.ResetBindings(false); } public void SetStand(DataTable _dt) { _dtStand = _dt; } public void DefaulFromCraft(string ReportType) { DefaulFromCraft(_dtStand, ReportType); } public void DefaulFromCraft(DataTable dtStand, string ReportType) { if (dtStand != null && dtStand.Rows.Count > 0) { if (ReportType == "0" || ReportType == "15") { //超声管体 缺陷信息 var UtDefect = dtStand.AsEnumerable().Where(p => p["PHY_CODE"].ToString2() == "P0032" || p["PHY_CODE"].ToString2() == "P0769").ToList(); //超声管体 壁厚 var UtWall = dtStand.AsEnumerable().Where(p => p["PHY_CODE"].ToString2() == "P0105").ToList(); //超声管体 分层 var UtLam = dtStand.AsEnumerable().Where(p => p["PHY_CODE"].ToString2() == "P0104").ToList(); if (UtDefect.Count > 0) { #region 管体 超声获取工艺信息 string Dir = UtDefect[0]["GROOVE_DIR"].ToString2(); string Pos = UtDefect[0]["GROOVE_POS"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["LongitudinalInternal"].Hidden == false) list[0].LongitudinalInternal = Pos.Contains("内") && Dir.Contains("纵") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["LongitudinalExternal"].Hidden == false) list[0].LongitudinalExternal = Pos.Contains("外") && Dir.Contains("纵") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["TransverseInternal"].Hidden == false) list[0].TransverseInternal = Pos.Contains("内") && Dir.Contains("横") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["TransverseExternal"].Hidden == false) list[0].TransverseExternal = Pos.Contains("外") && Dir.Contains("横") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["StandardDefect"].Hidden == false) list[0].StandardDefect = UtDefect[0]["STD_NAME"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["CoverageDefect"].Hidden == false) list[0].CoverageDefect = UtDefect[0]["COVERAGE"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyDefect"].Hidden == false) list[0].FrequencyDefect = UtDefect[0]["DESC_RATE"].ToString2(); } if (UtWall.Count > 0) { if (ugPara.DisplayLayout.Bands[0].Columns["StandardWall"].Hidden == false) list[0].StandardWall = UtWall[0]["STD_NAME"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["CoverageWall"].Hidden == false) list[0].CoverageWall = UtWall[0]["COVERAGE"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyWall"].Hidden == false) list[0].FrequencyWall = UtWall[0]["DESC_RATE"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["WallThickness"].Hidden == false) list[0].WallThickness = UtWall[0]["SIC"].ToString2(); } else { if (ugPara.DisplayLayout.Bands[0].Columns["WallThickness"].Hidden == false) list[0].WallThickness = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["StandardWall"].Hidden == false) list[0].StandardWall = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["CoverageWall"].Hidden == false) list[0].CoverageWall = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyWall"].Hidden == false) list[0].FrequencyWall = "/"; } if (UtLam.Count > 0) { if (ugPara.DisplayLayout.Bands[0].Columns["StandardLam"].Hidden == false) list[0].StandardLam = UtLam[0]["STD_NAME"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["CoverageLam"].Hidden == false) list[0].CoverageLam = UtLam[0]["COVERAGE"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyLam"].Hidden == false) list[0].FrequencyLam = UtLam[0]["DESC_RATE"].ToString2(); //list[0].Lamination = UtLam[0]["LV_DESC"].ToString2(); //if (list[0].Lamination == "/") //{ // list[0].Lamination = "√"; //} } else { if (ugPara.DisplayLayout.Bands[0].Columns["Lamination"].Hidden == false) list[0].Lamination = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["StandardLam"].Hidden == false) list[0].StandardLam = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["CoverageLam"].Hidden == false) list[0].CoverageLam = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyLam"].Hidden == false) list[0].FrequencyLam = "/"; #endregion } } if (ReportType == "1" || ReportType == "10") { //超声管端 缺陷信息 var UtDefect = dtStand.AsEnumerable().Where(p => p["PHY_CODE"].ToString2() == "P0149").ToList(); //超声管端 壁厚 var UtWall = dtStand.AsEnumerable().Where(p => p["PHY_CODE"].ToString2() == "P0469" || p["PHY_CODE"].ToString2() == "P0107" ).ToList(); //超声管端 分层 var UtLam = dtStand.AsEnumerable().Where(p => p["PHY_CODE"].ToString2() == "P0040").ToList(); if (UtDefect.Count > 0) { #region 管端超声 获取工艺信息 string Dir = UtDefect[0]["GROOVE_DIR"].ToString2(); string Pos = UtDefect[0]["GROOVE_POS"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["LongitudinalInternal"].Hidden == false) list[0].LongitudinalInternal = Pos.Contains("内") && Dir.Contains("纵") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["LongitudinalExternal"].Hidden == false) list[0].LongitudinalExternal = Pos.Contains("外") && Dir.Contains("纵") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["TransverseInternal"].Hidden == false) list[0].TransverseInternal = Pos.Contains("内") && Dir.Contains("横") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["TransverseExternal"].Hidden == false) list[0].TransverseExternal = Pos.Contains("外") && Dir.Contains("横") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["StandardDefect"].Hidden == false) list[0].StandardDefect = UtDefect[0]["STD_NAME"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["CoverageDefect"].Hidden == false) list[0].CoverageDefect = UtDefect[0]["COVERAGE"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyDefect"].Hidden == false) list[0].FrequencyDefect = UtDefect[0]["DESC_RATE"].ToString2(); } if (UtWall.Count > 0) { if (ugPara.DisplayLayout.Bands[0].Columns["StandardWall"].Hidden == false) list[0].StandardWall = UtWall[0]["STD_NAME"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["CoverageWall"].Hidden == false) list[0].CoverageWall = UtWall[0]["COVERAGE"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyWall"].Hidden == false) list[0].FrequencyWall = UtWall[0]["DESC_RATE"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["WallThickness"].Hidden == false) list[0].WallThickness = UtWall[0]["SIC"].ToString2(); } else { if (ugPara.DisplayLayout.Bands[0].Columns["WallThickness"].Hidden == false) list[0].WallThickness = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["StandardWall"].Hidden == false) list[0].StandardWall = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["CoverageWall"].Hidden == false) list[0].CoverageWall = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyWall"].Hidden == false) list[0].FrequencyWall = "/"; } if (UtLam.Count > 0) { if (ugPara.DisplayLayout.Bands[0].Columns["StandardLam"].Hidden == false) list[0].StandardLam = UtLam[0]["STD_NAME"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["CoverageLam"].Hidden == false) list[0].CoverageLam = UtLam[0]["COVERAGE"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyLam"].Hidden == false) list[0].FrequencyLam = UtLam[0]["DESC_RATE"].ToString2(); //list[0].Lamination = UtLam[0]["LV_DESC"].ToString2(); //if (list[0].Lamination == "/") //{ // list[0].Lamination = "√"; //} } else { if (ugPara.DisplayLayout.Bands[0].Columns["Lamination"].Hidden == false) list[0].Lamination = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["StandardLam"].Hidden == false) list[0].StandardLam = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["CoverageLam"].Hidden == false) list[0].CoverageLam = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyLam"].Hidden == false) list[0].FrequencyLam = "/"; #endregion } } if (ReportType == "4") { //涡流探伤 缺陷信息 var UtDefect = dtStand.AsEnumerable().Where(p => p["PHY_CODE"].ToString2() == "P0044").ToList(); if (UtDefect.Count > 0) { #region 涡流 获取工艺信息 if (ugPara.DisplayLayout.Bands[0].Columns["AccpetanceLevel"].Hidden == false) list[0].AccpetanceLevel = UtDefect[0]["LV_DESC"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["StandardDefect"].Hidden == false) list[0].StandardDefect = UtDefect[0]["STD_NAME"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["CoverageDefect"].Hidden == false) list[0].CoverageDefect = UtDefect[0]["COVERAGE"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyDefect"].Hidden == false) list[0].FrequencyDefect = UtDefect[0]["DESC_RATE"].ToString2(); #endregion } } if (ReportType == "11" || ReportType == "12" || ReportType == "13" || ReportType == "16") { //磁粉 缺陷信息 var UtDefect = dtStand.AsEnumerable().Where(p => p["PHY_CODE"].ToString2() == "P0106" || p["PHY_CODE"].ToString2() == "P0108").ToList(); // 壁厚 var UtWall = dtStand.AsEnumerable().Where(p => p["PHY_CODE"].ToString2() == "P0469" || p["PHY_CODE"].ToString2() == "P0107").ToList(); if (UtDefect.Count > 0) { #region 磁粉 获取工艺信息 未完 string Dir = UtDefect[0]["GROOVE_DIR"].ToString2(); string Pos = UtDefect[0]["GROOVE_POS"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["LongitudinalInternal"].Hidden == false) list[0].LongitudinalInternal = Pos.Contains("内") && Dir.Contains("纵") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["LongitudinalExternal"].Hidden == false) list[0].LongitudinalExternal = Pos.Contains("外") && Dir.Contains("纵") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["TransverseInternal"].Hidden == false) list[0].TransverseInternal = Pos.Contains("内") && Dir.Contains("横") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["TransverseExternal"].Hidden == false) list[0].TransverseExternal = Pos.Contains("外") && Dir.Contains("横") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["AccpetanceLevel"].Hidden == false) list[0].AccpetanceLevel = UtDefect[0]["LV_DESC"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["StandardDefect"].Hidden == false) list[0].StandardDefect = UtDefect[0]["STD_NAME"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["CoverageDefect"].Hidden == false) list[0].CoverageDefect = UtDefect[0]["COVERAGE"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyDefect"].Hidden == false) list[0].FrequencyDefect = UtDefect[0]["DESC_RATE"].ToString2(); #endregion } if (UtWall.Count > 0) { if (ugPara.DisplayLayout.Bands[0].Columns["StandardWall"].Hidden == false) list[0].StandardWall = UtWall[0]["STD_NAME"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["CoverageWall"].Hidden == false) list[0].CoverageWall = UtWall[0]["COVERAGE"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyWall"].Hidden == false) list[0].FrequencyWall = UtWall[0]["DESC_RATE"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["WallThickness"].Hidden == false) list[0].WallThickness = UtWall[0]["SIC"].ToString2(); } else { if (ugPara.DisplayLayout.Bands[0].Columns["WallThickness"].Hidden == false) list[0].WallThickness = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["StandardWall"].Hidden == false) list[0].StandardWall = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["CoverageWall"].Hidden == false) list[0].CoverageWall = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyWall"].Hidden == false) list[0].FrequencyWall = "/"; } } if (ReportType == "16") { //磁粉 缺陷信息 var UtDefect = dtStand.AsEnumerable().Where(p => p["PHY_CODE"].ToString2() == "P0109").ToList(); if (UtDefect.Count > 0) { #region 磁粉 获取工艺信息 未完 string Dir = UtDefect[0]["GROOVE_DIR"].ToString2(); string Pos = UtDefect[0]["GROOVE_POS"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["LongitudinalInternal"].Hidden == false) list[0].LongitudinalInternal = Pos.Contains("内") && Dir.Contains("纵") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["LongitudinalExternal"].Hidden == false) list[0].LongitudinalExternal = Pos.Contains("外") && Dir.Contains("纵") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["TransverseInternal"].Hidden == false) list[0].TransverseInternal = Pos.Contains("内") && Dir.Contains("横") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["TransverseExternal"].Hidden == false) list[0].TransverseExternal = Pos.Contains("外") && Dir.Contains("横") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (Pos == "/" && Dir == "/") { list[0].LongitudinalInternal = UtDefect[0]["LV_DESC"].ToString2(); list[0].LongitudinalExternal = UtDefect[0]["LV_DESC"].ToString2(); list[0].TransverseInternal = UtDefect[0]["LV_DESC"].ToString2(); list[0].TransverseExternal = UtDefect[0]["LV_DESC"].ToString2(); } if (ugPara.DisplayLayout.Bands[0].Columns["AccpetanceLevel"].Hidden == false) list[0].AccpetanceLevel = UtDefect[0]["LV_DESC"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["StandardDefect"].Hidden == false) list[0].StandardDefect = UtDefect[0]["STD_NAME"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["CoverageDefect"].Hidden == false) list[0].CoverageDefect = UtDefect[0]["COVERAGE"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyDefect"].Hidden == false) list[0].FrequencyDefect = UtDefect[0]["DESC_RATE"].ToString2(); #endregion } } if (ReportType == "14") { //超声管端 缺陷信息 var UtDefect = dtStand.AsEnumerable().Where(p => p["PHY_CODE"].ToString2() == "P0150").ToList(); var UtWall = dtStand.AsEnumerable().Where(p => p["PHY_CODE"].ToString2() == "P0469" || p["PHY_CODE"].ToString2() == "P0107").ToList(); if (UtDefect.Count > 0) { #region 管端电磁声 获取工艺信息 string Dir = UtDefect[0]["GROOVE_DIR"].ToString2(); string Pos = UtDefect[0]["GROOVE_POS"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["LongitudinalInternal"].Hidden == false) list[0].LongitudinalInternal = Pos.Contains("内") && Dir.Contains("纵") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["LongitudinalExternal"].Hidden == false) list[0].LongitudinalExternal = Pos.Contains("外") && Dir.Contains("纵") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["TransverseInternal"].Hidden == false) list[0].TransverseInternal = Pos.Contains("内") && Dir.Contains("横") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["TransverseExternal"].Hidden == false) list[0].TransverseExternal = Pos.Contains("外") && Dir.Contains("横") ? UtDefect[0]["LV_DESC"].ToString2() : "/"; if (ugPara.DisplayLayout.Bands[0].Columns["StandardDefect"].Hidden == false) list[0].StandardDefect = UtDefect[0]["STD_NAME"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["CoverageDefect"].Hidden == false) list[0].CoverageDefect = UtDefect[0]["COVERAGE"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyDefect"].Hidden == false) list[0].FrequencyDefect = UtDefect[0]["DESC_RATE"].ToString2(); if (UtWall.Count > 0) { if (ugPara.DisplayLayout.Bands[0].Columns["StandardWall"].Hidden == false) list[0].StandardWall = UtWall[0]["STD_NAME"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["CoverageWall"].Hidden == false) list[0].CoverageWall = UtWall[0]["COVERAGE"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyWall"].Hidden == false) list[0].FrequencyWall = UtWall[0]["DESC_RATE"].ToString2(); if (ugPara.DisplayLayout.Bands[0].Columns["WallThickness"].Hidden == false) list[0].WallThickness = UtWall[0]["SIC"].ToString2(); } else { if (ugPara.DisplayLayout.Bands[0].Columns["WallThickness"].Hidden == false) list[0].WallThickness = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["StandardWall"].Hidden == false) list[0].StandardWall = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["CoverageWall"].Hidden == false) list[0].CoverageWall = "/"; if (ugPara.DisplayLayout.Bands[0].Columns["FrequencyWall"].Hidden == false) list[0].FrequencyWall = "/"; } } #endregion } ugPara.UpdateData(); ugPara.Refresh(); } } public void SetReportNumber(string ReportNumber) { ugPara.Rows[0].Cells["ReportNumber"].Value = ReportNumber; ugPara.UpdateData(); ugPara.Refresh(); } /// /// 上料炉号 /// public string FeedStoveNo { get; set; } public decimal ActCount { get; set; } public string BatchNo { get; set; } public string GroupNo { get; set; } public void SetFont(Font f1) { ugPara.Font = f1; foreach (UltraGridColumn UltraGridColumn in ugPara.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; } } private void ugPara_CellChange(object sender, CellEventArgs e) { ugPara.UpdateData(); if (e.Cell.Column.Key.Equals("OperatorName")) { if (listNames!=null&& listNames.Any(p => p.UserName == list[0].OperatorName)) list[0].OperatorLevel = listNames.Where(p => p.UserName == list[0].OperatorName).Select(p => p.UseridGrade).FirstOrDefault(); } if (e.Cell.Column.Key.Equals("Signatory")) { if (listNames != null && listNames.Any(p => p.UserName == list[0].Signatory)) list[0].SignatoryLevel = listNames.Where(p => p.UserName == list[0].Signatory).Select(p => p.UseridGrade).FirstOrDefault(); } this.ugPara.UpdateData(); ugPara.Refresh(); } /// /// 设置属性值 当属性类型和实际值类型不一样 做强制转换 /// /// /// /// private static void SetPropertyValue(PropertyInfo propertyInfo, object model, object data) { try { if (data == null) return; propertyInfo.SetValue(model, propertyInfo.PropertyType == data.GetType() ? data : Convert.ChangeType(data, propertyInfo.PropertyType), null); } catch (Exception) { // ignored } } private void utProbe_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { FrmChooseProbe FrmChooseProbe = new FrmChooseProbe(HttReportDefaultEntity, listProbe.Select(p=>p.Clone()).ToList(),ob); FrmChooseProbe.ShowDialog(); if (FrmChooseProbe.DialogResult == DialogResult.OK) { listProbe = FrmChooseProbe.GetValue(); list[0].ProbeName = listProbe.Any() ? listProbe.Select(p => p.ProbeTypeName).Aggregate((a, b) => a + (a == "" ? "" : ",") + b) : ""; } ugPara.PerformAction(UltraGridAction.ExitEditMode); } private void utStandard_EditorButtonClick(object sender, Infragistics.Win.UltraWinEditors.EditorButtonEventArgs e) { FrmChooseStandard FrmChooseStandard = new FrmChooseStandard(HttReportDefaultEntity, listStand.Select(p => p.Clone()).ToList(), ob); FrmChooseStandard.ShowDialog(); if (FrmChooseStandard.DialogResult == DialogResult.OK) { listStand = FrmChooseStandard.GetValue(); list[0].StandardName = listStand.Any() ? listStand.Select(p => p.StandardName).Aggregate((a, b) => a + (a == "" ? "" : ",") + b) : ""; } ugPara.PerformAction(UltraGridAction.ExitEditMode); } } }