FrmPlanMaterialJg.cs 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692
  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 FrmPlanMaterialJg : 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 codeJgBl;
  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 FrmPlanMaterialJg(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. ultraGridJgs.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False;
  62. ulgridElement.DisplayLayout.Override.AllowRowFiltering = DefaultableBoolean.False;
  63. }
  64. private void FrmPlanMaterialJg_Load(object sender, EventArgs e)
  65. {
  66. EntityHelper.ShowGridCaption<PlnGxJgPropSEntity>(ultraGridJgs.DisplayLayout.Bands[0]);
  67. BaseHelper.setUltraGridColumnMaxInput(ultraGridJgs, new string[] { "GroupBlWtS" });
  68. BaseHelper.InitCellPosition(ultraGridJgs, new string[] { "JgGroupId", "GxPlanNo", "PlanSeqNo", "MinD", "MinH", "AimlengthBl", "AimCutLen", "LengthMin",
  69. "LengthMax", "GroupNumS", "SingleCutNun", "GroupBlNumS", "GroupBlWtS", "MatchnumJg", "MatchwtBl","MatchnumBl","BatchedWt","BatchedNum" ,
  70. "BatchedNumOut","RealBatchedWt","RealBatchedNum","ProducedNum","GroupWtS","StockNumLiku"});
  71. BaseHelper.setOtherColumnReadOnly(ultraGridJgs, new string[] { "CHC" });
  72. //设置列头名称
  73. EntityHelper.ShowGridCaption<MatBcMEntityDbk>(ultraGridChoose.DisplayLayout.Bands[0]);
  74. BaseHelper.setOtherColumnReadOnly(ultraGridChoose, new string[] { "CHC", "TakeCount"});
  75. BaseHelper.InitCellPosition(ultraGridChoose, new string[] { "TakeCount", "TakeWeight", "ActDimater", "ActHeight", "ActLen", "ActLenMin", "ActLenMax", "ActCount", "ActWeight", "ActTheoryWeight" });
  76. BaseHelper.GridColumnSum(ultraGridChoose, new string[] { "TakeWeight", "ActWeight", "ActTheoryWeight" });
  77. BaseHelper.GridColumnCount(ultraGridChoose, new string[] { "TakeCount", "ActCount" });
  78. BaseHelper.setUltraGridColumnMaxInput(ultraGridChoose, new string[] { "TakeWeight", "ActTheoryWeight", "ActWeight" });
  79. BaseHelper.setUltraGridColumnBits(ultraGridChoose, new string[] { "TakeCount", "ActCount"});
  80. BaseHelper.setColumnBackColor(ultraGridChoose, new string[] { "TakeCount"});
  81. StoveHelper.ForbidSort(ulgridElement);
  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<PlnGxJgPropSEntity> listSource = EntityHelper.GetData<PlnGxJgPropSEntity>("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryJg.getPlnOrderDbk", new object[] { _proPlanId, _gxPlanNo }, _ob);
  100. plnOrderJgSOEntityBindingSource.DataSource = listSource;
  101. GridHelper.RefreshAndAutoSize(ultraGridJgs);
  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. UltraGridRow ugr = ultraGridJgs.ActiveRow;
  128. if (ugr == null) return;
  129. string codeJg = ugr.Cells["CodeJg"].Text.ToString();
  130. string steelName = ugr.Cells["Steelname"].Text.ToString();
  131. string steelcode = ugr.Cells["Steelcode"].Text.ToString();
  132. List<MatBcMEntityDbk> listSourceM = EntityHelper.GetData<MatBcMEntityDbk>
  133. ("com.steering.pss.plnsaleord.planStove.FrmPlanMaterialJg.queryMaterialJg", new object[] { inMaterialNo, codeJgBl, codeJg, steelcode,steelName }, _ob);
  134. matBcMEntityDbkBindingSource.DataSource = listSourceM;
  135. string codeBl=ugr.Cells["CodeJgBl"].Text.ToString();
  136. string orderNo=ugr.Cells["OrdLnDlyPk"].Text.ToString();
  137. string magerName=ugr.Cells["BlWlDesc"].Text.ToString();
  138. DataTable ds = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryJg.getJgDim",new object[]{codeJg},_ob);
  139. string actDiMin = ds.Rows[0]["MIN_D_CP"].ToString();
  140. string actNiMax = ds.Rows[0]["MAX_D_CP"].ToString();
  141. foreach (UltraGridRow item in ultraGridChoose.Rows)
  142. {
  143. string codeBlM = item.Cells["CodeJgBl"].Text.ToString();
  144. string orderNoM = item.Cells["ProOrderNo"].Text.ToString();
  145. string magerNameM = item.Cells["MaterialName"].Text.ToString();
  146. string actDim = item.Cells["ActDimater"].Text.ToString2();
  147. string actHe = item.Cells["ActHeight"].Text.ToString2();
  148. //item.Cells["Mark"].Value = "";
  149. //if (codeBlM.Equals(codeBl) && orderNoM.Equals(orderNoM) && magerNameM.Equals(magerName))
  150. //{
  151. // item.Cells["Mark"].Value = "合同相同,备料码相同,物流码相同";
  152. //}
  153. if (orderNoM.Equals(orderNo))
  154. {
  155. item.Cells["Mark"].Value += "合同相同,";
  156. }
  157. if (codeBlM.Equals(codeBl))
  158. {
  159. item.Cells["Mark"].Value += "备料码相同,";
  160. }
  161. if ( magerNameM.Equals(magerName))
  162. {
  163. item.Cells["Mark"].Value += "物料码相同,";
  164. }
  165. if (((double.Parse(actDim) >= double.Parse(actDiMin))) && (double.Parse(actDim) - 2 * double.Parse(actHe) <= double.Parse(actNiMax)))
  166. {
  167. item.Cells["Mark"].Value += "规格可用";
  168. }
  169. }
  170. }
  171. /// <summary>
  172. /// 利库
  173. /// </summary>
  174. private void Liku()
  175. {
  176. //UltraGridRow ugr=ultraGridJgs.ActiveRow;
  177. //if (ugr.Cells["ReallWt"].Value.ToString().Equals("0"))
  178. //{
  179. // //MessageUtil.ShowTips("待炼支吨为零,不能利库?");
  180. // if (MessageUtil.ShowYesNoAndQuestion("待炼支吨为零,是否继续利库?") == DialogResult.No)
  181. // {
  182. // return;
  183. // }
  184. //}
  185. if (!_exeStatus.Equals("计划") && !_exeStatus.Equals("生产中"))
  186. {
  187. MessageUtil.ShowTips("订单生产完成或关闭,不能利库?");
  188. return;
  189. }
  190. UltraGridRow row = ultraGridChoose.ActiveRow;
  191. if (row == null) return;
  192. int count = 0;
  193. ArrayList list = new ArrayList();
  194. double wt = 0;
  195. foreach (UltraGridRow urg in ultraGridChoose.Rows)
  196. {
  197. ArrayList list1 = new ArrayList();
  198. if (Convert.ToBoolean(urg.Cells["CHC"].Text) == true)
  199. {
  200. count++;
  201. //if (urg.Cells["HangingFlag"].Text.ToString().Equals("是"))
  202. ////&& urg.Cells["CutYuLong"].Text.ToString().Equals("0"))并且切坯余长为零,
  203. //{
  204. // MessageUtil.ShowTips("你选择的管坯物料已生成实际炉计划,不能利库。如需利库,请先删除炉计划!");
  205. // return;
  206. //}
  207. if (!urg.Cells["UndProOrderId"].Text.ToString().Equals("") && !urg.Cells["UndProOrderId"].Text.ToString().Equals(_proPlanId + "/" + _gxPlanNo))
  208. {
  209. MessageUtil.ShowTips("你选择的管坯物料已分配给其他接箍订单,不能利库。如需利库,请先脱单!");
  210. return;
  211. }
  212. //if (!urg.Cells["JudgeResult"].Text.ToString().Equals("合格") || !urg.Cells["JudgeResult"].Text.ToString().Equals("合同内合格"))
  213. //{
  214. // MessageUtil.ShowTips("你选择的管坯物料判定不是合格的炉批,不能利库!");
  215. // return;
  216. //}
  217. wt += Double.Parse(urg.Cells["TakeWeight"].Value.ToString());
  218. list1.Add(urg.Cells["JudgeStoveNo"].Text.ToString());
  219. list1.Add(urg.Cells["BatchNo"].Value.ToString());
  220. list1.Add(urg.Cells["BatchGroudNo"].Value.ToString());
  221. list1.Add(urg.Cells["MaterialNo"].Value.ToString());
  222. list1.Add(urg.Cells["TakeCount"].Value.ToString());
  223. list1.Add(urg.Cells["UndProOrderId"].Text.ToString());
  224. list1.Add(urg.Cells["OnProOrderId"].Value.ToString());
  225. list1.Add(urg.Cells["PlineCode"].Text.ToString());
  226. list.Add(list1);
  227. }
  228. }
  229. if (count == 0)
  230. {
  231. MessageUtil.ShowTips("请选择管坯物料信息");
  232. return;
  233. }
  234. //if (wt - Double.Parse(ugr.Cells["ReallWt"].Value.ToString()) > 0)
  235. //{
  236. // MessageUtil.ShowTips("你选择要利库的利库吨不能大于待冶炼吨!");
  237. // return;
  238. //}
  239. if (MessageUtil.ShowYesNoAndQuestion("是否确认利库?") ==
  240. DialogResult.No)
  241. return;
  242. PlanComm.WaitFromOpen(this.Cursor);
  243. CoreClientParam ccp = new CoreClientParam();
  244. ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmPlanMaterialJg";
  245. ccp.MethodName = "doAddLibrary";
  246. ccp.ServerParams = new object[] { list, this.UserInfo.GetUserName(), _proPlanId, _gxPlanNo };
  247. ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  248. PlanComm.WaitFromColse(this.Cursor);
  249. if (ccp.ReturnCode == -1) return;
  250. MessageUtil.ShowTips(ccp.ReturnInfo);
  251. if (ccp.ReturnInfo.Equals("利库成功!"))
  252. {
  253. QueryPlanZg();
  254. Flag = true;
  255. }
  256. }
  257. /// <summary>
  258. /// 脱单
  259. /// </summary>
  260. private void Monomer()
  261. {
  262. UltraGridRow row = ultraGridChoose.ActiveRow;
  263. if (row == null) return;
  264. int count = 0;
  265. ArrayList list = new ArrayList();
  266. foreach (UltraGridRow urg in ultraGridChoose.Rows)
  267. {
  268. ArrayList list1 = new ArrayList();
  269. if (Convert.ToBoolean(urg.Cells["CHC"].Text) == true)
  270. {
  271. count++;
  272. if (urg.Cells["UndProOrderId"].Text.ToString().Equals(""))
  273. {
  274. MessageUtil.ShowTips("你选择的管坯物料未分配给其他接箍订单,不能脱单!");
  275. return;
  276. }
  277. //if (urg.Cells["HangingFlag"].Text.ToString().Equals("是"))
  278. //{
  279. // MessageUtil.ShowTips("你选择的管坯物料已生成实际炉计划,不能脱单。如需脱单,请先删除炉计划!");
  280. // return;
  281. //}
  282. list1.Add(urg.Cells["JudgeStoveNo"].Text.ToString());
  283. list1.Add(urg.Cells["BatchNo"].Value.ToString());
  284. list1.Add(urg.Cells["BatchGroudNo"].Value.ToString());
  285. list1.Add(urg.Cells["MaterialNo"].Value.ToString());
  286. list1.Add(urg.Cells["TakeCount"].Value.ToString());
  287. list1.Add(urg.Cells["UndProOrderId"].Text.ToString());
  288. list.Add(list1);
  289. }
  290. }
  291. if (count == 0)
  292. {
  293. MessageUtil.ShowTips("请选择管坯物料信息");
  294. return;
  295. }
  296. PlanComm.WaitFromOpen(this.Cursor);
  297. CoreClientParam ccp = new CoreClientParam();
  298. ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmPlanMaterialJg";
  299. ccp.MethodName = "doDeleteMonomer";
  300. ccp.ServerParams = new object[] { list, this.UserInfo.GetUserName() };
  301. ccp = _ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  302. PlanComm.WaitFromColse(this.Cursor);
  303. if (ccp.ReturnCode == -1) return;
  304. MessageUtil.ShowTips(ccp.ReturnInfo);
  305. if (ccp.ReturnInfo.Equals("脱单成功!"))
  306. {
  307. Query();
  308. Flag = true;
  309. }
  310. }
  311. private void ultraGridChoose_AfterRowActivate(object sender, EventArgs e)
  312. {
  313. UltraGridRow row = ultraGridChoose.ActiveRow;
  314. if (row == null) return;
  315. QueryChenName(row.Cells["JudgeStoveNo"].Text.ToString(), row.Cells["ChemJudgeId"].Text.ToString());
  316. }
  317. private int countMes = 0;
  318. private int countStov = 0;
  319. /// <summary>
  320. /// 查询索引码
  321. /// </summary>
  322. private void QueryChenName(string cudgeStoveNo, string chemJudgeId)
  323. {
  324. DataTable InternalStandard = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryZg.getStlChemicalStd",
  325. new object[] { cic, desginKey, indexSeq }, _ob);
  326. dtChem.Rows.Clear();
  327. countMes = 0;
  328. countStov = 0;
  329. foreach (var colums in ulgridElement.DisplayLayout.Bands[0].Columns)
  330. {
  331. colums.Hidden = true;
  332. }
  333. ulgridElement.DisplayLayout.Bands[0].Columns["SAMPLE_NO"].Hidden = false;
  334. ulgridElement.DisplayLayout.Bands[0].Columns["CIC"].Hidden = false;
  335. if (InternalStandard != null)
  336. {
  337. foreach (DataRow dataRow in InternalStandard.Rows)
  338. {
  339. string chemsKey = dataRow["CHEM_NAME"].ToString().Replace(" ", "").Replace("/", "");
  340. if (!dtChem.Columns.Contains(chemsKey.ToUpper()) && !string.IsNullOrEmpty(chemsKey))
  341. {
  342. DataColumn newDc = new DataColumn
  343. {
  344. ColumnName = chemsKey.ToUpper(),
  345. Caption = chemsKey
  346. };
  347. dtChem.Columns.Add(newDc);
  348. }
  349. ulgridElement.DisplayLayout.Bands[0].Columns[chemsKey.ToUpper()].Hidden = false;
  350. }
  351. }
  352. DataTable distinct_object = InternalStandard.DefaultView.ToTable(true, "CIC");
  353. if (distinct_object.Rows.Count <= 0)
  354. {
  355. return;
  356. }
  357. for (int i = 0; i < distinct_object.Rows.Count; i++)
  358. {
  359. DataRow drMax = dtChem.NewRow();
  360. DataRow drMin = dtChem.NewRow();
  361. DataRow drCic = dtChem.NewRow();
  362. string cicChem = distinct_object.Rows[i]["CIC"].ToString();
  363. DataRow[] drs = InternalStandard.Select("CIC='" + cicChem + "'");
  364. if (cicyL.Equals(drs[i][8]))
  365. {
  366. drMax["SAMPLE_NO"] = "冶炼CIC上限";
  367. drMin["SAMPLE_NO"] = "冶炼CIC下限";
  368. }
  369. else
  370. {
  371. drMax["SAMPLE_NO"] = "利库CIC上限";
  372. drMin["SAMPLE_NO"] = "利库CIC下限";
  373. }
  374. drMax["CIC"] = drs[i][8];
  375. drMin["CIC"] = drs[i][8];
  376. if (InternalStandard != null)
  377. {
  378. foreach (DataRow dataRow in InternalStandard.Rows)
  379. {
  380. string columnsName = dataRow["CHEM_NAME"].ToString().ToUpper().Replace(" ", "").Replace("/", "");
  381. drMax[columnsName] = dataRow["STDMAX_SIGN"];//+ dataRow["STDMAX"].ToString()
  382. drMin[columnsName] = dataRow["STDMIN_SIGN"];//+ dataRow["STDMIN"].ToString()
  383. ulgridElement.DisplayLayout.Bands[0].Columns[columnsName].Tag = dataRow["CHEM_FORMULA"];
  384. }
  385. }
  386. dtChem.Rows.Add(drMax);
  387. dtChem.Rows.Add(drMin);
  388. countMes += 2;
  389. }
  390. //string[] chemJudgeIdAll = chemJudgeId.Split(',');
  391. //chemJudgeId = string.Join(",", chemJudgeIdAll);
  392. DataTable dtData = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryZg.getStlChemicalData",
  393. new object[] { cudgeStoveNo, chemJudgeId }, _ob);
  394. if (dtData != null && dtData.Rows.Count > 0)
  395. {
  396. CurrentChem = dtData.Rows[0];
  397. foreach (DataRow dataRow in dtData.Rows)
  398. {
  399. foreach (DataColumn dc in dtData.Columns)
  400. {
  401. string columnsName = dc.ColumnName;
  402. if (columnsName.Equals("SAMPLE_NO")) continue;
  403. if (!dtChem.Columns.Contains(columnsName.ToUpper().Replace("ASN", "AS")) &&
  404. dataRow[columnsName] != null &&
  405. !string.IsNullOrEmpty((dataRow[columnsName].ToString())))
  406. {
  407. DataColumn newDc = new DataColumn();
  408. newDc.ColumnName = columnsName.ToUpper().Replace("ASN", "AS");
  409. newDc.Caption = columnsName;
  410. dtChem.Columns.Add(newDc);
  411. }
  412. }
  413. DataRow tempRow = dtChem.NewRow();
  414. //tempRow["CICLK"] = dataRow["STOVE_NO"];
  415. foreach (DataColumn DataColumn in dtData.Columns)
  416. {
  417. if (dtChem.Columns.Contains(DataColumn.ColumnName.Replace("ASN", "AS")))
  418. {
  419. tempRow[DataColumn.ColumnName.Replace("ASN", "AS")] = dataRow[DataColumn.ColumnName];
  420. if (dataRow[DataColumn.ColumnName] != null &&
  421. !string.IsNullOrEmpty(dataRow[DataColumn.ColumnName].ToString()))
  422. {
  423. ulgridElement.DisplayLayout.Bands[0].Columns[DataColumn.ColumnName.Replace("ASN", "AS")]
  424. .Hidden = false;
  425. ulgridElement.DisplayLayout.Bands[0].Columns["ASSAYNO"].Hidden = true;
  426. ulgridElement.DisplayLayout.Bands[0].Columns["STOVE_NO"].Hidden = true;
  427. }
  428. }
  429. }
  430. foreach (UltraGridColumn column in ulgridElement.DisplayLayout.Bands[0].Columns)
  431. {
  432. if (column.Hidden || column.Tag == null || string.IsNullOrEmpty(column.Tag.ToString())) continue;
  433. string ChemFormula = column.Tag.ToString().ToUpper();
  434. foreach (DataColumn DataColumn in dtData.Columns)
  435. {
  436. if (dataRow[DataColumn.ColumnName] == null) continue;
  437. ChemFormula = ChemFormula.Replace(DataColumn.ColumnName.Replace("ASN", "AS"),
  438. dataRow[DataColumn.ColumnName].ToString());
  439. }
  440. try
  441. {
  442. tempRow[column.Key] = Math.Round(double.Parse(new DataTable().Compute(ChemFormula, null).ToString()), 4);
  443. }
  444. catch (Exception)
  445. {
  446. tempRow[column.Key] = null;
  447. }
  448. }
  449. tempRow["SAMPLE_NO"] = dataRow["ASSAYNO"];
  450. tempRow["CIC"] = dataRow["STOVE_NO"];
  451. dtChem.Rows.Add(tempRow);
  452. countStov++;
  453. }
  454. }
  455. ulgridElement.Refresh();
  456. BaseHelper.setOtherColumnReadOnly(ulgridElement, new[] { "Check" });
  457. GridHelper.RefreshAndAutoSize(ulgridElement);
  458. BaseHelper.ForbidSort(ulgridElement);
  459. ulgridElement.DisplayLayout.Bands[0].Columns["CIC"].MergedCellStyle = MergedCellStyle.Always;
  460. ulgridElement.DisplayLayout.Bands[0].Columns[0].CellAppearance.FontData.Bold = DefaultableBoolean.True;
  461. if (ulgridElement.Rows.Count > countMes)
  462. {
  463. ulgridElement.Rows[countMes].Activate();
  464. }
  465. }
  466. private void ulgridElement_InitializeRow(object sender, InitializeRowEventArgs e)
  467. {
  468. GridActiveDele();
  469. }
  470. private void ultraGridChoose_CellChange(object sender, CellEventArgs e)
  471. {
  472. UltraGridRow row = ultraGridChoose.ActiveRow;
  473. ultraGridChoose.UpdateData();
  474. //输入支数
  475. if (e.Cell.Column.Key.Equals("TakeCount"))
  476. {
  477. if (e.Cell.Row.Cells["TakeCount"].Value == null)
  478. {
  479. row.Cells["TakeCount"].Value = row.Cells["ActCount"].Value.ToString();
  480. }
  481. else
  482. {
  483. string actLen = e.Cell.Row.Cells["TakeCount"].Value.ToString();
  484. if (!StringUtil.IsInt(actLen) || actLen == "0")
  485. {
  486. e.Cell.Row.Cells["TakeWeight"].Value = 0;
  487. }
  488. else
  489. {
  490. //查询库存重量
  491. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmPlanMaterialJg.queryMatWeigth",
  492. new object[] { row.Cells["JudgeStoveNo"].Value.ToString(), row.Cells["BatchNo"].Value.ToString(), row.Cells["BatchGroudNo"].Value.ToString(), inMaterialNo, actLen }, _ob);
  493. if (dt.Rows.Count > 0)
  494. {
  495. e.Cell.Row.Cells["TakeWeight"].Value = dt.Rows[0]["ACT_WEIGHT"].ToString();
  496. }
  497. }
  498. }
  499. }
  500. int xzNum = 0;
  501. double xzWt = 0;
  502. ultraGroupBox2.Text = "管坯物料信息";
  503. foreach (UltraGridRow ugr in ultraGridChoose.Rows)
  504. {
  505. if (Convert.ToBoolean(ugr.Cells["CHC"].Text) == true)
  506. {
  507. xzNum += int.Parse(ugr.Cells["TakeCount"].Value.ToString());
  508. xzWt += double.Parse(ugr.Cells["TakeWeight"].Value.ToString());
  509. }
  510. }
  511. ultraGroupBox2.Text = ultraGroupBox2.Text + " 支:" + xzNum + " 吨:" + xzWt.ToString("f3");
  512. }
  513. private int splitterDistance = 0;
  514. private void ultraExpandableGroupBox1_ExpandedStateChanged(object sender, EventArgs e)
  515. {
  516. if (ultraExpandableGroupBox1.Expanded == false)
  517. {
  518. this.splitContainer1.SplitterDistance = splitContainer1.Size.Height - 26;
  519. }
  520. else
  521. {
  522. this.splitContainer1.SplitterDistance = splitterDistance == 0 ? splitContainer1.Size.Height / 2 : splitterDistance;
  523. }
  524. }
  525. private void GridActiveDele()
  526. {
  527. UltraGridRow row = ulgridElement.ActiveRow;
  528. if (row == null) return;
  529. if (row.Index < countMes) return;
  530. //foreach (UltraGridRow row in ulgridElement.Rows)
  531. //{
  532. foreach (var Cell in row.Cells)
  533. {
  534. string ColumnsName = Cell.Column.Key;
  535. if (ColumnsName.Equals("SAMPLE_NO")) continue;
  536. if (ColumnsName.Equals("CIC")) continue;
  537. if (ColumnsName.Equals("STOVE_NO")) continue;
  538. if (ColumnsName.Equals("ASSAYNO")) continue;
  539. for (int i = 0; i < countMes - 1; i = i + 2)
  540. {
  541. int Result = SteelManagementHelper.CompareChem(Cell.Value, ulgridElement.Rows[i].Cells[ColumnsName].Value,
  542. ulgridElement.Rows[i + 1].Cells[ColumnsName].Value);
  543. if (Result == 2) { Cell.Appearance.ResetBackColor(); }
  544. else if (Result > 0)
  545. {
  546. ulgridElement.Rows[i].Cells[ColumnsName].Appearance.BackColor = Color.Red;
  547. ulgridElement.Rows[i + 1].Cells[ColumnsName].Appearance.BackColor = Color.Red;
  548. }
  549. else if (Result < 0)
  550. {
  551. ulgridElement.Rows[i].Cells[ColumnsName].Appearance.BackColor = Color.Yellow;
  552. ulgridElement.Rows[i + 1].Cells[ColumnsName].Appearance.BackColor = Color.Yellow;
  553. }
  554. else
  555. {
  556. ulgridElement.Rows[i].Cells[ColumnsName].Appearance.BackColor = Color.LightGreen;
  557. ulgridElement.Rows[i + 1].Cells[ColumnsName].Appearance.BackColor = Color.LightGreen;
  558. //Cell.Appearance.BackColor = Color.LightGreen;
  559. }
  560. }
  561. //}
  562. }
  563. }
  564. private void ulgridElement_AfterRowActivate(object sender, EventArgs e)
  565. {
  566. try
  567. {
  568. this.Cursor = Cursors.WaitCursor;
  569. ulgridElement.BeginUpdate();
  570. DataRowView dataRow = (DataRowView)ulgridElement.ActiveRow.ListObject;
  571. if (dataRow["SAMPLE_NO"].ToString().Contains("限"))
  572. {
  573. return;
  574. }
  575. GridActiveDele();
  576. }
  577. finally
  578. {
  579. ulgridElement.EndUpdate();
  580. this.Cursor = Cursors.Default;
  581. }
  582. }
  583. /// <summary>
  584. /// 托选
  585. /// </summary>
  586. /// <param name="sender"></param>
  587. /// <param name="e"></param>
  588. private void ultraGridChoose_AfterSelectChange(object sender, AfterSelectChangeEventArgs e)
  589. {
  590. foreach (UltraGridRow uRow in ultraGridChoose.Selected.Rows)
  591. {
  592. if (uRow.GetType() != typeof(Infragistics.Win.UltraWinGrid.UltraGridGroupByRow))
  593. {
  594. uRow.Cells["CHC"].Value = true;
  595. }
  596. }
  597. int xzNum = 0;
  598. double xzWt = 0;
  599. ultraGroupBox2.Text = "管坯物料信息";
  600. foreach (UltraGridRow ugr in ultraGridChoose.Rows)
  601. {
  602. if (Convert.ToBoolean(ugr.Cells["CHC"].Text) == true)
  603. {
  604. xzNum += int.Parse(ugr.Cells["TakeCount"].Value.ToString());
  605. xzWt += double.Parse(ugr.Cells["TakeWeight"].Value.ToString());
  606. }
  607. }
  608. ultraGroupBox2.Text = ultraGroupBox2.Text + " 支:" + xzNum + " 吨:" + xzWt.ToString("f3");
  609. }
  610. private void ultraGridJgs_AfterRowActivate(object sender, EventArgs e)
  611. {
  612. UltraGridRow row = ultraGridJgs.ActiveRow;
  613. if (row == null) return;
  614. //inMaterialNo = row.Cells["CodeBlAll"].Text.ToString();
  615. inMaterialNo = row.Cells["BlWlId"].Text.ToString();
  616. //wholeBacklogDesc = row.Cells["WholeBacklogDesc"].Value.ToString();
  617. //string ordLnDlyPk = row.Cells["OrdLnDlyPk"].Value.ToString();
  618. //string indexSeq = row.Cells["IndexSeq"].Value.ToString();
  619. //string carftSeq = row.Cells["CraftSeq"].Value.ToString();
  620. //string bom = row.Cells["Bom"].Value.ToString();
  621. //string codeJg = row.Cells["CodeJg"].Value.ToString();
  622. codeJgBl = row.Cells["CodeJgBl"].Value.ToString();
  623. //QueryBom(codeJg, codeJgBl);
  624. Query();
  625. }
  626. /// <summary>
  627. /// 查询符合条件的投入产出物料Bom
  628. /// </summary>
  629. private void QueryBom(string codeJg, string codeJgBl)
  630. {
  631. string inMaterialNoBom = "";
  632. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmPlanMaterialJg.queryBaseMaterial", new object[] { codeJg, codeJgBl }, _ob);
  633. GridHelper.CopyDataToDatatable(dt, dataTable1, true);
  634. GridHelper.RefreshAndAutoSize(entityGrid1);
  635. if(dt.Rows.Count<=0)return;
  636. foreach (UltraGridRow item in entityGrid1.Rows)
  637. {
  638. inMaterialNoBom += item.Cells["codeJgBl"].Text.ToString() + ",";
  639. if (item.Cells["codeJgBl"].Text.ToString().Equals(inMaterialNo))
  640. {
  641. item.Appearance.BackColor = Color.Orange;
  642. }
  643. }
  644. if (!inMaterialNoBom.Equals("")) {
  645. inMaterialNo = inMaterialNoBom.Substring(0, inMaterialNoBom.Length - 1);
  646. }
  647. }
  648. }
  649. }