ucChemelEment.cs 33 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713
  1. using System;
  2. using System.Collections;
  3. using System.Data;
  4. using System.Drawing;
  5. using System.Reflection;
  6. using System.Windows.Forms;
  7. using Core.StlMes.Client.LgClassModel;
  8. using CoreFS.CA06;
  9. using Infragistics.Win;
  10. using Infragistics.Win.UltraWinGrid;
  11. namespace Core.StlMes.Client.LgCommon
  12. {
  13. public partial class ucChemelEment : UserControl
  14. {
  15. private DataTable _dtCraftElement = null; // 工艺化学成分信息表
  16. private CraftElement _tmpObjCraftEle; // 存放工艺化学成分信息的类
  17. private CraftElement _objCraftEleBuffer; // 用于实时刷新工艺化学成分信息的缓冲区
  18. private DataTable _dtEleStd = null; // 标准元素值表
  19. private string[] Columns = new string[] { "TYPESYMBOL", "C", "Si", "Mn", "P", "S", "Ni", "Cr", "Cu", "V", "Mo", "Nb", "Ceq", "Als", "Asn", "Sn", "Ca" };
  20. public ucChemelEment()
  21. {
  22. InitializeComponent();
  23. GenerateTableFrame(); //初始化
  24. }
  25. /// <summary>
  26. /// 生成铁水成分的表架构
  27. /// </summary>
  28. private void GenerateTableFrame()
  29. {
  30. try
  31. {
  32. _dtCraftElement = new DataTable("CraftElement");
  33. DataColumn col;
  34. for (int i = 0; i < Columns.Length; i++)
  35. {
  36. try
  37. {
  38. col = new DataColumn(Columns[i], typeof(string));
  39. if (Columns[i] == "TYPESYMBOL") col.Caption = "项目名";
  40. else if (Columns[i] == "Asn") col.Caption = "As";
  41. _dtCraftElement.Columns.Add(col);
  42. }
  43. catch { }
  44. }
  45. ulgridElement.DataSource = _dtCraftElement;
  46. SetReadOnly();
  47. ClsControlPack.SetUltraGridAppearance(this);
  48. ulgridElement.DisplayLayout.Override.ActiveRowAppearance.FontData.ResetBold();
  49. ulgridElement.DisplayLayout.Override.RowSelectors = DefaultableBoolean.False;
  50. }
  51. catch { }
  52. }
  53. private void ucChemelEment_Load(object sender, EventArgs e)
  54. {
  55. _tmpObjCraftEle = new CraftElement();
  56. _objCraftEleBuffer = new CraftElement();
  57. }
  58. private void SetReadOnly()
  59. {
  60. try
  61. {
  62. for (int i = 0; i < ulgridElement.DisplayLayout.Bands[0].Columns.Count; i++)
  63. {
  64. ulgridElement.DisplayLayout.Bands[0].Columns[i].CellActivation = Activation.NoEdit;
  65. }
  66. }
  67. catch { }
  68. }
  69. /// <summary>
  70. /// 获取总貌图混铁炉样
  71. /// </summary>
  72. /// <param name="strWsid">混铁炉号</param>
  73. public void GetMapEleInfo(string strWsid, OpeBase ob)
  74. {
  75. try
  76. {
  77. if (string.IsNullOrEmpty(strWsid.Trim())) return;
  78. string strErr = "";
  79. ArrayList arry = new ArrayList();
  80. arry.Add(strWsid == "1" ? "A01" : "A00");
  81. arry.Add(strWsid == "1" ? "A01" : "A00");
  82. CommonClientToServer ccTos = new CommonClientToServer();
  83. ccTos.ob = ob;
  84. DataSet ds = ccTos.ExecuteQueryFunctionsSqlID("Core.Mes.Server.Common.ComDataAccess",
  85. "QueryWithParameter", "STL_MAP0005", 5, arry, out strErr);
  86. DataSetToCraftElement(ref ds, ref _tmpObjCraftEle);
  87. }
  88. catch { }
  89. }
  90. /// <summary>
  91. /// 获取化学成分样
  92. /// </summary>
  93. /// <param name="HeatNo">熔炼号</param>
  94. /// <param name="_DEVICE_POS">岗位例:C01 1#转炉</param>
  95. /// <param name="_Type">样类型(1铁水、2钢水、3渣样)</param>
  96. public void GetCraftEleInfo(string HeatNo, string _DEVICE_POS, string CheckNo, OpeBase ob)
  97. {
  98. try
  99. {
  100. if (string.IsNullOrEmpty(HeatNo.Trim()) || HeatNo.Trim().Length <= 1) return;
  101. // HeatNo = HeatNo.Trim().Substring(1);
  102. bool bSuccess = false;
  103. String station = "A00"; //A00代表二体系铁水,A01代表一体系铁水
  104. try
  105. {
  106. String code = HeatNo.Trim().Substring(2, 1);
  107. if (code == "1" || code == "2")
  108. {
  109. station = "A01";
  110. }
  111. }
  112. catch { }
  113. string strMsg = "";
  114. string strSql = "";
  115. strSql += Convert.ToString(" select t.checkno,'TS' assaytypecode,t.c, t.si, t.mn, t.p, t.s,").Trim() + " ";
  116. strSql += Convert.ToString(" '" + HeatNo + "' heatno ").Trim() + " ";
  117. strSql += Convert.ToString(" from stl_chemelement t").Trim() + " ";
  118. strSql += Convert.ToString(" where t.heatno =").Trim() + " ";
  119. strSql += Convert.ToString("(select max(m.heatno) heatno").Trim() + " ";
  120. strSql += Convert.ToString("from (select heatno").Trim() + " ";
  121. strSql += Convert.ToString("from STL_CHEMELEMENT").Trim() + " ";
  122. strSql += Convert.ToString("where stationcode = '" + station + "'").Trim() + " ";
  123. strSql += Convert.ToString("union").Trim() + " ";
  124. strSql += Convert.ToString(" select heatno").Trim() + " ";
  125. strSql += Convert.ToString(" from j#STL_CHEMELEMENT").Trim() + " ";
  126. strSql += Convert.ToString(" where stationcode = '" + station + "') m)").Trim() + " ";
  127. DataSet ds1 = ClsDataAccessPack.GetData(strSql, out bSuccess, out strMsg, ob);
  128. strMsg = "";
  129. bSuccess = false;
  130. string SqlID = "ReceiveCraftElement.Select";
  131. ArrayList Args = new ArrayList();
  132. Args.Add(HeatNo);
  133. Args.Add(_DEVICE_POS.Substring(0, 1));
  134. Args.Add(_DEVICE_POS.Substring(0, 1));
  135. Args.Add(CheckNo);
  136. DataSet ds = ClsDataAccessPack.GetData(SqlID, Args, out bSuccess, out strMsg, ob);
  137. if (ds1 != null && ds1.Tables[0].Rows.Count > 0)
  138. {
  139. DataRow dr = ds.Tables[0].NewRow();
  140. DataRow Dr = ds1.Tables[0].Rows[0];
  141. dr["CHECKNO"] = Dr["CHECKNO"].ToString();
  142. dr["HEATNO"] = Dr["HEATNO"].ToString();
  143. dr["ASSAYTYPECODE"] = Dr["ASSAYTYPECODE"].ToString();
  144. dr["C"] = Dr["C"].ToString();
  145. dr["SI"] = Dr["SI"].ToString();
  146. dr["MN"] = Dr["MN"].ToString();
  147. dr["P"] = Dr["P"].ToString();
  148. dr["S"] = Dr["S"].ToString();
  149. dr["ASSAYDATE"] = DBNull.Value;
  150. ds.Tables[0].Rows.Add(dr);
  151. }
  152. if (bSuccess) DataSetToCraftElement(ref ds, ref _tmpObjCraftEle);
  153. }
  154. catch { }
  155. }
  156. public void GetHmpEleInfo_RES(string HeatNo, string _DEVICE_POS, string CheckNo, OpeBase ob)
  157. {
  158. try
  159. {
  160. if (string.IsNullOrEmpty(HeatNo.Trim()) || HeatNo.Trim().Length <= 1) return;
  161. // HeatNo = HeatNo.Trim().Substring(1);
  162. bool bSuccess = false;
  163. string strMsg = "";
  164. string strSql = "";
  165. strSql += Convert.ToString("SELECT *").Trim() + " ";
  166. strSql += Convert.ToString(" FROM (SELECT *").Trim() + " ";
  167. strSql += Convert.ToString(" FROM STL_CHEMELEMENT").Trim() + " ";
  168. strSql += Convert.ToString(" WHERE HEATNO = '" + HeatNo + "'").Trim() + " ";
  169. strSql += Convert.ToString(" AND STATIONCODE = '" + _DEVICE_POS + "'").Trim() + " ";
  170. strSql += Convert.ToString(" OR (CASE").Trim() + " ";
  171. strSql += Convert.ToString(" WHEN UPPER('" + _DEVICE_POS.Substring(0, 1) + "') = 'C' THEN").Trim() + " ";
  172. strSql += Convert.ToString(" CHECKNO").Trim() + " ";
  173. strSql += Convert.ToString(" ELSE").Trim() + " ";
  174. strSql += Convert.ToString(" '1'").Trim() + " ";
  175. strSql += Convert.ToString(" END = CASE").Trim() + " ";
  176. strSql += Convert.ToString(" WHEN UPPER('" + _DEVICE_POS.Substring(0, 1) + "') = 'C' THEN").Trim() + " ";
  177. strSql += Convert.ToString(" '" + CheckNo + "'").Trim() + " ";
  178. strSql += Convert.ToString(" ELSE").Trim() + " ";
  179. strSql += Convert.ToString(" '2'").Trim() + " ";
  180. strSql += Convert.ToString(" END)").Trim() + " ";
  181. strSql += Convert.ToString(" UNION ALL").Trim() + " ";
  182. strSql += Convert.ToString(" SELECT *").Trim() + " ";
  183. strSql += Convert.ToString(" FROM J#STL_CHEMELEMENT").Trim() + " ";
  184. strSql += Convert.ToString(" WHERE HEATNO = '" + HeatNo + "'").Trim() + " ";
  185. strSql += Convert.ToString(" AND STATIONCODE = '" + _DEVICE_POS + "'").Trim() + " ";
  186. strSql += Convert.ToString(" OR (CASE").Trim() + " ";
  187. strSql += Convert.ToString(" WHEN UPPER('" + _DEVICE_POS.Substring(0, 1) + "') = 'C' THEN").Trim() + " ";
  188. strSql += Convert.ToString(" CHECKNO").Trim() + " ";
  189. strSql += Convert.ToString(" ELSE").Trim() + " ";
  190. strSql += Convert.ToString(" '1'").Trim() + " ";
  191. strSql += Convert.ToString(" END = CASE").Trim() + " ";
  192. strSql += Convert.ToString(" WHEN UPPER('" + _DEVICE_POS.Substring(0, 1) + "') = 'C' THEN").Trim() + " ";
  193. strSql += Convert.ToString(" '" + CheckNo + "'").Trim() + " ";
  194. strSql += Convert.ToString(" ELSE").Trim() + " ";
  195. strSql += Convert.ToString(" '2'").Trim() + " ";
  196. strSql += Convert.ToString(" END))").Trim() + " ";
  197. strSql += Convert.ToString(" ORDER BY DECODE(ASSAYTYPECODE,").Trim() + " ";
  198. strSql += Convert.ToString(" 'GT',").Trim() + " ";
  199. strSql += Convert.ToString(" '1',").Trim() + " ";
  200. strSql += Convert.ToString(" 'TS',").Trim() + " ";
  201. strSql += Convert.ToString(" '2',").Trim() + " ";
  202. strSql += Convert.ToString(" 'LD',").Trim() + " ";
  203. strSql += Convert.ToString(" '3',").Trim() + " ";
  204. strSql += Convert.ToString(" 'AR',").Trim() + " ";
  205. strSql += Convert.ToString(" '4',").Trim() + " ";
  206. strSql += Convert.ToString(" 'LF',").Trim() + " ";
  207. strSql += Convert.ToString(" '5',").Trim() + " ";
  208. strSql += Convert.ToString(" 'CC',").Trim() + " ";
  209. strSql += Convert.ToString(" '6',").Trim() + " ";
  210. strSql += Convert.ToString(" '7'),").Trim() + " ";
  211. strSql += Convert.ToString(" CHECKNO").Trim();
  212. DataSet ds = ClsDataAccessPack.GetData(strSql, out bSuccess, out strMsg, ob);
  213. if (bSuccess) DataSetToCraftElement(ref ds, ref _tmpObjCraftEle);
  214. }
  215. catch { }
  216. }
  217. //查询化学检验值表
  218. public void GetCraftEleInfo_RES(string HeatNo, string _DEVICE_POS, string CheckNo, OpeBase ob)
  219. {
  220. try
  221. {
  222. if (string.IsNullOrEmpty(HeatNo.Trim()) || HeatNo.Trim().Length <= 1) return;
  223. // HeatNo = HeatNo.Trim().Substring(1);
  224. bool bSuccess = false;
  225. string strMsg = "";
  226. string strSql = "";
  227. strSql += Convert.ToString("SELECT *").Trim() + " ";
  228. strSql += Convert.ToString(" FROM (SELECT *").Trim() + " ";
  229. strSql += Convert.ToString(" FROM STL_CHEMELEMENT").Trim() + " ";
  230. strSql += Convert.ToString(" WHERE STOVE_NO = '" + HeatNo + "'").Trim() + " ";
  231. strSql += Convert.ToString(" OR (CASE").Trim() + " ";
  232. strSql += Convert.ToString(" WHEN UPPER('" + _DEVICE_POS.Substring(0, 1) + "') = 'C' THEN").Trim() + " ";
  233. strSql += Convert.ToString(" CHECKNO").Trim() + " ";
  234. strSql += Convert.ToString(" ELSE").Trim() + " ";
  235. strSql += Convert.ToString(" '1'").Trim() + " ";
  236. strSql += Convert.ToString(" END = CASE").Trim() + " ";
  237. strSql += Convert.ToString(" WHEN UPPER('" + _DEVICE_POS.Substring(0, 1) + "') = 'C' THEN").Trim() + " ";
  238. strSql += Convert.ToString(" '" + CheckNo + "'").Trim() + " ";
  239. strSql += Convert.ToString(" ELSE").Trim() + " ";
  240. strSql += Convert.ToString(" '2'").Trim() + " ";
  241. strSql += Convert.ToString(" END)").Trim() + " ";
  242. strSql += Convert.ToString(" UNION ALL").Trim() + " ";
  243. strSql += Convert.ToString(" SELECT *").Trim() + " ";
  244. strSql += Convert.ToString(" FROM J#STL_CHEMELEMENT").Trim() + " ";
  245. strSql += Convert.ToString(" WHERE STOVE_NO = '" + HeatNo + "'").Trim() + " ";
  246. strSql += Convert.ToString(" OR (CASE").Trim() + " ";
  247. strSql += Convert.ToString(" WHEN UPPER('" + _DEVICE_POS.Substring(0, 1) + "') = 'C' THEN").Trim() + " ";
  248. strSql += Convert.ToString(" CHECKNO").Trim() + " ";
  249. strSql += Convert.ToString(" ELSE").Trim() + " ";
  250. strSql += Convert.ToString(" '1'").Trim() + " ";
  251. strSql += Convert.ToString(" END = CASE").Trim() + " ";
  252. strSql += Convert.ToString(" WHEN UPPER('" + _DEVICE_POS.Substring(0, 1) + "') = 'C' THEN").Trim() + " ";
  253. strSql += Convert.ToString(" '" + CheckNo + "'").Trim() + " ";
  254. strSql += Convert.ToString(" ELSE").Trim() + " ";
  255. strSql += Convert.ToString(" '2'").Trim() + " ";
  256. strSql += Convert.ToString(" END))").Trim() + " ";
  257. strSql += Convert.ToString(" ORDER BY DECODE(ASSAYTYPECODE,").Trim() + " ";
  258. strSql += Convert.ToString(" 'GT',").Trim() + " ";
  259. strSql += Convert.ToString(" '1',").Trim() + " ";
  260. strSql += Convert.ToString(" 'TS',").Trim() + " ";
  261. strSql += Convert.ToString(" '2',").Trim() + " ";
  262. strSql += Convert.ToString(" 'LD',").Trim() + " ";
  263. strSql += Convert.ToString(" '3',").Trim() + " ";
  264. strSql += Convert.ToString(" 'AR',").Trim() + " ";
  265. strSql += Convert.ToString(" '4',").Trim() + " ";
  266. strSql += Convert.ToString(" 'LF',").Trim() + " ";
  267. strSql += Convert.ToString(" '5',").Trim() + " ";
  268. strSql += Convert.ToString(" 'CC',").Trim() + " ";
  269. strSql += Convert.ToString(" '6',").Trim() + " ";
  270. strSql += Convert.ToString(" '7'),").Trim() + " ";
  271. strSql += Convert.ToString(" CHECKNO").Trim();
  272. DataSet ds = ClsDataAccessPack.GetData(strSql, out bSuccess, out strMsg, ob);
  273. if (bSuccess) DataSetToCraftElement(ref ds, ref _tmpObjCraftEle);
  274. }
  275. catch { }
  276. }
  277. /// <summary>
  278. /// 填充化学成分信息界面数据
  279. /// </summary>
  280. public void FillCraftElement()
  281. {
  282. int iCurr = 0;
  283. if (ulgridElement.ActiveRow != null) iCurr = ulgridElement.ActiveRow.Index;
  284. ulgridElement.BeginUpdate();
  285. try
  286. {
  287. lock (this)
  288. {
  289. int iRows = _objCraftEleBuffer.hList.Count + 3; //加3行标准
  290. try
  291. {
  292. _dtCraftElement.Rows.Clear();
  293. DataRow row = null;
  294. for (int i = 0; i < iRows; i++)
  295. {
  296. row = _dtCraftElement.NewRow();
  297. _dtCraftElement.Rows.Add(row);
  298. }
  299. _dtCraftElement.Rows[iRows - 2]["TYPESYMBOL"] = "国标";
  300. _dtCraftElement.Rows[0]["TYPESYMBOL"] = "内控";
  301. _dtCraftElement.Rows[iRows - 1]["TYPESYMBOL"] = "客户";
  302. //_dtCraftElement.Rows[0]["TYPESYMBOL"] = "国标";
  303. //_dtCraftElement.Rows[1]["TYPESYMBOL"] = "内控";
  304. //_dtCraftElement.Rows[2]["TYPESYMBOL"] = "客户";
  305. }
  306. catch { }
  307. #region " C标准"
  308. if (_dtEleStd != null && this._dtEleStd.Rows.Count > 0)
  309. {
  310. for (int i = 0; i < this._dtEleStd.Rows.Count; i++)
  311. {
  312. DataRow dr = this._dtEleStd.Rows[i];
  313. ClsBusinessPack.SetStandardElemData(Convert.ToInt32(dr["STD_DC"].ToString()) - 2, dr, ref _dtCraftElement);
  314. }
  315. }
  316. #endregion
  317. int idx = 1;
  318. #region " 实时值"
  319. for (int i = 0; i < _objCraftEleBuffer.hList.Count; i++, idx++)
  320. {
  321. JOB_CHEMELEMENT obj = (JOB_CHEMELEMENT)_objCraftEleBuffer.hList[i];
  322. ClsBusinessPack.SetCraftElemGridData(idx, obj, GetItemName(obj.ASSAYTYPECODE), ref _dtCraftElement);
  323. }
  324. #endregion
  325. ulgridElement.DataBind();
  326. ulgridElement.Rows[0].Fixed = true;
  327. ulgridElement.Rows[1].Fixed = true;
  328. ulgridElement.DisplayLayout.Bands[0].Override.FixedRowStyle = Infragistics.Win.UltraWinGrid.FixedRowStyle.Top;
  329. ulgridElement.DisplayLayout.UseFixedHeaders = true;
  330. ulgridElement.DisplayLayout.Bands[0].Columns["TYPESYMBOL"].Header.Fixed = true;
  331. ulgridElement.DisplayLayout.Bands[0].Override.FixedHeaderIndicator = Infragistics.Win.UltraWinGrid.FixedHeaderIndicator.None;
  332. proc_CompareChemEle();
  333. }
  334. }
  335. catch { }
  336. finally
  337. {
  338. ClsControlPack.RefreshAndAutoSize(ulgridElement);
  339. if (iCurr > 0 && ulgridElement.Rows.Count >= iCurr + 1)
  340. {
  341. ulgridElement.Rows[iCurr].Activated = true;
  342. ulgridElement.Rows[iCurr].Selected = false;
  343. }
  344. ulgridElement.EndUpdate();
  345. }
  346. }
  347. /// <summary>
  348. /// 铁水预处理填充化学成分信息界面数据
  349. /// </summary>
  350. public void HmpFillCraftElement()
  351. {
  352. int iCurr = 0;
  353. if (ulgridElement.ActiveRow != null) iCurr = ulgridElement.ActiveRow.Index;
  354. ulgridElement.BeginUpdate();
  355. try
  356. {
  357. lock (this)
  358. {
  359. int iRows = _objCraftEleBuffer.hList.Count + 3; //加2行标准
  360. try
  361. {
  362. _dtCraftElement.Rows.Clear();
  363. DataRow row = null;
  364. for (int i = 0; i < iRows; i++)
  365. {
  366. row = _dtCraftElement.NewRow();
  367. _dtCraftElement.Rows.Add(row);
  368. }
  369. _dtCraftElement.Rows[0]["TYPESYMBOL"] = "国标";
  370. _dtCraftElement.Rows[1]["TYPESYMBOL"] = "内控";
  371. _dtCraftElement.Rows[2]["TYPESYMBOL"] = "客户";
  372. }
  373. catch { }
  374. #region " C标准"
  375. if (_dtEleStd != null && this._dtEleStd.Rows.Count > 0)
  376. {
  377. for (int i = 0; i < this._dtEleStd.Rows.Count; i++)
  378. {
  379. DataRow dr = this._dtEleStd.Rows[i];
  380. ClsBusinessPack.SetStandardElemData(Convert.ToInt32(dr["STD_DC"].ToString()) - 1, dr, ref _dtCraftElement);
  381. }
  382. }
  383. #endregion
  384. int idx = 3;
  385. #region " 实时值"
  386. for (int i = 0; i < _objCraftEleBuffer.hList.Count; i++, idx++)
  387. {
  388. JOB_CHEMELEMENT obj = (JOB_CHEMELEMENT)_objCraftEleBuffer.hList[i];
  389. ClsBusinessPack.SetCraftElemGridData(idx, obj, GetItemName(obj.ASSAYTYPECODE), ref _dtCraftElement);
  390. }
  391. #endregion
  392. ulgridElement.DataBind();
  393. ulgridElement.Rows[0].Fixed = true;
  394. ulgridElement.Rows[1].Fixed = true;
  395. ulgridElement.DisplayLayout.Bands[0].Override.FixedRowStyle = Infragistics.Win.UltraWinGrid.FixedRowStyle.Top;
  396. ulgridElement.DisplayLayout.UseFixedHeaders = true;
  397. ulgridElement.DisplayLayout.Bands[0].Columns["TYPESYMBOL"].Header.Fixed = true;
  398. ulgridElement.DisplayLayout.Bands[0].Override.FixedHeaderIndicator = Infragistics.Win.UltraWinGrid.FixedHeaderIndicator.None;
  399. proc_CompareChemEle();
  400. ulgridElement.Rows[0].Hidden = true;
  401. ulgridElement.Rows[1].Hidden = true;
  402. ulgridElement.Rows[2].Hidden = true;
  403. }
  404. }
  405. catch { }
  406. finally
  407. {
  408. ClsControlPack.RefreshAndAutoSize(ulgridElement);
  409. if (iCurr > 0 && ulgridElement.Rows.Count >= iCurr + 1)
  410. {
  411. ulgridElement.Rows[iCurr].Activated = true;
  412. ulgridElement.Rows[iCurr].Selected = false;
  413. }
  414. ulgridElement.EndUpdate();
  415. }
  416. }
  417. private string GetItemName(string strCode)
  418. {
  419. switch (strCode.Trim().ToUpper().Substring(0,1))
  420. {
  421. case "GT":
  422. return "高炉铁水";
  423. case "T":
  424. return "铁水样";
  425. case "B":
  426. return "脱硫铁水";
  427. case "C":
  428. return "炉前样";
  429. case "D":
  430. return "吹氩样";
  431. case "P":
  432. return "平台样";
  433. case "E":
  434. return "精炼样";
  435. case "G":
  436. return "成品样";
  437. case "ZP":
  438. return "铸坯样";
  439. }
  440. return "";
  441. }
  442. private void proc_CompareChemEle() //add on 2009-04-20
  443. {
  444. try
  445. {
  446. string strElementType = "", strStdFX = "", strStdNK = "", strReal = "";
  447. int iRetFX, iRetNK;
  448. Color clrOutFX = Color.Red, clrOutNK = Color.Blue, clrNormal = Color.Black;
  449. for (int i = 1; i < ulgridElement.Rows.Count; i++)
  450. {
  451. string assaytypecode = ulgridElement.Rows[i].Cells["TYPESYMBOL"].Value.ToString();
  452. if (assaytypecode == "成品样")
  453. {
  454. strElementType = Convert.ToString(ulgridElement.Rows[i].Cells["TYPESYMBOL"].Value);
  455. if (strElementType.Contains("GT") || strElementType.Contains("TS") || strElementType == "")
  456. {
  457. for (int j = 1; j < ulgridElement.DisplayLayout.Bands[0].Columns.Count; j++)
  458. {
  459. ulgridElement.Rows[i].Cells[j].Appearance.ForeColor = clrNormal;
  460. }
  461. continue;
  462. }
  463. for (int j = 1; j < ulgridElement.DisplayLayout.Bands[0].Columns.Count; j++)
  464. {
  465. strStdNK = Convert.ToString(ulgridElement.Rows[ulgridElement.Rows.Count - 2].Cells[j].Value);
  466. strStdFX = Convert.ToString(ulgridElement.Rows[0].Cells[j].Value);
  467. strReal = Convert.ToString(ulgridElement.Rows[i].Cells[j].Value);
  468. iRetNK = sValue(strStdNK, strReal);
  469. iRetFX = sValue(strStdFX, strReal);
  470. if (iRetFX == -1) ulgridElement.Rows[i].Cells[j].Appearance.ForeColor = clrOutFX;
  471. else if (iRetNK == -1) ulgridElement.Rows[i].Cells[j].Appearance.ForeColor = clrOutNK;
  472. else ulgridElement.Rows[i].Cells[j].Appearance.ForeColor = clrNormal;
  473. }
  474. }
  475. }
  476. }
  477. catch (Exception ex)
  478. {
  479. string meg = ex.Message;
  480. }
  481. }
  482. private int sValue(string Svalue, string SCHvalue) //add on 2009-04-20
  483. {
  484. if (SCHvalue.Length < 1)
  485. {
  486. return 0;
  487. }
  488. if (Svalue.Length > 0)
  489. {
  490. string BValue = "-1";
  491. string EValue = "-1";
  492. if (Svalue.IndexOf("~") > 0)
  493. {
  494. BValue = Svalue.Substring(0, Svalue.IndexOf("~"));
  495. EValue = Svalue.Substring(Svalue.IndexOf("~") + 1, Svalue.Length - Svalue.IndexOf("~") - 1);
  496. if (double.Parse(SCHvalue) >= double.Parse(BValue) && double.Parse(SCHvalue) <= double.Parse(EValue))
  497. {
  498. return 0; //正确
  499. }
  500. else
  501. {
  502. return -1;
  503. }
  504. }
  505. else
  506. {
  507. if (Svalue.IndexOf("≤") > -1)
  508. {
  509. EValue = Svalue.Substring(Svalue.IndexOf("≤") + 2, Svalue.Length - Svalue.IndexOf("≤") - 2);
  510. if (double.Parse(SCHvalue) <= double.Parse(EValue))
  511. {
  512. return 0; //正确
  513. }
  514. else
  515. {
  516. return -1;
  517. }
  518. }
  519. else
  520. {
  521. if (Svalue.IndexOf("<") > -1 && Svalue.IndexOf("=") == -1)
  522. {
  523. EValue = Svalue.Substring(Svalue.IndexOf("<") + 1, Svalue.Length - Svalue.IndexOf("<") - 1);
  524. if (double.Parse(SCHvalue) < double.Parse(EValue))
  525. {
  526. return 0; //正确
  527. }
  528. else
  529. {
  530. return -1;
  531. }
  532. }
  533. else
  534. {
  535. if (Svalue.IndexOf("≥") > -1)
  536. {
  537. EValue = Svalue.Substring(Svalue.IndexOf("≥") + 1, Svalue.Length - Svalue.IndexOf("≥") - 1);
  538. if (double.Parse(SCHvalue) >= double.Parse(EValue))
  539. {
  540. return 0; //正确
  541. }
  542. else
  543. {
  544. return -1;
  545. }
  546. }
  547. else
  548. {
  549. if (Svalue.IndexOf(">") > -1 && Svalue.IndexOf("=") == -1)
  550. {
  551. EValue = Svalue.Substring(Svalue.IndexOf(">") + 1, Svalue.Length - Svalue.IndexOf(">") - 1);
  552. if (double.Parse(SCHvalue) > double.Parse(EValue))
  553. {
  554. return 0; //正确
  555. }
  556. else
  557. {
  558. return -1;
  559. }
  560. }
  561. else
  562. {
  563. EValue = Svalue;
  564. try
  565. {
  566. if (double.Parse(SCHvalue) == double.Parse(EValue))
  567. {
  568. return 0; //正确
  569. }
  570. }
  571. catch { }
  572. return -1;
  573. }
  574. }
  575. }
  576. }
  577. }
  578. }
  579. return 0;
  580. }
  581. /// <summary>
  582. /// 获取标准元素值
  583. /// </summary>
  584. /// <param name="strSteelCode">钢种(暂不用)</param>
  585. /// <param name="strStationCode">虚拟炉号</param>
  586. public void GetStandardElement(string strHeatID, OpeBase ob)
  587. {
  588. try
  589. {
  590. if (string.IsNullOrEmpty(strHeatID)) return;
  591. DataSet ds = ClsDataAccessPack.GetChemElementStandard(strHeatID, ob);
  592. if (ds != null && ds.Tables.Count > 0) _dtEleStd = ds.Tables[0];
  593. }
  594. catch { }
  595. }
  596. /// <summary>
  597. /// 序列化化学成分
  598. /// </summary>
  599. /// <param name="ds">作业化学成分</param>
  600. /// <param name="obj"></param>
  601. public void DataSetToCraftElement(ref DataSet ds, ref CraftElement obj)
  602. {
  603. try
  604. {
  605. obj.ClearElement();
  606. PropertyInfo[] PropertyInfos = null;
  607. foreach (DataRow dr in ds.Tables[0].Rows)
  608. {
  609. JOB_CHEMELEMENT detail = new JOB_CHEMELEMENT();
  610. if (PropertyInfos == null)
  611. {
  612. PropertyInfos = detail.GetType().GetProperties();
  613. }
  614. //给各个属性赋值
  615. foreach (PropertyInfo oPropertyInfo in PropertyInfos)
  616. {
  617. try
  618. {
  619. if (dr.Table.Columns.Contains(oPropertyInfo.Name))
  620. {
  621. if (dr[oPropertyInfo.Name] != System.DBNull.Value)
  622. {
  623. oPropertyInfo.SetValue(detail, dr[oPropertyInfo.Name.ToString()], null);
  624. }
  625. }
  626. }
  627. catch (Exception ex)
  628. {
  629. MessageBox.Show(ex.Message);
  630. }
  631. }
  632. obj.Add(ref detail);
  633. }//end foreach
  634. _objCraftEleBuffer.DataHarmonize(ref obj);
  635. }
  636. catch { }
  637. }
  638. public void ResetData()
  639. {
  640. try
  641. {
  642. _tmpObjCraftEle.ClearElement();
  643. _objCraftEleBuffer.ClearElement();
  644. _dtCraftElement.Rows.Clear();
  645. }
  646. catch { }
  647. }
  648. }
  649. }