using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Data; using Infragistics.Win.UltraWinDataSource; using Infragistics.Win.UltraWinGrid; using Core.Mes.Client.Comm.Server; using CoreFS.CA06; using System.Windows.Forms; using System.Collections; using CoreFS.CA06; using Core.Mes.Client.Comm.Server; using com.steering.mes.zgmil.entity; namespace Core.StlMes.Client.ZGMil.Entity { public static class NativeMethod { //public NativeMethod() //{ //} /// /// 获取表格中 /// /// 返回类 /// 数据表 /// 输入类 /// public static T GetTableToEntity(DataTable dt,T t) { String[] strColumns=null; DataRow dr=dt.Rows[0]; try { if (dt.Columns.Count > 0) { int columnNum = 0; columnNum = dt.Columns.Count; strColumns = new string[columnNum]; for (int i = 0; i < dt.Columns.Count; i++) { strColumns[i] = dt.Columns[i].ColumnName.Replace("_", ""); } System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties(); foreach (System.Reflection.PropertyInfo item in pro) { for (int i = 0; i < strColumns.Length; i++) { if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0) { if (item.PropertyType == typeof(int?)) { item.SetValue(t, Convert.ToInt32(dr[i].ToString3()), null); } else { item.SetValue(t, dr[i].ToString(), null); } } } } } else { } } catch (Exception e) { System.Windows.Forms.MessageBox.Show("出错:", e.ToString()); } return t; } /// /// 获取表格中制定行数据到实体类 /// /// /// /// /// public static T GetTableRowToEntity(DataRow dr, DataTable dt,T t) { String[] strColumns = null; try { if (dt.Columns.Count > 0) { int columnNum = 0; columnNum = dt.Columns.Count; strColumns = new string[columnNum]; for (int i = 0; i < dt.Columns.Count; i++) { strColumns[i] = dt.Columns[i].ColumnName.Replace("_", ""); } System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties(); foreach (System.Reflection.PropertyInfo item in pro) { for (int i = 0; i < strColumns.Length; i++) { if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0) { item.SetValue(t, Convert.ToString(dr[i]), null); } } } } else { } } catch (Exception e) { System.Windows.Forms.MessageBox.Show("出错:", e.ToString()); } return t; } /// /// 获取表格中制定行数据到实体类 /// /// /// /// /// /// public static T GetTableToEntity(DataTable dt, T t,int rowno) { String[] strColumns = null; DataRow dr = dt.Rows[rowno]; try { if (dt.Columns.Count > 0) { int columnNum = 0; columnNum = dt.Columns.Count; strColumns = new string[columnNum]; for (int i = 0; i < dt.Columns.Count; i++) { strColumns[i] = dt.Columns[i].ColumnName.Replace("_", ""); } System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties(); foreach (System.Reflection.PropertyInfo item in pro) { for (int i = 0; i < strColumns.Length; i++) { if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0) { item.SetValue(t, Convert.ToString(dr[i]), null); } } } } else { } } catch (Exception e) { System.Windows.Forms.MessageBox.Show("出错:", e.ToString()); } return t; } /// /// 将表格中制定行赋到实体类中 /// /// /// /// /// /// public static T GetUltraGridRowToEntity(UltraGridRow ugr,UltraGrid _grid, T t,int bands) { String[] strColumns = null; String[] strColumnsnew = null; UltraGridRow dr = ugr; int columnNum = dr.Cells.Count; strColumns = new String[columnNum]; strColumnsnew = new String[columnNum]; for (int i = 0; i < columnNum; i++) { strColumns[i] = _grid.DisplayLayout.Bands[bands].Columns[i].Key.ToString().Replace("_", ""); strColumnsnew[i] = _grid.DisplayLayout.Bands[bands].Columns[i].Key.ToString(); } System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties(); foreach (System.Reflection.PropertyInfo item in pro) { for (int i = 0; i < strColumns.Length; i++) { if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0) { item.SetValue(t, Convert.ToString(dr.Cells[strColumnsnew[i]].Value.ToString()), null); } } } return t; } /// /// 获取数据源中第一行数据赋到类中 /// /// 返回类 /// 输入带数据的数据源 /// 输入类 /// public static T GetUltraGridToEntity(UltraGrid _grid, T t) { String[] strColumns = null; UltraGridRow dr = _grid.Rows[0]; int columnNum = dr.Cells.Count; strColumns = new String[columnNum]; for (int i = 0; i < columnNum; i++) { strColumns[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString(); } System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties(); foreach (System.Reflection.PropertyInfo item in pro) { for (int i = 0; i < strColumns.Length; i++) { if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0) { item.SetValue(t, Convert.ToString(dr.Cells[strColumns[i]].Value.ToString()), null); } } } return t; } /// /// 获取数据源中某行数据赋到类中 /// /// 返回类 /// 输入带数据的数据源 /// 输入类 /// 行号 /// public static T GetUltraGridToEntity(UltraGrid _grid, T t, int Rows) { String[] strColumns = null; String[] strColumnsnew = null; UltraGridRow dr = _grid.Rows[Rows]; int columnNum = dr.Cells.Count; strColumns = new String[columnNum]; strColumnsnew = new String[columnNum]; for (int i = 0; i < columnNum; i++) { strColumns[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString().Replace("_", ""); strColumnsnew[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString(); } System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties(); foreach (System.Reflection.PropertyInfo item in pro) { for (int i = 0; i < strColumns.Length; i++) { if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0) { item.SetValue(t, Convert.ToString(dr.Cells[strColumnsnew[i]].Value.ToString()), null); } } } return t; } /// /// 获取数据源中第一行数据赋到类中(grid 带下划线) /// /// 返回类 /// 输入带数据的数据源 /// 输入类 /// public static T GetUltraGridToEntityNEW(UltraGrid _grid, T t) { String[] strColumns = null; String[] strColumnsNew = null; UltraGridRow dr = _grid.Rows[0]; int columnNum = dr.Cells.Count; strColumns = new String[columnNum]; strColumnsNew = new String[columnNum]; for (int i = 0; i < columnNum; i++) { strColumns[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString().Replace("_", ""); strColumnsNew[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString(); } System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties(); foreach (System.Reflection.PropertyInfo item in pro) { for (int i = 0; i < strColumns.Length; i++) { if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0) { if (item.PropertyType == typeof(int?)) { item.SetValue(t, Convert.ToInt32(dr.Cells[strColumnsNew[i]].Value.ToString3()), null); } else { item.SetValue(t, Convert.ToString(dr.Cells[strColumnsNew[i]].Value.ToString()), null); } } } } return t; } /// /// 获取类的值,并赋给另一个类 /// /// /// 返回类 /// 输入类 /// public static T GetEntityToEntity(T t, T t1) { System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties(); System.Reflection.PropertyInfo[] pro1 = t1.GetType().GetProperties(); foreach (System.Reflection.PropertyInfo item in pro) { foreach (System.Reflection.PropertyInfo item1 in pro1) { if(string.Compare(item.Name.ToString(),item1.Name.ToString(),true)==0) { item.SetValue(t,item1.GetValue(t1,null),null); } } } return t; } /// /// 遍历Grid 赋值到list /// /// /// /// /// public static List GetGridToList(UltraGrid _grid, T t) { String[] strColumns = null; String[] strColumnsNew = null; List list=new List(); if (_grid.Rows.Count > 0) { UltraGridRow dr = _grid.Rows[0]; int columnNum = dr.Cells.Count; strColumns = new String[columnNum]; strColumnsNew = new String[columnNum]; for (int i = 0; i < columnNum; i++) { strColumns[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString().Replace("_", ""); strColumnsNew[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString(); } for (int m = 0; m < _grid.Rows.Count; m++) { UltraGridRow dr1 = _grid.Rows[m]; T t1 = System.Activator.CreateInstance(); System.Reflection.PropertyInfo[] pro = t1.GetType().GetProperties(); foreach (System.Reflection.PropertyInfo item in pro) { for (int i = 0; i < strColumns.Length; i++) { if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0) { item.SetValue(t1, Convert.ToString(dr1.Cells[strColumnsNew[i]].Value.ToString()), null); } } } list.Add(t1); } } return list; } public static List GetGridToList1(UltraGrid _grid, T t) { String[] strColumns = null; String[] strColumnsNew = null; List list = new List(); int s = 0; if (_grid.Rows.Count > 0) { UltraGridRow dr = _grid.Rows[0]; int columnNum = dr.Cells.Count; strColumns = new String[columnNum]; strColumnsNew = new String[columnNum]; for (int i = 0; i < columnNum; i++) { strColumns[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString().Replace("_", ""); strColumnsNew[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString(); } IQueryable checkMagRows = _grid.Rows.AsQueryable().Where(" Check = 'True'"); for (int m = 0; m < checkMagRows.Count(); m++) { UltraGridRow dr1 = _grid.Rows[m]; T t1 = System.Activator.CreateInstance(); System.Reflection.PropertyInfo[] pro = t1.GetType().GetProperties(); foreach (System.Reflection.PropertyInfo item in pro) { for (int i = 0; i < strColumns.Length; i++) { if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0) { item.SetValue(t1, Convert.ToString(dr1.Cells[strColumnsNew[i]].Value.ToString()), null); } } } list.Add(t1); } } return list; } ////数据局部刷新尝试 //public void GridPartRefresh(DataTable dt, DataTable dtgrid) //{ // String[] strColumns = null; // int columnNum = 0; // try // { // if (dt.Rows.Count > 0) // { // columnNum = dt.Columns.Count; // strColumns = new string[columnNum]; // for (int i = 0; i < dt.Columns.Count; i++) // { // strColumns[i] = dt.Columns[i].ColumnName.ToString(); // } // for (int j = 0; j < dt.Rows.Count; j++) // { // DataRow dr = dt.Rows[j]; // DataRow drgrid=d // } // } // } //} /// /// 判断 输入 是否可转换为 数字 /// /// /// public static bool Checkint(string i) { bool result = false; int a=0; if(int.TryParse(i,out a)) { result = true; } return result; } /// /// 结炉时修改无效剔除管序号 /// /// 炉号 /// 工序号 0-上 料锯切 1-加热炉 2-穿孔 3-连轧 4-再加热 5-定径 6-分切 7-矫直 8-探伤 9-质检 /// public static void CheckNodeMatStatus(string JudgeStoveNo, string proPlanId, string gxPlanNo, int PrcoessNo, OpeBase ob) { int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.FeedSawResult.NodeCheckMat", new object[] { JudgeStoveNo, PrcoessNo, proPlanId, gxPlanNo }, ob); } /// /// 得到服务器时间 /// public static DateTime GetSeverTime(OpeBase ob) { DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.GetSeverTime", new object[] { }, ob); return DateTime.Parse(dt.Rows[0][0].ToString()); } } }