frmRhsJob.cs 77 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968
  1. using System;
  2. using System.Collections.Generic;
  3. using System.ComponentModel;
  4. using System.Data;
  5. using System.Drawing;
  6. using System.Text;
  7. using System.Windows.Forms;
  8. //using Core.LgMes.Client.LgResMgt;
  9. using System.Threading;
  10. using Core.LgMes.Client.lgClassModel;
  11. using System.Collections;
  12. using System.Reflection;
  13. using CoreFS.CA06;
  14. using Core.Mes.Client.Common;
  15. using Core.LgMes.Client.LgResMgt;
  16. using Core.LgMes.Client.LgIntegrationQuery;
  17. using Core.LgMes.Client.Report;
  18. namespace Core.LgMes.Client.LgJobMgt
  19. {
  20. public partial class frmRhsJob : CommonClientToServer
  21. {
  22. #region " Class Member Variable"
  23. private string _heatProcessNo = ""; // 加热处理号
  24. private string _smeltingID = ""; // 熔炼号
  25. private string _oldSmelt = ""; // 保存上一个炉号
  26. private string _stationCode = ""; // 岗位编号
  27. private string _dealTime = ""; // 处理次数
  28. private string _shiftCode = ""; // 班次编码
  29. private string _szWorkBit = "3"; // 初始化为 3 (1 为1#小车; 2 为2# 小车; 3为钢包位)
  30. private DataTable _dtCraftElement = null; // 工艺化学成分信息表
  31. private DataTable _dtStdElement = null; // 标准成分表
  32. private DataTable _dtTemperature = null; // 温度
  33. private DataTable _dtSamplingOfCvt = null; // 转炉采样数据表
  34. private DataTable _dtSamplingOfCas = null; // 吹氩采样数据表
  35. private DataTable _dtSamplingOfLfs = null; // 钢包采样数据表
  36. private DataTable _dtSamplingOfRhs = null; // RH炉采样数据表
  37. private DataTable _dtMaterial = null; // 存储辅料信息
  38. private DataTable _dtEleStd = null; // 标准元素值表
  39. private DataTable _dtCraftStdVal = null; // 炼钢工艺标准值
  40. private CommandClass _commClass; // 消息发送类
  41. private string _DEVICE_POSITION = "RHS01"; // 设备位置
  42. private int _DEVICE_POS = 1; // 设备号
  43. private Thread _getDataThread; // 取数据线程
  44. private Thread _setDataThread; // 刷新数据线程
  45. private bool _bIfGetData = true; // 控制取数据线程循环的标志
  46. private bool _bIfSetData = true; // 控制刷新数据线程循环的标志
  47. private bool _bResetDataFlag = false; // 清空所有数据标志,True表示已经清空
  48. private ArrayList _listHeatProcess = null; // 存储加热处理号的数组列表
  49. private string _devPos = ""; // 当前设备位置的全称
  50. private bool _bHandThrow = false; // 手投料标志
  51. private bool _bClearFlag = false;
  52. private TrackObjectInfo _tmpObjTrack; // 实时跟踪信息类 用于存放当前实时跟踪信息 起一个中间过渡的缓冲
  53. private TrackObjectInfo _objTrackBuffer; // 用于实时刷新实时跟踪信息的缓冲区
  54. private CraftElement _tmpObjCraftEle; // 存放工艺化学成分信息的类
  55. private CraftElement _objCraftEleBuffer; // 用于实时刷新工艺化学成分信息的缓冲区
  56. private LfsAdditive _procAdditive; // 存放过程添加剂信息
  57. private LfsAdditive _additiveBuffer; // 用于刷新过程添加剂信息的缓冲区
  58. private Hashtable _htPlanInfo; // 用于作业计划信息的表字段数据
  59. private Hashtable _htOptInfo; // 用于存储操作信息的表字段数据
  60. private delegate void SetDataThreadDelegate(); // 刷新数据线程的一个委托方法,目的是达到界面所有数据刷新同步
  61. #endregion
  62. #region " Construct Function "
  63. public frmRhsJob()
  64. {
  65. InitializeComponent();
  66. // 初始化成员变量
  67. _commClass = new CommandClass();
  68. _tmpObjTrack = new TrackObjectInfo();
  69. _objTrackBuffer = new TrackObjectInfo();
  70. _tmpObjCraftEle = new CraftElement();
  71. _objCraftEleBuffer = new CraftElement();
  72. _procAdditive = new LfsAdditive();
  73. _additiveBuffer = new LfsAdditive();
  74. _htOptInfo = new Hashtable();
  75. _htPlanInfo = new Hashtable();
  76. ucRhsDevInfo1.m_imageDefault = imageList1.Images[0];
  77. }
  78. #endregion
  79. #region " Init Form Element"
  80. private void frmRhsJob_Load(object sender, EventArgs e)
  81. {
  82. ucRhsPlanTime1.ob = this.ob;
  83. ucChemelEment1.ob = this.ob;
  84. InitDataSourse();
  85. GenerateTableFrame();
  86. GetDevicePosition();
  87. SetUserControlDelegate();
  88. GetMaterialData();
  89. StartUpThread();
  90. SetHopperInfo();
  91. }
  92. private void InitDataSourse()
  93. {
  94. this.ultraDataSource1.Rows.Add(new object[] { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" });
  95. this.ultraDataSource2.Rows.Add(new object[] { "", "", "", "" });
  96. this.ultraDataSource3.Rows.Add(new object[] { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" });
  97. }
  98. /// <summary>
  99. /// 生成化学成分的表架构
  100. /// </summary>
  101. private void GenerateTableFrame()
  102. {
  103. _dtTemperature = new DataTable("temperature");
  104. _dtTemperature.Columns.Add(new DataColumn("项目名", typeof(String)));
  105. _dtTemperature.Columns.Add(new DataColumn("实际值", typeof(String)));
  106. _dtTemperature.Columns.Add(new DataColumn("id", typeof(String)));
  107. _dtTemperature.Columns.Add(new DataColumn("采样时间", typeof(String)));
  108. _dtTemperature.Columns.Add(new DataColumn("设定范围", typeof(String)));
  109. this.ulgridTempInfo.DataSource = this._dtTemperature;
  110. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[0].Width = 70;
  111. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[0].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  112. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[1].Width = 58;
  113. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[1].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  114. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[2].Hidden = true;
  115. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[3].Width = 120;
  116. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[3].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  117. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[4].Width = 75;
  118. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[4].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  119. _dtTemperature.Rows.Add(new object[] { "一倒" });
  120. _dtTemperature.Rows.Add(new object[] { "出钢(终点)" });
  121. _dtTemperature.Rows.Add(new object[] { "吹氩氩前" });
  122. _dtTemperature.Rows.Add(new object[] { "吹氩在站" });
  123. _dtTemperature.Rows.Add(new object[] { "吹氩氩后" });
  124. _dtTemperature.Rows.Add(new object[] { "精炼炉进站" });
  125. _dtTemperature.Rows.Add(new object[] { "精炼炉出站" });
  126. }
  127. /// <summary>
  128. /// 获取物料信息
  129. /// </summary>
  130. private void GetMaterialData()
  131. {
  132. try
  133. {
  134. string strErr = "";
  135. string strSqlID = "";
  136. strSqlID = "GetMaterialData.Select";//此ID为XML文件ID
  137. //查询物料配置信息
  138. DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassBofJob",
  139. "GetMaterialData", strSqlID, out strErr);
  140. if (strErr == "" && ds != null)
  141. {
  142. _dtMaterial = ds.Tables[0];
  143. }
  144. }
  145. catch { }
  146. }
  147. #endregion
  148. #region " Thread Handle "
  149. /// <summary>
  150. /// 启动线程主程序
  151. /// </summary>
  152. private void StartUpThread()
  153. {
  154. ThreadStart ts = new ThreadStart(GetDataThread);
  155. _getDataThread = new Thread(ts);
  156. _getDataThread.Name = "GetDataThread " + _DEVICE_POSITION;
  157. _getDataThread.Start();
  158. System.Threading.Thread.Sleep(1000);
  159. ThreadStart ts1 = new ThreadStart(SetDataThread);
  160. _setDataThread = new Thread(ts1);
  161. _setDataThread.Name = "SetDataThread " + _DEVICE_POSITION;
  162. _setDataThread.Start();
  163. }
  164. /// <summary>
  165. /// 取数据线程程序
  166. /// </summary>
  167. private void GetDataThread()
  168. {
  169. while (_bIfGetData)
  170. {
  171. if (!this.On_Off_Thread)
  172. {
  173. System.Threading.Thread.Sleep(500);
  174. continue;
  175. }
  176. try
  177. {
  178. GetDataFromServer();
  179. Thread.Sleep(2000);
  180. }
  181. catch { }
  182. }
  183. }
  184. /// <summary>
  185. /// 刷新数据线程程序
  186. /// </summary>
  187. private void SetDataThread()
  188. {
  189. while (_bIfSetData)
  190. {
  191. if (!this.On_Off_Thread)
  192. {
  193. System.Threading.Thread.Sleep(500);
  194. continue;
  195. }
  196. try
  197. {
  198. this.Invoke(new SetDataThreadDelegate(SetDataOperate));
  199. Thread.Sleep(1000);
  200. }
  201. catch { }
  202. }
  203. }
  204. private void GetDataFromServer()
  205. {
  206. GetTrackInfoData();
  207. GetHeatProcessList();
  208. JudgeHeatProcess();
  209. GetPlanInfo();
  210. GetOptInfo();
  211. GetDevPosInfo();
  212. GetAllowOperate();
  213. // GetCraftEleInfo();
  214. ucChemelEment1.GetCraftEleInfo(_smeltingID, "F0" + _DEVICE_POS, "S","");
  215. if (_htPlanInfo["STEEL"] != null)
  216. ucChemelEment1.GetStandardElement(_smeltingID);
  217. GetSamplingOfPost();
  218. JudgeSmeltID();
  219. GetAdditiveData();
  220. ucRhsPlanTime1.GetPlanAndFactTime(_smeltingID);
  221. if (_htPlanInfo != null)
  222. _dtCraftStdVal = CStaticMethod.GetJobStandardTemp(this.ob, _htPlanInfo["STEEL"].ToString());
  223. }
  224. private void SetDataOperate()
  225. {
  226. lock (this)
  227. {
  228. if (_heatProcessNo == "")
  229. {
  230. ResetAllData();
  231. return;
  232. }
  233. _bResetDataFlag = false;
  234. FillUserControlData();
  235. // FillCraftElement();
  236. FillTemperatureData();
  237. SetAdditiveData();
  238. HdctMaterialBind();
  239. }
  240. }
  241. #endregion
  242. #region " Delegate "
  243. private void ucRhsDevInfo1_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  244. {
  245. string[] bufferArray = { "", "", "", "" };
  246. string strMsg = "";
  247. switch (e.Cell.Column.Key)
  248. {
  249. case "HCW":
  250. {
  251. if (e.Cell.Text != string.Empty && _listHeatProcess[0].ToString().Length > (int)OBJLEN.nHeatProcessNo)
  252. {
  253. string strCurtPos = "RHS0" + _DEVICE_POS.ToString() + "_IDLE";
  254. string sIdleHeatNo = _listHeatProcess[0].ToString().Substring(0, (int)OBJLEN.nHeatProcessNo);
  255. ClassManualOperate.arryHeatNo = _listHeatProcess;
  256. ClassManualOperate.ManualOperateEntrance(sIdleHeatNo, strCurtPos, this.ob, _objTrackBuffer);
  257. //切换工位信息显示
  258. if (!string.IsNullOrEmpty(ClassManualOperate.strPosInfo))
  259. _szWorkBit = ClassManualOperate.strPosInfo;
  260. }
  261. }
  262. break;
  263. case "XCW1": //"1#小车位"
  264. {
  265. if (e.Cell.Text != string.Empty && _listHeatProcess[1].ToString().Length > (int)OBJLEN.nHeatProcessNo)
  266. {
  267. string strCurtPos = "RHS0" + _DEVICE_POS.ToString() + "_FRONT";
  268. string sFrontHeatNo = _listHeatProcess[1].ToString().Substring(0, (int)OBJLEN.nHeatProcessNo);
  269. ClassManualOperate.arryHeatNo = _listHeatProcess;
  270. ClassManualOperate.ManualOperateEntrance(sFrontHeatNo, strCurtPos, this.ob, _objTrackBuffer);
  271. //切换工位信息显示
  272. if (!string.IsNullOrEmpty(ClassManualOperate.strPosInfo))
  273. _szWorkBit = ClassManualOperate.strPosInfo;
  274. }
  275. }
  276. break;
  277. case "YLW": //"冶炼位"
  278. {
  279. if (e.Cell.Text != string.Empty && _listHeatProcess[2].ToString().Length > (int)OBJLEN.nHeatProcessNo)
  280. {
  281. string strCurtPos = "RHS0" + _DEVICE_POS.ToString() + "_DEVICE";
  282. string sCurHeatNo = _listHeatProcess[2].ToString().Substring(0, (int)OBJLEN.nHeatProcessNo);
  283. ClassManualOperate.arryHeatNo = _listHeatProcess;
  284. ClassManualOperate.ManualOperateEntrance(sCurHeatNo, strCurtPos, this.ob, _objTrackBuffer);
  285. //切换工位信息显示
  286. if (!string.IsNullOrEmpty(ClassManualOperate.strPosInfo))
  287. _szWorkBit = ClassManualOperate.strPosInfo;
  288. }
  289. }
  290. break;
  291. case "XCW2": // 小车位2
  292. {
  293. if (e.Cell.Text != string.Empty && _listHeatProcess[3].ToString().Length > (int)OBJLEN.nHeatProcessNo)
  294. {
  295. string strCurtPos = "RHS0" + _DEVICE_POS.ToString() + "_BACK";
  296. string sBackHeatNo = _listHeatProcess[3].ToString().Substring(0, (int)OBJLEN.nHeatProcessNo);
  297. ClassManualOperate.arryHeatNo = _listHeatProcess;
  298. ClassManualOperate.ManualOperateEntrance(sBackHeatNo, strCurtPos, this.ob, _objTrackBuffer);
  299. //切换工位信息显示
  300. if (!string.IsNullOrEmpty(ClassManualOperate.strPosInfo))
  301. _szWorkBit = ClassManualOperate.strPosInfo;
  302. }
  303. }
  304. break;
  305. default:
  306. break;
  307. }
  308. }
  309. private void ucBofPlan1_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  310. {
  311. switch (e.Cell.Column.Key)
  312. {
  313. case "HEATNO": // 熔炼号
  314. SmeltClickCellButton(e.Cell.Value.ToString(), e.Cell);
  315. break;
  316. case "SHIFTCODE": // 班次
  317. break;
  318. default:
  319. break;
  320. }
  321. }
  322. /// <summary>
  323. /// 熔炼号点击事件
  324. /// </summary>
  325. /// <param name="szRLH"></param>
  326. /// <param name="cell"></param>
  327. private void SmeltClickCellButton(string szRLH, Infragistics.Win.UltraWinGrid.UltraGridCell cell)
  328. {
  329. frmJobPlanInfo frmPlan = new frmJobPlanInfo(_DEVICE_POS.ToString() + "#RH炉", _DEVICE_POSITION);
  330. frmPlan.Location = CStaticMethod.GetChildWindowLocation(frmPlan.Size);
  331. frmPlan.ShowDialog();
  332. if (frmPlan._currSmeltingID != string.Empty && cell.Text == string.Empty)
  333. {
  334. cell.Value = frmPlan._currSmeltingID;
  335. //this._commClass.setHeatID(_heatProcessNo);
  336. //this._commClass.setChargingCommand("MOLSTL", _DEVICE_POSITION + "_DEVICE", frmPlan._currSmeltingID);
  337. }
  338. else if (frmPlan._currSmeltingID != string.Empty && cell.Text != string.Empty)
  339. MessageBox.Show("本岗位有炉号信息,暂时不能加载!", "提示");
  340. }
  341. private void ucRhsTimeInfo1_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  342. {
  343. ClassManualUpdateInfo.SetCellDateTime(e.Cell, _heatProcessNo, this.ob); //弹出时间更新窗体更新时间
  344. }
  345. private void ucRhsTimeInfo1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
  346. {
  347. if (e.KeyCode != Keys.Enter || _heatProcessNo.Length < 11)
  348. return;
  349. ucRhsTimeInfo1.ultraGrid1.UpdateData();
  350. string keyStr = ucRhsTimeInfo1.ultraGrid1.ActiveCell.Column.Key;
  351. DateTime valueStr;
  352. string UptValue = "";
  353. if (keyStr == "ARRIVETIME" || keyStr == "LEAVETIME" ||
  354. keyStr == "REPOSEBEGINTIME" || keyStr == "REPOSECLOSETIME" ||
  355. keyStr == "VACBEGINTIME" || keyStr == "VACLOSETIME" ||
  356. keyStr == "FEEDBEGINTIME" || keyStr == "FEEDCLOSETIME" ||
  357. keyStr == "ARBEGINTIME" || keyStr == "ARCLOSETIME")
  358. {
  359. try
  360. {
  361. if (ucRhsTimeInfo1.ultraGrid1.ActiveCell.Value.ToString() != "")
  362. UptValue = ((DateTime)ucRhsTimeInfo1.ultraGrid1.ActiveCell.Value).ToString("yyyy-MM-dd HH:mm");
  363. else
  364. UptValue = "";
  365. //更新时间
  366. ClassManualUpdateInfo.UpdateTableField(_heatProcessNo, "STL_RHS_OPTINFO", keyStr, "DATE",
  367. UptValue, ob);
  368. ucRhsTimeInfo1.ultraGrid1.ActiveCell.Value = UptValue;
  369. }
  370. catch (Exception ex)
  371. {
  372. string Msg = ex.Message;
  373. MessageBox.Show("日期输入格式错误,请改正!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  374. }
  375. }
  376. }
  377. private void ucRhsDevInfo1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
  378. {
  379. if (e.KeyCode != Keys.Enter || _heatProcessNo.Length < 11)
  380. return;
  381. this.ucRhsDevInfo1.ultraGrid1.UpdateData();
  382. string keyStr = ucRhsDevInfo1.ultraGrid1.ActiveCell.Column.Key;
  383. string valueStr = ucRhsDevInfo1.ultraGrid1.ActiveCell.Text;
  384. if (keyStr == "RESIDUETHICKNESS") //渣厚
  385. {
  386. try
  387. {
  388. //更新数据
  389. ClassManualUpdateInfo.UpdateTableField(_heatProcessNo, "STL_RHS_OPTINFO", keyStr, "VARCHAR2",
  390. valueStr, ob);
  391. ucRhsDevInfo1.ultraGrid1.ActiveCell.Value = valueStr;
  392. }
  393. catch (Exception ex)
  394. {
  395. string Msg = ex.Message;
  396. MessageBox.Show("日期输入格式错误,请改正!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  397. }
  398. }
  399. }
  400. #endregion
  401. #region " Commonly Function "
  402. /// <summary>
  403. /// 熔炼号判断
  404. /// </summary>
  405. private void JudgeSmeltID()
  406. {
  407. if (!this._oldSmelt.Equals(this._smeltingID))
  408. this._oldSmelt = this._smeltingID;
  409. }
  410. /// <summary>
  411. /// 获取当前设备的后台实时跟踪信息
  412. /// </summary>
  413. private void GetTrackInfoData()
  414. {
  415. string strErr = "";
  416. ArrayList arry = new ArrayList();
  417. arry.Add("ReceiveTrackObjectData.Select");//此ID为XML文件ID
  418. arry.Add(_DEVICE_POSITION);
  419. //获取指定岗位后台实时跟踪信息
  420. DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassTrackObjectInfo",
  421. "ReceiveTrackObjectData", arry, out strErr);
  422. if (strErr == "" && ds != null)
  423. {
  424. DataSetToTrackObject(ref ds, ref _tmpObjTrack);
  425. }
  426. }
  427. /// <summary>
  428. /// 获得加热处理号
  429. /// </summary>
  430. private void GetHeatProcessList()
  431. {
  432. try
  433. {
  434. _listHeatProcess = new ArrayList();
  435. string Key = _DEVICE_POSITION + "_IDLE";
  436. string szIdle = "", szFront = "", szDevice = "", szBack = "";
  437. RealDataTrackObjectInfor objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key];
  438. szIdle = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID + objTrack.DEVICESTATES : "";
  439. Key = _DEVICE_POSITION + "_FRONT";
  440. objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key];
  441. szFront = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID + objTrack.DEVICESTATES : "";
  442. Key = _DEVICE_POSITION + "_DEVICE";
  443. objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key];
  444. szDevice = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID + objTrack.DEVICESTATES : "";
  445. Key = _DEVICE_POSITION + "_BACK";
  446. objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key];
  447. szBack = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID + objTrack.DEVICESTATES : "";
  448. _listHeatProcess.Add(szIdle); //Idle
  449. _listHeatProcess.Add(szFront); //Front
  450. _listHeatProcess.Add(szDevice); //Device
  451. _listHeatProcess.Add(szBack); //Back
  452. }
  453. catch (Exception ex)
  454. {
  455. string msg = ex.Message;
  456. _listHeatProcess = null;
  457. }
  458. }
  459. /// <summary>
  460. /// 对获取到的加热处理号进行判断
  461. /// </summary>
  462. private void JudgeHeatProcess()
  463. {
  464. try
  465. {
  466. if (_listHeatProcess.Count < 4)
  467. return;
  468. _heatProcessNo = "";
  469. _devPos = "";
  470. if (_szWorkBit == "3" && _listHeatProcess[2].ToString().Length > (int)OBJLEN.nHeatProcessNo) //Device 冶炼工位
  471. {
  472. string strHeat = _listHeatProcess[2].ToString();
  473. _heatProcessNo = strHeat.Substring(0, (int)OBJLEN.nHeatProcessNo);
  474. _devPos = GetDevDeviceCodeOfRhs(_DEVICE_POS);
  475. }
  476. //Front 1#小车位
  477. if ((_heatProcessNo == "" && _listHeatProcess[1].ToString().Length > (int)OBJLEN.nHeatProcessNo) ||
  478. (_szWorkBit == "1" && _listHeatProcess[1].ToString().Length > (int)OBJLEN.nHeatProcessNo))
  479. {
  480. string strHeat = _listHeatProcess[1].ToString();
  481. _heatProcessNo = strHeat.Substring(0, (int)OBJLEN.nHeatProcessNo);
  482. _devPos = GetDevFrontCodeOfRhs(_DEVICE_POS);
  483. }
  484. //Back 2#小车位
  485. if ((_heatProcessNo == "" && _listHeatProcess[3].ToString().Length > (int)OBJLEN.nHeatProcessNo) ||
  486. (_szWorkBit == "2" && _listHeatProcess[3].ToString().Length > (int)OBJLEN.nHeatProcessNo))
  487. {
  488. string strHeat = _listHeatProcess[3].ToString();
  489. _heatProcessNo = strHeat.Substring(0, (int)OBJLEN.nHeatProcessNo);
  490. _devPos = GetDevBackCodeOfRhs(_DEVICE_POS);
  491. }
  492. if (_heatProcessNo == "" && _listHeatProcess[0].ToString().Length > (int)OBJLEN.nHeatProcessNo)
  493. {
  494. string strHeat = _listHeatProcess[0].ToString();
  495. _heatProcessNo = strHeat.Substring(0, (int)OBJLEN.nHeatProcessNo);
  496. _devPos = GetDevIdleCodeOfRhs(_DEVICE_POS);
  497. }
  498. _smeltingID = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(_heatProcessNo) : "";
  499. _stationCode = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? _heatProcessNo.Substring(1, (int)OBJLEN.nDevCode) : "";
  500. _dealTime = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? _heatProcessNo.Substring(3, (int)OBJLEN.nDealTime) : "";
  501. }
  502. catch
  503. {
  504. return;
  505. }
  506. }
  507. /// <summary>
  508. /// 获取转炉计划信息
  509. /// </summary>
  510. private void GetPlanInfo()
  511. {
  512. if (_smeltingID == "")
  513. return;
  514. try
  515. {
  516. #region " 炉次计划信息&精炼炉包号信息 "
  517. string strErr = "";
  518. ArrayList arry = new ArrayList();
  519. arry.Add("ReceivePlanInfo.Select");//此ID为XML文件ID
  520. arry.Add(_smeltingID);
  521. //获取指定炉号的作业计划信息
  522. DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
  523. "ReceivePlanInfo", arry, out strErr);
  524. if (strErr == "" && ds != null)
  525. {
  526. DataTable tb = ds.Tables[0];
  527. if (tb.Rows.Count > 0)
  528. {
  529. for (int i = 0; i < tb.Columns.Count; i++)
  530. {
  531. if (_htPlanInfo.Contains(tb.Columns[i].ColumnName))
  532. _htPlanInfo.Remove(tb.Columns[i].ColumnName);
  533. _htPlanInfo.Add(tb.Columns[i].ColumnName, tb.Rows[0][i].ToString());
  534. }
  535. }
  536. }
  537. //获取当前班次
  538. _shiftCode = CStaticMethod.GetCurrentClass(this.ob);
  539. if (_htPlanInfo.Contains("SHIFTCODE"))
  540. _htPlanInfo.Remove("SHIFTCODE");
  541. _htPlanInfo.Add("SHIFTCODE", _shiftCode);
  542. #endregion
  543. }
  544. catch { }
  545. }
  546. /// <summary>
  547. /// 获取RH操作数据
  548. /// </summary>
  549. private void GetOptInfo()
  550. {
  551. if (_heatProcessNo == "")
  552. return;
  553. #region " 取RH炉操作数据 "
  554. try
  555. {
  556. string strErr = "";
  557. ArrayList arry = new ArrayList();
  558. arry.Add("GetRhsOptInfo.Select");//此ID为XML文件ID
  559. arry.Add(_smeltingID);
  560. arry.Add(_stationCode);
  561. arry.Add(_dealTime);
  562. //查询转炉作业信息
  563. DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassBofJob",
  564. "GetBofOptInfo", arry, out strErr);
  565. if (strErr == "" && ds != null)
  566. {
  567. DataTable tb = ds.Tables[0];
  568. if (tb.Rows.Count > 0)
  569. {
  570. for (int i = 0; i < tb.Columns.Count; i++)
  571. {
  572. if (_htOptInfo.Contains(tb.Columns[i].ColumnName))
  573. _htOptInfo.Remove(tb.Columns[i].ColumnName);
  574. _htOptInfo.Add(tb.Columns[i].ColumnName, tb.Rows[0][i].ToString());
  575. }
  576. }
  577. else
  578. _htOptInfo.Clear();
  579. }
  580. }
  581. catch { }
  582. #endregion
  583. }
  584. /// <summary>
  585. /// 获取设备位置信息
  586. /// </summary>
  587. private void GetDevPosInfo()
  588. {
  589. try
  590. {
  591. string strState = "";
  592. if (_listHeatProcess[2].ToString().Length > (int)OBJLEN.nHeatProcessNo)
  593. strState = "BLOWING";
  594. else if (_listHeatProcess[1].ToString().Length > (int)OBJLEN.nHeatProcessNo ||
  595. _listHeatProcess[3].ToString().Length > (int)OBJLEN.nHeatProcessNo)
  596. strState = "LADLEARRIVE";
  597. else
  598. strState = "IDLE";
  599. if (_htOptInfo.Contains("TP"))
  600. _htOptInfo.Remove("TP");
  601. _htOptInfo.Add("TP", SetPic(strState)); // 图片
  602. if (_listHeatProcess.Count >= 4)
  603. {
  604. string szID = _listHeatProcess[0].ToString();
  605. szID = (szID.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(szID.Substring(0, (int)OBJLEN.nHeatProcessNo)) : "";
  606. if (_htOptInfo.Contains("HCW"))
  607. _htOptInfo.Remove("HCW");
  608. _htOptInfo.Add("HCW", szID); // 缓冲位
  609. szID = _listHeatProcess[1].ToString();
  610. szID = (szID.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(szID.Substring(0, (int)OBJLEN.nHeatProcessNo)) : "";
  611. if (_htOptInfo.Contains("XCW1"))
  612. _htOptInfo.Remove("XCW1");
  613. _htOptInfo.Add("XCW1", szID); // 1#小车位
  614. szID = _listHeatProcess[2].ToString();
  615. szID = (szID.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(szID.Substring(0, (int)OBJLEN.nHeatProcessNo)) : "";
  616. if (_htOptInfo.Contains("YLW"))
  617. _htOptInfo.Remove("YLW");
  618. _htOptInfo.Add("YLW", szID); // 精炼炉位
  619. szID = _listHeatProcess[3].ToString();
  620. szID = (szID.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(szID.Substring(0, (int)OBJLEN.nHeatProcessNo)) : "";
  621. if (_htOptInfo.Contains("XCW2"))
  622. _htOptInfo.Remove("XCW2");
  623. _htOptInfo.Add("XCW2", szID); // 2#小车位
  624. }
  625. }
  626. catch { }
  627. }
  628. /// <summary>
  629. /// 获取当前允许操作工位
  630. /// </summary>
  631. private void GetAllowOperate()
  632. {
  633. try
  634. {
  635. string strErr = "";
  636. ArrayList arry = new ArrayList();
  637. arry.Add("GetRhsAllowOperate.Select");//此ID为XML文件ID
  638. //获取当前允许操作工位
  639. DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
  640. "GetAllowOperate", arry, out strErr);
  641. if (strErr == "" && ds != null)
  642. {
  643. DataTable tb = ds.Tables[0];
  644. if (tb.Rows.Count > 0)
  645. {
  646. if (_htOptInfo.Contains("ALLOWOPERATE"))
  647. _htOptInfo.Remove("ALLOWOPERATE");
  648. if (_DEVICE_POS == 1)
  649. _htOptInfo.Add("ALLOWOPERATE", tb.Rows[0]["Rhs1allowOperate"].ToString());
  650. }
  651. }
  652. }
  653. catch { }
  654. }
  655. /// <summary>
  656. /// 获取转炉过程添加剂信息
  657. /// </summary>
  658. private void GetAdditiveData()
  659. {
  660. if (_heatProcessNo == "")
  661. return;
  662. try
  663. {
  664. string strErr = "";
  665. ArrayList arry = new ArrayList();
  666. arry.Add("GetRhsAdditiveData.Select");//此ID为XML文件ID
  667. arry.Add(_smeltingID);
  668. arry.Add(_stationCode);
  669. arry.Add(_dealTime);
  670. //查询转炉作业采样信息
  671. DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassBofJob",
  672. "GetBofAdditiveData", arry, out strErr);
  673. if (strErr == "" && ds != null)
  674. {
  675. DataSetToAdditive(ref ds, ref _procAdditive);
  676. }
  677. }
  678. catch { }
  679. }
  680. /// <summary>
  681. /// 取各岗位采样数据
  682. /// </summary>
  683. private void GetSamplingOfPost()
  684. {
  685. try
  686. {
  687. ArrayList al = null;
  688. string strErr = "";
  689. ArrayList arry = new ArrayList();
  690. arry.Add(_smeltingID);
  691. arry.Add(_DEVICE_POSITION);
  692. arry.Add(_dealTime);
  693. //查询作业采样信息
  694. CoreClientParam ccp = this.ExecuteQueryArrayList("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
  695. "GetSamplingOfPost", arry, out strErr);
  696. if (strErr == "" && ccp.ReturnObject != null)
  697. {
  698. al = ccp.ReturnObject as ArrayList;
  699. GetDataOfPost(al);
  700. }
  701. else
  702. {
  703. _dtSamplingOfCvt.Clear();
  704. _dtSamplingOfCas.Clear();
  705. _dtSamplingOfLfs.Clear();
  706. _dtSamplingOfRhs.Clear();
  707. }
  708. //}
  709. }
  710. catch { }
  711. }
  712. /// <summary>
  713. /// 取各岗位数据表记录
  714. /// </summary>
  715. private void GetDataOfPost(ArrayList ar)
  716. {
  717. try
  718. {
  719. int nPos = 0;
  720. string szPos = "";
  721. DataRow[] drVacvalue = null;
  722. string strVacvalue = "";
  723. if (ar != null)
  724. {
  725. ArrayList alOperate = new ArrayList();
  726. nPos = ar.Count - 1;
  727. szPos = ar[nPos].ToString();
  728. alOperate = ar[nPos - 1] as ArrayList;
  729. if (szPos != "")
  730. {
  731. for (int i = 0; i < szPos.Length; i++)
  732. {
  733. switch (szPos.Substring(i, 1))
  734. {
  735. case "C": // 转炉
  736. _dtSamplingOfCvt = ConvertToDataTable(ar[i] as IList); //将服务器端传回的List转换成DataTable
  737. break;
  738. case "D": // 吹氩
  739. _dtSamplingOfCas = ConvertToDataTable(ar[i] as IList); //将服务器端传回的List转换成DataTable
  740. break;
  741. case "E": // 精炼炉
  742. _dtSamplingOfLfs = ConvertToDataTable(ar[i] as IList); //将服务器端传回的List转换成DataTable
  743. break;
  744. case "F": // RH炉
  745. _dtSamplingOfRhs = ConvertToDataTable(ar[i] as IList); //将服务器端传回的List转换成DataTable
  746. if (_dtSamplingOfRhs != null && _dtSamplingOfRhs.Rows.Count > 0)
  747. drVacvalue = _dtSamplingOfRhs.Select("SAMPLINGNAME='VACVALUE'", " SAMPLINGDATE DESC");
  748. if (drVacvalue != null && drVacvalue.Length > 0)
  749. strVacvalue = drVacvalue[0]["SAMPLINGVALUE"].ToString();
  750. if (_htOptInfo.Contains("VAC"))
  751. _htOptInfo.Remove("VAC");
  752. _htOptInfo.Add("VAC", strVacvalue);
  753. break;
  754. default:
  755. break;
  756. }
  757. }
  758. }
  759. }
  760. }
  761. catch { }
  762. }
  763. /// <summary>
  764. /// 填充用户控件上面的数据
  765. /// </summary>
  766. private void FillUserControlData()
  767. {
  768. ucBofPlan1.SetData(_htPlanInfo);
  769. ucRhsTimeInfo1.SetData(_htOptInfo);
  770. ucRhsDevInfo1.SetData(_htOptInfo);
  771. ucChemelEment1.FillCraftElement();
  772. //if (ucChemelEment1.ulgridElement.Rows.Count > 0) //add on 2009-04-24 显示最后一行
  773. //{
  774. // ucChemelEment1.ulgridElement.ActiveRow = ucChemelEment1.ulgridElement.Rows[ucChemelEment1.ulgridElement.Rows.Count - 1];
  775. // ucChemelEment1.ulgridElement.Rows[ucChemelEment1.ulgridElement.Rows.Count - 1].Selected = false;
  776. // ucChemelEment1.ulgridElement.Show();
  777. //}
  778. ucRhsPlanTime1.SetData();
  779. }
  780. /// <summary>
  781. /// 填充温度信息界面数据
  782. /// </summary>
  783. private void FillTemperatureData()
  784. {
  785. try
  786. {
  787. lock (this)
  788. {
  789. int nRows = 3; // 加一条转炉出钢温度 和 吹氩站出站温度、精炼炉
  790. DataRow[] dr1 = null, dr2 = null, dr3 = null,dr4=null;
  791. if (_dtSamplingOfCvt != null && _dtSamplingOfCvt.Rows.Count > 0)
  792. dr1 = _dtSamplingOfCvt.Select("SAMPLINGNAME='TEMPERATURE'", " SAMPLINGDATE DESC");
  793. if (_dtSamplingOfCas != null && _dtSamplingOfCas.Rows.Count > 0)
  794. dr2 = _dtSamplingOfCas.Select("SAMPLINGNAME='TEMPERATURE'", " SAMPLINGDATE DESC");
  795. if (_dtSamplingOfLfs != null && _dtSamplingOfLfs.Rows.Count > 0)
  796. dr3 = _dtSamplingOfLfs.Select("SAMPLINGNAME='TEMPERATURE'", " SAMPLINGDATE DESC");
  797. if (_dtSamplingOfRhs != null && _dtSamplingOfRhs.Rows.Count > 0)
  798. dr4 = _dtSamplingOfRhs.Select("SAMPLINGNAME='TEMPERATURE'", " SAMPLINGDATE ASC");
  799. if (dr4 != null && dr4.Length > 0)
  800. nRows += dr4.Length;
  801. CStaticMethod.ResetTableRows(ref _dtTemperature, nRows);
  802. int i = 0;
  803. #region " 转炉出钢温度 "
  804. string szVal = "";
  805. string szTemp = "";
  806. if (dr1 != null && dr1.Length > 0)
  807. {
  808. szVal = dr1[0]["SAMPLINGVALUE"].ToString();
  809. szTemp = dr1[0]["SAMPLINGDATE"].ToString();
  810. }
  811. CStaticMethod.SetGridTemperature(ref _dtTemperature, "转炉终点温度", "", szVal,szTemp, i);
  812. i++;
  813. #endregion
  814. #region " 吹氩站温度 "
  815. szVal = "";
  816. szTemp = "";
  817. if (dr2 != null && dr2.Length > 0)
  818. {
  819. szVal = dr2[0]["SAMPLINGVALUE"].ToString();
  820. szTemp = dr2[0]["SAMPLINGDATE"].ToString();
  821. }
  822. CStaticMethod.SetGridTemperature(ref _dtTemperature, "吹氩出站温度", "", szVal, szTemp, i);
  823. i++;
  824. #endregion
  825. #region " 精炼温度 "
  826. szVal = "";
  827. szTemp = "";
  828. if (dr3 != null && dr3.Length > 0)
  829. {
  830. szVal = dr3[0]["SAMPLINGVALUE"].ToString();
  831. szTemp = dr3[0]["SAMPLINGDATE"].ToString();
  832. }
  833. CStaticMethod.SetGridTemperature(ref _dtTemperature, "精炼出站温度", "", szVal, szTemp, i);
  834. i++;
  835. #endregion
  836. #region " 实时值 "
  837. if (dr4 != null && dr4.Length > 0)
  838. {
  839. string str = "";
  840. for (int j = 0; j < dr4.Length; j++, i++)
  841. {
  842. if (i == 3)
  843. str = "RH炉进站温度";
  844. else if (i == dr4.Length+2)
  845. str = "RH炉出站温度";
  846. else
  847. str = "RH炉过程温度";
  848. CStaticMethod.SetGridTemperature(ref _dtTemperature, str, "", dr4[j]["SAMPLINGVALUE"].ToString(), dr4[j]["SAMPLINGDATE"].ToString(), i);
  849. }
  850. }
  851. #endregion
  852. #region " 与标准进行比对 "
  853. // 转炉终点温度
  854. if (dr1 != null && dr1.Length > 0) CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "LG0201002", ref ulgridTempInfo, 0, "C");
  855. // 吹氩站终点温度
  856. if (dr2 != null && dr2.Length > 0) CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "LG0301002", ref ulgridTempInfo, 1, "D");
  857. //精炼炉温度
  858. if (dr3 != null && dr3.Length > 0) CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "LG0401002", ref ulgridTempInfo, 2, "E");
  859. if (dr4 != null && dr4.Length > 0)
  860. {
  861. CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "LG0501002", ref ulgridTempInfo, 3, "F");
  862. CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "LG0501002", ref ulgridTempInfo, dr4.Length+2, "F");
  863. }
  864. #endregion
  865. }
  866. }
  867. catch (Exception ex)
  868. {
  869. string Msg = ex.Message;
  870. }
  871. }
  872. /// <summary>
  873. /// 添加过程添加剂数据到界面
  874. /// </summary>
  875. private void SetAdditiveData()
  876. {
  877. try
  878. {
  879. try
  880. {
  881. string szName = "", szLC = "";
  882. DataRow[] rows;
  883. bool bClear = true;
  884. #region " 喂丝 "
  885. for (int j = 0; j < this.ultraDataSource2.Band.Columns.Count; j++)
  886. {
  887. szLC = this.ultraDataSource2.Band.Columns[j].Key;
  888. for (int i = 0; i < _additiveBuffer.hList.Count; i++)
  889. {
  890. JOB_LFS_ADDITIVES obj = (JOB_LFS_ADDITIVES)_additiveBuffer.hList[i];
  891. try
  892. {
  893. if (obj.MATERIELTYPE == "WS" && obj.JMTYPE == "1" && szLC == obj.HOPPERNUMID) // 物料类型为喂丝
  894. {
  895. rows = this._dtMaterial.Select(" MATERIELCODE = '" + obj.MATERIELCODE + "' and MATERIELTYPE = 'WS'");
  896. szName = (rows.Length > 0) ? rows[0]["MATERIELFORSHORT"].ToString() : "";
  897. if (szName != "" && ulgridFeedMtr.DisplayLayout.Bands[0].Columns[szLC].Header.Caption == szName)
  898. {
  899. if (this.ultraDataSource2.Rows[0][szLC].ToString() != obj.JMWGT.ToString())
  900. ultraDataSource2.Rows[0][szLC] = obj.JMWGT;
  901. bClear = false;
  902. break;
  903. }
  904. else
  905. ultraDataSource2.Rows[0][szLC] = "";
  906. bClear = false;
  907. }
  908. }
  909. catch { }
  910. }
  911. if (bClear)
  912. ultraDataSource2.Rows[0][szLC] = "";
  913. else
  914. bClear = true;
  915. }
  916. #endregion
  917. #region " 过程添加料 "
  918. for (int j = 0; j < this.ultraDataSource1.Band.Columns.Count; j++)
  919. {
  920. szLC = this.ultraDataSource1.Band.Columns[j].Key;
  921. for (int i = 0; i < _additiveBuffer.hList.Count; i++)
  922. {
  923. JOB_LFS_ADDITIVES obj = (JOB_LFS_ADDITIVES)_additiveBuffer.hList[i];
  924. try
  925. {
  926. if ((obj.MATERIELTYPE == "HJ" || obj.MATERIELTYPE == "FL") && obj.JMTYPE == "1" && szLC == obj.HOPPERNUMID) // 物料类型为 合金
  927. {
  928. rows = this._dtMaterial.Select(" MATERIELCODE = '" + obj.MATERIELCODE + "' and (MATERIELTYPE = 'HJ' or MATERIELTYPE = 'FL')");
  929. szName = (rows.Length > 0) ? rows[0]["MATERIELFORSHORT"].ToString() : "";
  930. if (szName != "" && this.ulgridPrcMtr.DisplayLayout.Bands[0].Columns[szLC].Header.Caption == szName)
  931. {
  932. if (this.ultraDataSource1.Rows[0][szLC].ToString() != obj.JMWGT.ToString())
  933. ultraDataSource1.Rows[0][szLC] = obj.JMWGT;
  934. bClear = false;
  935. break;
  936. }
  937. else
  938. ultraDataSource1.Rows[0][szLC] = "";
  939. bClear = false;
  940. }
  941. }
  942. catch { }
  943. }
  944. if (bClear)
  945. ultraDataSource1.Rows[0][szLC] = "";
  946. else
  947. bClear = true;
  948. }
  949. #endregion
  950. ulgridPrcMtr.UpdateData();
  951. ulgridFeedMtr.UpdateData();
  952. }
  953. catch (Exception ex)
  954. {
  955. string Msg = ex.Message;
  956. }
  957. }
  958. catch (Exception ex)
  959. {
  960. string Msg = ex.Message;
  961. }
  962. }
  963. /// <summary>
  964. /// 手投料数据绑定
  965. /// </summary>
  966. private void HdctMaterialBind()
  967. {
  968. try
  969. {
  970. if (_bHandThrow)
  971. {
  972. if (true == _bClearFlag)
  973. {
  974. for (int i = 0; i < this.ultraDataSource3.Band.Columns.Count; i++)
  975. {
  976. this.ulgridHndMtr.DisplayLayout.Rows[0].Cells[i].Value = "";
  977. }
  978. _bClearFlag = false;
  979. }
  980. string szName = "", szLC = "";
  981. DataRow[] rows;
  982. bool bClear1 = true;
  983. for (int j = 0; j < this.ultraDataSource3.Band.Columns.Count; j++)
  984. {
  985. szLC = this.ultraDataSource3.Band.Columns[j].Key;
  986. #region " 冶炼过程手投料 "
  987. for (int i = 0; i < _additiveBuffer.hList.Count; i++)
  988. {
  989. JOB_LFS_ADDITIVES obj = (JOB_LFS_ADDITIVES)_additiveBuffer.hList[i];
  990. try
  991. {
  992. if (obj.JMTYPE == "2")
  993. {
  994. rows = _dtMaterial.Select(" MATERIELCODE = '" + obj.MATERIELCODE + "' and MATERIELTYPE = '" + obj.MATERIELTYPE + "'");
  995. szName = (rows.Length > 0) ? rows[0]["MATERIELFORSHORT"].ToString() : "";
  996. if (szName != "")
  997. {
  998. if (this.ulgridHndMtr.DisplayLayout.Bands[0].Columns[szLC].Header.Caption == szName)
  999. {
  1000. ultraDataSource3.Rows[0][szLC] = obj.JMWGT;
  1001. bClear1 = false;
  1002. break;
  1003. }
  1004. }
  1005. }
  1006. }
  1007. catch { }
  1008. }
  1009. if (bClear1)
  1010. ultraDataSource3.Rows[0][szLC] = "";
  1011. else
  1012. bClear1 = true;
  1013. #endregion
  1014. }
  1015. ulgridHndMtr.UpdateData();
  1016. }
  1017. }
  1018. catch { }
  1019. }
  1020. /// <summary>
  1021. /// 设置冶炼过程手投料界面元素项
  1022. /// </summary>
  1023. private void SetProceThrowFace()
  1024. {
  1025. try
  1026. {
  1027. string outErrStr = "";
  1028. #region " 冶炼过程手投料 "
  1029. string strWhere = " where CONFGITEM = '" + _DEVICE_POSITION + "' and USEDLOCATION = 'STL'"; // 冶炼过程手投料 GCSTL
  1030. //hengxing
  1031. //CallingMessage par = new CallingMessage();
  1032. //par.ServerName = "lgJobMgt";
  1033. //par.AssemblyName = "Core.LgMes.Server.lgJobMgt";
  1034. //par.ClassName = "Core.LgMes.Server.lgJobMgt.classSendCommand";
  1035. //par.MethodName = "GetHndTrwMtr";
  1036. //par.args = new object[] { strWhere };
  1037. object obj = null;// ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr);
  1038. if (outErrStr == "" && obj != null)
  1039. {
  1040. DataTable dt = ((DataSet)obj).Tables[0];
  1041. if (dt.Rows.Count > 0)
  1042. {
  1043. string szPZBM = dt.Rows[0]["CONFGCODE"].ToString();
  1044. string[] arBM = szPZBM.Split('/');
  1045. DataRow[] rows;
  1046. int nCount = this.ulgridHndMtr.DisplayLayout.Bands[0].Columns.Count;// > arBM.Length ? arBM.Length : udHandMaterial.DisplayLayout.Bands[0].Columns.Count;
  1047. for (int i = 0; i < nCount; i++)
  1048. {
  1049. if (i < arBM.Length - 1)
  1050. {
  1051. rows = _dtMaterial.Select("MATERIELCODE='" + arBM[i] + "'");
  1052. if (rows.Length > 0)
  1053. {
  1054. this.ulgridHndMtr.DisplayLayout.Bands[0].Columns[i].Header.Caption = rows[0]["MATERIELFORSHORT"].ToString();
  1055. this.ulgridHndMtr.DisplayLayout.Bands[0].Columns[i].Tag = arBM[i];
  1056. }
  1057. }
  1058. else
  1059. {
  1060. this.ulgridHndMtr.DisplayLayout.Bands[0].Columns[i].Header.Caption = "";
  1061. this.ulgridHndMtr.DisplayLayout.Bands[0].Columns[i].Tag = ultraDataSource3.Band.Columns[i].Key;
  1062. }
  1063. }
  1064. }
  1065. }
  1066. #endregion
  1067. }
  1068. catch { }
  1069. }
  1070. private string GetDevDeviceCodeOfRhs(int nDevNo)
  1071. {
  1072. string strDevID = "";
  1073. switch (nDevNo)
  1074. {
  1075. case (int)DeviceCode.RHS:
  1076. strDevID = "RHS_DEVICE";
  1077. break;
  1078. case (int)DeviceCode.RHS01:
  1079. case (int)DeviceCode.RHS02:
  1080. case (int)DeviceCode.RHS03:
  1081. strDevID = String.Format("RHS{0,2}_DEVICE", nDevNo);
  1082. break;
  1083. }
  1084. strDevID = strDevID.Replace(" ", "0");
  1085. return strDevID;
  1086. }
  1087. private string GetDevFrontCodeOfRhs(int nDevNo)
  1088. {
  1089. string strDevID = "";
  1090. switch (nDevNo)
  1091. {
  1092. case (int)DeviceCode.RHS:
  1093. strDevID = "RHS_FRONT";
  1094. break;
  1095. case (int)DeviceCode.RHS01:
  1096. case (int)DeviceCode.RHS02:
  1097. case (int)DeviceCode.RHS03:
  1098. strDevID = String.Format("RHS{0,2}_FRONT", nDevNo);
  1099. break;
  1100. }
  1101. strDevID = strDevID.Replace(" ", "0");
  1102. return strDevID;
  1103. }
  1104. private string GetDevIdleCodeOfRhs(int nDevNo)
  1105. {
  1106. string strDevID = "";
  1107. switch (nDevNo)
  1108. {
  1109. case (int)DeviceCode.RHS:
  1110. strDevID = "RHS_IDLE";
  1111. break;
  1112. case (int)DeviceCode.RHS01:
  1113. case (int)DeviceCode.RHS02:
  1114. case (int)DeviceCode.RHS03:
  1115. strDevID = String.Format("RHS{0,2}_IDLE", nDevNo);
  1116. break;
  1117. }
  1118. strDevID = strDevID.Replace(" ", "0");
  1119. return strDevID;
  1120. }
  1121. private string GetDevBackCodeOfRhs(int nDevNo)
  1122. {
  1123. string strDevID = "";
  1124. switch (nDevNo)
  1125. {
  1126. case (int)DeviceCode.RHS:
  1127. strDevID = "RHS_BACK";
  1128. break;
  1129. case (int)DeviceCode.RHS01:
  1130. case (int)DeviceCode.RHS02:
  1131. case (int)DeviceCode.RHS03:
  1132. strDevID = String.Format("RHS{0,2}_BACK", nDevNo);
  1133. break;
  1134. }
  1135. strDevID = strDevID.Replace(" ", "0");
  1136. return strDevID;
  1137. }
  1138. #region " From DataSet To Buffer "
  1139. private void DataSetToTrackObject(ref DataSet ds, ref TrackObjectInfo obj)
  1140. {
  1141. try
  1142. {
  1143. obj.ClearElement();
  1144. PropertyInfo[] PropertyInfos = null;
  1145. foreach (DataRow dr in ds.Tables[0].Rows)
  1146. {
  1147. RealDataTrackObjectInfor detail = new RealDataTrackObjectInfor();
  1148. if (PropertyInfos == null)
  1149. {
  1150. PropertyInfos = detail.GetType().GetProperties();
  1151. }
  1152. //给各个属性赋值
  1153. foreach (PropertyInfo oPropertyInfo in PropertyInfos)
  1154. {
  1155. try
  1156. {
  1157. if (dr[oPropertyInfo.Name] != System.DBNull.Value)
  1158. {
  1159. oPropertyInfo.SetValue(detail, dr[oPropertyInfo.Name.ToString()], null);
  1160. }
  1161. }
  1162. catch (Exception ex)
  1163. {
  1164. MessageBox.Show(ex.Message);
  1165. }
  1166. }
  1167. obj.Add(ref detail);
  1168. }//end foreach
  1169. _objTrackBuffer.DataHarmonize(ref obj);
  1170. }
  1171. catch (Exception ex)
  1172. {
  1173. string Msg = ex.Message;
  1174. }
  1175. finally
  1176. {
  1177. }
  1178. }
  1179. private void DataSetToCraftElement(ref DataSet ds, ref CraftElement obj)
  1180. {
  1181. try
  1182. {
  1183. obj.ClearElement();
  1184. PropertyInfo[] PropertyInfos = null;
  1185. foreach (DataRow dr in ds.Tables[0].Rows)
  1186. {
  1187. JOB_CHEMELEMENT detail = new JOB_CHEMELEMENT();
  1188. if (PropertyInfos == null)
  1189. {
  1190. PropertyInfos = detail.GetType().GetProperties();
  1191. }
  1192. //给各个属性赋值
  1193. foreach (PropertyInfo oPropertyInfo in PropertyInfos)
  1194. {
  1195. try
  1196. {
  1197. if (dr[oPropertyInfo.Name] != System.DBNull.Value)
  1198. {
  1199. oPropertyInfo.SetValue(detail, dr[oPropertyInfo.Name.ToString()], null);
  1200. }
  1201. }
  1202. catch (Exception ex)
  1203. {
  1204. MessageBox.Show(ex.Message);
  1205. }
  1206. }
  1207. obj.Add(ref detail);
  1208. }//end foreach
  1209. _objCraftEleBuffer.DataHarmonize(ref obj);
  1210. }
  1211. catch (Exception ex)
  1212. {
  1213. string Msg = ex.Message;
  1214. }
  1215. finally
  1216. {
  1217. }
  1218. }
  1219. private void DataSetToAdditive(ref DataSet ds, ref LfsAdditive obj)
  1220. {
  1221. try
  1222. {
  1223. obj.ClearElement();
  1224. PropertyInfo[] PropertyInfos = null;
  1225. foreach (DataRow dr in ds.Tables[0].Rows)
  1226. {
  1227. JOB_LFS_ADDITIVES detail = new JOB_LFS_ADDITIVES();
  1228. if (PropertyInfos == null)
  1229. {
  1230. PropertyInfos = detail.GetType().GetProperties();
  1231. }
  1232. //给各个属性赋值
  1233. foreach (PropertyInfo oPropertyInfo in PropertyInfos)
  1234. {
  1235. try
  1236. {
  1237. if (ds.Tables[0].Columns.Contains(oPropertyInfo.Name))
  1238. {
  1239. if (dr[oPropertyInfo.Name] != System.DBNull.Value)
  1240. {
  1241. oPropertyInfo.SetValue(detail, dr[oPropertyInfo.Name.ToString()], null);
  1242. }
  1243. }
  1244. }
  1245. catch (Exception ex)
  1246. {
  1247. MessageBox.Show(ex.Message);
  1248. }
  1249. }
  1250. obj.Add(ref detail);
  1251. }//end foreach
  1252. _additiveBuffer.DataHarmonize(ref obj);
  1253. }
  1254. catch (Exception ex)
  1255. {
  1256. string Msg = ex.Message;
  1257. }
  1258. finally
  1259. {
  1260. }
  1261. }
  1262. #endregion
  1263. /// <summary>
  1264. /// 根据窗体名称获取设备位置
  1265. /// </summary>
  1266. private void GetDevicePosition()
  1267. {
  1268. if (this.Text == "") return;
  1269. string str = this.Text.Substring(0, 1);
  1270. switch (str)
  1271. {
  1272. case "1":
  1273. _DEVICE_POSITION = "RHS01";
  1274. _DEVICE_POS = 1;
  1275. break;
  1276. case "2":
  1277. _DEVICE_POSITION = "RHS02";
  1278. _DEVICE_POS = 2;
  1279. break;
  1280. case "3":
  1281. _DEVICE_POSITION = "RHS03";
  1282. _DEVICE_POS = 3;
  1283. break;
  1284. default:
  1285. break;
  1286. }
  1287. }
  1288. /// <summary>
  1289. /// 设置用户控件委托
  1290. /// </summary>
  1291. private void SetUserControlDelegate()
  1292. {
  1293. ucRhsDevInfo1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucRhsDevInfo1_ClickCellButton);
  1294. ucRhsTimeInfo1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucRhsTimeInfo1_ClickCellButton);
  1295. ucBofPlan1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucBofPlan1_ClickCellButton);
  1296. ucRhsTimeInfo1.ultraGrid1.KeyDown += new KeyEventHandler(ucRhsTimeInfo1_KeyDown);
  1297. ucRhsDevInfo1.ultraGrid1.KeyDown += new KeyEventHandler(ucRhsDevInfo1_KeyDown);
  1298. }
  1299. /// <summary>
  1300. /// 清除所有界面Grid中的实时数据
  1301. /// </summary>
  1302. private void ClearGridData()
  1303. {
  1304. try
  1305. {
  1306. for (int j = 0; j < this.ultraDataSource1.Band.Columns.Count; j++)
  1307. {
  1308. this.ultraDataSource1.Rows[0][j] = "";
  1309. }
  1310. }
  1311. catch { }
  1312. try
  1313. {
  1314. for (int j = 0; j < this.ultraDataSource2.Band.Columns.Count; j++)
  1315. {
  1316. this.ultraDataSource2.Rows[0][j] = "";
  1317. }
  1318. }
  1319. catch { }
  1320. try
  1321. {
  1322. for (int j = 0; j < this.ultraDataSource3.Band.Columns.Count; j++)
  1323. {
  1324. this.ultraDataSource3.Rows[0][j] = "";
  1325. }
  1326. }
  1327. catch { }
  1328. try
  1329. {
  1330. _dtCraftElement.Rows.Clear();
  1331. }
  1332. catch { }
  1333. try
  1334. {
  1335. this._dtTemperature.Rows.Clear();
  1336. }
  1337. catch { }
  1338. }
  1339. /// <summary>
  1340. /// 重置界面用户控件的数据
  1341. /// </summary>
  1342. private void ResetAllData()
  1343. {
  1344. if (!_bResetDataFlag) // 如果已经清空,则直接返回
  1345. {
  1346. ucRhsDevInfo1.ResetData();
  1347. ucBofPlan1.ResetData();
  1348. ucRhsTimeInfo1.ResetData();
  1349. ucChemelEment1.ResetData();
  1350. _htPlanInfo.Clear();
  1351. _htOptInfo.Clear();
  1352. ClearGridData();
  1353. ucRhsPlanTime1.ResetData();
  1354. _bResetDataFlag = true;
  1355. }
  1356. }
  1357. /// <summary>
  1358. /// 根据设备状态设置图片显示
  1359. /// </summary>
  1360. /// <param name="strState"></param>
  1361. /// <returns></returns>
  1362. private Image SetPic(string strState)
  1363. {
  1364. int index = 0;
  1365. try
  1366. {
  1367. switch (strState)
  1368. {
  1369. case "IDLE":
  1370. index = 0;
  1371. break;
  1372. case "LADLEARRIVE":
  1373. index = 5;
  1374. break;
  1375. case "LADLEDEPARTURE":
  1376. index = 2;
  1377. break;
  1378. case "BLOWING":
  1379. index = 3;
  1380. break;
  1381. case "REPAIR":
  1382. index = 4;
  1383. break;
  1384. default:
  1385. index = 0;
  1386. break;
  1387. }
  1388. }
  1389. catch
  1390. {
  1391. index = 0;
  1392. }
  1393. return this.imageList1.Images[index];
  1394. }
  1395. private void ultraExpandableGroupBox1_ExpandedStateChanged(object sender, EventArgs e)
  1396. {
  1397. try
  1398. {
  1399. if (_heatProcessNo != "")
  1400. {
  1401. _bHandThrow = ultraExpandableGroupBox1.Expanded;
  1402. if (_bHandThrow)
  1403. _bClearFlag = true;
  1404. }
  1405. if (ultraExpandableGroupBox1.Expanded)
  1406. {
  1407. //查询手投料物料配置
  1408. ClassManualUpdateInfo.SetProceThrowFace(ulgridHndMtr, ultraDataSource3, _DEVICE_POSITION, ref _dtMaterial, this.ob);
  1409. }
  1410. }
  1411. catch { }
  1412. }
  1413. /// <summary>
  1414. /// 设置料斗信息
  1415. /// </summary>
  1416. private void SetHopperInfo()
  1417. {
  1418. try
  1419. {
  1420. string strErr = "";
  1421. ArrayList arry = new ArrayList();
  1422. arry.Add("GetHopperName.Select");//此ID为XML文件ID
  1423. arry.Add(_DEVICE_POSITION);
  1424. //查询料斗物料设置信息
  1425. DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
  1426. "GetHopperName", arry, out strErr);
  1427. if (strErr == "" && ds != null)
  1428. {
  1429. DataTable dtHopper = ds.Tables[0];
  1430. string BH = "";
  1431. for (int i = 0; i < dtHopper.Rows.Count; i++)
  1432. {
  1433. BH = dtHopper.Rows[i]["MSNUMID"].ToString();
  1434. if (dtHopper.Rows[i]["MATERIELTYPE"].ToString() == "WS")
  1435. {
  1436. this.ulgridFeedMtr.DisplayLayout.Bands[0].Columns[BH].Header.Caption = dtHopper.Rows[i]["MATERIELFORSHORT"].ToString();
  1437. this.ulgridFeedMtr.DisplayLayout.Bands[0].Columns[BH].Tag = dtHopper.Rows[i]["MATERIELCODE"].ToString();
  1438. }
  1439. else
  1440. {
  1441. this.ulgridPrcMtr.DisplayLayout.Bands[0].Columns[BH].Header.Caption = dtHopper.Rows[i]["MATERIELFORSHORT"].ToString();
  1442. this.ulgridPrcMtr.DisplayLayout.Bands[0].Columns[BH].Tag = dtHopper.Rows[i]["MATERIELCODE"].ToString();
  1443. }
  1444. }
  1445. }
  1446. }
  1447. catch { }
  1448. }
  1449. #endregion
  1450. #region " Control Event "
  1451. /// <summary>
  1452. /// 功能按钮控制区
  1453. /// </summary>
  1454. /// <param name="sender"></param>
  1455. /// <param name="ToolbarKey"></param>
  1456. public override void ToolBar_Click(object sender, string ToolbarKey)
  1457. {
  1458. switch (ToolbarKey)
  1459. {
  1460. case "Result":
  1461. string szStr = _DEVICE_POS.ToString() + "#RH炉实绩";
  1462. foreach (Form mdiChild in this.MdiParent.MdiChildren)
  1463. {
  1464. if (mdiChild.Text == szStr)
  1465. {
  1466. mdiChild.Activate();
  1467. return;
  1468. }
  1469. }
  1470. frmRhsResults frmSJSJ = new frmRhsResults();
  1471. frmSJSJ.MdiParent = this.MdiParent;
  1472. frmSJSJ.Text = szStr;
  1473. frmSJSJ.Tag = frmSJSJ.Text;
  1474. frmSJSJ.Key = "Core.LgMes.Client.LgResMgt.frmRhsResults";
  1475. frmSJSJ.CustomInfo = _DEVICE_POSITION;
  1476. frmSJSJ.Toolbar = CStaticMethod.GetFromToolInfo(frmSJSJ.Key, frmSJSJ.CustomInfo, this.ob);
  1477. frmSJSJ.ob = this.ob;
  1478. frmSJSJ.Show();
  1479. break;
  1480. case "MtrCsm": // 物料消耗
  1481. string szWLXH = "物料消耗";
  1482. foreach (Form mdiChild in this.MdiParent.MdiChildren)
  1483. {
  1484. if (mdiChild.Text == szWLXH)
  1485. {
  1486. mdiChild.Activate();
  1487. return;
  1488. }
  1489. }
  1490. frmAdditStat frmWLXH = new frmAdditStat();
  1491. frmWLXH.MdiParent = this.MdiParent;
  1492. frmWLXH.Text = szWLXH;
  1493. frmWLXH.Tag = frmWLXH.Text;
  1494. frmWLXH.Key = "Core.LgMes.Client.LgIntegrationQuery.frmAdditStat";
  1495. frmWLXH.Toolbar = CStaticMethod.GetFromToolInfo(frmWLXH.Key, "", this.ob);
  1496. frmWLXH.ob = this.ob;
  1497. frmWLXH.Show();
  1498. break;
  1499. case "ChemicElem": // 化学成分
  1500. string szEle = "化学成分查询";
  1501. foreach (Form mdiChild in this.MdiParent.MdiChildren)
  1502. {
  1503. if (mdiChild.Text == szEle)
  1504. {
  1505. mdiChild.Activate();
  1506. return;
  1507. }
  1508. }
  1509. frmLgElements frmHXCF = new frmLgElements();
  1510. frmHXCF.MdiParent = this.MdiParent;
  1511. frmHXCF.Text = szEle;
  1512. frmHXCF.Tag = frmHXCF.Text;
  1513. frmHXCF._devPos = _DEVICE_POSITION;
  1514. frmHXCF.Key = "Core.LgMes.Client.LgIntegrationQuery.frmLgElements";
  1515. frmHXCF.Toolbar = CStaticMethod.GetFromToolInfo(frmHXCF.Key, "", this.ob);
  1516. frmHXCF.ob = this.ob;
  1517. frmHXCF.Show();
  1518. break;
  1519. case "SftRcd": // 班组记录
  1520. string szRcd = "RH炉操作记录";
  1521. foreach (Form mdiChild in this.MdiParent.MdiChildren)
  1522. {
  1523. if (mdiChild.Text == szRcd)
  1524. {
  1525. mdiChild.Activate();
  1526. return;
  1527. }
  1528. }
  1529. reportRHData frmReport = new reportRHData();
  1530. frmReport.MdiParent = this.MdiParent;
  1531. frmReport.Text = szRcd;
  1532. frmReport.Tag = frmReport.Text;
  1533. frmReport.Key = "Core.LgMes.Client.Report.reportRHData";
  1534. frmReport.Toolbar = CStaticMethod.GetFromToolInfo(frmReport.Key, "", this.ob);
  1535. frmReport.ob = this.ob;
  1536. frmReport.Show();
  1537. break;
  1538. case "btnJobStd": // 操作规程
  1539. string szOR = "操作规程管理";
  1540. foreach (Form mdiChild in this.MdiParent.MdiChildren)
  1541. {
  1542. if (mdiChild.Text == szOR)
  1543. {
  1544. mdiChild.Activate();
  1545. return;
  1546. }
  1547. }
  1548. //Core.LgMes.Client.LgIntegrationQuery.frmOperateRule frmOR = new Core.LgMes.Client.LgIntegrationQuery.frmOperateRule();
  1549. //frmOR.MdiParent = this.MdiParent;
  1550. //frmOR.Key = "Core.LgMes.Client.LgIntegrationQuery.frmOperateRule";
  1551. //frmOR.Text = "操作规程管理";
  1552. //frmOR.blValue = false;
  1553. //if (_htPlanInfo != null && _htPlanInfo.Count>0)
  1554. //{
  1555. // frmOR.strDeviceNo = "CCM0" + _htPlanInfo["CAST_ID"].ToString();
  1556. // frmOR.strSteelCode = _htPlanInfo["STEEL"].ToString();
  1557. //}
  1558. //frmOR.Show();
  1559. break;
  1560. case "JobPlan": // 作业计划
  1561. string szPlan = "作业计划查询";
  1562. foreach (Form mdiChild in this.MdiParent.MdiChildren)
  1563. {
  1564. if (mdiChild.Text == szPlan)
  1565. {
  1566. mdiChild.Activate();
  1567. return;
  1568. }
  1569. }
  1570. frmSchedulingQuery frmZYJH = new frmSchedulingQuery();
  1571. frmZYJH.MdiParent = this.MdiParent;
  1572. frmZYJH.Text = szPlan;
  1573. frmZYJH.Tag = frmZYJH.Text;
  1574. frmZYJH.Key = "Core.LgMes.Client.LgIntegrationQuery.frmSchedulingQuery";
  1575. frmZYJH.Toolbar = CStaticMethod.GetFromToolInfo(frmZYJH.Key, "", this.ob);
  1576. frmZYJH.ob = this.ob;
  1577. frmZYJH.Show();
  1578. break;
  1579. case "Exit":
  1580. this.Close();
  1581. break;
  1582. default:
  1583. break;
  1584. }
  1585. }
  1586. private void ulgridHndMtr_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  1587. {
  1588. //利用弹出计算器窗体增加手投料消耗
  1589. ClassManualUpdateInfo.HndMtrFromAddMaterial(_heatProcessNo, ulgridHndMtr.ActiveCell, this._dtMaterial, this.ob);
  1590. }
  1591. private void ulgridHndMtr_KeyDown(object sender, KeyEventArgs e)
  1592. {
  1593. if (ulgridHndMtr.ActiveCell !=null && e.KeyCode == Keys.Enter && ulgridHndMtr.ActiveRow != null && _smeltingID != ""
  1594. && ulgridHndMtr.ActiveCell.Column.Header.Caption != "")
  1595. {
  1596. string szBM = "";
  1597. if (ulgridHndMtr.ActiveCell.Column.Tag.ToString() != ulgridHndMtr.ActiveCell.Column.Key)
  1598. szBM = ulgridHndMtr.ActiveCell.Column.Tag.ToString();
  1599. string szMC = this.ulgridHndMtr.ActiveCell.Column.Header.Caption, szWLLX = "";
  1600. DataRow[] rows = _dtMaterial.Select(" MATERIELCODE = '" + szBM + "'");
  1601. if (rows.Length > 0)
  1602. {
  1603. szWLLX = rows[0]["MATERIELTYPE"].ToString();
  1604. //录入手投料消耗
  1605. ClassManualUpdateInfo.AddMaterialProc(_heatProcessNo, szBM, szWLLX, ulgridHndMtr.ActiveCell.Text,
  1606. ulgridHndMtr.ActiveCell.Column.Key.ToString(), "2", ob);
  1607. ulgridTempInfo.Focus();
  1608. }
  1609. }
  1610. }
  1611. private void ulgridHndMtr_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  1612. {
  1613. if (ulgridHndMtr.ActiveCell.Text != "")
  1614. CStaticMethod.CheckNumValidate(ulgridHndMtr.ActiveCell.Text);
  1615. }
  1616. private void ulgridHndMtr_DoubleClickHeader(object sender, Infragistics.Win.UltraWinGrid.DoubleClickHeaderEventArgs e)
  1617. {
  1618. //设置手投料
  1619. ClassManualUpdateInfo.SetHatMaterial(ulgridHndMtr.ActiveCell, ref e, _DEVICE_POSITION, this.ob);
  1620. }
  1621. private void ulgridPrcMtr_DoubleClickHeader(object sender, Infragistics.Win.UltraWinGrid.DoubleClickHeaderEventArgs e)
  1622. {
  1623. Core.LgMes.Client.LgJobMgt.frmSetHopper frmLCPZ = new Core.LgMes.Client.LgJobMgt.frmSetHopper(_DEVICE_POSITION);
  1624. frmLCPZ.WindowState = FormWindowState.Normal;
  1625. frmLCPZ.ob = this.ob;
  1626. frmLCPZ.ShowDialog();
  1627. SetHopperInfo();
  1628. }
  1629. #endregion
  1630. /// <summary>
  1631. /// 修改自动加料
  1632. /// </summary>
  1633. /// <param name="sender"></param>
  1634. /// <param name="e"></param>
  1635. private void ulgridPrcMtr_KeyDown(object sender, KeyEventArgs e)
  1636. {
  1637. if (ulgridPrcMtr.ActiveCell !=null &&e.KeyCode == Keys.Enter && ulgridPrcMtr.ActiveRow != null && _smeltingID != ""
  1638. && ulgridPrcMtr.ActiveCell.Column.Header.Caption != "")
  1639. {
  1640. string szBM = "";
  1641. if (ulgridPrcMtr.ActiveCell.Column.Tag.ToString() != ulgridPrcMtr.ActiveCell.Column.Key)
  1642. szBM = ulgridPrcMtr.ActiveCell.Column.Tag.ToString();
  1643. string szMC = this.ulgridPrcMtr.ActiveCell.Column.Header.Caption, szWLLX = "";
  1644. DataRow[] rows = _dtMaterial.Select(" MATERIELCODE = '" + szBM + "'");
  1645. if (rows.Length > 0)
  1646. {
  1647. szWLLX = rows[0]["MATERIELTYPE"].ToString();
  1648. ////添加辅料消耗
  1649. ClassManualUpdateInfo.AddMaterialProc(_heatProcessNo, szBM, szWLLX, ulgridPrcMtr.ActiveCell.Text,
  1650. ulgridPrcMtr.ActiveCell.Column.Key.ToString(), "1", ob);
  1651. ulgridTempInfo.Focus();
  1652. }
  1653. }
  1654. }
  1655. /// <summary>
  1656. /// 验证数据是否是数字
  1657. /// </summary>
  1658. /// <param name="sender"></param>
  1659. /// <param name="e"></param>
  1660. private void ulgridPrcMtr_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  1661. {
  1662. if (ulgridPrcMtr.ActiveCell.Text != "")
  1663. CStaticMethod.CheckNumValidate(ulgridPrcMtr.ActiveCell.Text);
  1664. }
  1665. /// <summary>
  1666. /// 修改自动投料喂丝
  1667. /// </summary>
  1668. /// <param name="sender"></param>
  1669. /// <param name="e"></param>
  1670. private void ulgridFeedMtr_KeyDown(object sender, KeyEventArgs e)
  1671. {
  1672. if (ulgridFeedMtr.ActiveCell !=null && e.KeyCode == Keys.Enter && ulgridFeedMtr.ActiveRow != null && _smeltingID != ""
  1673. && ulgridFeedMtr.ActiveCell.Column.Header.Caption != "")
  1674. {
  1675. string szBM = "";
  1676. if (ulgridFeedMtr.ActiveCell.Column.Tag.ToString() != ulgridFeedMtr.ActiveCell.Column.Key)
  1677. szBM = ulgridFeedMtr.ActiveCell.Column.Tag.ToString();
  1678. string szMC = this.ulgridFeedMtr.ActiveCell.Column.Header.Caption, szWLLX = "";
  1679. DataRow[] rows = _dtMaterial.Select(" MATERIELCODE = '" + szBM + "'");
  1680. if (rows.Length > 0)
  1681. {
  1682. szWLLX = rows[0]["MATERIELTYPE"].ToString();
  1683. ////添加喂丝消耗
  1684. ClassManualUpdateInfo.AddMaterialProc(_heatProcessNo, szBM, szWLLX, ulgridFeedMtr.ActiveCell.Text,
  1685. ulgridFeedMtr.ActiveCell.Column.Key.ToString(), "1", ob);
  1686. ulgridTempInfo.Focus();
  1687. }
  1688. }
  1689. }
  1690. /// <summary>
  1691. /// 验证是否是数字
  1692. /// </summary>
  1693. /// <param name="sender"></param>
  1694. /// <param name="e"></param>
  1695. private void ulgridFeedMtr_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  1696. {
  1697. if (ulgridFeedMtr.ActiveCell.Text != "")
  1698. CStaticMethod.CheckNumValidate(ulgridFeedMtr.ActiveCell.Text);
  1699. }
  1700. private void ultraGroupBox2_DoubleClick(object sender, EventArgs e)
  1701. {
  1702. if (!string.IsNullOrEmpty(ucBofPlan1.ultraGrid1.DisplayLayout.Rows[0].Cells["HEATNO"].Value.ToString()))
  1703. {
  1704. frmProcessAbnormity frmPA = new frmProcessAbnormity();
  1705. frmPA.strSmeltingID = ucBofPlan1.ultraGrid1.DisplayLayout.Rows[0].Cells["HEATNO"].Value.ToString();
  1706. frmPA.strCraftposID = _DEVICE_POSITION;
  1707. frmPA.ShowDialog();
  1708. }
  1709. }
  1710. }
  1711. }