ucAdditives.cs 32 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using CoreFS.CA06;
  9. using System.Collections;
  10. using Core.LgMes.Client.Comm;
  11. using System.Reflection;
  12. using Core.LgMes.Client.lgClassModel;
  13. using Infragistics.Win.UltraWinDataSource;
  14. using Infragistics.Win.UltraWinGrid;
  15. using Core.Mes.Client.Common;
  16. namespace Core.LgMes.Client.LgResMgt
  17. {
  18. public partial class ucAdditives : UserControl
  19. {
  20. public OpeBase ob = null;
  21. private DataTable _dtMaterial = null; // 存储辅料信息
  22. public string _DEVICE_POSITION = ""; //岗位
  23. private BofAdditive _procAdditive; // 存放过程添加剂信息
  24. private BofAdditive _additiveBuffer; // 用于刷新过程添加剂信息的缓冲区
  25. private BofAdditive _JobAdditive; // 存放作业过程添加剂信息
  26. public string strWLDTime = "";
  27. public string strSubDateTime = "", strTAppTime="";
  28. public ucAdditives()
  29. {
  30. InitializeComponent();
  31. }
  32. private void ucAdditives_Load(object sender, EventArgs e)
  33. {
  34. this.ultdsAdminicle.Rows.Add(new object[] { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" });
  35. this.ultdsAlloy.Rows.Add(new object[] { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" });
  36. this.ultdsManual.Rows.Add(new object[] { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" });
  37. this.ultdsWS.Rows.Add(new object[] { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" });
  38. _additiveBuffer = new BofAdditive();
  39. _procAdditive = new BofAdditive();
  40. _JobAdditive = new BofAdditive();
  41. // GetMaterialData();
  42. }
  43. /// <summary>
  44. /// 获取物料信息
  45. /// </summary>
  46. public void GetMaterialData()
  47. {
  48. try
  49. {
  50. string strErr = "", szWhere = "";
  51. ArrayList arry = new ArrayList();
  52. arry.Add("GetMaterialData.select");
  53. CommonClientToServer cctos = new CommonClientToServer();
  54. cctos.ob = this.ob;
  55. DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery",
  56. "doSimpleQuery", arry, out strErr);
  57. object obj = null;
  58. if (strErr == "" && ds != null)
  59. {
  60. DataSet dsM = ds;
  61. _dtMaterial = dsM.Tables[0];
  62. }
  63. }
  64. catch { }
  65. }
  66. /// <summary>
  67. /// 设置料斗信息
  68. /// </summary>
  69. public void SetHopperInfo(string _DEVICE)
  70. {
  71. int intFl = 0, intHj = 0, intWs = 0; //辅料、合金、喂丝索引
  72. bool blValue = false; //定义判断物料是否存在
  73. try
  74. {
  75. if (_DEVICE.Length > 3 && _DEVICE.Substring(0, 3) == "BOF")
  76. ultraTabControl1.Tabs[3].Visible = false;
  77. _DEVICE_POSITION = _DEVICE;
  78. string strErr = "";
  79. ArrayList arry = new ArrayList();
  80. arry.Add("SetResHopperName.select");
  81. arry.Add(_DEVICE);
  82. arry.Add(_DEVICE);
  83. CommonClientToServer cctos = new CommonClientToServer();
  84. cctos.ob = this.ob;
  85. DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery",
  86. "doSimpleQuery", arry, out strErr);
  87. if (strErr == "" && ds != null)
  88. {
  89. DataTable dtHopper = ds.Tables[0];
  90. string BH = "";
  91. for (int i = 0; i < dtHopper.Rows.Count; i++)
  92. {
  93. BH = dtHopper.Rows[i]["MSNUMID"].ToString();
  94. if (dtHopper.Rows[i]["MATERIELTYPE"].ToString() == "FL")
  95. {
  96. //判断物料是否存在
  97. for (int FL_index = 0; FL_index < this.ulgridPrcMtr.DisplayLayout.Bands[0].Columns.Count; FL_index++)
  98. {
  99. if (this.ulgridPrcMtr.DisplayLayout.Bands[0].Columns[FL_index].Tag != null && dtHopper.Rows[i]["MATERIELCODE"].ToString().Trim() == this.ulgridPrcMtr.DisplayLayout.Bands[0].Columns[FL_index].Tag.ToString())
  100. {
  101. blValue = true;
  102. break;
  103. }
  104. }
  105. //不存在则添加
  106. if (blValue == false)
  107. {
  108. this.ulgridPrcMtr.DisplayLayout.Bands[0].Columns[intFl].Header.Caption = dtHopper.Rows[i]["MATERIELFORSHORT"].ToString().Trim();
  109. this.ulgridPrcMtr.DisplayLayout.Bands[0].Columns[intFl].Tag = dtHopper.Rows[i]["MATERIELCODE"].ToString().Trim();
  110. intFl++;
  111. }
  112. blValue = false;
  113. }
  114. else if (dtHopper.Rows[i]["MATERIELTYPE"].ToString() == "HJ")
  115. {
  116. //判断物料是否存在
  117. for (int HJ_index = 0; HJ_index < this.ultgridAlloy.DisplayLayout.Bands[0].Columns.Count; HJ_index++)
  118. {
  119. if (this.ultgridAlloy.DisplayLayout.Bands[0].Columns[HJ_index].Tag != null && dtHopper.Rows[i]["MATERIELCODE"].ToString().Trim() == this.ultgridAlloy.DisplayLayout.Bands[0].Columns[HJ_index].Tag.ToString())
  120. {
  121. blValue = true; ;
  122. break;
  123. }
  124. }
  125. //不存在则添加
  126. if (blValue == false)
  127. {
  128. this.ultgridAlloy.DisplayLayout.Bands[0].Columns[intHj].Header.Caption = dtHopper.Rows[i]["MATERIELFORSHORT"].ToString();
  129. this.ultgridAlloy.DisplayLayout.Bands[0].Columns[intHj].Tag = dtHopper.Rows[i]["MATERIELCODE"].ToString();
  130. intHj++;
  131. }
  132. blValue = false;
  133. }
  134. else if (dtHopper.Rows[i]["MATERIELTYPE"].ToString() == "WS")
  135. {
  136. //判断物料是否存在
  137. for (int WS_index = 0; WS_index < this.ultgridWs.DisplayLayout.Bands[0].Columns.Count; WS_index++)
  138. {
  139. if (this.ultgridWs.DisplayLayout.Bands[0].Columns[WS_index].Tag != null && dtHopper.Rows[i]["MATERIELCODE"].ToString().Trim() == this.ultgridWs.DisplayLayout.Bands[0].Columns[WS_index].Tag.ToString())
  140. {
  141. blValue = true; ;
  142. break;
  143. }
  144. }
  145. //不存在则添加
  146. if (blValue == false)
  147. {
  148. this.ultgridWs.DisplayLayout.Bands[0].Columns[intWs].Header.Caption = dtHopper.Rows[i]["MATERIELFORSHORT"].ToString();
  149. this.ultgridWs.DisplayLayout.Bands[0].Columns[intWs].Tag = dtHopper.Rows[i]["MATERIELCODE"].ToString();
  150. intWs++;
  151. }
  152. blValue = false;
  153. }
  154. }
  155. }
  156. SetProceThrowFace();
  157. }
  158. catch { }
  159. }
  160. /// <summary>
  161. /// 设置手投料界面元素项
  162. /// </summary>
  163. private void SetProceThrowFace()
  164. {
  165. try
  166. {
  167. string strErr = "";
  168. string strWhere = " where CONFGITEM = '" + _DEVICE_POSITION + "' and USEDLOCATION = 'STL'"; // 冶炼过程手投料 GCSTL
  169. ArrayList arry = new ArrayList();
  170. arry.Add("GetHndTrwMtr.select");
  171. arry.Add(_DEVICE_POSITION);
  172. arry.Add(_DEVICE_POSITION);
  173. CommonClientToServer cctos = new CommonClientToServer();
  174. cctos.ob = this.ob;
  175. DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery",
  176. "doSimpleQuery", arry, out strErr);
  177. if (strErr == "" && ds != null)
  178. {
  179. DataTable dt = ds.Tables[0];
  180. if (dt.Rows.Count > 0)
  181. {
  182. string szPZBM = dt.Rows[0]["CONFGCODE"].ToString();
  183. string[] arBM = szPZBM.Split('/');
  184. DataRow[] rows;
  185. int nCount = this.ultgridManual.DisplayLayout.Bands[0].Columns.Count;
  186. for (int i = 0; i < nCount; i++)
  187. {
  188. if (i < arBM.Length - 1)
  189. {
  190. rows = _dtMaterial.Select("MATERIELCODE='" + arBM[i] + "'");
  191. if (rows.Length > 0)
  192. {
  193. this.ultgridManual.DisplayLayout.Bands[0].Columns[i].Header.Caption = rows[0]["MATERIELFORSHORT"].ToString();
  194. this.ultgridManual.DisplayLayout.Bands[0].Columns[i].Tag = arBM[i];
  195. }
  196. }
  197. else
  198. {
  199. this.ultgridManual.DisplayLayout.Bands[0].Columns[i].Header.Caption = "";
  200. this.ultgridManual.DisplayLayout.Bands[0].Columns[i].Tag = this.ultdsManual.Band.Columns[i].Key;
  201. }
  202. }
  203. }
  204. }
  205. }
  206. catch { }
  207. }
  208. /// <summary>
  209. /// 获取实绩汇总后过程添加剂信息
  210. /// </summary>
  211. /// <param name="_smeltingID">熔炼号</param>
  212. /// <param name="_stationCode">岗位编码</param>
  213. /// <param name="_dealTime">处理次数</param>
  214. public void GetAdditiveData(string _smeltingID, string _stationCode, string _dealTime)
  215. {
  216. if (_smeltingID == "")
  217. return;
  218. try
  219. {
  220. string strErr = "", strHNo = "", strSCode = "", strDTime = "";
  221. strHNo = _smeltingID;
  222. strSCode = _stationCode;
  223. strDTime = _dealTime;
  224. ArrayList arry = new ArrayList();
  225. arry.Add("GetBofMaterialData.select");
  226. arry.Add(strHNo);
  227. arry.Add(strHNo);
  228. arry.Add(strSCode);
  229. arry.Add(strSCode);
  230. arry.Add(strDTime);
  231. arry.Add(strDTime);
  232. CommonClientToServer cctos = new CommonClientToServer();
  233. cctos.ob = this.ob;
  234. DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery",
  235. "doSimpleQuery", arry, out strErr);
  236. if (strErr == "" && ds != null)
  237. {
  238. //序列化添加料数据
  239. DataSetToAdditive(ref ds, ref _procAdditive);
  240. //显示添加料
  241. SetAdditiveData();
  242. }
  243. GetJobAdditiveData(_smeltingID, _stationCode, _dealTime); //作业物料添加过程信息
  244. //SetAdditiveData();
  245. }
  246. catch { }
  247. }
  248. /// <summary>
  249. /// 获取作业添加剂过程信息
  250. /// </summary>
  251. /// <param name="_smeltingID">熔炼号</param>
  252. /// <param name="_stationCode">岗位编码</param>
  253. /// <param name="_dealTime">处理次数</param>
  254. public void GetJobAdditiveData(string _smeltingID, string _stationCode, string _dealTime)
  255. {
  256. string strTableName = ""; //不同岗位表名
  257. if (_smeltingID == "")
  258. return;
  259. try
  260. {
  261. switch (_stationCode.Substring(0,1))
  262. {
  263. case "C":
  264. strTableName = "STL_BOF_ADDITIVES";
  265. break;
  266. case "D":
  267. strTableName = "STL_CAS_ADDITIVES";
  268. break;
  269. case "E":
  270. strTableName = "STL_LFS_ADDITIVES";
  271. break;
  272. case "F":
  273. strTableName = "STL_RHS_ADDITIVES";
  274. break;
  275. case "I":
  276. strTableName = "STL_VDS_ADDITIVES";
  277. break;
  278. default:
  279. break;
  280. }
  281. string strErr = "", strHNo = "", strSCode = "", strDTime = "";
  282. strHNo = _smeltingID;
  283. strSCode = _stationCode.Substring(1, 2);
  284. strDTime = _dealTime;
  285. DataSet ds=new DataSet();
  286. ArrayList arry = new ArrayList();
  287. ArrayList sqlList = new ArrayList();
  288. arry.Add("GetJobMaterialData.select");
  289. sqlList.Add(strTableName);
  290. sqlList.Add(strTableName);
  291. arry.Add(strHNo);
  292. arry.Add(strHNo);
  293. arry.Add(strSCode);
  294. arry.Add(strSCode);
  295. arry.Add(strDTime);
  296. arry.Add(strDTime);
  297. CoreFS.CA06.FrmBase fr = new FrmBase();
  298. fr.ob = ob;
  299. CoreClientParam CCP_Query = new CoreClientParam();
  300. DataTable dt = new DataTable();
  301. // CCP_Query.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
  302. // CCP_Query.MethodName = "doQuery";
  303. CCP_Query.ServerName = "Core.LgMes.Server.Common.ComDBExecute"; // 考虑原来返回数据形式性能太低,修改为前端传sql,服务端直接执行模式 2013.11.18
  304. CCP_Query.MethodName = "doSimpleQuery";
  305. CCP_Query.ServerParams = new object[] { this.getSqlOfJobAdditiveData(strTableName, strHNo, strSCode, strDTime) };
  306. CCP_Query.SourceDataTable = dt;
  307. fr.ExecuteQueryToDataTable(CCP_Query, CoreInvokeType.Internal);
  308. ds.Tables.Add(dt);
  309. if (strErr == "" && dt != null)
  310. {
  311. //序列化添加料数据
  312. DataSetToAdditive(ref ds, ref _JobAdditive);
  313. SetProcess();
  314. //if()
  315. //{
  316. //}
  317. }
  318. }
  319. catch { }
  320. }
  321. private string getSqlOfJobAdditiveData(string v_strTableName, string v_heatNo, string v_strSCode, string v_strDTime)
  322. {
  323. string sqlStr = @"select a.HEATPROCESSNO,
  324. a.MATERIELTYPE,
  325. a.MATERIELCODE,
  326. a.JMDATE,
  327. a.JMTYPE,
  328. a.HOPPERNUMID,
  329. round(a.JMWGT, 2) JMWGT
  330. from (select *
  331. from {0}
  332. union
  333. select * from J#{0}) a
  334. where 1 = 1
  335. and HEATNO = decode('{1}', null, HEATNO, '{1}')
  336. and STATIONCODE = decode('{2}', null, STATIONCODE, '{2}')
  337. and DISPOSALTIME = decode('{3}', null, DISPOSALTIME, '{3}')
  338. order by jmdate desc";
  339. sqlStr = string.Format(sqlStr,v_strTableName, v_heatNo, v_strSCode, v_strDTime);
  340. return sqlStr;
  341. }
  342. /// <summary>
  343. /// 序列化添加料信息
  344. /// </summary>
  345. /// <param name="ds"></param>
  346. /// <param name="obj"></param>
  347. private void DataSetToAdditive(ref DataSet ds, ref BofAdditive obj)
  348. {
  349. try
  350. {
  351. obj.ClearElement();
  352. PropertyInfo[] PropertyInfos = null;
  353. foreach (DataRow dr in ds.Tables[0].Rows)
  354. {
  355. JOB_BOF_ADDITIVES detail = new JOB_BOF_ADDITIVES();
  356. if (PropertyInfos == null)
  357. {
  358. PropertyInfos = detail.GetType().GetProperties();
  359. }
  360. //给各个属性赋值
  361. foreach (PropertyInfo oPropertyInfo in PropertyInfos)
  362. {
  363. try
  364. {
  365. if (ds.Tables[0].Columns.Contains(oPropertyInfo.Name))
  366. {
  367. if (dr[oPropertyInfo.Name] != System.DBNull.Value)
  368. {
  369. oPropertyInfo.SetValue(detail, dr[oPropertyInfo.Name.ToString()], null);
  370. }
  371. }
  372. }
  373. catch (Exception ex)
  374. {
  375. MessageBox.Show(ex.Message);
  376. }
  377. }
  378. obj.Add(ref detail);
  379. }//end foreach
  380. _additiveBuffer.DataHarmonize(ref obj);
  381. }
  382. catch (Exception ex)
  383. {
  384. string Msg = ex.Message;
  385. }
  386. finally
  387. {
  388. }
  389. }
  390. /// <summary>
  391. /// 添加过程添加剂数据到界面
  392. /// </summary>
  393. private void SetAdditiveData()
  394. {
  395. try
  396. {
  397. ResetData();//初始化数据
  398. for (int i = 0; i < _additiveBuffer.hList.Count; i++)
  399. {
  400. JOB_BOF_ADDITIVES obj = (JOB_BOF_ADDITIVES)_additiveBuffer.hList[i];
  401. try
  402. {
  403. if (obj.JMTYPE == "1") //料仓加料
  404. {
  405. if (obj.MATERIELTYPE == "FL")
  406. {
  407. for (int Fl_Count = 0; i < ulgridPrcMtr.DisplayLayout.Bands[0].Columns.Count; Fl_Count++)
  408. {
  409. if (ulgridPrcMtr.DisplayLayout.Bands[0].Columns[Fl_Count].Tag != null && ulgridPrcMtr.DisplayLayout.Bands[0].Columns[Fl_Count].Tag.ToString() == obj.MATERIELCODE.ToString())
  410. {
  411. /*
  412. * 修改 20131112
  413. * 对同一物料,可能配有多个料仓,原有逻辑显示时只显示最后一个
  414. * 现对同物料,采取汇总方式显示
  415. */
  416. double jmwgt_temp = 0;
  417. string str = ultdsAdminicle.Rows[0][ulgridPrcMtr.DisplayLayout.Bands[0].Columns[Fl_Count].Key].ToString();
  418. if (str != null)
  419. {
  420. jmwgt_temp = Convert.ToDouble(str == "" ? "0" : str);
  421. }
  422. ultdsAdminicle.Rows[0][ulgridPrcMtr.DisplayLayout.Bands[0].Columns[Fl_Count].Key] = (jmwgt_temp + Convert.ToDouble(obj.JMWGT)).ToString();
  423. // ultdsAdminicle.Rows[0][ulgridPrcMtr.DisplayLayout.Bands[0].Columns[Fl_Count].Key] = obj.JMWGT;
  424. break;
  425. }
  426. }
  427. }
  428. else if (obj.MATERIELTYPE == "HJ")
  429. {
  430. for (int Hj_Count = 0; i < ultgridAlloy.DisplayLayout.Bands[0].Columns.Count; Hj_Count++)
  431. {
  432. if (ultgridAlloy.DisplayLayout.Bands[0].Columns[Hj_Count].Tag!=null && ultgridAlloy.DisplayLayout.Bands[0].Columns[Hj_Count].Tag.ToString() == obj.MATERIELCODE.ToString())
  433. {
  434. ultdsAlloy.Rows[0][ultgridAlloy.DisplayLayout.Bands[0].Columns[Hj_Count].Key] = obj.JMWGT;
  435. break;
  436. }
  437. }
  438. }
  439. else if (obj.MATERIELTYPE == "WS")
  440. {
  441. for (int Ws_Count = 0; i < ultgridWs.DisplayLayout.Bands[0].Columns.Count; Ws_Count++)
  442. {
  443. if (ultgridWs.DisplayLayout.Bands[0].Columns[Ws_Count].Tag !=null && ultgridWs.DisplayLayout.Bands[0].Columns[Ws_Count].Tag.ToString() == obj.MATERIELCODE.ToString())
  444. {
  445. ultdsWS.Rows[0][ultgridWs.DisplayLayout.Bands[0].Columns[Ws_Count].Key] = obj.JMWGT;
  446. break;
  447. }
  448. }
  449. }
  450. }
  451. else if (obj.JMTYPE == "2") //手投料
  452. {
  453. for (int H_Count = 0; i < ultgridManual.DisplayLayout.Bands[0].Columns.Count; H_Count++)
  454. {
  455. if (ultgridManual.DisplayLayout.Bands[0].Columns[H_Count].Tag != null && ultgridManual.DisplayLayout.Bands[0].Columns[H_Count].Tag.ToString() == obj.MATERIELCODE.ToString())
  456. {
  457. ultdsManual.Rows[0][ultgridManual.DisplayLayout.Bands[0].Columns[H_Count].Key] = obj.JMWGT;
  458. break;
  459. }
  460. }
  461. }
  462. }
  463. catch(Exception ex)
  464. { }
  465. }
  466. IntGridSummary();
  467. }
  468. catch
  469. {
  470. }
  471. }
  472. public void GetSubDdateTime(string strSubDTime, string strTppTime)
  473. {
  474. strSubDateTime = strSubDTime;
  475. strTAppTime = strTppTime;
  476. }
  477. /// <summary>
  478. /// 作业物料添加过程
  479. /// </summary>
  480. private void SetProcess()
  481. {
  482. string strJMDATE = "";
  483. this.ultdsProcess.Rows.Clear();
  484. bool blAdd = false; //定义物料是否已添加
  485. for (int i = ultdsProcess.Band.Columns.Count-1; i >0 ; i--)
  486. {
  487. ultdsProcess.Band.Columns.Remove(ultdsProcess.Band.Columns[i].Key.ToString());
  488. }
  489. ///l
  490. ultdsProcess.Band.Columns.Add("BJDATE");
  491. ultdsProcess.Band.Columns.Add("MATERIELTYPE");
  492. ultdsProcess.Band.Columns.Add("TPPTIME");
  493. ////l
  494. for (int j = 0; j < _JobAdditive.hList.Count; j++)
  495. {
  496. JOB_BOF_ADDITIVES job_add = (JOB_BOF_ADDITIVES)_JobAdditive.hList[j];
  497. try
  498. {
  499. foreach (Infragistics.Win.UltraWinDataSource.UltraDataColumn ultraCol in ultdsProcess.Band.Columns)
  500. {
  501. if (ultraCol.Key.ToString() == job_add.MATERIELCODE)
  502. blAdd = true;
  503. }
  504. if (blAdd == false)
  505. {
  506. ultdsProcess.Band.Columns.Add(job_add.MATERIELCODE);
  507. DataRow[] rows = _dtMaterial.Select("MATERIELCODE='" + job_add.MATERIELCODE + "'");
  508. ultgridProcess.DisplayLayout.Bands[0].Columns[0].Width = 70;
  509. ultgridProcess.DisplayLayout.Bands[0].Columns[job_add.MATERIELCODE].Header.Caption = rows[0]["MATERIELFORSHORT"].ToString();
  510. ultgridProcess.DisplayLayout.Bands[0].Columns[job_add.MATERIELCODE].Width = 60;
  511. ultgridProcess.DisplayLayout.Bands[0].Columns[job_add.MATERIELCODE].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  512. }
  513. blAdd = false;
  514. ultdsProcess.Rows.Add();
  515. ultdsProcess.Rows[ultdsProcess.Rows.Count - 1]["JMDATE"] = job_add.JMDATE.ToString("HH:mm:ss");
  516. ultdsProcess.Rows[ultdsProcess.Rows.Count - 1]["BJDATE"] = job_add.JMDATE.ToString();
  517. ultdsProcess.Rows[ultdsProcess.Rows.Count - 1]["MATERIELTYPE"] = job_add.MATERIELTYPE.ToString();
  518. ultdsProcess.Rows[ultdsProcess.Rows.Count - 1]["TPPTIME"] = job_add.MATERIELTYPE.ToString();
  519. ultdsProcess.Rows[ultdsProcess.Rows.Count - 1][job_add.MATERIELCODE] = job_add.JMWGT;
  520. }
  521. catch
  522. { }
  523. }
  524. this.ultgridProcess.DisplayLayout.Bands[0].Columns["BJDATE"].Hidden = true;
  525. this.ultgridProcess.DisplayLayout.Bands[0].Columns["MATERIELTYPE"].Hidden = true;
  526. this.ultgridProcess.DisplayLayout.Bands[0].Columns["TPPTIME"].Hidden = true;
  527. for (int j = 0; j < this.ultgridProcess.Rows.Count; j++)
  528. {
  529. if (strSubDateTime.ToString() != "")
  530. {
  531. if (this.ultgridProcess.Rows[j].Cells["BJDATE"].Value.ToString().CompareTo(strSubDateTime.ToString()) == 1 && this.ultgridProcess.Rows[j].Cells["MATERIELTYPE"].Value.ToString() == "FL")
  532. {
  533. this.ultgridProcess.Rows[j].Appearance.ForeColor = Color.Red;
  534. }
  535. }
  536. if (strTAppTime.ToString() != "")
  537. {
  538. if (this.ultgridProcess.Rows[j].Cells["BJDATE"].Value.ToString().CompareTo(strTAppTime.ToString()) == 1)
  539. {
  540. this.ultgridProcess.Rows[j].Appearance.ForeColor = Color.Blue;
  541. }
  542. }
  543. }
  544. IntGridSummary();//汇总
  545. }
  546. /// <summary>
  547. /// 设置汇总
  548. /// </summary>
  549. private void IntGridSummary()
  550. {
  551. UltraGridBand band = this.ultgridProcess.DisplayLayout.Bands[0];
  552. this.ultgridProcess.DisplayLayout.Override.RowSelectorNumberStyle = RowSelectorNumberStyle.RowIndex;
  553. band.Summaries.Clear();
  554. SummarySettings summary = band.Summaries.Add(SummaryType.Count, band.Columns[0]);
  555. summary.SummaryDisplayArea = SummaryDisplayAreas.TopFixed;
  556. summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn;
  557. summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right;
  558. summary.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True;
  559. summary.DisplayFormat = "投料合计";
  560. for (int i = 1; i < band.Columns.Count; i++)
  561. {
  562. summary = band.Summaries.Add(SummaryType.Sum, band.Columns[i]);
  563. summary.SummaryDisplayArea = SummaryDisplayAreas.TopFixed;
  564. summary.SummaryPosition = SummaryPosition.UseSummaryPositionColumn;
  565. summary.Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True;
  566. //if (i > 4)
  567. // summary.DisplayFormat = " {0:#####}";
  568. //else
  569. summary.DisplayFormat = " {0:#####.00}";
  570. summary.Appearance.TextHAlign = Infragistics.Win.HAlign.Right;
  571. summary.Appearance.ForeColor = Color.DarkBlue;
  572. summary.Appearance.BackColor = Color.White;
  573. }
  574. band.Override.SummaryFooterCaptionVisible = Infragistics.Win.DefaultableBoolean.False;
  575. }
  576. /// <summary>
  577. /// 清空数据
  578. /// </summary>
  579. private void ResetData()
  580. {
  581. //清空辅料
  582. for (int FL_Count = 0; FL_Count < ultdsAdminicle.Band.Columns.Count; FL_Count++)
  583. ultdsAdminicle.Rows[0][FL_Count] = "";
  584. //清空合金
  585. for (int HJ_Count = 0; HJ_Count < ultdsAlloy.Band.Columns.Count; HJ_Count++)
  586. ultdsAlloy.Rows[0][HJ_Count] = "";
  587. //清空喂丝
  588. for (int WS_Count = 0; WS_Count < ultdsWS.Band.Columns.Count; WS_Count++)
  589. ultdsWS.Rows[0][WS_Count] = "";
  590. //清空手投料
  591. for (int H_Count = 0; H_Count < ultdsManual.Band.Columns.Count; H_Count++)
  592. ultdsManual.Rows[0][H_Count] = "";
  593. //清空加料过程
  594. // ultdsProcess.Rows.Clear();
  595. }
  596. private void ulgridPrcMtr_KeyPress(object sender, KeyPressEventArgs e)
  597. {
  598. if (!(Char.IsNumber(e.KeyChar) || e.KeyChar == '.' || e.KeyChar == '\b'))
  599. {
  600. e.Handled = true;
  601. }
  602. }
  603. private void ulgridPrcMtr_CellChange(object sender, CellEventArgs e)
  604. {
  605. if (ulgridPrcMtr.ActiveCell.Text != "")
  606. {
  607. try
  608. {
  609. Convert.ToDecimal(ulgridPrcMtr.ActiveCell.Text);
  610. }
  611. catch (Exception ex)
  612. {
  613. MessageBox.Show(ex.Message, "提示");
  614. ulgridPrcMtr.ActiveCell.Value = "";
  615. }
  616. }
  617. }
  618. private void ultgridAlloy_CellChange(object sender, CellEventArgs e)
  619. {
  620. if (ultgridAlloy.ActiveCell.Text != "")
  621. {
  622. try
  623. {
  624. Convert.ToDecimal(ultgridAlloy.ActiveCell.Text);
  625. }
  626. catch (Exception ex)
  627. {
  628. MessageBox.Show(ex.Message, "提示");
  629. ultgridAlloy.ActiveCell.Value = "";
  630. }
  631. }
  632. }
  633. private void ultgridWs_CellChange(object sender, CellEventArgs e)
  634. {
  635. if (ultgridWs.ActiveCell.Text != "")
  636. {
  637. try
  638. {
  639. Convert.ToDecimal(ultgridWs.ActiveCell.Text);
  640. }
  641. catch (Exception ex)
  642. {
  643. MessageBox.Show(ex.Message, "提示");
  644. ultgridWs.ActiveCell.Value = "";
  645. }
  646. }
  647. }
  648. private void ultgridManual_CellChange(object sender, CellEventArgs e)
  649. {
  650. if (ultgridManual.ActiveCell.Text != "")
  651. {
  652. try
  653. {
  654. Convert.ToDecimal(ultgridManual.ActiveCell.Text);
  655. }
  656. catch (Exception ex)
  657. {
  658. MessageBox.Show(ex.Message, "提示");
  659. ultgridManual.ActiveCell.Value = "";
  660. }
  661. }
  662. }
  663. private void ultgridProcess_InitializeLayout(object sender, InitializeLayoutEventArgs e)
  664. {
  665. }
  666. }
  667. }