FrmPlanMaterialRcl.cs 32 KB

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