NativeMethod.cs 19 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495
  1. using System;
  2. using System.Collections.Generic;
  3. using System.Linq;
  4. using System.Text;
  5. using System.Data;
  6. using Infragistics.Win.UltraWinDataSource;
  7. using Infragistics.Win.UltraWinGrid;
  8. using Core.Mes.Client.Comm.Server;
  9. using CoreFS.CA06;
  10. using System.Windows.Forms;
  11. using System.Collections;
  12. using CoreFS.CA06;
  13. using Core.Mes.Client.Comm.Server;
  14. using com.steering.mes.zgmil.entity;
  15. namespace Core.StlMes.Client.ZGMil.Entity
  16. {
  17. public static class NativeMethod
  18. {
  19. //public NativeMethod()
  20. //{
  21. //}
  22. /// <summary>
  23. /// 获取表格中
  24. /// </summary>
  25. /// <typeparam name="T">返回类</typeparam>
  26. /// <param name="dt">数据表</param>
  27. /// <param name="t">输入类</param>
  28. /// <returns></returns>
  29. public static T GetTableToEntity<T>(DataTable dt,T t)
  30. {
  31. String[] strColumns=null;
  32. DataRow dr=dt.Rows[0];
  33. try
  34. {
  35. if (dt.Columns.Count > 0)
  36. {
  37. int columnNum = 0;
  38. columnNum = dt.Columns.Count;
  39. strColumns = new string[columnNum];
  40. for (int i = 0; i < dt.Columns.Count; i++)
  41. {
  42. strColumns[i] = dt.Columns[i].ColumnName.Replace("_", "");
  43. }
  44. System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties();
  45. foreach (System.Reflection.PropertyInfo item in pro)
  46. {
  47. for (int i = 0; i < strColumns.Length; i++)
  48. {
  49. if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0)
  50. {
  51. if (item.PropertyType == typeof(int?))
  52. {
  53. item.SetValue(t, Convert.ToInt32(dr[i].ToString3()), null);
  54. }
  55. else
  56. {
  57. item.SetValue(t, dr[i].ToString(), null);
  58. }
  59. }
  60. }
  61. }
  62. }
  63. else
  64. {
  65. }
  66. }
  67. catch (Exception e)
  68. {
  69. System.Windows.Forms.MessageBox.Show("出错:", e.ToString());
  70. }
  71. return t;
  72. }
  73. /// <summary>
  74. /// 获取表格中制定行数据到实体类
  75. /// </summary>
  76. /// <typeparam name="T"></typeparam>
  77. /// <param name="dr"></param>
  78. /// <param name="t"></param>
  79. /// <returns></returns>
  80. public static T GetTableRowToEntity<T>(DataRow dr, DataTable dt,T t)
  81. {
  82. String[] strColumns = null;
  83. try
  84. {
  85. if (dt.Columns.Count > 0)
  86. {
  87. int columnNum = 0;
  88. columnNum = dt.Columns.Count;
  89. strColumns = new string[columnNum];
  90. for (int i = 0; i < dt.Columns.Count; i++)
  91. {
  92. strColumns[i] = dt.Columns[i].ColumnName.Replace("_", "");
  93. }
  94. System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties();
  95. foreach (System.Reflection.PropertyInfo item in pro)
  96. {
  97. for (int i = 0; i < strColumns.Length; i++)
  98. {
  99. if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0)
  100. {
  101. item.SetValue(t, Convert.ToString(dr[i]), null);
  102. }
  103. }
  104. }
  105. }
  106. else
  107. {
  108. }
  109. }
  110. catch (Exception e)
  111. {
  112. System.Windows.Forms.MessageBox.Show("出错:", e.ToString());
  113. }
  114. return t;
  115. }
  116. /// <summary>
  117. /// 获取表格中制定行数据到实体类
  118. /// </summary>
  119. /// <typeparam name="T"></typeparam>
  120. /// <param name="dt"></param>
  121. /// <param name="t"></param>
  122. /// <param name="rowno"></param>
  123. /// <returns></returns>
  124. public static T GetTableToEntity<T>(DataTable dt, T t,int rowno)
  125. {
  126. String[] strColumns = null;
  127. DataRow dr = dt.Rows[rowno];
  128. try
  129. {
  130. if (dt.Columns.Count > 0)
  131. {
  132. int columnNum = 0;
  133. columnNum = dt.Columns.Count;
  134. strColumns = new string[columnNum];
  135. for (int i = 0; i < dt.Columns.Count; i++)
  136. {
  137. strColumns[i] = dt.Columns[i].ColumnName.Replace("_", "");
  138. }
  139. System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties();
  140. foreach (System.Reflection.PropertyInfo item in pro)
  141. {
  142. for (int i = 0; i < strColumns.Length; i++)
  143. {
  144. if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0)
  145. {
  146. item.SetValue(t, Convert.ToString(dr[i]), null);
  147. }
  148. }
  149. }
  150. }
  151. else
  152. {
  153. }
  154. }
  155. catch (Exception e)
  156. {
  157. System.Windows.Forms.MessageBox.Show("出错:", e.ToString());
  158. }
  159. return t;
  160. }
  161. /// <summary>
  162. /// 将表格中制定行赋到实体类中
  163. /// </summary>
  164. /// <typeparam name="T"></typeparam>
  165. /// <param name="ugr"></param>
  166. /// <param name="_grid"></param>
  167. /// <param name="t"></param>
  168. /// <returns></returns>
  169. public static T GetUltraGridRowToEntity<T>(UltraGridRow ugr,UltraGrid _grid, T t,int bands)
  170. {
  171. String[] strColumns = null;
  172. String[] strColumnsnew = null;
  173. UltraGridRow dr = ugr;
  174. int columnNum = dr.Cells.Count;
  175. strColumns = new String[columnNum];
  176. strColumnsnew = new String[columnNum];
  177. for (int i = 0; i < columnNum; i++)
  178. {
  179. strColumns[i] = _grid.DisplayLayout.Bands[bands].Columns[i].Key.ToString().Replace("_", "");
  180. strColumnsnew[i] = _grid.DisplayLayout.Bands[bands].Columns[i].Key.ToString();
  181. }
  182. System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties();
  183. foreach (System.Reflection.PropertyInfo item in pro)
  184. {
  185. for (int i = 0; i < strColumns.Length; i++)
  186. {
  187. if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0)
  188. {
  189. item.SetValue(t, Convert.ToString(dr.Cells[strColumnsnew[i]].Value.ToString()), null);
  190. }
  191. }
  192. }
  193. return t;
  194. }
  195. /// <summary>
  196. /// 获取数据源中第一行数据赋到类中
  197. /// </summary>
  198. /// <typeparam name="T">返回类</typeparam>
  199. /// <param name="ds">输入带数据的数据源</param>
  200. /// <param name="t">输入类</param>
  201. /// <returns></returns>
  202. public static T GetUltraGridToEntity<T>(UltraGrid _grid, T t)
  203. {
  204. String[] strColumns = null;
  205. UltraGridRow dr = _grid.Rows[0];
  206. int columnNum = dr.Cells.Count;
  207. strColumns = new String[columnNum];
  208. for (int i = 0; i < columnNum; i++)
  209. {
  210. strColumns[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString();
  211. }
  212. System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties();
  213. foreach (System.Reflection.PropertyInfo item in pro)
  214. {
  215. for (int i = 0; i < strColumns.Length; i++)
  216. {
  217. if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0)
  218. {
  219. item.SetValue(t, Convert.ToString(dr.Cells[strColumns[i]].Value.ToString()), null);
  220. }
  221. }
  222. }
  223. return t;
  224. }
  225. /// <summary>
  226. /// 获取数据源中某行数据赋到类中
  227. /// </summary>
  228. /// <typeparam name="T">返回类</typeparam>
  229. /// <param name="_grid">输入带数据的数据源</param>
  230. /// <param name="t">输入类</param>
  231. /// <param name="Rows">行号</param>
  232. /// <returns></returns>
  233. public static T GetUltraGridToEntity<T>(UltraGrid _grid, T t, int Rows)
  234. {
  235. String[] strColumns = null;
  236. String[] strColumnsnew = null;
  237. UltraGridRow dr = _grid.Rows[Rows];
  238. int columnNum = dr.Cells.Count;
  239. strColumns = new String[columnNum];
  240. strColumnsnew = new String[columnNum];
  241. for (int i = 0; i < columnNum; i++)
  242. {
  243. strColumns[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString().Replace("_", "");
  244. strColumnsnew[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString();
  245. }
  246. System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties();
  247. foreach (System.Reflection.PropertyInfo item in pro)
  248. {
  249. for (int i = 0; i < strColumns.Length; i++)
  250. {
  251. if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0)
  252. {
  253. item.SetValue(t, Convert.ToString(dr.Cells[strColumnsnew[i]].Value.ToString()), null);
  254. }
  255. }
  256. }
  257. return t;
  258. }
  259. /// <summary>
  260. /// 获取数据源中第一行数据赋到类中(grid 带下划线)
  261. /// </summary>
  262. /// <typeparam name="T">返回类</typeparam>
  263. /// <param name="ds">输入带数据的数据源</param>
  264. /// <param name="t">输入类</param>
  265. /// <returns></returns>
  266. public static T GetUltraGridToEntityNEW<T>(UltraGrid _grid, T t)
  267. {
  268. String[] strColumns = null;
  269. String[] strColumnsNew = null;
  270. UltraGridRow dr = _grid.Rows[0];
  271. int columnNum = dr.Cells.Count;
  272. strColumns = new String[columnNum];
  273. strColumnsNew = new String[columnNum];
  274. for (int i = 0; i < columnNum; i++)
  275. {
  276. strColumns[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString().Replace("_", "");
  277. strColumnsNew[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString();
  278. }
  279. System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties();
  280. foreach (System.Reflection.PropertyInfo item in pro)
  281. {
  282. for (int i = 0; i < strColumns.Length; i++)
  283. {
  284. if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0)
  285. {
  286. if (item.PropertyType == typeof(int?))
  287. {
  288. item.SetValue(t, Convert.ToInt32(dr.Cells[strColumnsNew[i]].Value.ToString3()), null);
  289. }
  290. else
  291. {
  292. item.SetValue(t, Convert.ToString(dr.Cells[strColumnsNew[i]].Value.ToString()), null);
  293. }
  294. }
  295. }
  296. }
  297. return t;
  298. }
  299. /// <summary>
  300. /// 获取类的值,并赋给另一个类
  301. /// </summary>
  302. /// <typeparam name="T"></typeparam>
  303. /// <param name="t">返回类</param>
  304. /// <param name="t1">输入类</param>
  305. /// <returns></returns>
  306. public static T GetEntityToEntity<T>(T t, T t1)
  307. {
  308. System.Reflection.PropertyInfo[] pro = t.GetType().GetProperties();
  309. System.Reflection.PropertyInfo[] pro1 = t1.GetType().GetProperties();
  310. foreach (System.Reflection.PropertyInfo item in pro)
  311. {
  312. foreach (System.Reflection.PropertyInfo item1 in pro1)
  313. {
  314. if(string.Compare(item.Name.ToString(),item1.Name.ToString(),true)==0)
  315. {
  316. item.SetValue(t,item1.GetValue(t1,null),null);
  317. }
  318. }
  319. }
  320. return t;
  321. }
  322. /// <summary>
  323. /// 遍历Grid 赋值到list<T>
  324. /// </summary>
  325. /// <typeparam name="T"></typeparam>
  326. /// <param name="_grid"></param>
  327. /// <param name="t"></param>
  328. /// <returns></returns>
  329. public static List<T> GetGridToList<T>(UltraGrid _grid, T t)
  330. {
  331. String[] strColumns = null;
  332. String[] strColumnsNew = null;
  333. List<T> list=new List<T>();
  334. if (_grid.Rows.Count > 0)
  335. {
  336. UltraGridRow dr = _grid.Rows[0];
  337. int columnNum = dr.Cells.Count;
  338. strColumns = new String[columnNum];
  339. strColumnsNew = new String[columnNum];
  340. for (int i = 0; i < columnNum; i++)
  341. {
  342. strColumns[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString().Replace("_", "");
  343. strColumnsNew[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString();
  344. }
  345. for (int m = 0; m < _grid.Rows.Count; m++)
  346. {
  347. UltraGridRow dr1 = _grid.Rows[m];
  348. T t1 = System.Activator.CreateInstance<T>();
  349. System.Reflection.PropertyInfo[] pro = t1.GetType().GetProperties();
  350. foreach (System.Reflection.PropertyInfo item in pro)
  351. {
  352. for (int i = 0; i < strColumns.Length; i++)
  353. {
  354. if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0)
  355. {
  356. item.SetValue(t1, Convert.ToString(dr1.Cells[strColumnsNew[i]].Value.ToString()), null);
  357. }
  358. }
  359. }
  360. list.Add(t1);
  361. }
  362. }
  363. return list;
  364. }
  365. public static List<T> GetGridToList1<T>(UltraGrid _grid, T t)
  366. {
  367. String[] strColumns = null;
  368. String[] strColumnsNew = null;
  369. List<T> list = new List<T>();
  370. int s = 0;
  371. if (_grid.Rows.Count > 0)
  372. {
  373. UltraGridRow dr = _grid.Rows[0];
  374. int columnNum = dr.Cells.Count;
  375. strColumns = new String[columnNum];
  376. strColumnsNew = new String[columnNum];
  377. for (int i = 0; i < columnNum; i++)
  378. {
  379. strColumns[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString().Replace("_", "");
  380. strColumnsNew[i] = _grid.DisplayLayout.Bands[0].Columns[i].Key.ToString();
  381. }
  382. IQueryable<UltraGridRow> checkMagRows = _grid.Rows.AsQueryable().Where(" Check = 'True'");
  383. for (int m = 0; m < checkMagRows.Count(); m++)
  384. {
  385. UltraGridRow dr1 = _grid.Rows[m];
  386. T t1 = System.Activator.CreateInstance<T>();
  387. System.Reflection.PropertyInfo[] pro = t1.GetType().GetProperties();
  388. foreach (System.Reflection.PropertyInfo item in pro)
  389. {
  390. for (int i = 0; i < strColumns.Length; i++)
  391. {
  392. if (string.Compare(item.Name.ToString(), strColumns[i].ToString(), true) == 0)
  393. {
  394. item.SetValue(t1, Convert.ToString(dr1.Cells[strColumnsNew[i]].Value.ToString()), null);
  395. }
  396. }
  397. }
  398. list.Add(t1);
  399. }
  400. }
  401. return list;
  402. }
  403. ////数据局部刷新尝试
  404. //public void GridPartRefresh(DataTable dt, DataTable dtgrid)
  405. //{
  406. // String[] strColumns = null;
  407. // int columnNum = 0;
  408. // try
  409. // {
  410. // if (dt.Rows.Count > 0)
  411. // {
  412. // columnNum = dt.Columns.Count;
  413. // strColumns = new string[columnNum];
  414. // for (int i = 0; i < dt.Columns.Count; i++)
  415. // {
  416. // strColumns[i] = dt.Columns[i].ColumnName.ToString();
  417. // }
  418. // for (int j = 0; j < dt.Rows.Count; j++)
  419. // {
  420. // DataRow dr = dt.Rows[j];
  421. // DataRow drgrid=d
  422. // }
  423. // }
  424. // }
  425. //}
  426. /// <summary>
  427. /// 判断 输入 是否可转换为 数字
  428. /// </summary>
  429. /// <param name="i"></param>
  430. /// <returns></returns>
  431. public static bool Checkint(string i)
  432. {
  433. bool result = false;
  434. int a=0;
  435. if(int.TryParse(i,out a))
  436. {
  437. result = true;
  438. }
  439. return result;
  440. }
  441. /// <summary>
  442. /// 结炉时修改无效剔除管序号
  443. /// </summary>
  444. /// <param name="JudgeStoveNo">炉号</param>
  445. /// <param name="PrcoessNo">工序号 0-上 料锯切 1-加热炉 2-穿孔 3-连轧 4-再加热 5-定径 6-分切 7-矫直 8-探伤 9-质检</param>
  446. /// <param name="op"></param>
  447. public static void CheckNodeMatStatus(string JudgeStoveNo, string proPlanId, string gxPlanNo, int PrcoessNo, OpeBase ob)
  448. {
  449. int count = ServerHelper.SetData("com.steering.mes.zgmil.coup.FeedSawResult.NodeCheckMat", new object[] { JudgeStoveNo, PrcoessNo, proPlanId, gxPlanNo }, ob);
  450. }
  451. /// <summary>
  452. /// 得到服务器时间
  453. /// </summary>
  454. public static DateTime GetSeverTime(OpeBase ob)
  455. {
  456. DataTable dt = ServerHelper.GetData("com.steering.mes.zgmil.coup.FeedSawResult.GetSeverTime", new object[] { }, ob);
  457. return DateTime.Parse(dt.Rows[0][0].ToString());
  458. }
  459. }
  460. }