ucResChemelEment.cs 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Drawing;
  5. using System.Data;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. using System.Collections;
  9. using CoreFS.CA06;
  10. using Core.LgMes.Client.lgClassModel;
  11. using System.Reflection;
  12. using Core.Mes.Client.Common;
  13. namespace Core.LgMes.Client.LgResMgt
  14. {
  15. public partial class ucResChemelEment : UserControl
  16. {
  17. public OpeBase ob = null;
  18. private DataTable _dtCraftElement = null; // 工艺化学成分信息表
  19. private CraftElement _tmpObjCraftEle; // 存放工艺化学成分信息的类
  20. private CraftElement _objCraftEleBuffer; // 用于实时刷新工艺化学成分信息的缓冲区
  21. private DataTable _dtEleStd = null; // 标准元素值表
  22. //所有化学元素
  23. // "C,SI,MN,P,S,NI,CR,CU,ASN,TI,V,MO,B,W,AL,ZN,PB,SN,CA,LA,SB,CE,SE,MG,NB,"
  24. // + "CD,BI,N,H,O,FE,AT,BA,BE,CS,CL,CO,DY,ER,EU,GD,GA,GE,HF,HO,IND,I,IR,KR,LI,LU,ND,NA,OS,PD,PT,K,PR,RE,RH,RB,"
  25. // + "SM,SC,SR,TA,TE,TB,TM,YB,Y,ZR,ALT,ALS,ALINS,CSC,CEQ,HIC,";
  26. private string strElementName = "C,Mn,S,P,Si,Als,Alt,N,Ti,Cr,Ni,Mo,Nb,B,V,Ca,Asn,Sn,Cu,Sb,CE,CE1,Ceq,Ceq2,Ceq3,Cev,Pcm,O,H,";
  27. public ucResChemelEment()
  28. {
  29. InitializeComponent();
  30. }
  31. /// <summary>
  32. /// 生成铁水成分的表架构
  33. /// </summary>
  34. private void GenerateTableFrame()
  35. {
  36. _dtCraftElement = new DataTable("CraftElement");
  37. DataColumn myDataColumn = new DataColumn();
  38. myDataColumn.DataType = System.Type.GetType("System.String");
  39. myDataColumn.ColumnName = "TYPESYMBOL";
  40. myDataColumn.Caption = "项目名";
  41. _dtCraftElement.Columns.Add(myDataColumn);
  42. myDataColumn = new DataColumn();
  43. myDataColumn.DataType = System.Type.GetType("System.String");
  44. myDataColumn.ColumnName = "ASSAYDATE";
  45. myDataColumn.Caption = "化验时间";
  46. _dtCraftElement.Columns.Add(myDataColumn);
  47. myDataColumn = new DataColumn();
  48. myDataColumn.DataType = System.Type.GetType("System.String");
  49. myDataColumn.ColumnName = "C";
  50. myDataColumn.Caption = "C";
  51. _dtCraftElement.Columns.Add(myDataColumn);
  52. myDataColumn = new DataColumn();
  53. myDataColumn.DataType = System.Type.GetType("System.String");
  54. myDataColumn.ColumnName = "Mn";
  55. myDataColumn.Caption = "Mn";
  56. _dtCraftElement.Columns.Add(myDataColumn);
  57. myDataColumn = new DataColumn();
  58. myDataColumn.DataType = System.Type.GetType("System.String");
  59. myDataColumn.ColumnName = "S";
  60. myDataColumn.Caption = "S";
  61. _dtCraftElement.Columns.Add(myDataColumn);
  62. myDataColumn = new DataColumn();
  63. myDataColumn.DataType = System.Type.GetType("System.String");
  64. myDataColumn.ColumnName = "P";
  65. myDataColumn.Caption = "P";
  66. _dtCraftElement.Columns.Add(myDataColumn);
  67. myDataColumn = new DataColumn();
  68. myDataColumn.DataType = System.Type.GetType("System.String");
  69. myDataColumn.ColumnName = "Si";
  70. myDataColumn.Caption = "Si";
  71. _dtCraftElement.Columns.Add(myDataColumn);
  72. myDataColumn = new DataColumn();
  73. myDataColumn.DataType = System.Type.GetType("System.String");
  74. myDataColumn.ColumnName = "Als";
  75. myDataColumn.Caption = "Als";
  76. _dtCraftElement.Columns.Add(myDataColumn);
  77. myDataColumn = new DataColumn();
  78. myDataColumn.DataType = System.Type.GetType("System.String");
  79. myDataColumn.ColumnName = "Alt";
  80. myDataColumn.Caption = "Alt";
  81. _dtCraftElement.Columns.Add(myDataColumn);
  82. myDataColumn = new DataColumn();
  83. myDataColumn.DataType = System.Type.GetType("System.String");
  84. myDataColumn.ColumnName = "N";
  85. myDataColumn.Caption = "N";
  86. _dtCraftElement.Columns.Add(myDataColumn);
  87. myDataColumn = new DataColumn();
  88. myDataColumn.DataType = System.Type.GetType("System.String");
  89. myDataColumn.ColumnName = "Ti";
  90. myDataColumn.Caption = "Ti";
  91. _dtCraftElement.Columns.Add(myDataColumn);
  92. myDataColumn = new DataColumn();
  93. myDataColumn.DataType = System.Type.GetType("System.String");
  94. myDataColumn.ColumnName = "Cr";
  95. myDataColumn.Caption = "Cr";
  96. _dtCraftElement.Columns.Add(myDataColumn);
  97. myDataColumn = new DataColumn();
  98. myDataColumn.DataType = System.Type.GetType("System.String");
  99. myDataColumn.ColumnName = "Ni";
  100. myDataColumn.Caption = "Ni";
  101. _dtCraftElement.Columns.Add(myDataColumn);
  102. myDataColumn = new DataColumn();
  103. myDataColumn.DataType = System.Type.GetType("System.String");
  104. myDataColumn.ColumnName = "Mo";
  105. myDataColumn.Caption = "Mo";
  106. _dtCraftElement.Columns.Add(myDataColumn);
  107. myDataColumn = new DataColumn();
  108. myDataColumn.DataType = System.Type.GetType("System.String");
  109. myDataColumn.ColumnName = "Nb";
  110. myDataColumn.Caption = "Nb";
  111. _dtCraftElement.Columns.Add(myDataColumn);
  112. myDataColumn = new DataColumn();
  113. myDataColumn.DataType = System.Type.GetType("System.String");
  114. myDataColumn.ColumnName = "B";
  115. myDataColumn.Caption = "B";
  116. _dtCraftElement.Columns.Add(myDataColumn);
  117. myDataColumn = new DataColumn();
  118. myDataColumn.DataType = System.Type.GetType("System.String");
  119. myDataColumn.ColumnName = "V";
  120. myDataColumn.Caption = "V";
  121. _dtCraftElement.Columns.Add(myDataColumn);
  122. myDataColumn = new DataColumn();
  123. myDataColumn.DataType = System.Type.GetType("System.String");
  124. myDataColumn.ColumnName = "Ca";
  125. myDataColumn.Caption = "Ca";
  126. _dtCraftElement.Columns.Add(myDataColumn);
  127. myDataColumn = new DataColumn();
  128. myDataColumn.DataType = System.Type.GetType("System.String");
  129. myDataColumn.ColumnName = "Asn";
  130. myDataColumn.Caption = "As";
  131. _dtCraftElement.Columns.Add(myDataColumn);
  132. myDataColumn = new DataColumn();
  133. myDataColumn.DataType = System.Type.GetType("System.String");
  134. myDataColumn.ColumnName = "Sn";
  135. myDataColumn.Caption = "Sn";
  136. _dtCraftElement.Columns.Add(myDataColumn);
  137. myDataColumn = new DataColumn();
  138. myDataColumn.DataType = System.Type.GetType("System.String");
  139. myDataColumn.ColumnName = "Cu";
  140. myDataColumn.Caption = "Cu";
  141. _dtCraftElement.Columns.Add(myDataColumn);
  142. myDataColumn = new DataColumn();
  143. myDataColumn.DataType = System.Type.GetType("System.String");
  144. myDataColumn.ColumnName = "Sb";
  145. myDataColumn.Caption = "Sb";
  146. _dtCraftElement.Columns.Add(myDataColumn);
  147. myDataColumn = new DataColumn();
  148. myDataColumn.DataType = System.Type.GetType("System.String");
  149. myDataColumn.ColumnName = "CE";
  150. myDataColumn.Caption = "CE";
  151. _dtCraftElement.Columns.Add(myDataColumn);
  152. myDataColumn = new DataColumn();
  153. myDataColumn.DataType = System.Type.GetType("System.String");
  154. myDataColumn.ColumnName = "CE1";
  155. myDataColumn.Caption = "CE1";
  156. _dtCraftElement.Columns.Add(myDataColumn);
  157. myDataColumn = new DataColumn();
  158. myDataColumn.DataType = System.Type.GetType("System.String");
  159. myDataColumn.ColumnName = "Ceq";
  160. myDataColumn.Caption = "Ceq";
  161. _dtCraftElement.Columns.Add(myDataColumn);
  162. myDataColumn = new DataColumn();
  163. myDataColumn.DataType = System.Type.GetType("System.String");
  164. myDataColumn.ColumnName = "Ceq2";
  165. myDataColumn.Caption = "Ceq2";
  166. _dtCraftElement.Columns.Add(myDataColumn);
  167. myDataColumn = new DataColumn();
  168. myDataColumn.DataType = System.Type.GetType("System.String");
  169. myDataColumn.ColumnName = "Ceq3";
  170. myDataColumn.Caption = "Ceq3";
  171. _dtCraftElement.Columns.Add(myDataColumn);
  172. myDataColumn = new DataColumn();
  173. myDataColumn.DataType = System.Type.GetType("System.String");
  174. myDataColumn.ColumnName = "Cev";
  175. myDataColumn.Caption = "Cev";
  176. _dtCraftElement.Columns.Add(myDataColumn);
  177. myDataColumn = new DataColumn();
  178. myDataColumn.DataType = System.Type.GetType("System.String");
  179. myDataColumn.ColumnName = "Pcm";
  180. myDataColumn.Caption = "Pcm";
  181. _dtCraftElement.Columns.Add(myDataColumn);
  182. myDataColumn = new DataColumn();
  183. myDataColumn.DataType = System.Type.GetType("System.String");
  184. myDataColumn.ColumnName = "O";
  185. myDataColumn.Caption = "O";
  186. _dtCraftElement.Columns.Add(myDataColumn);
  187. myDataColumn = new DataColumn();
  188. myDataColumn.DataType = System.Type.GetType("System.String");
  189. myDataColumn.ColumnName = "H";
  190. myDataColumn.Caption = "H";
  191. _dtCraftElement.Columns.Add(myDataColumn);
  192. myDataColumn = new DataColumn();
  193. myDataColumn.DataType = System.Type.GetType("System.String");
  194. myDataColumn.ColumnName = "YXX";
  195. myDataColumn.Caption = "液相线";
  196. _dtCraftElement.Columns.Add(myDataColumn);
  197. //C、Si、Mn、P、S、Als、V、Nb、Ti、As、Sn、Cu、Sb、Alt、O、N、H
  198. this.ulgridElement.DataSource = _dtCraftElement;
  199. this.ulgridElement.DisplayLayout.Bands[0].Columns["TYPESYMBOL"].Width = 50;
  200. this.ulgridElement.DisplayLayout.Bands[0].Columns["TYPESYMBOL"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  201. this.ulgridElement.DisplayLayout.Bands[0].Columns["ASSAYDATE"].Width = 120;
  202. this.ulgridElement.DisplayLayout.Bands[0].Columns["ASSAYDATE"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  203. this.ulgridElement.DisplayLayout.Bands[0].Columns["C"].Width = 90;
  204. this.ulgridElement.DisplayLayout.Bands[0].Columns["C"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  205. this.ulgridElement.DisplayLayout.Bands[0].Columns["Si"].Width = 90;
  206. this.ulgridElement.DisplayLayout.Bands[0].Columns["Si"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  207. this.ulgridElement.DisplayLayout.Bands[0].Columns["Mn"].Width = 90;
  208. this.ulgridElement.DisplayLayout.Bands[0].Columns["Mn"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  209. this.ulgridElement.DisplayLayout.Bands[0].Columns["P"].Width = 90;
  210. this.ulgridElement.DisplayLayout.Bands[0].Columns["P"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  211. this.ulgridElement.DisplayLayout.Bands[0].Columns["S"].Width = 90;
  212. this.ulgridElement.DisplayLayout.Bands[0].Columns["S"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  213. this.ulgridElement.DisplayLayout.Bands[0].Columns["Als"].Width = 90;
  214. this.ulgridElement.DisplayLayout.Bands[0].Columns["Als"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  215. this.ulgridElement.DisplayLayout.Bands[0].Columns["V"].Width = 90;
  216. this.ulgridElement.DisplayLayout.Bands[0].Columns["V"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  217. this.ulgridElement.DisplayLayout.Bands[0].Columns["Nb"].Width = 90;
  218. this.ulgridElement.DisplayLayout.Bands[0].Columns["Nb"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  219. this.ulgridElement.DisplayLayout.Bands[0].Columns["Cr"].Width = 90;
  220. this.ulgridElement.DisplayLayout.Bands[0].Columns["Cr"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  221. this.ulgridElement.DisplayLayout.Bands[0].Columns["Ni"].Width = 90;
  222. this.ulgridElement.DisplayLayout.Bands[0].Columns["Ni"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  223. this.ulgridElement.DisplayLayout.Bands[0].Columns["Mo"].Width = 90;
  224. this.ulgridElement.DisplayLayout.Bands[0].Columns["Mo"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  225. this.ulgridElement.DisplayLayout.Bands[0].Columns["Ti"].Width = 54;
  226. this.ulgridElement.DisplayLayout.Bands[0].Columns["Ti"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  227. this.ulgridElement.DisplayLayout.Bands[0].Columns["Ca"].Width = 54;
  228. this.ulgridElement.DisplayLayout.Bands[0].Columns["Ca"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  229. this.ulgridElement.DisplayLayout.Bands[0].Columns["B"].Width = 54;
  230. this.ulgridElement.DisplayLayout.Bands[0].Columns["B"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  231. this.ulgridElement.DisplayLayout.Bands[0].Columns["Asn"].Width = 54;
  232. this.ulgridElement.DisplayLayout.Bands[0].Columns["Asn"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  233. this.ulgridElement.DisplayLayout.Bands[0].Columns["Sn"].Width = 54;
  234. this.ulgridElement.DisplayLayout.Bands[0].Columns["Sn"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  235. this.ulgridElement.DisplayLayout.Bands[0].Columns["Cu"].Width = 54;
  236. this.ulgridElement.DisplayLayout.Bands[0].Columns["Cu"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  237. this.ulgridElement.DisplayLayout.Bands[0].Columns["Sb"].Width = 54;
  238. this.ulgridElement.DisplayLayout.Bands[0].Columns["Sb"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  239. this.ulgridElement.DisplayLayout.Bands[0].Columns["Alt"].Width = 54;
  240. this.ulgridElement.DisplayLayout.Bands[0].Columns["Alt"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  241. this.ulgridElement.DisplayLayout.Bands[0].Columns["Alt"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  242. this.ulgridElement.DisplayLayout.Bands[0].Columns["CE"].Width = 54;
  243. this.ulgridElement.DisplayLayout.Bands[0].Columns["CE"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  244. this.ulgridElement.DisplayLayout.Bands[0].Columns["CE1"].Width = 54;
  245. this.ulgridElement.DisplayLayout.Bands[0].Columns["CE1"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  246. this.ulgridElement.DisplayLayout.Bands[0].Columns["Ceq"].Width = 54;
  247. this.ulgridElement.DisplayLayout.Bands[0].Columns["Ceq"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  248. this.ulgridElement.DisplayLayout.Bands[0].Columns["Ceq2"].Width = 54;
  249. this.ulgridElement.DisplayLayout.Bands[0].Columns["Ceq2"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  250. this.ulgridElement.DisplayLayout.Bands[0].Columns["Ceq3"].Width = 54;
  251. this.ulgridElement.DisplayLayout.Bands[0].Columns["Ceq3"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  252. this.ulgridElement.DisplayLayout.Bands[0].Columns["Cev"].Width = 54;
  253. this.ulgridElement.DisplayLayout.Bands[0].Columns["Cev"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  254. this.ulgridElement.DisplayLayout.Bands[0].Columns["Pcm"].Width = 54;
  255. this.ulgridElement.DisplayLayout.Bands[0].Columns["Pcm"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  256. this.ulgridElement.DisplayLayout.Bands[0].Columns["O"].Width = 54;
  257. this.ulgridElement.DisplayLayout.Bands[0].Columns["O"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  258. this.ulgridElement.DisplayLayout.Bands[0].Columns["N"].Width = 90;
  259. this.ulgridElement.DisplayLayout.Bands[0].Columns["N"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  260. this.ulgridElement.DisplayLayout.Bands[0].Columns["H"].Width = 54;
  261. this.ulgridElement.DisplayLayout.Bands[0].Columns["H"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  262. this.ulgridElement.DisplayLayout.Bands[0].Columns["YXX"].Width = 54;
  263. this.ulgridElement.DisplayLayout.Bands[0].Columns["YXX"].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  264. }
  265. private void ucChemelEment_Load(object sender, EventArgs e)
  266. {
  267. _tmpObjCraftEle = new CraftElement();
  268. _objCraftEleBuffer = new CraftElement();
  269. GenerateTableFrame(); //初始化
  270. }
  271. /// <summary>
  272. /// 获取化学成分样
  273. /// </summary>
  274. /// <param name="_smeltingID">熔炼号</param>
  275. /// <param name="_DEVICE_POS">岗位例:C01 1#转炉</param>
  276. /// <param name="_Type">样类型(1铁水、2钢水、3渣样)</param>
  277. public void GetCraftEleInfo(string _smeltingID, string _DEVICE_POS, string _Type, string strCheckNO)
  278. {
  279. string strErr = "";
  280. string strDevice_Pos = ""; //岗位条件
  281. string strType = ""; //样类型条件
  282. string strCNo = "";
  283. if (_Type == "S")
  284. {
  285. strCNo = "S";
  286. }
  287. else
  288. strCNo = "I";
  289. if (_smeltingID == "")
  290. return;
  291. //根据岗位设置条件
  292. switch (_DEVICE_POS.Substring(0,2))
  293. {
  294. case "B0"://脱硫
  295. strType = " and substr(checkno,length(checkno),1)='" + _Type + "' ";
  296. break;
  297. case "C0": //转炉
  298. // strDevice_Pos = " and (substr(stationcode,1,1)='C' or substr(stationcode,1,1)='A')";
  299. strType = " and substr(checkno,length(checkno),1)='" + strCNo + "' or checkno='" + strCheckNO + "' ";
  300. break;
  301. case "D0": //氩站
  302. // strDevice_Pos = " and (substr(stationcode,1,1)='C' or substr(stationcode,1,1)='D')";
  303. strType = " and substr(checkno,length(checkno),1)='" + strCNo + "' ";
  304. break;
  305. case "E0": //精炼、RH
  306. case "F0":
  307. strType = " and substr(checkno,length(checkno),1)='" + strCNo + "' ";
  308. break;
  309. case "G0": //连铸机
  310. strType = " and substr(checkno,length(checkno),1)='" + strCNo + "' ";
  311. break;
  312. default:
  313. break;
  314. }
  315. string szOut = "", szWhere = " WHERE HeatNo = '" + _smeltingID + "'" + strDevice_Pos + strType;
  316. DataSet ds = new DataSet();
  317. ArrayList arry = new ArrayList();
  318. ArrayList sqlList = new ArrayList();
  319. arry.Add("GetRCraftElement.select");
  320. sqlList.Add(strElementName);
  321. arry.Add(_smeltingID);
  322. arry.Add(_smeltingID);
  323. arry.Add(strCNo);
  324. arry.Add(strCheckNO);
  325. sqlList.Add(strElementName);
  326. arry.Add(_smeltingID);
  327. arry.Add(_smeltingID);
  328. arry.Add(strCNo);
  329. arry.Add(strCheckNO);
  330. string sql = this.getChelementSql(_smeltingID, strCNo, strCheckNO);
  331. CoreFS.CA06.FrmBase fr = new FrmBase();
  332. fr.ob = ob;
  333. CoreClientParam CCP_Query = new CoreClientParam();
  334. DataTable dt = new DataTable();
  335. CCP_Query.ServerName = "Core.LgMes.Server.Common.ComDBExecute"; // 考虑原来返回数据形式性能太低,修改为前端传sql,服务端直接执行模式 2013.11.18
  336. CCP_Query.MethodName = "doSimpleQuery";
  337. // CCP_Query.MethodName = "doQuery";
  338. // CCP_Query.ServerParams = new object[] { arry, sqlList };
  339. CCP_Query.ServerParams = new object[] { sql };
  340. CCP_Query.SourceDataTable = dt;
  341. fr.ExecuteQueryToDataTable(CCP_Query, CoreInvokeType.Internal);
  342. ds.Tables.Add(dt);
  343. if (strErr == "" && ds != null)
  344. {
  345. try
  346. {
  347. DataSet dsZD = GetZDElement(strCheckNO);
  348. if (dsZD != null)
  349. {
  350. if (dsZD.Tables[0].Rows.Count > 0)
  351. {
  352. DataRow dr = ds.Tables[0].NewRow();
  353. dr["ASSAYTYPECODE"] = dsZD.Tables[0].Rows[0]["ASSAYTYPECODE"];
  354. dr["C"] = dsZD.Tables[0].Rows[0]["C"];
  355. dr["SI"] = dsZD.Tables[0].Rows[0]["SI"];
  356. dr["MN"] = dsZD.Tables[0].Rows[0]["MN"];
  357. dr["P"] = dsZD.Tables[0].Rows[0]["P"];
  358. dr["S"] = dsZD.Tables[0].Rows[0]["S"];
  359. dr["ASN"] = dsZD.Tables[0].Rows[0]["ASN"];
  360. //dr["NI"] = dsZD.Tables[0].Rows[0]["NI"];
  361. dr["CU"] = dsZD.Tables[0].Rows[0]["CU"];
  362. dr["SN"] = dsZD.Tables[0].Rows[0]["SN"];
  363. dr["SB"] = dsZD.Tables[0].Rows[0]["SB"];
  364. ds.Tables[0].Rows.InsertAt(dr, 0);
  365. }
  366. }
  367. }
  368. catch
  369. {
  370. }
  371. //序列化成分
  372. DataSetToCraftElement(ref ds, ref _tmpObjCraftEle);
  373. }
  374. }
  375. private string getChelementSql(string v_heatNo, string strCNo, string strCheckNO)
  376. {
  377. string sqlStr = "select CHECKNO, HEATNO, ASSAYTYPECODE, FLAG, C, Mn, S, P, Si, Als, Alt, N, Ti, Cr, Ni, Mo, Nb, B, V, Ca, Asn, Sn, Cu, "
  378. + " Sb,Ceq, Cev, Pcm, O, H, STEELNAME, SHIFTCODE, ASSAYDATE,"
  379. + " round(1536-(nvl(C,0)*78+nvl(Mn,0)*4.9+nvl(Si,0)*7.6+nvl(P,0)*34+nvl(S,0)*30+nvl(Cu,0)*5+nvl(Ni,0)*3.1+nvl(Mo,0)*2+nvl(V,0)*2+nvl(Cr,0)*1.3+nvl(Ti,0)*18+nvl(Als,0)*3.6),2) YXX "
  380. + " from STL_CHEMELEMENT where HeatNo = '{0}' "
  381. + "and substr(checkno, length(checkno), 1) = '{1}' or checkno = '{2}' union "
  382. + "select CHECKNO, HEATNO, ASSAYTYPECODE, FLAG, C, Mn, S, P, Si, Als, Alt, N, Ti, Cr, Ni, Mo, Nb, B, V, Ca, Asn, Sn, Cu, "
  383. + " Sb,Ceq, Cev, Pcm, O, H, STEELNAME, SHIFTCODE, ASSAYDATE ,"
  384. + " round(1536-(nvl(C,0)*78+nvl(Mn,0)*4.9+nvl(Si,0)*7.6+nvl(P,0)*34+nvl(S,0)*30+nvl(Cu,0)*5+nvl(Ni,0)*3.1+nvl(Mo,0)*2+nvl(V,0)*2+nvl(Cr,0)*1.3+nvl(Ti,0)*18+nvl(Als,0)*3.6),2) YXX "
  385. + " from J#STL_CHEMELEMENT where HeatNo = '{0}' "
  386. + "and substr(checkno, length(checkno), 1) = '{1}' or checkno = '{2}' order by ASSAYDATE ";
  387. return string.Format(sqlStr, v_heatNo, strCNo, strCheckNO);
  388. }
  389. /// <summary>
  390. /// 获取直兑化学成分
  391. /// </summary>
  392. /// <param name="strCheckNO"></param>
  393. private DataSet GetZDElement(string strCheckNO)
  394. {
  395. string strErr = "";
  396. DataSet dsValue = new DataSet();
  397. dsValue = null;
  398. ArrayList arry = new ArrayList();
  399. arry.Add("ReceiveResIronCraftElement.Select");//此ID为XML文件ID
  400. arry.Add(strCheckNO);
  401. arry.Add(strCheckNO);
  402. CommonClientToServer cctos = new CommonClientToServer();
  403. cctos.ob = this.ob;
  404. DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.Common.ComDBQuery",
  405. "doSimpleQuery", arry, out strErr);
  406. if (strErr == "" && ds != null)
  407. {
  408. dsValue = ds;
  409. }
  410. return dsValue;
  411. }
  412. /// <summary>
  413. /// 填充化学成分信息界面数据
  414. /// </summary>
  415. public void FillCraftElement()
  416. {
  417. try
  418. {
  419. lock (this)
  420. {
  421. int nRows = 0;
  422. nRows = _objCraftEleBuffer.hList.Count;
  423. nRows = nRows + 3;
  424. if(_objCraftEleBuffer.hList.Count>0)
  425. _dtCraftElement.Clear();
  426. Core.LgMes.Client.Comm.CStaticMethod.ResetTableRows(ref _dtCraftElement, nRows);
  427. int i = 2;
  428. #region " C标准"
  429. if (_dtEleStd != null && this._dtEleStd.Rows.Count > 0)
  430. {
  431. for (int j = 0; j < this._dtEleStd.Rows.Count; j++)
  432. {
  433. DataRow dr = this._dtEleStd.Rows[j];
  434. Core.LgMes.Client.Comm.CStaticMethod.SetStandardElemData(Convert.ToInt32(dr["STDSTYLE"].ToString()) - 1, dr, ref _dtCraftElement);
  435. }
  436. }
  437. i++;
  438. #endregion
  439. #region " 实时值"
  440. for (int j = 0; j < _objCraftEleBuffer.hList.Count; j++, i++)
  441. {
  442. JOB_CHEMELEMENT obj = (JOB_CHEMELEMENT)_objCraftEleBuffer.hList[j];
  443. Core.LgMes.Client.Comm.CStaticMethod.SetResCraftElemGridData(i, obj, EmentName(obj.ASSAYTYPECODE), ref _dtCraftElement);
  444. }
  445. #endregion
  446. // this.ulgridElement.DataSource = _dtCraftElement;
  447. ulgridElement.DataBind();
  448. ulgridElement.Rows[0].Fixed = true;
  449. ulgridElement.Rows[1].Fixed = true;
  450. ulgridElement.Rows[2].Fixed = true;
  451. ulgridElement.DisplayLayout.Bands[0].Override.FixedRowStyle = Infragistics.Win.UltraWinGrid.FixedRowStyle.Top;
  452. ulgridElement.DisplayLayout.UseFixedHeaders = true;
  453. ulgridElement.DisplayLayout.Bands[0].Columns["TYPESYMBOL"].Header.Fixed = true;
  454. ulgridElement.DisplayLayout.Bands[0].Override.FixedHeaderIndicator = Infragistics.Win.UltraWinGrid.FixedHeaderIndicator.None;
  455. proc_CompareChemEle();
  456. }
  457. }
  458. catch (Exception ex)
  459. {
  460. string Msg = ex.Message;
  461. }
  462. }
  463. private void proc_CompareChemEle() //add on 2009-04-20
  464. {
  465. try
  466. {
  467. string strElementType = "", strStdFX = "", strStdNK = "", strStdTx = "", strReal = "";
  468. int iRetFX, iRetNK, iRetTX;
  469. Color clrOutFX = Color.Red, clrOutNK = Color.FromArgb(204, 153, 0), clrOutTx = Color.Violet, clrNormal = Color.Black;
  470. for (int i = 3; i < ulgridElement.Rows.Count; i++)
  471. {
  472. strElementType = Convert.ToString(ulgridElement.Rows[i].Cells["TYPESYMBOL"].Value);
  473. if (strElementType.Contains("TS") ||
  474. strElementType.Contains("LD") ||
  475. strElementType == "")
  476. {
  477. for (int j = 1; j < ulgridElement.DisplayLayout.Bands[0].Columns.Count; j++)
  478. {
  479. ulgridElement.Rows[i].Cells[j].Appearance.ForeColor = clrNormal;
  480. }
  481. continue;
  482. }
  483. for (int j = 1; j < ulgridElement.DisplayLayout.Bands[0].Columns.Count; j++)
  484. {
  485. strStdNK = Convert.ToString(ulgridElement.Rows[0].Cells[j].Value);
  486. strStdFX = Convert.ToString(ulgridElement.Rows[1].Cells[j].Value);
  487. strStdTx = Convert.ToString(ulgridElement.Rows[2].Cells[j].Value);
  488. strReal = Convert.ToString(ulgridElement.Rows[i].Cells[j].Value);
  489. iRetNK = sValue(strStdNK, strReal);
  490. iRetFX = sValue(strStdFX, strReal);
  491. iRetTX = sValue(strStdTx, strReal);
  492. if (iRetFX == -1)
  493. {
  494. ulgridElement.Rows[i].Cells[j].Appearance.ForeColor = clrOutFX;
  495. }
  496. else
  497. {
  498. if (iRetNK == -1)
  499. {
  500. ulgridElement.Rows[i].Cells[j].Appearance.ForeColor = clrOutNK;
  501. }
  502. else if (iRetTX == -1)
  503. {
  504. ulgridElement.Rows[i].Cells[j].Appearance.ForeColor = clrOutTx;
  505. }
  506. else
  507. {
  508. ulgridElement.Rows[i].Cells[j].Appearance.ForeColor = clrNormal;
  509. }
  510. }
  511. }
  512. }
  513. }
  514. catch (Exception ex)
  515. {
  516. //MessageBox.Show(ex.Message);
  517. }
  518. }
  519. private int sValue(string Svalue, string SCHvalue) //add on 2009-04-20
  520. {
  521. if (SCHvalue.Length < 1)
  522. {
  523. return 0;
  524. }
  525. if (Svalue.Length > 0)
  526. {
  527. string BValue = "-1";
  528. string EValue = "-1";
  529. if (Svalue.IndexOf("~") > 0)
  530. {
  531. BValue = Svalue.Substring(0, Svalue.IndexOf("~"));
  532. EValue = Svalue.Substring(Svalue.IndexOf("~") + 1, Svalue.Length - Svalue.IndexOf("~") - 1);
  533. if (double.Parse(SCHvalue) >= double.Parse(BValue) && double.Parse(SCHvalue) <= double.Parse(EValue))
  534. {
  535. return 0; //正确
  536. }
  537. else
  538. {
  539. return -1;
  540. }
  541. }
  542. else
  543. {
  544. if (Svalue.IndexOf("≤") > -1)
  545. {
  546. EValue = Svalue.Substring(Svalue.IndexOf("≤") + 2, Svalue.Length - Svalue.IndexOf("≤") - 2);
  547. if (double.Parse(SCHvalue) <= double.Parse(EValue))
  548. {
  549. return 0; //正确
  550. }
  551. else
  552. {
  553. return -1;
  554. }
  555. }
  556. else
  557. {
  558. if (Svalue.IndexOf("<") > -1 && Svalue.IndexOf("=") == -1)
  559. {
  560. EValue = Svalue.Substring(Svalue.IndexOf("<") + 1, Svalue.Length - Svalue.IndexOf("<") - 1);
  561. if (double.Parse(SCHvalue) < double.Parse(EValue))
  562. {
  563. return 0; //正确
  564. }
  565. else
  566. {
  567. return -1;
  568. }
  569. }
  570. else
  571. {
  572. if (Svalue.IndexOf("≥") > -1)
  573. {
  574. EValue = Svalue.Substring(Svalue.IndexOf("≥") + 1, Svalue.Length - Svalue.IndexOf("≥") - 1);
  575. if (double.Parse(SCHvalue) >= double.Parse(EValue))
  576. {
  577. return 0; //正确
  578. }
  579. else
  580. {
  581. return -1;
  582. }
  583. }
  584. else
  585. {
  586. if (Svalue.IndexOf(">") > -1 && Svalue.IndexOf("=") == -1)
  587. {
  588. EValue = Svalue.Substring(Svalue.IndexOf(">") + 1, Svalue.Length - Svalue.IndexOf(">") - 1);
  589. if (double.Parse(SCHvalue) > double.Parse(EValue))
  590. {
  591. return 0; //正确
  592. }
  593. else
  594. {
  595. return -1;
  596. }
  597. }
  598. else
  599. {
  600. EValue = Svalue;
  601. try
  602. {
  603. if (double.Parse(SCHvalue) == double.Parse(EValue))
  604. {
  605. return 0; //正确
  606. }
  607. }
  608. catch { }
  609. return -1;
  610. }
  611. }
  612. }
  613. }
  614. }
  615. }
  616. return 0;
  617. }
  618. private string EmentName(string strAssayTypeCode)
  619. {
  620. string strName = "";
  621. string strCode = "";
  622. if (strAssayTypeCode.Length > 2)
  623. {
  624. strCode = strAssayTypeCode.Substring(0, 1);
  625. switch (strCode)
  626. {
  627. case "A":
  628. case "B":
  629. strName = "TS";
  630. break;
  631. case "C":
  632. strName = "LD";
  633. break;
  634. case "D":
  635. if (strAssayTypeCode.Substring(0, 2) == "DQ")
  636. strName = "YQ";
  637. else if (strAssayTypeCode.Substring(0, 2) == "DH")
  638. strName = "YH";
  639. break;
  640. case "E":
  641. strName = "LF";
  642. break;
  643. case "F":
  644. strName = "RH";
  645. break;
  646. case "I":
  647. strName = "VD";
  648. break;
  649. case "G":
  650. strName = "CP";
  651. break;
  652. default:
  653. strName = "";
  654. break;
  655. }
  656. }
  657. return strName + strAssayTypeCode.Substring(strAssayTypeCode.Length - 1, 1);
  658. }
  659. /// <summary>
  660. /// 获取标准元素值
  661. /// </summary>
  662. /// <param name="strSteelCode">钢种</param>
  663. /// <param name="strStationCode">铸机</param>
  664. public void GetStandardElement(string strHeatID)
  665. {
  666. try
  667. {
  668. string strErr = "";
  669. if (strHeatID == "")
  670. return;
  671. ArrayList arry = new ArrayList();
  672. arry.Add("GetJobStandardElement.Select");//此ID为XML文件ID
  673. arry.Add(strHeatID);
  674. CommonClientToServer cctos = new CommonClientToServer();
  675. cctos.ob = ob;
  676. //查询化学成分信息
  677. DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
  678. "GetJobStandardElement", arry, out strErr);
  679. if (strErr == "" && ds != null)
  680. {
  681. _dtEleStd = ds.Tables[0];
  682. }
  683. }
  684. catch (Exception ex)
  685. {
  686. string msg = ex.Message + "GetStandardElement";
  687. }
  688. }
  689. /// <summary>
  690. /// 序列化化学成分
  691. /// </summary>
  692. /// <param name="ds">作业化学成分</param>
  693. /// <param name="obj"></param>
  694. private void DataSetToCraftElement(ref DataSet ds, ref CraftElement obj)
  695. {
  696. try
  697. {
  698. obj.ClearElement();
  699. PropertyInfo[] PropertyInfos = null;
  700. foreach (DataRow dr in ds.Tables[0].Rows)
  701. {
  702. JOB_CHEMELEMENT detail = new JOB_CHEMELEMENT();
  703. if (PropertyInfos == null)
  704. {
  705. PropertyInfos = detail.GetType().GetProperties();
  706. }
  707. //给各个属性赋值
  708. foreach (PropertyInfo oPropertyInfo in PropertyInfos)
  709. {
  710. try
  711. {
  712. if (dr.Table.Columns.Contains(oPropertyInfo.Name))
  713. {
  714. if (dr[oPropertyInfo.Name] != System.DBNull.Value)
  715. {
  716. oPropertyInfo.SetValue(detail, dr[oPropertyInfo.Name.ToString()], null);
  717. }
  718. }
  719. }
  720. catch (Exception ex)
  721. {
  722. MessageBox.Show(ex.Message);
  723. }
  724. }
  725. obj.Add(ref detail);
  726. }//end foreach
  727. _objCraftEleBuffer.DataHarmonize(ref obj);
  728. }
  729. catch (Exception ex)
  730. {
  731. string Msg = ex.Message;
  732. }
  733. finally
  734. {
  735. }
  736. }
  737. public void ResetData()
  738. {
  739. _tmpObjCraftEle.ClearElement();
  740. _objCraftEleBuffer.ClearElement();
  741. _dtCraftElement.Clear();
  742. }
  743. }
  744. }