FrmPlanMaterialDbk.cs 33 KB

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