FrmPlanSteelMakMod.cs 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685
  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.炼钢计划;
  6. using Core.StlMes.Client.PlnSaleOrd.炉计划.Entity;
  7. using Core.StlMes.Client.PlnSaleOrd.炉计划.Tool;
  8. using CoreFS.CA06;
  9. using Infragistics.Win;
  10. using Infragistics.Win.UltraWinEditors;
  11. using Infragistics.Win.UltraWinGrid;
  12. using System;
  13. using System.Collections;
  14. using System.Collections.Generic;
  15. using System.ComponentModel;
  16. using System.Data;
  17. using System.Drawing;
  18. using System.Linq;
  19. using System.Text;
  20. using System.Windows.Forms;
  21. namespace Core.StlMes.Client.PlnSaleOrd.炉计划
  22. {
  23. public partial class FrmPlanSteelMakMod : FrmBase
  24. {
  25. private string cic="";
  26. private string cicyL="";
  27. private string desginKey="";
  28. private string indexSeq="";
  29. private string outMaterialNo="";
  30. private string plineCode="";
  31. private string inMaterialNo="";
  32. public DataRow CurrentChem { get; private set; }
  33. private bool flag = false;
  34. private string[] belongCodeAll = null;
  35. public bool Flag
  36. {
  37. get { return flag; }
  38. set { flag = value; }
  39. }
  40. public FrmPlanSteelMakMod()
  41. {
  42. InitializeComponent();
  43. this.IsLoadUserView = true;
  44. }
  45. private void FrmPlanMaterialSelection_Load(object sender, EventArgs e)
  46. {
  47. //设置列头名称
  48. EntityHelper.ShowGridCaption<MatGpMEntity>(ultraGridChoose.DisplayLayout.Bands[0]);
  49. BaseHelper.setOtherColumnReadOnly(ultraGridChoose, new string[] { "CHC", "TakeCount" });
  50. BaseHelper.InitCellPosition(ultraGridChoose, new string[] { "Sequenceno", "DbActCount", "GroudNo", "ActTheoryWeight", "ActWeight", "ActCount", "FixLen", "FixNum", "ActLen", "Height", "Dimater", "TakeCount", "TakeWeight" });
  51. BaseHelper.GridColumnSum(ultraGridChoose, new string[] { "ActWeight", "ActTheoryWeight" });
  52. BaseHelper.GridColumnCount(ultraGridChoose, new string[] { "ActCount", "DbActCount" });
  53. BaseHelper.setUltraGridColumnMaxInput(ultraGridChoose, new string[] { "ActTheoryWeight", "ActWeight", "TakeWeight" });
  54. BaseHelper.setUltraGridColumnBits(ultraGridChoose, new string[] { "ActCount", "DbActCount", "FixNum", "TakeCount" });
  55. BaseHelper.setColumnBackColor(ultraGridChoose, new string[] { "TakeCount" });
  56. SteelHelper.InitGrade(comGrade, this.ob);
  57. BaseHelper.ForbidSort(ultraGridChoose);
  58. belongCodeAll=StoveHelper.InitPermissions(this.ValidDataPurviewIds, ob);
  59. QueryBelong();
  60. }
  61. public void QueryBelong()
  62. {
  63. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.StoveHelper.getSalgPermissions", new object[] { this.ValidDataPurviewIds }, ob);
  64. txtbelong.DropDownListWidth = -1;
  65. txtbelong.DataSource = dt;
  66. txtbelong.DisplayMember = "DEPARTNAME";
  67. txtbelong.ValueMember = "DEPARTID";
  68. StoveHelper.SetComboItemHeight(txtbelong);
  69. }
  70. public override void ToolBar_Click(object sender, string ToolbarKey)
  71. {
  72. base.ToolBar_Click(sender, ToolbarKey);
  73. switch (ToolbarKey)
  74. {
  75. case "Query":
  76. Query();
  77. break;
  78. case "Liku": //利库
  79. Liku();
  80. break;
  81. case "UndoLiku": //撤销利库
  82. Liku();
  83. break;
  84. case "Monomer": // 脱单
  85. Monomer();
  86. break;
  87. case "ChangeFurnNo": // 自动变炉号
  88. ChangeFurnNo();
  89. break;
  90. case "UndoFurnNo": // 撤销变炉号
  91. UndoFurnNo();
  92. break;
  93. case "Close":
  94. this.Close();
  95. break;
  96. default:
  97. break;
  98. }
  99. }
  100. /// <summary>
  101. /// 查询
  102. /// </summary>
  103. private void Query()
  104. {
  105. string belongCode = "";
  106. string gradeCode = "";
  107. string judgeNo = "";
  108. if (Chcbelong.Checked)
  109. {
  110. if (txtbelong.Text.ToString().Trim().Equals(""))
  111. {
  112. MessageUtil.ShowTips("请选择所属单位!");
  113. return;
  114. }
  115. else
  116. {
  117. belongCode = txtbelong.Value.ToString();
  118. }
  119. }
  120. if (chcGrade.Checked)
  121. {
  122. if (comGrade.Text.ToString().Trim().Equals(""))
  123. {
  124. MessageUtil.ShowTips("请选择钢种!");
  125. return;
  126. }
  127. else
  128. {
  129. gradeCode = comGrade.Value.ToString();
  130. }
  131. }
  132. if (chcJudgeNo.Checked)
  133. {
  134. if (txtJudgeNo.Text.ToString().Trim().Equals(""))
  135. {
  136. MessageUtil.ShowTips("请输入判定炉号!");
  137. return;
  138. }
  139. else
  140. {
  141. judgeNo = txtJudgeNo.Text.ToString();
  142. }
  143. }
  144. bool flag = false;
  145. if (ultraMore.Checked)
  146. {
  147. flag = true;
  148. }
  149. List<MatGpMEntitySteer> listSourceM = EntityHelper.GetData<MatGpMEntitySteer>
  150. ("com.steering.pss.plnsaleord.planStove.FrmPlanSteelMakMod.queryMaterial", new object[] { belongCode, gradeCode, judgeNo, belongCodeAll, flag }, ob);
  151. matGpMEntityBindingSource.DataSource = listSourceM;
  152. GridHelper.RefreshAndAutoSize(ultraGridChoose);
  153. }
  154. /// <summary>
  155. /// 利库
  156. /// </summary>
  157. private void Liku()
  158. {
  159. UltraGridRow row = ultraGridChoose.ActiveRow;
  160. if (row == null) return;
  161. int count = 0;
  162. bool flagdz = false;
  163. if (ultraMore.Checked)
  164. {
  165. flagdz = true;
  166. }
  167. ArrayList list = new ArrayList();
  168. list.Add(row.Cells["JudgeStoveNo"].Text.ToString());
  169. list.Add(row.Cells["TakeCount"].Value.ToString());
  170. list.Add(row.Cells["TakeWeight"].Value.ToString());
  171. list.Add(row.Cells["ActLen"].Value.ToString());
  172. list.Add(row.Cells["FixLen"].Value.ToString());
  173. list.Add(row.Cells["FixNum"].Value.ToString());
  174. list.Add(row.Cells["Gradecode"].Text.ToString());
  175. list.Add(row.Cells["Dimater"].Text.ToString());
  176. list.Add(row.Cells["Gptype"].Text.ToString());
  177. list.Add(row.Cells["ProPlanId"].Text.ToString());
  178. if (row.Cells["TakeWeight"].Value.ToString().Equals("0"))
  179. {
  180. MessageUtil.ShowTips("您选择的判定炉号利库量为零,不能利库!");
  181. return;
  182. }
  183. if (!row.Cells["ProPlanIdZg"].Value.ToString().Equals(""))
  184. {
  185. MessageUtil.ShowTips("您选择的判定炉号已挂轧管订单或锻造订单,不能利库!");
  186. return;
  187. }
  188. FrmSteelPlnZgMod frmStPlnZ = new FrmSteelPlnZgMod(ob, list, flagdz);
  189. frmStPlnZ.ShowDialog();
  190. bool flag = frmStPlnZ.Flag;
  191. if (flag) { Query(); }//如果有修改数据,则刷新页面 }
  192. }
  193. /// <summary>
  194. /// 脱单
  195. /// </summary>
  196. private void Monomer()
  197. {
  198. UltraGridRow row = ultraGridChoose.ActiveRow;
  199. if (row == null) return;
  200. ArrayList list = new ArrayList();
  201. if (!row.Cells["Dimater"].Text.ToString().Contains("t")) {
  202. if (row.Cells["MatStatus"].Text.ToString().Equals("材料产出(已判定)") && !row.Cells["JudgeResultCode"].Text.ToString().Equals("不合格"))
  203. {
  204. MessageUtil.ShowTips("你选择的管坯物料已判并且综合判定结果不是不合格状态,不能脱单!");
  205. return;
  206. }
  207. if (row.Cells["MatStatus"].Text.ToString().Equals("材料产出待判") && row.Cells["ProPlanIdZg"].Text.ToString().Equals(""))
  208. {
  209. MessageUtil.ShowTips("你选择的管坯物料未挂轧管订单或锻造订单,不能脱单!");
  210. return;
  211. }
  212. }
  213. else
  214. {
  215. if (row.Cells["ProPlanIdZg"].Text.ToString().Equals(""))
  216. {
  217. MessageUtil.ShowTips("你选择的管坯物料未挂轧管订单或锻造订单,不能脱单!");
  218. return;
  219. }
  220. }
  221. if (row.Cells["TakeWeight"].Value.ToString().Equals("0"))
  222. {
  223. MessageUtil.ShowTips("您选择的判定炉号利库量为零,不能脱单!");
  224. return;
  225. }
  226. list.Add(row.Cells["ActLen"].Value.ToString());
  227. list.Add(row.Cells["FixLen"].Value.ToString());
  228. list.Add(row.Cells["FixNum"].Value.ToString());
  229. list.Add(row.Cells["JudgeStoveNo"].Text.ToString());
  230. list.Add(row.Cells["StoveNo"].Text.ToString());
  231. list.Add(row.Cells["FlagStoveNo"].Text.ToString());
  232. list.Add(row.Cells["ActCount"].Text.ToString());
  233. list.Add(row.Cells["ProPlanIdZg"].Text.ToString());
  234. list.Add(row.Cells["Dimater"].Text.ToString());
  235. list.Add(row.Cells["GxPlanNoZg"].Text.ToString());
  236. if (MessageUtil.ShowYesNoAndQuestion("是否确认脱单?") ==
  237. DialogResult.No)
  238. return;
  239. PlanComm.WaitFromOpen(this.Cursor);
  240. CoreClientParam ccp = new CoreClientParam();
  241. ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmPlanSteelMakMod";
  242. ccp.MethodName = "doDeleteMonomerLg";
  243. ccp.ServerParams = new object[] { list, this.UserInfo.GetUserName()};
  244. ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  245. PlanComm.WaitFromColse(this.Cursor);
  246. if (ccp.ReturnCode == -1) return;
  247. MessageUtil.ShowTips(ccp.ReturnInfo);
  248. if (ccp.ReturnInfo.Equals("脱单成功!"))
  249. {
  250. Query();
  251. }
  252. }
  253. /// <summary>
  254. /// 自动变炉号
  255. /// </summary>
  256. private void ChangeFurnNo()
  257. {
  258. UltraGridRow row = ultraGridChoose.ActiveRow;
  259. if (row == null) return;
  260. IQueryable<UltraGridRow> checkRows = this.ultraGridChoose.Rows.AsQueryable().Where(" CHC = 'True' ");
  261. if (checkRows.Count() == 0)
  262. {
  263. MessageUtil.ShowTips("请选择管坯物料信息!");
  264. return;
  265. }
  266. ArrayList list1 = new ArrayList();
  267. foreach (UltraGridRow urg in checkRows)
  268. {
  269. ArrayList list = new ArrayList();
  270. list.Add(urg.Cells["JudgeStoveNo"].Text.ToString());
  271. list.Add(urg.Cells["TakeCount"].Value.ToString());
  272. list.Add(urg.Cells["ActLen"].Value.ToString());
  273. list.Add(urg.Cells["FixLen"].Value.ToString());
  274. list.Add(urg.Cells["FixNum"].Value.ToString());
  275. list.Add(urg.Cells["Gptype"].Text.ToString());
  276. list.Add(urg.Cells["ProPlanIdZg"].Text.ToString());
  277. list.Add(urg.Cells["GxPlanNoZg"].Text.ToString());
  278. list1.Add(list);
  279. }
  280. if (MessageUtil.ShowYesNoAndQuestion("是否确认自动换炉号?") ==
  281. DialogResult.No)
  282. return;
  283. PlanComm.WaitFromOpen(this.Cursor);
  284. CoreClientParam ccp = new CoreClientParam();
  285. ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmPlanSteelMakMod";
  286. ccp.MethodName = "doChangeFurnNo";
  287. ccp.ServerParams = new object[] { list1};
  288. ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  289. PlanComm.WaitFromColse(this.Cursor);
  290. if (ccp.ReturnCode == -1) return;
  291. MessageUtil.ShowTips(ccp.ReturnInfo);
  292. if (ccp.ReturnInfo.Equals("成功!"))
  293. {
  294. Query();
  295. }
  296. }
  297. /// <summary>
  298. /// 撤销变炉号
  299. /// </summary>
  300. private void UndoFurnNo()
  301. {
  302. UltraGridRow row = ultraGridChoose.ActiveRow;
  303. if (row == null) return;
  304. IQueryable<UltraGridRow> checkRows = this.ultraGridChoose.Rows.AsQueryable().Where(" CHC = 'True' ");
  305. if (checkRows.Count() == 0)
  306. {
  307. MessageUtil.ShowTips("请选择管坯物料信息!");
  308. return;
  309. }
  310. ArrayList list1 = new ArrayList();
  311. foreach (UltraGridRow urg in checkRows)
  312. {
  313. if (urg.Cells["JudgeFlag"].Text.ToString().Equals("/"))
  314. {
  315. MessageUtil.ShowTips("判定炉号(" + urg.Cells["JudgeStoveNo"].Text + ")未变炉号,不能进行此操作!");
  316. return;
  317. }
  318. ArrayList list = new ArrayList();
  319. list.Add(urg.Cells["JudgeStoveNo"].Text.ToString());
  320. list.Add(urg.Cells["TakeCount"].Value.ToString());
  321. list.Add(urg.Cells["ActLen"].Value.ToString());
  322. list.Add(urg.Cells["FixLen"].Value.ToString());
  323. list.Add(urg.Cells["FixNum"].Value.ToString());
  324. list.Add(urg.Cells["Gptype"].Text.ToString());
  325. list.Add(urg.Cells["ProPlanIdZg"].Text.ToString());
  326. list.Add(urg.Cells["JudgeFlag"].Text.ToString());
  327. list.Add(urg.Cells["JudgeStoveNoOld"].Text.ToString());
  328. list1.Add(list);
  329. }
  330. if (MessageUtil.ShowYesNoAndQuestion("是否取消?") ==
  331. DialogResult.No)
  332. return;
  333. PlanComm.WaitFromOpen(this.Cursor);
  334. CoreClientParam ccp = new CoreClientParam();
  335. ccp.ServerName = "com.steering.pss.plnsaleord.planStove.FrmPlanSteelMakMod";
  336. ccp.MethodName = "doUndoFurnNo";
  337. ccp.ServerParams = new object[] { list1 };
  338. ccp = ob.ExecuteNonQuery(ccp, CoreInvokeType.Internal);
  339. PlanComm.WaitFromColse(this.Cursor);
  340. if (ccp.ReturnCode == -1) return;
  341. MessageUtil.ShowTips(ccp.ReturnInfo);
  342. if (ccp.ReturnInfo.Equals("成功!"))
  343. {
  344. Query();
  345. }
  346. }
  347. private void ultraGridChoose_AfterRowActivate(object sender, EventArgs e)
  348. {
  349. UltraGridRow row = ultraGridChoose.ActiveRow;
  350. if (row == null) return;
  351. QueryZgS(row.Cells["ProPlanIdZg"].Value.ToString(), row.Cells["GxPlanNoZg"].Value.ToString(), row.Cells["ProPlanId"].Value.ToString());
  352. QueryChenName(row.Cells["JudgeStoveNo"].Text.ToString(), row.Cells["ChemJudgeId"].Text.ToString());
  353. }
  354. private void QueryZgS(string _proPlanId, string _gxPlanNo,string gproId)
  355. {
  356. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryZg.getPlnOrderZg",
  357. new object[] { _proPlanId, _gxPlanNo }, ob);
  358. if (dt.Rows.Count > 0)
  359. {
  360. if (dt.Rows[0]["CIC_GROUP_LK"].ToString().Contains(dt.Rows[0]["CIC_GP"].ToString()))
  361. {
  362. cic = dt.Rows[0]["CIC_GROUP_LK"].ToString();
  363. }
  364. else
  365. {
  366. if (dt.Rows[0]["CIC_GROUP_LK"].ToString().Equals(""))
  367. {
  368. cic = dt.Rows[0]["CIC_GP"].ToString();
  369. }
  370. else
  371. {
  372. cic = dt.Rows[0]["CIC_GP"].ToString() + "," + dt.Rows[0]["CIC_GROUP_LK"].ToString();
  373. }
  374. }
  375. cicyL = dt.Rows[0]["CIC_GP"].ToString();
  376. desginKey = dt.Rows[0]["DESGIN_KEY"].ToString();
  377. indexSeq = dt.Rows[0]["INDEX_SEQ"].ToString();
  378. outMaterialNo = dt.Rows[0]["OUTWL_ID"].ToString();
  379. inMaterialNo = dt.Rows[0]["INWL_ID"].ToString();
  380. plineCode = dt.Rows[0]["PLINE_CODE"].ToString();
  381. }
  382. }
  383. private int countMes = 0;
  384. /// <summary>
  385. /// 查询索引码
  386. /// </summary>
  387. private void QueryChenName(string cudgeStoveNo, string chemJudgeId)
  388. {
  389. DataTable InternalStandard = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryZg.getStlChemicalStd",
  390. new object[] { cic, desginKey, indexSeq },ob);
  391. dtChem.Rows.Clear();
  392. countMes = 0;
  393. foreach (var colums in ulgridElement.DisplayLayout.Bands[0].Columns)
  394. {
  395. colums.Hidden = true;
  396. }
  397. ulgridElement.DisplayLayout.Bands[0].Columns["SAMPLE_NO"].Hidden = false;
  398. ulgridElement.DisplayLayout.Bands[0].Columns["CIC"].Hidden = false;
  399. if (InternalStandard != null)
  400. {
  401. foreach (DataRow dataRow in InternalStandard.Rows)
  402. {
  403. string chemsKey = dataRow["CHEM_NAME"].ToString().Replace(" ", "").Replace("/", "");
  404. if (!dtChem.Columns.Contains(chemsKey.ToUpper()) && !string.IsNullOrEmpty(chemsKey))
  405. {
  406. DataColumn newDc = new DataColumn
  407. {
  408. ColumnName = chemsKey.ToUpper(),
  409. Caption = chemsKey
  410. };
  411. dtChem.Columns.Add(newDc);
  412. }
  413. ulgridElement.DisplayLayout.Bands[0].Columns[chemsKey.ToUpper()].Hidden = false;
  414. }
  415. }
  416. DataTable distinct_object = InternalStandard.DefaultView.ToTable(true, "CIC");
  417. if (distinct_object.Rows.Count <= 0)
  418. {
  419. return;
  420. }
  421. for (int i = 0; i < distinct_object.Rows.Count; i++)
  422. {
  423. DataRow drMax = dtChem.NewRow();
  424. DataRow drMin = dtChem.NewRow();
  425. DataRow drCic = dtChem.NewRow();
  426. string cicChem = distinct_object.Rows[i]["CIC"].ToString();
  427. DataRow[] drs = InternalStandard.Select("CIC='" + cicChem + "'");
  428. if (cicyL.Equals(drs[0][8]))
  429. {
  430. drMax["SAMPLE_NO"] = "冶炼CIC上限";
  431. drMin["SAMPLE_NO"] = "冶炼CIC下限";
  432. }
  433. else
  434. {
  435. drMax["SAMPLE_NO"] = "利库CIC上限";
  436. drMin["SAMPLE_NO"] = "利库CIC下限";
  437. }
  438. drMax["CIC"] = drs[0][8];
  439. drMin["CIC"] = drs[0][8];
  440. if (InternalStandard != null)
  441. {
  442. foreach (DataRow dataRow in InternalStandard.Rows)
  443. {
  444. string columnsName = dataRow["CHEM_NAME"].ToString().ToUpper().Replace(" ", "").Replace("/", "");
  445. drMax[columnsName] = dataRow["STDMAX_SIGN"];//+ dataRow["STDMAX"].ToString()
  446. drMin[columnsName] = dataRow["STDMIN_SIGN"];//+ dataRow["STDMIN"].ToString()
  447. ulgridElement.DisplayLayout.Bands[0].Columns[columnsName].Tag = dataRow["CHEM_FORMULA"];
  448. }
  449. }
  450. dtChem.Rows.Add(drMax);
  451. dtChem.Rows.Add(drMin);
  452. countMes += 2;
  453. }
  454. DataTable dtData = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmRollTubeLibraryZg.getStlChemicalData",
  455. new object[] { cudgeStoveNo, chemJudgeId }, ob);
  456. if (dtData != null && dtData.Rows.Count > 0)
  457. {
  458. CurrentChem = dtData.Rows[0];
  459. foreach (DataRow dataRow in dtData.Rows)
  460. {
  461. foreach (DataColumn dc in dtData.Columns)
  462. {
  463. string columnsName = dc.ColumnName;
  464. if (columnsName.Equals("SAMPLE_NO")) continue;
  465. if (!dtChem.Columns.Contains(columnsName.ToUpper().Replace("ASN", "AS")) &&
  466. dataRow[columnsName] != null &&
  467. !string.IsNullOrEmpty((dataRow[columnsName].ToString())))
  468. {
  469. DataColumn newDc = new DataColumn();
  470. newDc.ColumnName = columnsName.ToUpper();
  471. newDc.Caption = columnsName;
  472. dtChem.Columns.Add(newDc);
  473. }
  474. }
  475. DataRow tempRow = dtChem.NewRow();
  476. //tempRow["CICLK"] = dataRow["STOVE_NO"];
  477. foreach (DataColumn DataColumn in dtData.Columns)
  478. {
  479. if (dtChem.Columns.Contains(DataColumn.ColumnName.Replace("ASN", "AS")))
  480. {
  481. tempRow[DataColumn.ColumnName.Replace("ASN", "AS")] = dataRow[DataColumn.ColumnName];
  482. if (dataRow[DataColumn.ColumnName] != null &&
  483. !string.IsNullOrEmpty(dataRow[DataColumn.ColumnName].ToString()))
  484. {
  485. ulgridElement.DisplayLayout.Bands[0].Columns[DataColumn.ColumnName.Replace("ASN", "AS")]
  486. .Hidden = false;
  487. ulgridElement.DisplayLayout.Bands[0].Columns["ASSAYNO"].Hidden = true;
  488. ulgridElement.DisplayLayout.Bands[0].Columns["STOVE_NO"].Hidden = true;
  489. }
  490. }
  491. }
  492. foreach (UltraGridColumn column in ulgridElement.DisplayLayout.Bands[0].Columns)
  493. {
  494. if (column.Hidden || column.Tag == null || string.IsNullOrEmpty(column.Tag.ToString())) continue;
  495. string ChemFormula = column.Tag.ToString().ToUpper();
  496. foreach (DataColumn DataColumn in dtData.Columns)
  497. {
  498. if (dataRow[DataColumn.ColumnName] == null) continue;
  499. ChemFormula = ChemFormula.Replace(DataColumn.ColumnName.Replace("ASN", "AS"),
  500. dataRow[DataColumn.ColumnName].ToString());
  501. }
  502. try
  503. {
  504. tempRow[column.Key] = Math.Round(double.Parse(new DataTable().Compute(ChemFormula, null).ToString()), 4);
  505. }
  506. catch (Exception)
  507. {
  508. tempRow[column.Key] = null;
  509. }
  510. }
  511. tempRow["SAMPLE_NO"] = dataRow["ASSAYNO"];
  512. tempRow["CIC"] = dataRow["STOVE_NO"];
  513. dtChem.Rows.Add(tempRow);
  514. }
  515. }
  516. ulgridElement.Refresh();
  517. BaseHelper.setOtherColumnReadOnly(ulgridElement, new[] { "Check" });
  518. GridHelper.RefreshAndAutoSize(ulgridElement);
  519. BaseHelper.ForbidSort(ulgridElement);
  520. ulgridElement.DisplayLayout.Bands[0].Columns["CIC"].MergedCellStyle = MergedCellStyle.Always;
  521. ulgridElement.DisplayLayout.Bands[0].Columns[0].CellAppearance.FontData.Bold = DefaultableBoolean.True;
  522. if (ulgridElement.Rows.Count > countMes)
  523. {
  524. ulgridElement.Rows[countMes].Activate();
  525. }
  526. }
  527. private void ulgridElement_InitializeRow(object sender, InitializeRowEventArgs e)
  528. {
  529. GridActiveDele();
  530. }
  531. private void GridActiveDele()
  532. {
  533. UltraGridRow row = ulgridElement.ActiveRow;
  534. if (row == null) return;
  535. if (row.Index < countMes) return;
  536. foreach (var Cell in row.Cells)
  537. {
  538. string ColumnsName = Cell.Column.Key;
  539. if (ColumnsName.Equals("SAMPLE_NO")) continue;
  540. if (ColumnsName.Equals("CIC")) continue;
  541. if (ColumnsName.Equals("STOVE_NO")) continue;
  542. if (ColumnsName.Equals("ASSAYNO")) continue;
  543. for (int i = 0; i < countMes - 1; i = i + 2)
  544. {
  545. int Result = SteelManagementHelper.CompareChem(Cell.Value, ulgridElement.Rows[i].Cells[ColumnsName].Value,
  546. ulgridElement.Rows[i + 1].Cells[ColumnsName].Value);
  547. if (Result == 2) { Cell.Appearance.ResetBackColor(); }
  548. else if (Result > 0)
  549. {
  550. ulgridElement.Rows[i].Cells[ColumnsName].Appearance.BackColor = Color.Red;
  551. ulgridElement.Rows[i + 1].Cells[ColumnsName].Appearance.BackColor = Color.Red;
  552. }
  553. else if (Result < 0)
  554. {
  555. ulgridElement.Rows[i].Cells[ColumnsName].Appearance.BackColor = Color.Yellow;
  556. ulgridElement.Rows[i + 1].Cells[ColumnsName].Appearance.BackColor = Color.Yellow;
  557. }
  558. else
  559. {
  560. ulgridElement.Rows[i].Cells[ColumnsName].Appearance.BackColor = Color.LightGreen;
  561. ulgridElement.Rows[i + 1].Cells[ColumnsName].Appearance.BackColor = Color.LightGreen;
  562. //Cell.Appearance.BackColor = Color.LightGreen;
  563. }
  564. }
  565. }
  566. }
  567. private void ulgridElement_AfterRowActivate(object sender, EventArgs e)
  568. {
  569. try
  570. {
  571. this.Cursor = Cursors.WaitCursor;
  572. ulgridElement.BeginUpdate();
  573. DataRowView dataRow = (DataRowView)ulgridElement.ActiveRow.ListObject;
  574. if (dataRow["SAMPLE_NO"].ToString().Contains("限"))
  575. {
  576. return;
  577. }
  578. GridActiveDele();
  579. }
  580. finally
  581. {
  582. ulgridElement.EndUpdate();
  583. this.Cursor = Cursors.Default;
  584. }
  585. }
  586. private void ultraGridChoose_CellChange(object sender, CellEventArgs e)
  587. {
  588. bool flag = false;
  589. if (ultraMore.Checked)
  590. {
  591. flag = true;
  592. }
  593. UltraGridRow row = ultraGridChoose.ActiveRow;
  594. ultraGridChoose.UpdateData();
  595. if (e.Cell.Column.Key.Equals("TakeCount"))
  596. {
  597. if (e.Cell.Row.Cells["TakeCount"].Value == null)
  598. {
  599. row.Cells["TakeCount"].Value = row.Cells["ActCount"].Value.ToString();
  600. }
  601. else
  602. {
  603. string actLen = e.Cell.Row.Cells["TakeCount"].Value.ToString();
  604. if (!StringUtil.IsInt(actLen) || actLen == "0")
  605. {
  606. e.Cell.Row.Cells["TakeWeight"].Value = "0";
  607. }
  608. else
  609. {
  610. //查询库存重量
  611. DataTable dt = ServerHelper.GetData("com.steering.pss.plnsaleord.planStove.FrmPlanSteelMakMod.queryMatWeigth",
  612. new object[] { row.Cells["JudgeStoveNo"].Value.ToString(), row.Cells["FixNum"].Value.ToString(), row.Cells["ActLen"].Value.ToString(), row.Cells["FixLen"].Value.ToString(), actLen, flag }, ob);
  613. if (dt.Rows.Count > 0)
  614. {
  615. e.Cell.Row.Cells["TakeWeight"].Value = dt.Rows[0]["ACT_WEIGHT"].ToString();
  616. if (e.Cell.Row.Cells["TakeWeight"].Value.Equals("0"))
  617. {
  618. row.Cells["TakeCount"].Value = "0";
  619. }
  620. }
  621. }
  622. }
  623. }
  624. }
  625. private void Chcbelong_CheckedChanged(object sender, EventArgs e)
  626. {
  627. if (Chcbelong.Checked) { txtbelong.Enabled = true; } else { txtbelong.Enabled = false; }
  628. if (chcGrade.Checked) { comGrade.Enabled = true; } else { comGrade.Enabled = false; }
  629. if (chcJudgeNo.Checked) { txtJudgeNo.Enabled = true; } else { txtJudgeNo.Enabled = false; }
  630. }
  631. private void ultraMore_CheckedChanged(object sender, EventArgs e)
  632. {
  633. Query();
  634. }
  635. private void ultraCheckEditor1_CheckedChanged(object sender, EventArgs e)
  636. {
  637. Query();
  638. }
  639. }
  640. }