frmRhsJob.cs 77 KB

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