AuditeMeltingDataFrm.cs 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297
  1. using Core.Mes.Client.Comm.Server;
  2. using Core.StlMes.Client.Judge.Commons;
  3. using Core.StlMes.Client.Judge.Controls;
  4. using CoreFS.CA06;
  5. using Infragistics.Win.UltraWinGrid;
  6. using System;
  7. using System.Collections.Generic;
  8. using System.Data;
  9. using System.Drawing;
  10. using System.Windows.Forms;
  11. namespace Core.StlMes.Client.Judge.Forms
  12. {
  13. public partial class AuditeMeltingDataFrm : FrmBase
  14. {
  15. private AuditeMeltingDataCtrl _auditMeltingDataCtrl;
  16. private CraftLg2CicCtrl _craftLg2CicCtrl;
  17. private Dal _d;
  18. public AuditeMeltingDataFrm()
  19. {
  20. InitializeComponent();
  21. this.IsLoadUserView = true;
  22. }
  23. public override void ToolBar_Click(object sender, string ToolbarKey)
  24. {
  25. base.ToolBar_Click(sender, ToolbarKey);
  26. switch (ToolbarKey)
  27. {
  28. case "Query":
  29. Query();
  30. break;
  31. case "Delete":
  32. Delete();
  33. break;
  34. case "RefreshSteel":
  35. RefreshSteel();
  36. break;
  37. case "Close":
  38. this.Close();
  39. break;
  40. }
  41. }
  42. private void AuditMeltingDataFrm_Load(object sender, EventArgs e)
  43. {
  44. _auditMeltingDataCtrl = new AuditeMeltingDataCtrl(splitContainer1.Panel1, ob);
  45. _auditMeltingDataCtrl.EntityGrid1.AfterRowActivate += EntityGrid1_AfterRowActivate;
  46. _d = new Dal(ob);
  47. _craftLg2CicCtrl = new CraftLg2CicCtrl(splitContainer1.Panel2, ob);
  48. labelComboBox1.SelecteValue = "10";
  49. labelComboBox1.Checked = true;
  50. labelDateTimePicker1.DateTimePicker.Value = DateTime.Now.Date.AddDays(-30);
  51. labelDateTimePicker2.DateTimePicker.Value = DateTime.Now.Date.AddDays(1).AddSeconds(-1);
  52. ClsBaseInfo.SetComboItemHeight(labelComboBox1.ComboBox);
  53. JudgeBaseInfo.LoadPlineName(labelComboBox2.ComboBox, ob, true, "A");
  54. }
  55. private UltraGridRow _row;
  56. void EntityGrid1_AfterRowActivate(object sender, EventArgs e)
  57. {
  58. try
  59. {
  60. this.Cursor = Cursors.WaitCursor;
  61. if (_row != null)
  62. {
  63. foreach (var cell in _row.Cells)
  64. {
  65. cell.Appearance.BackColor = cell.Row.Appearance.BackColor;
  66. }
  67. }
  68. _row = _auditMeltingDataCtrl.EntityGrid1.ActiveRow;
  69. string craftNo = _auditMeltingDataCtrl.EntityGrid1.GetActiveRowValue("CraftNo");
  70. _craftLg2CicCtrl.Query(craftNo);
  71. var row0 = _craftLg2CicCtrl.EntityGrid1.Rows[0];
  72. var row1 = _craftLg2CicCtrl.EntityGrid1.Rows[1];
  73. var row4 = _craftLg2CicCtrl.EntityGrid1.Rows[4];
  74. var row5 = _craftLg2CicCtrl.EntityGrid1.Rows[5];
  75. Color yellow = Color.FromArgb(238, 238, 0);
  76. Color red = Color.FromArgb(255, 106, 106);
  77. Color green = Color.FromArgb(60, 179, 113);
  78. Color gray = Color.FromArgb(205, 201, 201);
  79. foreach (var col in _craftLg2CicCtrl.EntityGrid1.DisplayLayout.Bands[0].Columns)
  80. {
  81. string key = col.Key;
  82. if (col.Header.ToolTipText != null) //复合元素
  83. {
  84. string express = col.Header.ToolTipText;
  85. string value = FillJhyElemetValue(express, _auditMeltingDataCtrl.EntityGrid1.ActiveRow);
  86. row0.Cells[key].ToolTipText = value;
  87. if (row0.GetValue(key) == "")
  88. {
  89. row0.Cells[key].Appearance.BackColor = gray;
  90. }
  91. else if (!JudgeHelper.JudgeExpress(value, row0.GetValue(key)))
  92. {
  93. row0.Cells[key].Appearance.BackColor = red;
  94. }
  95. else
  96. {
  97. row0.Cells[key].Appearance.BackColor = green;
  98. }
  99. if (row1.GetValue(key) == "")
  100. {
  101. row1.Cells[key].Appearance.BackColor = gray;
  102. }
  103. else if (!JudgeHelper.JudgeExpress(value, row1.GetValue(key)))
  104. {
  105. row1.Cells[key].Appearance.BackColor = yellow;
  106. }
  107. else
  108. {
  109. row1.Cells[key].Appearance.BackColor = green;
  110. }
  111. if (row4.GetValue(key) == "")
  112. {
  113. row4.Cells[key].Appearance.BackColor = gray;
  114. }
  115. else if (!JudgeHelper.JudgeExpress(value, row4.GetValue(key)))
  116. {
  117. row4.Cells[key].Appearance.BackColor = red;
  118. }
  119. else
  120. {
  121. row4.Cells[key].Appearance.BackColor = green;
  122. }
  123. if (row5.GetValue(key) == "")
  124. {
  125. row5.Cells[key].Appearance.BackColor = gray;
  126. }
  127. else if (!JudgeHelper.JudgeExpress(value, row5.GetValue(key)))
  128. {
  129. row5.Cells[key].Appearance.BackColor = yellow;
  130. }
  131. else
  132. {
  133. row5.Cells[key].Appearance.BackColor = green;
  134. }
  135. }
  136. else
  137. {
  138. foreach (var cell in _auditMeltingDataCtrl.EntityGrid1.ActiveRow.Cells)
  139. {
  140. if (cell.Column.Key.ToLower() == key.ToLower())
  141. {
  142. cell.Appearance.BackColor = gray;
  143. string value = cell.Value.ToString();
  144. if (row0.GetValue(key) == "")
  145. {
  146. row0.Cells[key].Appearance.BackColor = gray;
  147. }
  148. else if (!JudgeHelper.JudgeExpress(value, row0.GetValue(key)))
  149. {
  150. row0.Cells[key].Appearance.BackColor = red;
  151. }
  152. else
  153. {
  154. row0.Cells[key].Appearance.BackColor = green;
  155. }
  156. if (row1.GetValue(key) == "")
  157. {
  158. row1.Cells[key].Appearance.BackColor = gray;
  159. }
  160. else if (!JudgeHelper.JudgeExpress(value, row1.GetValue(key)))
  161. {
  162. row1.Cells[key].Appearance.BackColor = yellow;
  163. }
  164. else
  165. {
  166. row1.Cells[key].Appearance.BackColor = green;
  167. }
  168. if (row4.GetValue(key) == "")
  169. {
  170. row4.Cells[key].Appearance.BackColor = gray;
  171. }
  172. else if (!JudgeHelper.JudgeExpress(value, row4.GetValue(key)))
  173. {
  174. row4.Cells[key].Appearance.BackColor = red;
  175. }
  176. else
  177. {
  178. row4.Cells[key].Appearance.BackColor = green;
  179. }
  180. if (row5.GetValue(key) == "")
  181. {
  182. row5.Cells[key].Appearance.BackColor = gray;
  183. }
  184. else if (!JudgeHelper.JudgeExpress(value, row5.GetValue(key)))
  185. {
  186. row5.Cells[key].Appearance.BackColor = yellow;
  187. }
  188. else
  189. {
  190. row5.Cells[key].Appearance.BackColor = green;
  191. }
  192. break;
  193. }
  194. }
  195. }
  196. }
  197. }
  198. finally
  199. {
  200. this.Cursor = Cursors.Default;
  201. }
  202. }
  203. private string FillJhyElemetValue(string express, UltraGridRow jhyElement)
  204. {
  205. ////化学元素长的排前面, 这样替换元素值就不会替换错了。
  206. //var craftDesingStdCicNs = _craftDesignStdCicList.
  207. // Where(a => a.SpeclFl == "2").OrderByDescending(
  208. // a => a.ChemName, new ChemComparer());
  209. DataTable dt = _d.GetTableByXmlId("AuditMeltingDataDAL.getBaseChem", new Object[] { });
  210. DataRow[] drs = new DataRow[dt.Rows.Count];
  211. dt.Rows.CopyTo(drs, 0);
  212. Array.Sort(drs, new MyCompare());
  213. //复合元素处理
  214. foreach (var dr in drs)
  215. {
  216. if (!jhyElement.Cells.Exists(dr["ChemName"].ToString())) continue;
  217. string replaceName = dr["ChemName"].ToString();
  218. if (replaceName == "Asn")
  219. {
  220. replaceName = "As";
  221. }
  222. if (express.Contains(replaceName))
  223. {
  224. string value = jhyElement.GetValue(dr["ChemName"].ToString()).ToString();
  225. express = express.Replace(replaceName, value);
  226. }
  227. }
  228. decimal? formulaValue = express.CompileFormula();
  229. return formulaValue == null ? "" : Math.Round(formulaValue.Value, 2).ToString();
  230. }
  231. /// <summary>
  232. /// 从长到短排序, 这样就不会替换元素错误, 比如 S和Sn。
  233. /// </summary>
  234. private class MyCompare : IComparer<DataRow>
  235. {
  236. public int Compare(DataRow x, DataRow y)
  237. {
  238. if (x["ChemName"].ToString().Length < y["ChemName"].ToString().Length)
  239. {
  240. return 1;
  241. }
  242. else if (x["ChemName"].ToString().Length > y["ChemName"].ToString().Length)
  243. {
  244. return -1;
  245. }
  246. else
  247. {
  248. return 0;
  249. }
  250. }
  251. }
  252. private void Query()
  253. {
  254. try
  255. {
  256. this.Cursor = Cursors.WaitCursor;
  257. _craftLg2CicCtrl.Clear();
  258. string downtimeB = labelDateTimePicker1.Checked ? labelDateTimePicker1.Value.ToString("yyyy-MM-dd HH:mm:ss") : "";
  259. string downtimeE = labelDateTimePicker1.Checked ? labelDateTimePicker2.Value.ToString("yyyy-MM-dd HH:mm:ss") : "";
  260. string judgeFlag = labelComboBox1.Checked ? labelComboBox1.SelecteValue.ToString2() : "";
  261. string plineCode = labelComboBox2.Checked ? labelComboBox2.SelecteValue.ToString2() : "";
  262. string proMonth = labelDateTimePicker3.Checked ? labelDateTimePicker3.Value.ToString("yyyyMMdd") : "";
  263. string stoveNo = labelTextBox1.Checked ? labelTextBox1.Text.Trim() : "";
  264. _auditMeltingDataCtrl.Query(downtimeB, downtimeE, judgeFlag, plineCode, proMonth, stoveNo, this.ValidDataPurviewIds);
  265. }
  266. finally
  267. {
  268. this.Cursor = Cursors.Default;
  269. }
  270. }
  271. private void Delete()
  272. {
  273. _auditMeltingDataCtrl.Delete();
  274. }
  275. private void RefreshSteel()
  276. {
  277. _auditMeltingDataCtrl.RefreshSteel();
  278. }
  279. private void labelDateTimePicker1_CheckBox_CheckedChanged(object sender, EventArgs e)
  280. {
  281. labelDateTimePicker2.DateTimeEnabled = labelDateTimePicker1.DateTimeEnabled;
  282. }
  283. }
  284. }