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());
}
}
}