FrmPlanMaterialJgx.cs 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877
  1. using Core.Mes.Client.Comm.Control;
  2. using Core.Mes.Client.Comm.Format;
  3. using Core.Mes.Client.Comm.Server;
  4. using Core.Mes.Client.Comm.Tool;
  5. using Core.StlMes.Client.PlnSaleOrd.BaseMethod;
  6. using Core.StlMes.Client.PlnSaleOrd.工序排产.entity;
  7. using Core.StlMes.Client.PlnSaleOrd.炼钢计划;
  8. using Core.StlMes.Client.PlnSaleOrd.炉计划.Entity;
  9. using Core.StlMes.Client.PlnSaleOrd.炉计划.Tool;
  10. using CoreFS.CA06;
  11. using Infragistics.Win;
  12. using Infragistics.Win.UltraWinEditors;
  13. using Infragistics.Win.UltraWinGrid;
  14. using System;
  15. using System.Collections;
  16. using System.Collections.Generic;
  17. using System.ComponentModel;
  18. using System.Data;
  19. using System.Drawing;
  20. using System.Linq;
  21. using System.Text;
  22. using System.Windows.Forms;
  23. namespace Core.StlMes.Client.PlnSaleOrd.炉计划
  24. {
  25. public partial class FrmPlanMaterialJgx : FrmBase
  26. {
  27. private OpeBase _ob;
  28. private string _userName;
  29. private string _proPlanId;
  30. private string _gxPlanNo;
  31. private string cic;
  32. private string cicyL;
  33. private string desginKey;
  34. private string indexSeq;
  35. private string outMaterialNo;
  36. private string plineCode;
  37. private string inMaterialNo;
  38. private string _exeStatus;
  39. private string wholeBacklogDesc;
  40. public DataRow CurrentChem { get; private set; }
  41. private bool flag = false;
  42. public bool Flag
  43. {
  44. get { return flag; }
  45. set { flag = value; }
  46. }
  47. public FrmPlanMaterialJgx(string proPlanId, string gxPlanNo, string userName, OpeBase ob, string exeStatus)
  48. {
  49. InitializeComponent();
  50. _ob = ob;
  51. _userName = userName;
  52. _proPlanId = proPlanId;
  53. _gxPlanNo = gxPlanNo;
  54. _exeStatus = exeStatus;
  55. CurrentChem = null;
  56. this.IsLoadUserView = true;
  57. }
  58. protected override void OnLoad(EventArgs e)
  59. {
  60. base.OnLoad(e);
  61. entityGrid1.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False;
  62. ulgridElement.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False;
  63. }
  64. private void FrmPlanMaterialJgx_Load(object sender, EventArgs e)
  65. {
  66. EntityHelper.ShowGridCaption<PlnOrderJgxSOEntity>(entityGrid1.DisplayLayout.Bands[0]);
  67. BaseHelper.setOtherColumnReadOnly(entityGrid1, new string[] {});
  68. BaseHelper.InitCellPosition(entityGrid1, new string[] { "GxPlanNo", "OrderSeq", "DeliveryNo", "Outdiameter", "Wallthick", "LengthmaxIn", "LengthminIn", "LengthIn", "Aimlength", "InWeightS", "InNumS", "WeigthS",
  69. "NumS", "MatchWtIn", "MatchNumIn", "GxProSeq", "PlanUsetime", "BatchedWt", "BatchedNum", "Finishweight", "Finishnum", "AddWtIn", "AddNumIn", "ProcessingCost", "TotalCost"
  70. ,"FinishWgt","UnfinishWgt","UnfinishNum","OutputNum"});
  71. //设置列头名称
  72. EntityHelper.ShowGridCaption<MatBcMEntityDbk>(ultraGridChoose.DisplayLayout.Bands[0]);
  73. BaseHelper.setOtherColumnReadOnly(ultraGridChoose, new string[] { "CHC", "TakeCount"});
  74. BaseHelper.InitCellPosition(ultraGridChoose, new string[] { "TakeCount", "TakeWeight", "ActDimater", "ActHeight", "ActLen", "ActLenMin", "ActLenMax", "ActCount", "ActWeight", "ActTheoryWeight" });
  75. BaseHelper.GridColumnSum(ultraGridChoose, new string[] { "TakeWeight", "ActWeight", "ActTheoryWeight" });
  76. BaseHelper.GridColumnCount(ultraGridChoose, new string[] { "TakeCount", "ActCount" });
  77. BaseHelper.setUltraGridColumnMaxInput(ultraGridChoose, new string[] { "TakeWeight", "ActTheoryWeight", "ActWeight" });
  78. BaseHelper.setUltraGridColumnBits(ultraGridChoose, new string[] { "TakeCount", "ActCount"});
  79. BaseHelper.setColumnBackColor(ultraGridChoose, new string[] { "TakeCount",
  80. "SpecCic"});
  81. StoveHelper.ForbidSort(ulgridElement);
  82. ultraGridChoose.DisplayLayout.Bands[0].Columns["SpecCic"].Style = Infragistics.Win.UltraWinGrid.ColumnStyle.EditButton;
  83. QueryPlanZg();
  84. }
  85. private double minLengthRing = 0;
  86. private void QueryPlanZg()
  87. {
  88. List<PlnOrderJgxSOEntity> listSource = EntityHelper.GetData<PlnOrderJgxSOEntity>("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryJgx.getPlnOrderRcl", new object[] { _proPlanId, _gxPlanNo }, _ob);
  89. plnOrderJgxSOEntityBindingSource.DataSource = listSource;
  90. GridHelper.RefreshAndAutoSize(entityGrid1);
  91. }
  92. private void ultraToolbarsManager1_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
  93. {
  94. switch (e.Tool.Key)
  95. {
  96. case "Query":
  97. Query();
  98. break;
  99. case "Liku": //利库
  100. Liku();
  101. break;
  102. case"LikuB":
  103. likuB();
  104. break;
  105. case "Monomer": // 脱单
  106. Monomer();
  107. break;
  108. case "Close":
  109. this.Close();
  110. break;
  111. }
  112. }
  113. /// <summary>
  114. /// 查询
  115. /// </summary>
  116. private void Query()
  117. {
  118. string surplusflag = "";
  119. List<MatBcMEntityDbk> listSourceM = null;
  120. if (chcLen.Checked)
  121. {
  122. listSourceM = EntityHelper.GetData<MatBcMEntityDbk>
  123. ("com.steering.pss.plnsaleord.planStove.FrmPlanMaterialJgx.queryMaterial1", new object[] { inMaterialNo, "G", _proPlanId, _gxPlanNo, wholeBacklogDesc, this.entityGrid1.ActiveRow.Cells["PlineCode"].Text }, _ob);
  124. }
  125. else
  126. {
  127. listSourceM = EntityHelper.GetData<MatBcMEntityDbk>
  128. ("com.steering.pss.plnsaleord.planStove.FrmPlanMaterialJgx.queryMaterial", new object[] { inMaterialNo, "G", _proPlanId, _gxPlanNo, wholeBacklogDesc,this.entityGrid1.ActiveRow.Cells["PlineCode"].Text }, _ob);
  129. }
  130. matBcMEntityDbkBindingSource.DataSource = listSourceM;
  131. //foreach (UltraGridRow item in ultraGridChoose.Rows)
  132. //{
  133. //}
  134. }
  135. /// <summary>
  136. /// 利库
  137. /// </summary>
  138. private void Liku()
  139. {
  140. //UltraGridRow ugr=ultraGridDbks.ActiveRow;
  141. //if (ugr.Cells["ReallWt"].Value.ToString().Equals("0"))
  142. //{
  143. // //MessageUtil.ShowTips("待炼支吨为零,不能利库?");
  144. // if (MessageUtil.ShowYesNoAndQuestion("待炼支吨为零,是否继续利库?") == DialogResult.No)
  145. // {
  146. // return;
  147. // }
  148. //}
  149. this.ultraGridChoose.UpdateData();
  150. if (!_exeStatus.Equals("计划") && !_exeStatus.Equals("生产中"))
  151. {
  152. MessageUtil.ShowTips("订单生产完成或关闭,不能利库?");
  153. return;
  154. }
  155. UltraGridRow row = ultraGridChoose.ActiveRow;
  156. UltraGridRow plnJgxRow = entityGrid1.ActiveRow;
  157. if(plnJgxRow == null)
  158. {
  159. return;
  160. }
  161. if (row == null) return;
  162. int count = 0;
  163. ArrayList list = new ArrayList();
  164. double wt = 0;
  165. foreach (UltraGridRow urg in ultraGridChoose.Rows)
  166. {
  167. ArrayList list1 = new ArrayList();
  168. if (Convert.ToBoolean(urg.Cells["CHC"].Text) == true)
  169. {
  170. count++;
  171. //if (urg.Cells["HangingFlag"].Text.ToString().Equals("是"))
  172. ////&& urg.Cells["CutYuLong"].Text.ToString().Equals("0"))并且切坯余长为零,
  173. //{
  174. // MessageUtil.ShowTips("你选择的管坯物料已生成实际炉计划,不能利库。如需利库,请先删除炉计划!");
  175. // return;
  176. //}
  177. if (!urg.Cells["UndProOrderId"].Text.ToString().Equals("") && !urg.Cells["UndProOrderId"].Text.ToString().Equals(_proPlanId + "/" + _gxPlanNo))
  178. {
  179. MessageUtil.ShowTips("你选择的物料已分配给其他加工订单,不能利库。如需利库,请先脱单!");
  180. return;
  181. }
  182. //if (!urg.Cells["JudgeResult"].Text.ToString().Equals("合格") || !urg.Cells["JudgeResult"].Text.ToString().Equals("合同内合格"))
  183. //{
  184. // MessageUtil.ShowTips("你选择的管坯物料判定不是合格的炉批,不能利库!");
  185. // return;
  186. //}
  187. if (plnJgxRow.Cells["BlCraftNo"].Text != "" && urg.Cells["CrafNo"].Text != "")
  188. {
  189. if (!plnJgxRow.Cells["BlCraftNo"].Text.Contains(urg.Cells["CrafNo"].Text.Substring(0, urg.Cells["CrafNo"].Text.IndexOf("-"))))
  190. {
  191. MessageUtil.ShowTips("库存执行的备料工艺不存在加工订单备料工艺集合,不允许利库!");
  192. return;
  193. }
  194. }
  195. wt += Double.Parse(urg.Cells["TakeWeight"].Value.ToString());
  196. list1.Add(urg.Cells["JudgeStoveNo"].Text.ToString());
  197. list1.Add(urg.Cells["BatchNo"].Value.ToString().ToUpper());
  198. list1.Add(urg.Cells["BatchGroudNo"].Value.ToString());
  199. list1.Add(urg.Cells["MaterialNo"].Value.ToString());
  200. list1.Add(urg.Cells["TakeCount"].Value.ToString());
  201. list1.Add(urg.Cells["UndProOrderId"].Text.ToString());
  202. list1.Add(urg.Cells["OnProOrderId"].Value.ToString());
  203. string specCic = urg.Cells["SpecCic"].Text.ToString();
  204. if (specCic.Equals(""))
  205. {
  206. string gradeName = urg.Cells["Gradename"].Text.ToString();
  207. string cic = urg.Cells["Cic"].Text.ToString();
  208. UltraGridRow rowCic = entityGrid3.ActiveRow;
  209. if (rowCic != null)
  210. {
  211. int countCic = 0;
  212. foreach (UltraGridRow item in entityGrid3.Rows)
  213. {
  214. if (item.Cells["GRADENAME"].Text.ToString().Equals(gradeName) && item.Cells["CIC"].Text.ToString().Equals(cic))
  215. {
  216. countCic++;
  217. }
  218. }
  219. if (cic.Equals(""))//countCic == 0 &&
  220. {
  221. MessageUtil.ShowTips("库存CIC在订单炼钢CIC集合里没有,请指定CIC!");
  222. return;
  223. }
  224. }
  225. }
  226. if (!specCic.Equals(""))
  227. {
  228. list1.Add(urg.Cells["SpecCic"].Text.ToString());
  229. }
  230. else
  231. {
  232. list1.Add(urg.Cells["Cic"].Text.ToString());
  233. }
  234. list1.Add(urg.Cells["ActLen"].Value.ToString3());
  235. list1.Add(urg.Cells["StorageNo"].Text);
  236. list1.Add(urg.Cells["PlineCode"].Text);
  237. list.Add(list1);
  238. }
  239. }
  240. if (count == 0)
  241. {
  242. MessageUtil.ShowTips("请选择物料信息");
  243. return;
  244. }
  245. //if (wt - Double.Parse(ugr.Cells["ReallWt"].Value.ToString()) > 0)
  246. //{
  247. // MessageUtil.ShowTips("你选择要利库的利库吨不能大于待冶炼吨!");
  248. // return;
  249. //}
  250. string lenFalg = "0";//不分组
  251. if (chcLen.Checked)
  252. {
  253. lenFalg = "1";//分组
  254. }
  255. if (MessageUtil.ShowYesNoAndQuestion("是否确认利库?") ==
  256. DialogResult.No)
  257. return;
  258. PlanComm.WaitFromOpen(this.Cursor);
  259. CoreClientParam ccp = new CoreClientParam();
  260. ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmPlanMaterialJgx";
  261. ccp.MethodName = "doAddLibrary";
  262. ccp.ServerParams = new object[] { list, this.UserInfo.GetUserName(), _proPlanId, _gxPlanNo,lenFalg };
  263. ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  264. PlanComm.WaitFromColse(this.Cursor);
  265. if (ccp.ReturnCode == -1) return;
  266. MessageUtil.ShowTips(ccp.ReturnInfo);
  267. if (ccp.ReturnInfo.Equals("利库成功!"))
  268. {
  269. QueryPlanZg();
  270. Flag = true;
  271. }
  272. }
  273. /// <summary>
  274. /// 利库利备料合同
  275. /// </summary>
  276. private void likuB()
  277. {
  278. this.ultraGridChoose.UpdateData();
  279. if (!_exeStatus.Equals("计划") && !_exeStatus.Equals("生产中"))
  280. {
  281. MessageUtil.ShowTips("订单生产完成或关闭,不能利库?");
  282. return;
  283. }
  284. UltraGridRow row = ultraGridChoose.ActiveRow;
  285. if (row == null) return;
  286. int count = 0;
  287. ArrayList list = new ArrayList();
  288. double wt = 0;
  289. PlnOrderJgxSEntity plOrder = (PlnOrderJgxSEntity)this.entityGrid1.ActiveRow.ListObject;
  290. if (plOrder.OrderSource != "备料需求" && plOrder.OrderSource != "排产补量")
  291. {
  292. MessageUtil.ShowTips("只有利库短节备料合同才能使用此功能!");
  293. return;
  294. }
  295. string plorderEntity = JSONFormat.Format(plOrder);
  296. foreach (UltraGridRow urg in ultraGridChoose.Rows)
  297. {
  298. ArrayList list1 = new ArrayList();
  299. if (Convert.ToBoolean(urg.Cells["CHC"].Text) == true)
  300. {
  301. count++;
  302. if (!urg.Cells["UndProOrderId"].Text.ToString().Equals("") && !urg.Cells["UndProOrderId"].Text.ToString().Equals(_proPlanId + "/" + _gxPlanNo))
  303. {
  304. MessageUtil.ShowTips("你选择的物料已分配给其他加工订单,不能利库。如需利库,请先脱单!");
  305. return;
  306. }
  307. wt += Double.Parse(urg.Cells["TakeWeight"].Value.ToString());
  308. list1.Add(urg.Cells["JudgeStoveNo"].Text.ToString());
  309. list1.Add(urg.Cells["BatchNo"].Value.ToString());
  310. list1.Add(urg.Cells["BatchGroudNo"].Value.ToString());
  311. list1.Add(urg.Cells["MaterialNo"].Value.ToString());
  312. list1.Add(urg.Cells["TakeCount"].Value.ToString());
  313. list1.Add(urg.Cells["UndProOrderId"].Text.ToString());
  314. list1.Add(urg.Cells["OnProOrderId"].Value.ToString());
  315. string specCic = urg.Cells["SpecCic"].Text.ToString();
  316. if (specCic.Equals(""))
  317. {
  318. string gradeName = urg.Cells["Gradename"].Text.ToString();
  319. string cic = urg.Cells["Cic"].Text.ToString();
  320. UltraGridRow rowCic = entityGrid3.ActiveRow;
  321. if (rowCic != null)
  322. {
  323. int countCic = 0;
  324. foreach (UltraGridRow item in entityGrid3.Rows)
  325. {
  326. if (item.Cells["GRADENAME"].Text.ToString().Equals(gradeName) && item.Cells["CIC"].Text.ToString().Equals(cic))
  327. {
  328. countCic++;
  329. }
  330. }
  331. if (cic.Equals(""))//countCic == 0 &&
  332. {
  333. MessageUtil.ShowTips("库存CIC在订单炼钢CIC集合里没有,请指定CIC!");
  334. return;
  335. }
  336. }
  337. }
  338. if (!specCic.Equals(""))
  339. {
  340. list1.Add(urg.Cells["SpecCic"].Text.ToString());
  341. }
  342. else
  343. {
  344. list1.Add(urg.Cells["Cic"].Text.ToString());
  345. }
  346. list1.Add(urg.Cells["ActLen"].Value.ToString());
  347. list1.Add(urg.Cells["PlineCode"].Value.ToString());
  348. list1.Add(urg.Cells["ActLenMin"].Value.ToString());
  349. list1.Add(urg.Cells["ActLenMax"].Value.ToString());
  350. list1.Add(urg.Cells["StorageNo"].Value.ToString());
  351. list.Add(list1);
  352. }
  353. }
  354. if (count == 0)
  355. {
  356. MessageUtil.ShowTips("请选择物料信息");
  357. return;
  358. }
  359. string lenFalg = "0";//不分组
  360. if (chcLen.Checked)
  361. {
  362. lenFalg = "1";//分组
  363. }
  364. if (MessageUtil.ShowYesNoAndQuestion("是否确认利库?") ==
  365. DialogResult.No)
  366. return;
  367. PlanComm.WaitFromOpen(this.Cursor);
  368. CoreClientParam ccp = new CoreClientParam();
  369. ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmPlanMaterialJgx";
  370. ccp.MethodName = "doAddLibraryB";
  371. ccp.ServerParams = new object[] { list, this.UserInfo.GetUserName(), _proPlanId, _gxPlanNo, lenFalg, plorderEntity };
  372. ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  373. PlanComm.WaitFromColse(this.Cursor);
  374. if (ccp.ReturnCode == -1) return;
  375. MessageUtil.ShowTips(ccp.ReturnInfo);
  376. if (ccp.ReturnInfo.Equals("利库成功!"))
  377. {
  378. QueryPlanZg();
  379. Flag = true;
  380. }
  381. }
  382. /// <summary>
  383. /// 脱单
  384. /// </summary>
  385. private void Monomer()
  386. {
  387. UltraGridRow row = ultraGridChoose.ActiveRow;
  388. if (row == null) return;
  389. int count = 0;
  390. ArrayList list = new ArrayList();
  391. foreach (UltraGridRow urg in ultraGridChoose.Rows)
  392. {
  393. ArrayList list1 = new ArrayList();
  394. if (Convert.ToBoolean(urg.Cells["CHC"].Text) == true)
  395. {
  396. count++;
  397. if (urg.Cells["UndProOrderId"].Text.ToString().Equals(""))
  398. {
  399. MessageUtil.ShowTips("你选择的物料未分配给其他加工订单,不能脱单!");
  400. return;
  401. }
  402. //if (urg.Cells["HangingFlag"].Text.ToString().Equals("是"))
  403. //{
  404. // MessageUtil.ShowTips("你选择的管坯物料已生成实际炉计划,不能脱单。如需脱单,请先删除炉计划!");
  405. // return;
  406. //}
  407. list1.Add(urg.Cells["JudgeStoveNo"].Text.ToString());
  408. list1.Add(urg.Cells["BatchNo"].Value.ToString());
  409. list1.Add(urg.Cells["BatchGroudNo"].Value.ToString());
  410. list1.Add(urg.Cells["MaterialNo"].Value.ToString());
  411. list1.Add(urg.Cells["TakeCount"].Value.ToString());
  412. list1.Add(urg.Cells["UndProOrderId"].Text.ToString());
  413. list1.Add(urg.Cells["PlineCode"].Text);
  414. list.Add(list1);
  415. }
  416. }
  417. if (count == 0)
  418. {
  419. MessageUtil.ShowTips("请选择物料信息");
  420. return;
  421. }
  422. PlanComm.WaitFromOpen(this.Cursor);
  423. CoreClientParam ccp = new CoreClientParam();
  424. ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmPlanMaterialJgx";
  425. ccp.MethodName = "doDeleteMonomer";
  426. ccp.ServerParams = new object[] { list, this.UserInfo.GetUserName() };
  427. ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  428. PlanComm.WaitFromColse(this.Cursor);
  429. if (ccp.ReturnCode == -1) return;
  430. MessageUtil.ShowTips(ccp.ReturnInfo);
  431. if (ccp.ReturnInfo.Equals("脱单成功!"))
  432. {
  433. Query();
  434. Flag = true;
  435. }
  436. }
  437. private void ultraGridChoose_AfterRowActivate(object sender, EventArgs e)
  438. {
  439. UltraGridRow row = ultraGridChoose.ActiveRow;
  440. if (row == null) return;
  441. string gradeName = row.Cells["Gradename"].Text.ToString();
  442. entityGrid3.UpdateData();
  443. DataRow[] datarows = dtCic.Select("GRADENAME = '" + gradeName + "'");
  444. DataTable tab = StoveHelper.ToDataTable(datarows);
  445. GridHelper.CopyDataToDatatable(tab, dataTable2, true);
  446. GridHelper.RefreshAndAutoSize(entityGrid3);
  447. foreach (UltraGridRow ugr in entityGrid3.Rows)
  448. {
  449. ugr.Cells["CHC"].Value = "指定";
  450. }
  451. entityGrid3.Refresh();
  452. entityGrid3.Update();
  453. //QueryChenName(row.Cells["JudgeStoveNo"].Text.ToString(), row.Cells["ChemJudgeId"].Text.ToString());
  454. }
  455. private int countMes = 0;
  456. private int countStov = 0;
  457. /// <summary>
  458. /// 查询索引码
  459. /// </summary>
  460. private void QueryChenName(string cudgeStoveNo, string chemJudgeId)
  461. {
  462. DataTable InternalStandard = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryZg.getStlChemicalStd",
  463. new object[] { cic, desginKey, indexSeq }, _ob);
  464. dtChem.Rows.Clear();
  465. countMes = 0;
  466. countStov = 0;
  467. foreach (var colums in ulgridElement.DisplayLayout.Bands[0].Columns)
  468. {
  469. colums.Hidden = true;
  470. }
  471. ulgridElement.DisplayLayout.Bands[0].Columns["SAMPLE_NO"].Hidden = false;
  472. ulgridElement.DisplayLayout.Bands[0].Columns["CIC"].Hidden = false;
  473. if (InternalStandard != null)
  474. {
  475. foreach (DataRow dataRow in InternalStandard.Rows)
  476. {
  477. string chemsKey = dataRow["CHEM_NAME"].ToString().Replace(" ", "").Replace("/", "");
  478. if (!dtChem.Columns.Contains(chemsKey.ToUpper()) && !string.IsNullOrEmpty(chemsKey))
  479. {
  480. DataColumn newDc = new DataColumn
  481. {
  482. ColumnName = chemsKey.ToUpper(),
  483. Caption = chemsKey
  484. };
  485. dtChem.Columns.Add(newDc);
  486. }
  487. ulgridElement.DisplayLayout.Bands[0].Columns[chemsKey.ToUpper()].Hidden = false;
  488. }
  489. }
  490. DataTable distinct_object = InternalStandard.DefaultView.ToTable(true, "CIC");
  491. if (distinct_object.Rows.Count <= 0)
  492. {
  493. return;
  494. }
  495. for (int i = 0; i < distinct_object.Rows.Count; i++)
  496. {
  497. DataRow drMax = dtChem.NewRow();
  498. DataRow drMin = dtChem.NewRow();
  499. DataRow drCic = dtChem.NewRow();
  500. string cicChem = distinct_object.Rows[i]["CIC"].ToString();
  501. DataRow[] drs = InternalStandard.Select("CIC='" + cicChem + "'");
  502. if (cicyL.Equals(drs[i][8]))
  503. {
  504. drMax["SAMPLE_NO"] = "冶炼CIC上限";
  505. drMin["SAMPLE_NO"] = "冶炼CIC下限";
  506. }
  507. else
  508. {
  509. drMax["SAMPLE_NO"] = "利库CIC上限";
  510. drMin["SAMPLE_NO"] = "利库CIC下限";
  511. }
  512. drMax["CIC"] = drs[i][8];
  513. drMin["CIC"] = drs[i][8];
  514. if (InternalStandard != null)
  515. {
  516. foreach (DataRow dataRow in InternalStandard.Rows)
  517. {
  518. string columnsName = dataRow["CHEM_NAME"].ToString().ToUpper().Replace(" ", "").Replace("/", "");
  519. drMax[columnsName] = dataRow["STDMAX_SIGN"];//+ dataRow["STDMAX"].ToString()
  520. drMin[columnsName] = dataRow["STDMIN_SIGN"];//+ dataRow["STDMIN"].ToString()
  521. ulgridElement.DisplayLayout.Bands[0].Columns[columnsName].Tag = dataRow["CHEM_FORMULA"];
  522. }
  523. }
  524. dtChem.Rows.Add(drMax);
  525. dtChem.Rows.Add(drMin);
  526. countMes += 2;
  527. }
  528. //string[] chemJudgeIdAll = chemJudgeId.Split(',');
  529. //chemJudgeId = string.Join(",", chemJudgeIdAll);
  530. DataTable dtData = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryZg.getStlChemicalData",
  531. new object[] { cudgeStoveNo, chemJudgeId }, _ob);
  532. if (dtData != null && dtData.Rows.Count > 0)
  533. {
  534. CurrentChem = dtData.Rows[0];
  535. foreach (DataRow dataRow in dtData.Rows)
  536. {
  537. foreach (DataColumn dc in dtData.Columns)
  538. {
  539. string columnsName = dc.ColumnName;
  540. if (columnsName.Equals("SAMPLE_NO")) continue;
  541. if (!dtChem.Columns.Contains(columnsName.ToUpper().Replace("ASN", "AS")) &&
  542. dataRow[columnsName] != null &&
  543. !string.IsNullOrEmpty((dataRow[columnsName].ToString())))
  544. {
  545. DataColumn newDc = new DataColumn();
  546. newDc.ColumnName = columnsName.ToUpper().Replace("ASN", "AS");
  547. newDc.Caption = columnsName;
  548. dtChem.Columns.Add(newDc);
  549. }
  550. }
  551. DataRow tempRow = dtChem.NewRow();
  552. //tempRow["CICLK"] = dataRow["STOVE_NO"];
  553. foreach (DataColumn DataColumn in dtData.Columns)
  554. {
  555. if (dtChem.Columns.Contains(DataColumn.ColumnName.Replace("ASN", "AS")))
  556. {
  557. tempRow[DataColumn.ColumnName.Replace("ASN", "AS")] = dataRow[DataColumn.ColumnName];
  558. if (dataRow[DataColumn.ColumnName] != null &&
  559. !string.IsNullOrEmpty(dataRow[DataColumn.ColumnName].ToString()))
  560. {
  561. ulgridElement.DisplayLayout.Bands[0].Columns[DataColumn.ColumnName.Replace("ASN", "AS")]
  562. .Hidden = false;
  563. ulgridElement.DisplayLayout.Bands[0].Columns["ASSAYNO"].Hidden = true;
  564. ulgridElement.DisplayLayout.Bands[0].Columns["STOVE_NO"].Hidden = true;
  565. }
  566. }
  567. }
  568. foreach (UltraGridColumn column in ulgridElement.DisplayLayout.Bands[0].Columns)
  569. {
  570. if (column.Hidden || column.Tag == null || string.IsNullOrEmpty(column.Tag.ToString())) continue;
  571. string ChemFormula = column.Tag.ToString().ToUpper();
  572. foreach (DataColumn DataColumn in dtData.Columns)
  573. {
  574. if (dataRow[DataColumn.ColumnName] == null) continue;
  575. ChemFormula = ChemFormula.Replace(DataColumn.ColumnName.Replace("ASN", "AS"),
  576. dataRow[DataColumn.ColumnName].ToString());
  577. }
  578. try
  579. {
  580. tempRow[column.Key] = Math.Round(double.Parse(new DataTable().Compute(ChemFormula, null).ToString()), 4);
  581. }
  582. catch (Exception)
  583. {
  584. tempRow[column.Key] = null;
  585. }
  586. }
  587. tempRow["SAMPLE_NO"] = dataRow["ASSAYNO"];
  588. tempRow["CIC"] = dataRow["STOVE_NO"];
  589. dtChem.Rows.Add(tempRow);
  590. countStov++;
  591. }
  592. }
  593. ulgridElement.Refresh();
  594. BaseHelper.setOtherColumnReadOnly(ulgridElement, new[] { "Check" });
  595. GridHelper.RefreshAndAutoSize(ulgridElement);
  596. BaseHelper.ForbidSort(ulgridElement);
  597. ulgridElement.DisplayLayout.Bands[0].Columns["CIC"].MergedCellStyle = MergedCellStyle.Always;
  598. ulgridElement.DisplayLayout.Bands[0].Columns[0].CellAppearance.FontData.Bold = DefaultableBoolean.True;
  599. if (ulgridElement.Rows.Count > countMes)
  600. {
  601. ulgridElement.Rows[countMes].Activate();
  602. }
  603. }
  604. private void ulgridElement_InitializeRow(object sender, InitializeRowEventArgs e)
  605. {
  606. GridActiveDele();
  607. }
  608. private void ultraGridChoose_CellChange(object sender, CellEventArgs e)
  609. {
  610. UltraGridRow row = ultraGridChoose.ActiveRow;
  611. ultraGridChoose.UpdateData();
  612. //输入支数
  613. if (e.Cell.Column.Key.Equals("TakeCount"))
  614. {
  615. if (e.Cell.Row.Cells["TakeCount"].Value == null)
  616. {
  617. row.Cells["TakeCount"].Value = row.Cells["ActCount"].Value.ToString();
  618. }
  619. else
  620. {
  621. string actLen = e.Cell.Row.Cells["TakeCount"].Value.ToString();
  622. if (!StringUtil.IsInt(actLen) || actLen == "0")
  623. {
  624. e.Cell.Row.Cells["TakeWeight"].Value = 0;
  625. }
  626. else
  627. {
  628. //查询库存重量
  629. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmPlanMaterialDbk.queryMatWeigth",
  630. new object[] { row.Cells["JudgeStoveNo"].Value.ToString(), row.Cells["BatchNo"].Value.ToString(), row.Cells["BatchGroudNo"].Value.ToString(), inMaterialNo, actLen }, _ob);
  631. if (dt.Rows.Count > 0)
  632. {
  633. e.Cell.Row.Cells["TakeWeight"].Value = dt.Rows[0]["ACT_WEIGHT"].ToString();
  634. }
  635. }
  636. }
  637. }
  638. int xzNum = 0;
  639. double xzWt = 0;
  640. ultraGroupBox2.Text = "管坯物料信息";
  641. foreach (UltraGridRow ugr in ultraGridChoose.Rows)
  642. {
  643. if (Convert.ToBoolean(ugr.Cells["CHC"].Text) == true)
  644. {
  645. xzNum += int.Parse(ugr.Cells["TakeCount"].Value.ToString());
  646. xzWt += double.Parse(ugr.Cells["TakeWeight"].Value.ToString());
  647. }
  648. }
  649. ultraGroupBox2.Text = ultraGroupBox2.Text + " 支:" + xzNum + " 吨:" + xzWt.ToString("f3");
  650. }
  651. private int splitterDistance = 0;
  652. private void ultraExpandableGroupBox1_ExpandedStateChanged(object sender, EventArgs e)
  653. {
  654. if (ultraExpandableGroupBox1.Expanded == false)
  655. {
  656. this.splitContainer1.SplitterDistance = splitContainer1.Size.Height - 26;
  657. }
  658. else
  659. {
  660. this.splitContainer1.SplitterDistance = splitterDistance == 0 ? splitContainer1.Size.Height / 2 : splitterDistance;
  661. }
  662. }
  663. private void GridActiveDele()
  664. {
  665. UltraGridRow row = ulgridElement.ActiveRow;
  666. if (row == null) return;
  667. if (row.Index < countMes) return;
  668. //foreach (UltraGridRow row in ulgridElement.Rows)
  669. //{
  670. foreach (var Cell in row.Cells)
  671. {
  672. string ColumnsName = Cell.Column.Key;
  673. if (ColumnsName.Equals("SAMPLE_NO")) continue;
  674. if (ColumnsName.Equals("CIC")) continue;
  675. if (ColumnsName.Equals("STOVE_NO")) continue;
  676. if (ColumnsName.Equals("ASSAYNO")) continue;
  677. for (int i = 0; i < countMes - 1; i = i + 2)
  678. {
  679. int Result = SteelManagementHelper.CompareChem(Cell.Value, ulgridElement.Rows[i].Cells[ColumnsName].Value,
  680. ulgridElement.Rows[i + 1].Cells[ColumnsName].Value);
  681. if (Result == 2) { Cell.Appearance.ResetBackColor(); }
  682. else if (Result > 0)
  683. {
  684. ulgridElement.Rows[i].Cells[ColumnsName].Appearance.BackColor = Color.Red;
  685. ulgridElement.Rows[i + 1].Cells[ColumnsName].Appearance.BackColor = Color.Red;
  686. }
  687. else if (Result < 0)
  688. {
  689. ulgridElement.Rows[i].Cells[ColumnsName].Appearance.BackColor = Color.Yellow;
  690. ulgridElement.Rows[i + 1].Cells[ColumnsName].Appearance.BackColor = Color.Yellow;
  691. }
  692. else
  693. {
  694. ulgridElement.Rows[i].Cells[ColumnsName].Appearance.BackColor = Color.LightGreen;
  695. ulgridElement.Rows[i + 1].Cells[ColumnsName].Appearance.BackColor = Color.LightGreen;
  696. //Cell.Appearance.BackColor = Color.LightGreen;
  697. }
  698. }
  699. //}
  700. }
  701. }
  702. private void ulgridElement_AfterRowActivate(object sender, EventArgs e)
  703. {
  704. try
  705. {
  706. this.Cursor = Cursors.WaitCursor;
  707. ulgridElement.BeginUpdate();
  708. DataRowView dataRow = (DataRowView)ulgridElement.ActiveRow.ListObject;
  709. if (dataRow["SAMPLE_NO"].ToString().Contains("限"))
  710. {
  711. return;
  712. }
  713. GridActiveDele();
  714. }
  715. finally
  716. {
  717. ulgridElement.EndUpdate();
  718. this.Cursor = Cursors.Default;
  719. }
  720. }
  721. /// <summary>
  722. /// 托选
  723. /// </summary>
  724. /// <param name="sender"></param>
  725. /// <param name="e"></param>
  726. private void ultraGridChoose_AfterSelectChange(object sender, AfterSelectChangeEventArgs e)
  727. {
  728. foreach (UltraGridRow uRow in ultraGridChoose.Selected.Rows)
  729. {
  730. if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow))
  731. {
  732. uRow.Cells["CHC"].Value = true;
  733. }
  734. }
  735. int xzNum = 0;
  736. double xzWt = 0;
  737. ultraGroupBox2.Text = "管坯物料信息";
  738. foreach (UltraGridRow ugr in ultraGridChoose.Rows)
  739. {
  740. if (Convert.ToBoolean(ugr.Cells["CHC"].Text) == true)
  741. {
  742. xzNum += int.Parse(ugr.Cells["TakeCount"].Value.ToString());
  743. xzWt += double.Parse(ugr.Cells["TakeWeight"].Value.ToString());
  744. }
  745. }
  746. ultraGroupBox2.Text = ultraGroupBox2.Text + " 支:" + xzNum + " 吨:" + xzWt.ToString("f3");
  747. }
  748. private void entityGrid1_AfterRowActivate(object sender, EventArgs e)
  749. {
  750. UltraGridRow row = entityGrid1.ActiveRow;
  751. if (row == null) return;
  752. inMaterialNo = row.Cells["InwlId"].Value.ToString();
  753. wholeBacklogDesc = row.Cells["WholeBacklogDesc"].Value.ToString();
  754. string ordLnDlyPk = row.Cells["OrdLnDlyPk"].Value.ToString();
  755. string indexSeq = row.Cells["IndexSeq"].Value.ToString();
  756. string carftSeq = row.Cells["CraftSeq"].Value.ToString();
  757. string bom = row.Cells["Bom"].Value.ToString();
  758. QueryCic(ordLnDlyPk, indexSeq, carftSeq);
  759. QueryBom(ordLnDlyPk, indexSeq, carftSeq, bom);
  760. Query();
  761. }
  762. DataTable dtCic = new DataTable();
  763. /// <summary>
  764. /// 查询工艺评审CIC
  765. /// </summary>
  766. /// <param name="ordLnDlyPk"></param>
  767. /// <param name="indexSeq"></param>
  768. /// <param name="carftSeq"></param>
  769. private void QueryCic(string ordLnDlyPk, string indexSeq, string carftSeq)
  770. {
  771. dtCic = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.StoveHelper.queryCic", new object[] { ordLnDlyPk, indexSeq, carftSeq }, _ob);
  772. GridHelper.CopyDataToDatatable(dtCic, dataTable2, true);
  773. GridHelper.RefreshAndAutoSize(entityGrid3);
  774. foreach (UltraGridRow ugr in entityGrid3.Rows)
  775. {
  776. ugr.Cells["CHC"].Value = "指定";
  777. }
  778. }
  779. /// <summary>
  780. /// 查询符合条件的投入产出物料Bom
  781. /// </summary>
  782. private void QueryBom(string ordLnDlyPk, string indexSeq, string carftSeq, string bom)
  783. {
  784. string inMaterialNoBom = "";
  785. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmPlanMaterialDbk.queryBaseMaterial", new object[] { ordLnDlyPk, indexSeq, carftSeq, "G" }, _ob);
  786. GridHelper.CopyDataToDatatable(dt, dataTable1, true);
  787. GridHelper.RefreshAndAutoSize(entityGrid2);
  788. if (dt.Rows.Count <= 0) return;
  789. foreach (UltraGridRow item in entityGrid2.Rows)
  790. {
  791. inMaterialNoBom += item.Cells["IN_MATERIAL_NO"].Text.ToString() + ",";
  792. if (item.Cells["IN_MATERIAL_NO"].Text.ToString().Equals(inMaterialNo) && bom.Equals(item.Cells["BOM"].Text.ToString()))
  793. {
  794. item.Appearance.BackColor = Color.Orange;
  795. item.Activate();
  796. }
  797. }
  798. if (!inMaterialNoBom.Equals(""))
  799. {
  800. inMaterialNo = inMaterialNoBom.Substring(0, inMaterialNoBom.Length - 1);
  801. }
  802. }
  803. private void entityGrid3_ClickCellButton(object sender, CellEventArgs e)
  804. {
  805. UltraGridRow row = ultraGridChoose.ActiveRow;
  806. if (row == null) return;
  807. if (e.Cell.Column.Key.Equals("CHC"))
  808. {
  809. UltraGridRow rowCic = entityGrid3.ActiveRow;
  810. if (rowCic == null) return;
  811. row.Cells["SpecCic"].Value = rowCic.Cells["CIC"].Value.ToString();
  812. }
  813. }
  814. private void ultraGridChoose_ClickCellButton(object sender, CellEventArgs e)
  815. {
  816. UltraGridRow row = ultraGridChoose.ActiveRow;
  817. if (row == null) return;
  818. if (e.Cell.Column.Key.Equals("SpecCic"))
  819. {
  820. e.Cell.Row.Cells["SpecCic"].Value = "";
  821. }
  822. }
  823. private void entityGrid2_AfterRowActivate(object sender, EventArgs e)
  824. {
  825. }
  826. }
  827. }