frmBofcJob.cs 90 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290
  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 frmBofcJob : CommonClientToServer // CoreFS.CA06.FrmBase
  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 DataTable _dtCraftElement = null; // 工艺化学成分信息表
  30. //private DataTable _dtStdElement = null; // 标准成分表
  31. private DataTable _dtTemperature = null; // 温度
  32. private DataTable _dtSample = null; // 采样数据表
  33. private DataTable _dtMaterial = null; // 存储辅料信息
  34. private DataTable _dtEleStd = null; // 标准元素值表
  35. private DataTable _dtCraftStdVal = null; // 炼钢工艺标准值
  36. private CommandClass _commClass; // 消息发送类
  37. private string _DEVICE_POSITION = "BOF01"; // 设备位置
  38. private int _DEVICE_POS = 1; // 设备号
  39. private Thread _getDataThread; // 取数据线程
  40. private Thread _setDataThread; // 刷新数据线程
  41. private bool _bIfGetData = true; // 控制取数据线程循环的标志
  42. private bool _bIfSetData = true; // 控制刷新数据线程循环的标志
  43. private bool _bResetDataFlag = false; // 清空所有数据标志,True表示已经清空
  44. private ArrayList _listHeatProcess = null; // 存储加热处理号的数组列表
  45. private string _devPos = ""; // 当前设备位置的全称
  46. private bool _bHandThrow = false; // 手投料标志
  47. private bool _bClearFlag = false;
  48. private TrackObjectInfo _tmpObjTrack; // 实时跟踪信息类 用于存放当前实时跟踪信息 起一个中间过渡的缓冲
  49. private TrackObjectInfo _objTrackBuffer; // 用于实时刷新实时跟踪信息的缓冲区
  50. private CraftElement _tmpObjCraftEle; // 存放工艺化学成分信息的类
  51. private CraftElement _objCraftEleBuffer; // 用于实时刷新工艺化学成分信息的缓冲区
  52. private BofAdditive _procAdditive; // 存放过程添加剂信息
  53. private BofAdditive _additiveBuffer; // 用于刷新过程添加剂信息的缓冲区
  54. private Hashtable _htPlanInfo; // 用于作业计划信息的表字段数据
  55. private Hashtable _htOptInfo; // 用于存储操作信息的表字段数据
  56. private delegate void SetDataThreadDelegate(); // 刷新数据线程的一个委托方法,目的是达到界面所有数据刷新同步
  57. private string strTemperature = "'L02004'"; // 显示的温度名称变量(例:'03001','03002')
  58. #endregion
  59. #region " Construct Function "
  60. public frmBofcJob()
  61. {
  62. InitializeComponent();
  63. //CheckForIllegalCrossThreadCalls = false;
  64. // 初始化成员变量
  65. _commClass = new CommandClass();
  66. _tmpObjTrack = new TrackObjectInfo();
  67. _objTrackBuffer = new TrackObjectInfo();
  68. _tmpObjCraftEle = new CraftElement();
  69. _objCraftEleBuffer = new CraftElement();
  70. _procAdditive = new BofAdditive();
  71. _additiveBuffer = new BofAdditive();
  72. _htOptInfo = new Hashtable();
  73. _htPlanInfo = new Hashtable();
  74. ucBofDevInfo1.m_imageDefault = imageList1.Images[0];
  75. }
  76. #endregion
  77. #region " Init Form Element"
  78. private void frmBofcJob_Load(object sender, EventArgs e)
  79. {
  80. ucBofPlanTime1.ob = this.ob;
  81. ucChemelEment1.ob = this.ob;
  82. InitDataSourse();
  83. GenerateTableFrame();
  84. GetDevicePosition();
  85. SetUserControlDelegate();
  86. GetMaterialData();
  87. StartUpThread();
  88. SetHopperInfo();
  89. }
  90. private void InitDataSourse()
  91. {
  92. this.ultraDataSource1.Rows.Add(new object[] { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" });
  93. this.ultraDataSource2.Rows.Add(new object[] { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" });
  94. this.ultraDataSource3.Rows.Add(new object[] { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" });
  95. }
  96. /// <summary>
  97. /// 生成温度的表架构
  98. /// </summary>
  99. private void GenerateTableFrame()
  100. {
  101. _dtTemperature = new DataTable("temperature");
  102. _dtTemperature.Columns.Add(new DataColumn("项目名", typeof(String)));
  103. _dtTemperature.Columns.Add(new DataColumn("实际值", typeof(String)));
  104. _dtTemperature.Columns.Add(new DataColumn("id", typeof(String)));
  105. _dtTemperature.Columns.Add(new DataColumn("采样时间", typeof(String)));
  106. _dtTemperature.Columns.Add(new DataColumn("设定范围", typeof(String)));
  107. this.ulgridTempInfo.DataSource = this._dtTemperature;
  108. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[0].Width = 70;
  109. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[0].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  110. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[1].Width = 58;
  111. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[1].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  112. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[2].Hidden = true;
  113. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[3].Width = 120;
  114. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[3].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  115. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[4].Width = 75;
  116. this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[4].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit;
  117. }
  118. /// <summary>
  119. /// 获取物料信息
  120. /// </summary>
  121. private void GetMaterialData()
  122. {
  123. try
  124. {
  125. string strErr = "";
  126. string strSqlID = "";
  127. strSqlID = "GetMaterialData.Select";//此ID为XML文件ID
  128. //查询物料配置信息
  129. DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassBofJob",
  130. "GetMaterialData", strSqlID, out strErr);
  131. if (strErr == "" && ds != null)
  132. {
  133. _dtMaterial = ds.Tables[0];
  134. }
  135. }
  136. catch { }
  137. }
  138. #endregion
  139. #region " Thread Handle "
  140. /// <summary>
  141. /// 启动线程主程序
  142. /// </summary>
  143. private void StartUpThread()
  144. {
  145. ThreadStart ts = new ThreadStart(GetDataThread);
  146. _getDataThread = new Thread(ts);
  147. _getDataThread.Name = "GetDataThread " + _DEVICE_POSITION;
  148. _getDataThread.Start();
  149. System.Threading.Thread.Sleep(1000);
  150. ThreadStart ts1 = new ThreadStart(SetDataThread);
  151. _setDataThread = new Thread(ts1);
  152. _setDataThread.Name = "SetDataThread " + _DEVICE_POSITION;
  153. _setDataThread.Start();
  154. }
  155. /// <summary>
  156. /// 取数据线程程序
  157. /// </summary>
  158. private void GetDataThread()
  159. {
  160. while (_bIfGetData)
  161. {
  162. if (!this.On_Off_Thread)//this.On_Off_Thread
  163. {
  164. System.Threading.Thread.Sleep(500);
  165. continue;
  166. }
  167. try
  168. {
  169. GetDataFromServer();
  170. Thread.Sleep(2000);
  171. }
  172. catch { }
  173. }
  174. }
  175. /// <summary>
  176. /// 刷新数据线程程序
  177. /// </summary>
  178. private void SetDataThread()
  179. {
  180. while (_bIfSetData)
  181. {
  182. if (!this.On_Off_Thread)//this.On_Off_Thread
  183. {
  184. System.Threading.Thread.Sleep(500);
  185. continue;
  186. }
  187. try
  188. {
  189. this.Invoke(new SetDataThreadDelegate(SetDataOperate));
  190. Thread.Sleep(1000);
  191. }
  192. catch { }
  193. }
  194. }
  195. private void GetDataFromServer()
  196. {
  197. string strMolirn = "";
  198. GetTrackInfoData();
  199. GetHeatProcessList();
  200. JudgeHeatProcess();
  201. GetPlanInfo();
  202. GetOptInfo();
  203. GetDevPosInfo();
  204. //GetCraftEleInfo();
  205. if (_htOptInfo != null && !string.IsNullOrEmpty(_htOptInfo["MOLIRNSOURCE"].ToString()))
  206. strMolirn = _htOptInfo["MOLIRNSOURCE"].ToString();
  207. //strMolirn = GetMolirnSource(_htOptInfo["MOLIRNSOURCE"].ToString());
  208. ucChemelEment1.GetCraftEleInfo(_smeltingID, "C0" + _DEVICE_POS, "S", strMolirn);
  209. if (_htPlanInfo["V_HEAT_ID"] != null)
  210. ucChemelEment1.GetStandardElement(_smeltingID);
  211. GetSampleData();
  212. JudgeSmeltID();
  213. GetAdditiveData();
  214. ucBofPlanTime1.GetPlanAndFactTime(_smeltingID); //作业时间与计划时间
  215. if (_htPlanInfo != null)
  216. _dtCraftStdVal = CStaticMethod.GetJobStandardTemp(this.ob, _htPlanInfo["STEEL"].ToString());
  217. }
  218. private void SetDataOperate()
  219. {
  220. lock (this)
  221. {
  222. if (_heatProcessNo == "")
  223. {
  224. ResetAllData();
  225. return;
  226. }
  227. _bResetDataFlag = false;
  228. FillUserControlData();
  229. // FillCraftElement();
  230. FillTemperatureData();
  231. SetAdditiveData();
  232. HdctMaterialBind();
  233. }
  234. }
  235. #endregion
  236. #region " Delegate "
  237. private void ucBofIronInfo1_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  238. {
  239. string szCZSJ = "";
  240. if (!_htOptInfo.Contains("OPTDATE"))
  241. return;
  242. if (_htOptInfo["OPTDATE"].ToString() != "")
  243. szCZSJ = Convert.ToDateTime(_htOptInfo["OPTDATE"]).AddHours(-4).ToString("yyyy-MM-dd HH:mm:ss");
  244. if (e.Cell.Column.Key == "IRONPOTID") // 铁包号
  245. {
  246. frmIronNo frm = new frmIronNo(szCZSJ);
  247. frm.Location = CStaticMethod.GetChildWindowLocation(frm.Size);
  248. frm.ob = this.ob;
  249. frm.ShowDialog();
  250. if (frm._szTLCLH != "")
  251. {
  252. #region " 铁水信息"
  253. SetIronPotInfo("IRONPOTID", "VARCHAR2", frm._szTBH); //铁包号
  254. SetIronPotInfo("IRONPOTWGT", "NUMBER", frm._szIronpotwgt); //铁水重量
  255. SetIronPotInfo("IRONTEMPERATURE", "NUMBER", frm._szIrontemPerature); //铁水温度
  256. SetIronPotInfo("MOLIRNSOURCE", "VARCHAR2", frm._szTLCLH); //铁水来源(上道工序关键字)
  257. SetIronPotInfo("RSWGT", "NUMBER", frm._szRsWgt); //回炉重量
  258. SetIronPotInfo("RSSTOVENO", "VARCHAR2", frm._szRsstoveNo); //回炉炉号
  259. string strMolirnType = "";
  260. if (frm._szMolirnsource == "1") strMolirnType = "11"; //铁水来源(半钢),铁水类型(半钢)
  261. if (frm._szMolirnsource == "2") strMolirnType = "23"; //+ GetIronV("2", frm._szTLCLH); //脱硫铁水是否是含钒铁水
  262. if (frm._szMolirnsource == "3") strMolirnType = "33"; // +GetIronV("3", frm._szTLCLH); //铁水站铁水是否是含钒铁水s
  263. //铁水类型
  264. if (strMolirnType.Length == 2)
  265. SetIronPotInfo("MOLIRNTYPE", "VARCHAR2", strMolirnType);
  266. #endregion
  267. #region " 给脱硫作业表的炉号赋值 "
  268. if (frm._szMolirnsource == "2")
  269. {
  270. //选择铁水信息更新脱硫表所用炉次信息
  271. ClassManualUpdateInfo.UpdateHmpTableField(frm._szTLCLH, "STL_HMP_OPTINFO", "HEATNO", "VARCHAR2", _smeltingID, this.ob);
  272. }
  273. #endregion
  274. }
  275. }
  276. if (e.Cell.Column.Key == "WSTEELWGT") //废钢确认与信息显示
  277. {
  278. frmScrapSteel frmSs = new frmScrapSteel(_smeltingID, _stationCode, _dealTime, szCZSJ);
  279. frmSs.Location = CStaticMethod.GetChildWindowLocation(frmSs.Size);
  280. frmSs.ob = this.ob;
  281. frmSs.ShowDialog();
  282. }
  283. }
  284. private void ucBofDevInfo1_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  285. {
  286. if (!string.IsNullOrEmpty(e.Cell.Text.ToString()))
  287. {
  288. switch (e.Cell.Column.Key)
  289. {
  290. case "CLW": // 吹炼位
  291. {
  292. ClassManualOperate.ManualOperateEntrance(_heatProcessNo, _devPos, this.ob, _objTrackBuffer);
  293. break;
  294. }
  295. case "CGW": // 出钢位
  296. {
  297. ClassManualOperate.ManualOperateEntrance(_heatProcessNo, _devPos, this.ob, _objTrackBuffer);
  298. break;
  299. }
  300. default:
  301. break;
  302. }
  303. }
  304. }
  305. private void ucBofDevInfo1_KeyDown(object sender, KeyEventArgs e)
  306. {
  307. if (e.KeyCode != Keys.Enter || _heatProcessNo.Length < 11)
  308. return;
  309. if (MessageBox.Show("是否确认要修改当前值?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk) == DialogResult.No)
  310. return;
  311. this.ucBofDevInfo1.ultraGrid1.UpdateData();
  312. string keyStr = ucBofDevInfo1.ultraGrid1.ActiveCell.Column.Key;
  313. string valueStr;
  314. if (keyStr == "SAGE" || keyStr == "EMOLSTLTIME" || keyStr == "TAPPINGWGT" || keyStr == "SUBAGE")
  315. {
  316. try
  317. {
  318. if (ucBofDevInfo1.ultraGrid1.ActiveCell.Value.ToString() != "")
  319. {
  320. valueStr = ucBofDevInfo1.ultraGrid1.ActiveCell.Value.ToString();
  321. //作业数据
  322. ClassManualUpdateInfo.UpdateTableField(_heatProcessNo, "STL_BOF_OPTINFO", keyStr, "VARCHAR2",
  323. valueStr, ob);
  324. }
  325. else
  326. {
  327. MessageBox.Show("不能为空值,重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  328. return;
  329. }
  330. ucBofDevInfo1.ultraGrid1.ActiveCell.Value = valueStr;
  331. }
  332. catch (Exception ex)
  333. {
  334. string Msg = ex.Message;
  335. MessageBox.Show("修改错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  336. }
  337. }
  338. }
  339. private void ucBofPlan1_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  340. {
  341. switch (e.Cell.Column.Key)
  342. {
  343. case "HEATNO": // 熔炼号
  344. SmeltClickCellButton(e.Cell.Value.ToString(), e.Cell);
  345. break;
  346. case "SHIFTCODE": // 班次
  347. break;
  348. default:
  349. break;
  350. }
  351. }
  352. /// <summary>
  353. /// 熔炼号点击事件
  354. /// </summary>
  355. /// <param name="szRLH"></param>
  356. /// <param name="cell"></param>
  357. private void SmeltClickCellButton(string szRLH, Infragistics.Win.UltraWinGrid.UltraGridCell cell)
  358. {
  359. frmJobPlanInfo frmPlan = new frmJobPlanInfo( _DEVICE_POS.ToString() + "#转炉", _DEVICE_POSITION);
  360. frmPlan.Location = CStaticMethod.GetChildWindowLocation(frmPlan.Size);
  361. frmPlan.ob = this.ob;
  362. frmPlan.ShowDialog();
  363. if (frmPlan._currSmeltingID != string.Empty && cell.Text == string.Empty && frmPlan._currSmeltingID.Substring(2, 1) == _DEVICE_POS.ToString())
  364. {
  365. if (!string.IsNullOrEmpty(_heatProcessNo))
  366. {
  367. MessageBox.Show("当前岗位正在生产,不能加载!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
  368. return;
  369. }
  370. else
  371. {
  372. InitGtt_bofadditives(); //手动加载时初始化加料临时表
  373. cell.Value = frmPlan._currSmeltingID;
  374. this._commClass.obComm = this.ob;
  375. this._commClass.setHeatID(_heatProcessNo);
  376. this._commClass.setChargingCommand("MOLSTL", _DEVICE_POSITION + "_DEVICE", frmPlan._currSmeltingID);
  377. }
  378. }
  379. else if (frmPlan._currSmeltingID != string.Empty && frmPlan._currSmeltingID.Substring(3, 1) != _DEVICE_POS.ToString())
  380. MessageBox.Show("选择的炉号不是当前岗位生产,不能加载!", "提示");
  381. else if (frmPlan._currSmeltingID != string.Empty && cell.Text != string.Empty)
  382. MessageBox.Show("本岗位有炉号信息,暂时不能加载!", "提示");
  383. }
  384. /// <summary>
  385. /// 吹炼位点击事件
  386. /// </summary>
  387. /// <param name="initNo"></param>
  388. /// <param name="ar"></param>
  389. /// <param name="strCurrPos"></param>
  390. private void CLWCellButton(int initNo, string strCurrPos)
  391. {
  392. frmManualOperate frm = new frmManualOperate();
  393. //frmCvtOperate frm = new frmCvtOperate();
  394. frm.Location = CStaticMethod.GetChildWindowLocation(frm.Size);
  395. frm.strStationCode =_DEVICE_POSITION.Substring(0,3);
  396. frm.strOldPos = strCurrPos;
  397. frm.ob = this.ob;
  398. //frm.InitNo = initNo;
  399. frm.ShowDialog();
  400. //if (frm.SelectedNo <= 0) return;
  401. //string str = "", strMsg = "";
  402. //string strSme = _smeltingID;
  403. //string strSteel = "TAPPINGENDTIME";
  404. //switch (frm.SelectedNo)
  405. //{
  406. // case 1: // 倒钢
  407. // str = _DEVICE_POSITION + "_BACK";
  408. // strMsg = "熔炼号: " + strSme + " 正常从 " + strCurrPos + " 到出钢位 \n 是否确认?";
  409. // strSteel = "TAPPINGSTARTTIME";
  410. // break;
  411. // case 2: // 下一道工序
  412. // string strOut = "";
  413. // //hengxing
  414. // //CallingMessage par = new CallingMessage();
  415. // //par.ServerName = "lgJobMgt";
  416. // //par.AssemblyName = "Core.LgMes.Server.lgJobMgt";
  417. // //par.ClassName = "Core.LgMes.Server.lgJobMgt.classTrackObjectInfo";
  418. // //par.MethodName = "GetNextPos";
  419. // //par.args = new object[] { _heatProcessNo };
  420. // object obj = null;// ClientCommon._RemotingHelp.ExecuteMethod(par, out strOut);
  421. // if (obj == null)
  422. // MessageBox.Show(strOut);
  423. // else
  424. // {
  425. // str = obj.ToString();
  426. // strMsg = "熔炼号:" + strSme + " 正常从 " + strCurrPos + " 去下道工序(" + GetNextProcName(str) + ") \n 是否确认?";
  427. // }
  428. // break;
  429. // case 3: // 1# 吹氩
  430. // str = "CAS01_FRONT";
  431. // strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 1#吹氩 \n 是否确认?";
  432. // break;
  433. // case 4: // 2# 吹氩
  434. // str = "CAS02_FRONT";
  435. // strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 2#吹氩 \n 是否确认?";
  436. // break;
  437. // case 5: // 3# 吹氩
  438. // str = "CAS03_FRONT";
  439. // strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 3#吹氩 \n 是否确认?";
  440. // break;
  441. // case 6: // 1# 精炼炉
  442. // str = "LFS01_FRONT";
  443. // strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 1#精炼炉 \n 是否确认?";
  444. // break;
  445. // case 7: // 2# 精炼炉
  446. // str = "LFS02_FRONT";
  447. // strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 2#精炼炉 \n 是否确认?";
  448. // break;
  449. // case 8: // 任务强制结束
  450. // str = _DEVICE_POSITION + "_OVER";//"CVT_OVER";
  451. // strMsg = "熔炼号: " + strSme + " 任务强制结束";
  452. // break;
  453. // case 9: // 1# RH炉
  454. // str = "RHS01_FRONT";
  455. // strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 1#RH包炉 \n 是否确认?";
  456. // break;
  457. // default:
  458. // break;
  459. //}
  460. //if (str != "")
  461. //{
  462. // if (MessageBox.Show(strMsg, "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
  463. // {
  464. // if (this._heatProcessNo != "")
  465. // {
  466. // _commClass.setHeatID(this._heatProcessNo);
  467. // _commClass.goNextPosCvtCmmd(_devPos, str);
  468. // RealDataCommand realDataCommand = new RealDataCommand();
  469. // realDataCommand.COMMANDTYPE = "SCHEDULE_SET";
  470. // realDataCommand.OBJECTTYPE = "PROCVALUE";
  471. // realDataCommand.OBJECTPOS = _devPos;
  472. // realDataCommand.OBJECTID = _heatProcessNo;
  473. // realDataCommand.OBJECTLINKTABLE = "JOB_BOF_OPTINFO";
  474. // realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getSmeltingID(_heatProcessNo);
  475. // realDataCommand.OBJECTLINKKEY2 = strSteel;
  476. // realDataCommand.VALUETYPE = "DATE";
  477. // realDataCommand.STR_VALUE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");
  478. // string szOut = "";
  479. // //hengxing
  480. // //CallingMessage par = new CallingMessage();
  481. // //par.ServerName = "lgJobMgt";
  482. // //par.AssemblyName = "Core.LgMes.Server.lgJobMgt";
  483. // //par.ClassName = "Core.LgMes.Server.lgJobMgt.classSendCommand";
  484. // //par.MethodName = "UpdateTableField";
  485. // //par.args = new object[] { realDataCommand };
  486. // //ClientCommon._RemotingHelp.ExecuteMethod(par, out szOut);
  487. // if (szOut != "")
  488. // MessageBox.Show("命令发送不成功!");
  489. // }
  490. // }
  491. //}
  492. }
  493. private void ucBofTimeInfo1_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  494. {
  495. ClassManualUpdateInfo.SetCellDateTime(e.Cell,_heatProcessNo, this.ob); //弹出时间更新窗体更新时间
  496. }
  497. private void ucBofIronInfo1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
  498. {
  499. if (e.KeyCode == Keys.Enter && this._smeltingID != "")
  500. {
  501. string keyStr = ucBofIronInfo1.ultraGrid1.ActiveCell.Column.Key;
  502. string valueStr = ucBofIronInfo1.ultraGrid1.ActiveCell.Text;
  503. string szValType = "";
  504. if (_heatProcessNo.Length >= 11)
  505. {
  506. switch (keyStr)
  507. {
  508. case "IRONPOTWGT":
  509. case "WSTEELWGT":
  510. case "IRONTEMPERATURE":
  511. case "RSWGT":
  512. szValType = "NUMBER";
  513. break;
  514. default:
  515. szValType = "VARCHAR2";
  516. break;
  517. }
  518. //更新铁水数据
  519. ClassManualUpdateInfo.UpdateTableField(_heatProcessNo, "STL_BOF_OPTINFO", keyStr, szValType,
  520. valueStr, ob);
  521. }
  522. }
  523. }
  524. private void ucBofTimeInfo1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
  525. {
  526. if (e.KeyCode != Keys.Enter || _heatProcessNo.Length <(int) OBJLEN.nHeatProcessNo)
  527. return;
  528. this.ucBofTimeInfo1.ultraGrid1.UpdateData();
  529. string keyStr = ucBofTimeInfo1.ultraGrid1.ActiveCell.Column.Key;
  530. DateTime valueStr;
  531. string UptValue="";
  532. if (keyStr == "CHANGESTARTTIME" || keyStr == "CHANGEENDTIME" ||
  533. keyStr == "B1STARTTIME" || keyStr == "B1ENDTIME" ||
  534. keyStr == "B2STARTTIME" || keyStr == "B2ENDTIME" ||
  535. keyStr == "B3STARTTIME" || keyStr == "B3ENDTIME" ||
  536. keyStr == "B4STARTTIME" || keyStr == "B4ENDTIME" ||
  537. keyStr == "B5STARTTIME" || keyStr == "B5ENDTIME" ||
  538. keyStr == "PSSTARTTIME" || keyStr == "PSENDTIME" ||
  539. keyStr == "TAPPINGSTARTTIME" || keyStr == "TAPPINGENDTIME")
  540. {
  541. try
  542. {
  543. if (ucBofTimeInfo1.ultraGrid1.ActiveCell.Value.ToString() != "")
  544. UptValue = ((DateTime)ucBofTimeInfo1.ultraGrid1.ActiveCell.Value).ToString("yyyy-MM-dd HH:mm");
  545. else
  546. UptValue = "";
  547. //更新时间
  548. ClassManualUpdateInfo.UpdateTableField(_heatProcessNo, "STL_BOF_OPTINFO", keyStr, "DATE",
  549. UptValue, ob);
  550. ucBofTimeInfo1.ultraGrid1.ActiveCell.Value = UptValue;
  551. }
  552. catch (Exception ex)
  553. {
  554. string Msg = ex.Message;
  555. MessageBox.Show("日期输入格式错误,请改正!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  556. }
  557. }
  558. }
  559. #endregion
  560. #region " Commonly Function "
  561. /// <summary>
  562. /// 熔炼号判断
  563. /// </summary>
  564. private void JudgeSmeltID()
  565. {
  566. if (!this._oldSmelt.Equals(this._smeltingID))
  567. this._oldSmelt = this._smeltingID;
  568. }
  569. /// <summary>
  570. /// 获取当前设备的后台实时跟踪信息
  571. /// </summary>
  572. private void GetTrackInfoData()
  573. {
  574. string strErr = "";
  575. ArrayList arry = new ArrayList();
  576. arry.Add("ReceiveTrackObjectData.Select");//此ID为XML文件ID
  577. arry.Add(_DEVICE_POSITION);
  578. //获取指定岗位后台实时跟踪信息
  579. DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassTrackObjectInfo",
  580. "ReceiveTrackObjectData", arry,out strErr);
  581. if (strErr == "" && ds != null)
  582. {
  583. DataSetToTrackObject(ref ds, ref _tmpObjTrack);
  584. }
  585. }
  586. /// <summary>
  587. /// 获取加热处理号、炉号规则信息
  588. /// </summary>
  589. private Hashtable GetHeatRegulation()
  590. {
  591. string strErr = "";
  592. string strSqlID = "GetHeatRegulation.Select";
  593. Hashtable hashHaet = new Hashtable();
  594. //获取加热处理号、炉号规则信息
  595. DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
  596. "GetHeatRegulation", strSqlID, out strErr);
  597. if (strErr == "" && ds != null)
  598. {
  599. PropertyInfo[] PropertyInfos_S = null;
  600. PropertyInfo[] PropertyInfos_L = null;
  601. foreach (DataRow dr in ds.Tables[0].Rows)
  602. {
  603. hashHaet.Add(dr["ITEMCODE"].ToString(), //项目编码
  604. dr["STARTPOSITION"].ToString() + "*" + //起始位置
  605. dr["ITEMLENGTH"].ToString()); //长度
  606. HeatRegulationStart heatRs = new HeatRegulationStart();
  607. HeatRegulationLength heatL = new HeatRegulationLength();
  608. if (PropertyInfos_S == null)
  609. {
  610. PropertyInfos_S = heatRs.GetType().GetProperties();
  611. PropertyInfos_L = heatL.GetType().GetProperties();
  612. }
  613. //给各个属性赋值
  614. foreach (PropertyInfo oPropertyInfo in PropertyInfos_S)
  615. {
  616. try
  617. {
  618. if (dr["ITEMCODE"].ToString() ==oPropertyInfo.Name)
  619. {
  620. oPropertyInfo.SetValue(heatRs, dr["startposition"], null);
  621. }
  622. }
  623. catch (Exception ex)
  624. {
  625. MessageBox.Show(ex.Message);
  626. }
  627. }
  628. }
  629. }
  630. return hashHaet;
  631. }
  632. /// <summary>
  633. /// 获得加热处理号
  634. /// </summary>
  635. private void GetHeatProcessList()
  636. {
  637. try
  638. {
  639. this._listHeatProcess = new ArrayList();
  640. string Key = "";
  641. string szDevice = "", szBack = "";
  642. RealDataTrackObjectInfor objTrack;
  643. Key = _DEVICE_POSITION + "_BACK";
  644. objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key];
  645. szBack = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID + objTrack.DEVICESTATES : "";
  646. Key = _DEVICE_POSITION + "_DEVICE";
  647. objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key];
  648. szDevice = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID + objTrack.DEVICESTATES : "";
  649. //_listHeatProcess.Add(szFront); //Front (兑铁位)
  650. _listHeatProcess.Add(szBack); //Back (出钢位)
  651. _listHeatProcess.Add(szDevice); //device (吹炼位)
  652. }
  653. catch (Exception ex)
  654. {
  655. string msg = ex.Message;
  656. _listHeatProcess = null;
  657. }
  658. }
  659. /// <summary>
  660. /// 对获取到的加热处理号进行判断
  661. /// </summary>
  662. private void JudgeHeatProcess()
  663. {
  664. try
  665. {
  666. if (_listHeatProcess.Count < 2)
  667. return;
  668. _heatProcessNo = "";
  669. _devPos = "";
  670. if (_listHeatProcess[1].ToString().Length >(int)OBJLEN.nHeatProcessNo)
  671. {
  672. string strHeat = _listHeatProcess[1].ToString();
  673. _heatProcessNo = strHeat.Substring(0, (int)OBJLEN.nHeatProcessNo);
  674. _devPos = GetDevDeviceCodeOfBof(_DEVICE_POS);
  675. }
  676. if (_listHeatProcess[0].ToString().Length > (int)OBJLEN.nHeatProcessNo)
  677. {
  678. string strHeat = _listHeatProcess[0].ToString();
  679. _heatProcessNo = strHeat.Substring(0, (int)OBJLEN.nHeatProcessNo);
  680. _devPos = GetDevBackCodeOfBof(_DEVICE_POS);
  681. }
  682. _smeltingID = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(_heatProcessNo) : "";
  683. _stationCode = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? _heatProcessNo.Substring(1, (int)OBJLEN.nDevCode) : "";
  684. _dealTime = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? _heatProcessNo.Substring(3, (int)OBJLEN.nDealTime) : "";
  685. }
  686. catch
  687. {
  688. return;
  689. }
  690. }
  691. /// <summary>
  692. /// 获取转炉计划信息
  693. /// </summary>
  694. private void GetPlanInfo()
  695. {
  696. string szOut = "", szWhere = "";
  697. if (_smeltingID == "")
  698. return;
  699. try
  700. {
  701. #region " 炉次计划信息&钢包包号信息 "
  702. string strErr = "";
  703. ArrayList arry = new ArrayList();
  704. arry.Add("ReceivePlanInfo.Select");//此ID为XML文件ID
  705. arry.Add(_smeltingID);
  706. //获取指定炉号的作业计划信息
  707. DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
  708. "ReceivePlanInfo", arry, out strErr);
  709. if (strErr == "" && ds != null)
  710. {
  711. DataTable tb = ds.Tables[0];
  712. if (tb.Rows.Count > 0)
  713. {
  714. for (int i = 0; i < tb.Columns.Count; i++)
  715. {
  716. if (_htPlanInfo.Contains(tb.Columns[i].ColumnName))
  717. _htPlanInfo.Remove(tb.Columns[i].ColumnName);
  718. _htPlanInfo.Add(tb.Columns[i].ColumnName, tb.Rows[0][i].ToString());
  719. }
  720. }
  721. }
  722. //获取当前班次
  723. _shiftCode = CStaticMethod.GetCurrentClass(this.ob);
  724. if (_htPlanInfo.Contains("SHIFTCODE"))
  725. _htPlanInfo.Remove("SHIFTCODE");
  726. _htPlanInfo.Add("SHIFTCODE", _shiftCode);
  727. #endregion
  728. }
  729. catch { }
  730. }
  731. /// <summary>
  732. /// 获取转炉操作数据
  733. /// </summary>
  734. private void GetOptInfo()
  735. {
  736. if (_heatProcessNo == "")
  737. return;
  738. #region " 取转炉操作数据 "
  739. try
  740. {
  741. string strErr = "";
  742. ArrayList arry = new ArrayList();
  743. arry.Add("GetBofOptInfo.Select");//此ID为XML文件ID
  744. arry.Add(_smeltingID);
  745. arry.Add(_stationCode);
  746. arry.Add(_dealTime);
  747. //查询转炉作业信息
  748. DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassBofJob",
  749. "GetBofOptInfo", arry, out strErr);
  750. if (strErr == "" && ds != null)
  751. {
  752. DataTable tb = ds.Tables[0];
  753. if (tb.Rows.Count > 0)
  754. {
  755. for (int i = 0; i < tb.Columns.Count; i++)
  756. {
  757. if (_htOptInfo.Contains(tb.Columns[i].ColumnName))
  758. _htOptInfo.Remove(tb.Columns[i].ColumnName);
  759. _htOptInfo.Add(tb.Columns[i].ColumnName, tb.Rows[0][i].ToString());
  760. }
  761. //氧枪枪位
  762. if (_htOptInfo.Contains("YQQW"))
  763. _htOptInfo.Remove("YQQW");
  764. if (_htOptInfo != null && !string.IsNullOrEmpty(_htOptInfo["OGGNUMID"].ToString()))
  765. _htOptInfo.Add("YQQW", GetSampleData("GUN" + _htOptInfo["OGGNUMID"].ToString() + "HIGH"));
  766. else
  767. _htOptInfo.Add("YQQW", "");
  768. }
  769. }
  770. }
  771. catch { }
  772. #endregion
  773. }
  774. /// <summary>
  775. /// 获取设备位置信息
  776. /// </summary>
  777. private void GetDevPosInfo()
  778. {
  779. try
  780. {
  781. //运行状态,铁水来源图片
  782. string strState = "";
  783. if (_listHeatProcess[0].ToString().Length > (int)OBJLEN.nHeatProcessNo)
  784. {
  785. string strHeat = _listHeatProcess[0].ToString();
  786. strState = strHeat.Substring((int)OBJLEN.nHeatProcessNo);
  787. }
  788. else if (_listHeatProcess[1].ToString().Length > (int)OBJLEN.nHeatProcessNo)
  789. {
  790. string strHeat = _listHeatProcess[1].ToString();
  791. strState = strHeat.Substring((int)OBJLEN.nHeatProcessNo);
  792. }
  793. if (_htOptInfo.Contains("TP"))
  794. _htOptInfo.Remove("TP");
  795. _htOptInfo.Add("TP", SetPic(strState)); // 图片
  796. //铁水来源图片
  797. if (_htOptInfo.Contains("STS"))
  798. _htOptInfo.Remove("STS");
  799. if (_htOptInfo["MOLIRNTYPE"] != null)
  800. _htOptInfo.Add("STS", SetPic_V(_htOptInfo["MOLIRNTYPE"].ToString()));
  801. if (_listHeatProcess.Count >= 2)
  802. {
  803. string szID = _listHeatProcess[1].ToString();
  804. szID = (szID.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(szID.Substring(0, (int)OBJLEN.nHeatProcessNo)) : "";
  805. if (_htOptInfo.Contains("CLW"))
  806. _htOptInfo.Remove("CLW");
  807. _htOptInfo.Add("CLW", szID); // 吹炼位
  808. szID = _listHeatProcess[0].ToString();
  809. szID = (szID.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(szID.Substring(0, (int)OBJLEN.nHeatProcessNo)) : "";
  810. if (_htOptInfo.Contains("CGW"))
  811. _htOptInfo.Remove("CGW");
  812. _htOptInfo.Add("CGW", szID); // 出钢位
  813. }
  814. }
  815. catch { }
  816. }
  817. /// <summary>
  818. /// 获取转炉过程添加剂信息
  819. /// </summary>
  820. private void GetAdditiveData()
  821. {
  822. if (_heatProcessNo == "")
  823. return;
  824. try
  825. {
  826. string strErr = "";
  827. ArrayList arry = new ArrayList();
  828. arry.Add("GetBofAdditiveData.Select");//此ID为XML文件ID
  829. arry.Add(_smeltingID);
  830. arry.Add(_stationCode);
  831. arry.Add(_dealTime);
  832. //查询转炉作业采样信息
  833. DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassBofJob",
  834. "GetBofAdditiveData", arry, out strErr);
  835. if (strErr == "" && ds != null)
  836. {
  837. DataSetToAdditive(ref ds, ref _procAdditive);
  838. }
  839. }
  840. catch { }
  841. }
  842. /// <summary>
  843. /// 获取采样数据(温度)
  844. /// </summary>
  845. private void GetSampleData()
  846. {
  847. string strErr = "";
  848. ArrayList arry = new ArrayList();
  849. arry.Add("GetBofTempInfo.Select");
  850. arry.Add(_smeltingID);
  851. arry.Add(_stationCode);
  852. arry.Add(_dealTime);
  853. DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassBofJob",
  854. "GetBofTempInfo", arry, out strErr);
  855. if (strErr == "" && ds != null)
  856. {
  857. _dtSample = ds.Tables[0];
  858. }
  859. }
  860. /// <summary>
  861. /// 获取采样数据
  862. /// </summary>
  863. private string GetSampleData(string strSamplingName)
  864. {
  865. string strSamplingValue = ""; //采样值
  866. string strErr = "";
  867. ArrayList arry = new ArrayList();
  868. arry.Add("GetBofSampling.Select");//此ID为XML文件ID
  869. arry.Add(_smeltingID);
  870. arry.Add(_stationCode);
  871. arry.Add(_dealTime);
  872. arry.Add(strSamplingName);
  873. arry.Add(_smeltingID);
  874. arry.Add(_stationCode);
  875. arry.Add(_dealTime);
  876. arry.Add(strSamplingName);
  877. //查询转炉作业采样信息
  878. DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassBofJob",
  879. "GetBofSampling", arry, out strErr);
  880. if (strErr == "" && ds != null)
  881. {
  882. DataTable dt = ds.Tables[0];
  883. if (dt.Rows.Count > 0)
  884. strSamplingValue = dt.Rows[0]["samplingvalue"].ToString();
  885. }
  886. return strSamplingValue;
  887. }
  888. /// <summary>
  889. /// 填充化学成分信息界面数据
  890. /// </summary>
  891. private void FillCraftElement()
  892. {
  893. try
  894. {
  895. lock (this)
  896. {
  897. int nRows = 0;
  898. nRows = _objCraftEleBuffer.hList.Count;
  899. if (_dtEleStd != null && _dtEleStd.Rows.Count > 0)
  900. {
  901. nRows++;
  902. }
  903. CStaticMethod.ResetTableRows(ref _dtCraftElement, nRows);
  904. int i = 0;
  905. #region " C标准"
  906. if (_dtEleStd != null && this._dtEleStd.Rows.Count > 0)
  907. {
  908. for (int j = 0; j < this._dtEleStd.Rows.Count; j++)
  909. {
  910. DataRow dr = this._dtEleStd.Rows[j];
  911. CStaticMethod.SetStandardElemData(i, dr, ref _dtCraftElement);
  912. }
  913. i++;
  914. }
  915. #endregion
  916. #region " 实时值"
  917. for (int j = 0; j < _objCraftEleBuffer.hList.Count; j++, i++)
  918. {
  919. JOB_CHEMELEMENT obj = (JOB_CHEMELEMENT)_objCraftEleBuffer.hList[j];
  920. CStaticMethod.SetCraftElemGridData(i, obj, "钢水", ref _dtCraftElement);
  921. }
  922. #endregion
  923. }
  924. }
  925. catch (Exception ex)
  926. {
  927. string Msg = ex.Message;
  928. }
  929. }
  930. /// <summary>
  931. /// 填充用户控件上面的数据
  932. /// </summary>
  933. private void FillUserControlData()
  934. {
  935. ucBofPlan1.SetData(_htPlanInfo);
  936. ucBofIronInfo1.SetData(_htOptInfo);
  937. ucBofTimeInfo1.SetData(_htOptInfo);
  938. ucBofDevInfo1.SetData(_htOptInfo);
  939. ucChemelEment1.FillCraftElement();
  940. ucBofPlanTime1.SetData();
  941. }
  942. /// <summary>
  943. /// 填充温度信息界面数据
  944. /// </summary>
  945. private void FillTemperatureData()
  946. {
  947. try
  948. {
  949. lock (this)
  950. {
  951. int nRows = 2; // 加一条铁水温度,铸机要温
  952. DataRow[] dr = null;
  953. if (_dtSample != null && _dtSample.Rows.Count > 0)
  954. dr = _dtSample.Select("SAMPLINGNAME='TEMPERATURE'", " SAMPLINGDATE ASC");
  955. if (dr != null && dr.Length > 0)
  956. nRows += dr.Length;
  957. CStaticMethod.ResetTableRows(ref _dtTemperature, nRows);
  958. int i = 0;
  959. #region " 铁水温度 "
  960. string szVal = "";
  961. if (_htOptInfo.Contains("IRONTEMPERATURE"))
  962. szVal = _htOptInfo["IRONTEMPERATURE"].ToString();
  963. CStaticMethod.SetGridTemperature(ref _dtTemperature, "铁水温度", "", szVal, i);
  964. i++;
  965. #endregion
  966. #region "铸机要温"
  967. szVal = "";
  968. if (_htOptInfo.Contains("CCMPLANTEMPT"))
  969. szVal = _htOptInfo["CCMPLANTEMPT"].ToString();
  970. CStaticMethod.SetGridTemperature(ref _dtTemperature, "铸机要温", "", szVal, _htOptInfo["CCMPLANTEMPTTIME"].ToString(), i);
  971. i++;
  972. #endregion
  973. #region " 实时值 "
  974. if (dr != null && dr.Length > 0)
  975. {
  976. string str = "";
  977. for (int j = 0; j < dr.Length; j++, i++)
  978. {
  979. if (i == 1)
  980. str = "转炉一倒温度";
  981. else if (i == dr.Length)
  982. str = "转炉终点温度";
  983. else
  984. str = "转炉过程温度";
  985. CStaticMethod.SetGridTemperature(ref _dtTemperature, str, "", dr[j]["SAMPLINGVALUE"].ToString(), dr[j]["SAMPLINGDATE"].ToString(), i);
  986. }
  987. }
  988. #endregion
  989. #region " 与标准进行比对 "
  990. if (dr != null && dr.Length > 0)
  991. {
  992. //// 一倒温度
  993. //CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "L02001", ref ulgridTempInfo, 1);
  994. // 出钢终点温度
  995. CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "LG0201002", ref ulgridTempInfo, dr.Length+1, "C");
  996. }
  997. #endregion
  998. }
  999. }
  1000. catch (Exception ex)
  1001. {
  1002. string Msg = ex.Message;
  1003. }
  1004. }
  1005. /// <summary>
  1006. /// 添加过程添加剂数据到界面
  1007. /// </summary>
  1008. private void SetAdditiveData()
  1009. {
  1010. try
  1011. {
  1012. string szName = "", szLC = "";
  1013. DataRow[] rows;
  1014. bool bClear = true;
  1015. #region " 冶炼过程添加料 "
  1016. for (int j = 0; j < ultraDataSource1.Band.Columns.Count; j++)
  1017. {
  1018. szLC = ultraDataSource1.Band.Columns[j].Key;
  1019. for (int i = 0; i < _additiveBuffer.hList.Count; i++)
  1020. {
  1021. JOB_BOF_ADDITIVES obj = (JOB_BOF_ADDITIVES)_additiveBuffer.hList[i];
  1022. try
  1023. {
  1024. if (obj.MATERIELTYPE == "FL" && obj.JMTYPE == "1" && szLC == obj.HOPPERNUMID) // 物料类型为辅料
  1025. {
  1026. rows = _dtMaterial.Select(" MATERIELCODE = '" + obj.MATERIELCODE + "' and MATERIELTYPE = 'FL'");
  1027. szName = (rows.Length > 0) ? rows[0]["MATERIELFORSHORT"].ToString() : "";
  1028. if (szName != "" && this.ulgridPrcMtr.DisplayLayout.Bands[0].Columns[szLC].Header.Caption == szName)
  1029. {
  1030. if (this.ultraDataSource1.Rows[0][szLC].ToString() != obj.JMWGT.ToString())
  1031. ultraDataSource1.Rows[0][szLC] = obj.JMWGT;
  1032. bClear = false;
  1033. break;
  1034. }
  1035. else
  1036. ultraDataSource1.Rows[0][szLC] = "";
  1037. bClear = false;
  1038. }
  1039. else if (obj.MATERIELTYPE == "HJ" && obj.JMTYPE == "1" && szLC == obj.HOPPERNUMID)
  1040. {
  1041. rows = this._dtMaterial.Select(" MATERIELCODE = '" + obj.MATERIELCODE + "' and MATERIELTYPE = 'HJ'");
  1042. szName = (rows.Length > 0) ? rows[0]["MATERIELFORSHORT"].ToString() : "";
  1043. if (szName != "" && this.ulgridPrcMtr.DisplayLayout.Bands[0].Columns[szLC].Header.Caption == szName)
  1044. {
  1045. if (this.ultraDataSource1.Rows[0][szLC].ToString() != obj.JMWGT.ToString())
  1046. ultraDataSource1.Rows[0][szLC] = obj.JMWGT;
  1047. bClear = false;
  1048. break;
  1049. }
  1050. else
  1051. ultraDataSource1.Rows[0][szLC] = "";
  1052. bClear = false;
  1053. }
  1054. }
  1055. catch { }
  1056. }
  1057. if (bClear)
  1058. ultraDataSource1.Rows[0][szLC] = "";
  1059. else
  1060. bClear = true;
  1061. }
  1062. #endregion
  1063. #region " 出钢过程添加料 "
  1064. for (int j = 0; j < this.ultraDataSource1.Band.Columns.Count; j++)
  1065. {
  1066. szLC = this.ultraDataSource1.Band.Columns[j].Key;
  1067. for (int i = 0; i < _additiveBuffer.hList.Count; i++)
  1068. {
  1069. JOB_BOF_ADDITIVES obj = (JOB_BOF_ADDITIVES)_additiveBuffer.hList[i];
  1070. try
  1071. {
  1072. if (obj.MATERIELTYPE == "FL" && obj.JMTYPE == "1" && szLC == obj.HOPPERNUMID) // 物料类型为辅料
  1073. {
  1074. rows = this._dtMaterial.Select(" MATERIELCODE = '" + obj.MATERIELCODE + "' and MATERIELTYPE = 'FL'");
  1075. szName = (rows.Length > 0) ? rows[0]["MATERIELFORSHORT"].ToString() : "";
  1076. if (szName != "" && this.ulgridTapMtr.DisplayLayout.Bands[0].Columns[szLC].Header.Caption == szName)
  1077. {
  1078. if (this.ultraDataSource2.Rows[0][szLC].ToString() != obj.JMWGT.ToString())
  1079. ultraDataSource2.Rows[0][szLC] = obj.JMWGT;
  1080. bClear = false;
  1081. break;
  1082. }
  1083. else
  1084. ultraDataSource2.Rows[0][szLC] = "";
  1085. bClear = false;
  1086. }
  1087. else if (obj.MATERIELTYPE == "HJ" && obj.JMTYPE == "1" && szLC == obj.HOPPERNUMID) // 物料类型为 合金
  1088. {
  1089. rows = this._dtMaterial.Select(" MATERIELCODE = '" + obj.MATERIELCODE + "' and MATERIELTYPE = 'HJ'");
  1090. szName = (rows.Length > 0) ? rows[0]["MATERIELFORSHORT"].ToString() : "";
  1091. if (szName != "" && this.ulgridTapMtr.DisplayLayout.Bands[0].Columns[szLC].Header.Caption == szName)
  1092. {
  1093. if (this.ultraDataSource2.Rows[0][szLC].ToString() != obj.JMWGT.ToString())
  1094. ultraDataSource2.Rows[0][szLC] = obj.JMWGT;
  1095. bClear = false;
  1096. break;
  1097. }
  1098. else
  1099. ultraDataSource2.Rows[0][szLC] = "";
  1100. bClear = false;
  1101. }
  1102. }
  1103. catch { }
  1104. }
  1105. if (bClear)
  1106. ultraDataSource2.Rows[0][szLC] = "";
  1107. else
  1108. bClear = true;
  1109. }
  1110. #endregion
  1111. this.ulgridPrcMtr.UpdateData();
  1112. this.ulgridTapMtr.UpdateData();
  1113. }
  1114. catch (Exception ex)
  1115. {
  1116. string Msg = ex.Message;
  1117. }
  1118. }
  1119. /// <summary>
  1120. /// 手投料数据绑定
  1121. /// </summary>
  1122. private void HdctMaterialBind()
  1123. {
  1124. try
  1125. {
  1126. if (_bHandThrow)
  1127. {
  1128. if (true == _bClearFlag)
  1129. {
  1130. for (int i = 0; i < this.ultraDataSource3.Band.Columns.Count; i++)
  1131. {
  1132. this.ulgridHndMtr.DisplayLayout.Rows[0].Cells[i].Value = "";
  1133. }
  1134. _bClearFlag = false;
  1135. }
  1136. string szName = "", szLC = "";
  1137. DataRow[] rows;
  1138. bool bClear1 = true;
  1139. for (int j = 0; j < this.ultraDataSource3.Band.Columns.Count; j++)
  1140. {
  1141. szLC = this.ultraDataSource3.Band.Columns[j].Key;
  1142. #region " 冶炼过程手投料 "
  1143. for (int i = 0; i < _additiveBuffer.hList.Count; i++)
  1144. {
  1145. JOB_BOF_ADDITIVES obj = (JOB_BOF_ADDITIVES)_additiveBuffer.hList[i];
  1146. try
  1147. {
  1148. if (obj.JMTYPE == "2")
  1149. {
  1150. rows = _dtMaterial.Select(" MATERIELCODE = '" + obj.MATERIELCODE + "' and MATERIELTYPE = '" + obj.MATERIELTYPE + "'");
  1151. szName = (rows.Length > 0) ? rows[0]["MATERIELFORSHORT"].ToString() : "";
  1152. if (szName != "")
  1153. {
  1154. if (this.ulgridHndMtr.DisplayLayout.Bands[0].Columns[szLC].Header.Caption == szName)
  1155. {
  1156. ultraDataSource3.Rows[0][szLC] = obj.JMWGT;
  1157. bClear1 = false;
  1158. break;
  1159. }
  1160. }
  1161. }
  1162. }
  1163. catch { }
  1164. }
  1165. if (bClear1)
  1166. ultraDataSource3.Rows[0][szLC] = "";
  1167. else
  1168. bClear1 = true;
  1169. #endregion
  1170. }
  1171. ulgridHndMtr.UpdateData();
  1172. }
  1173. }
  1174. catch { }
  1175. }
  1176. private string GetDevDeviceCodeOfBof(int nDevNo)
  1177. {
  1178. string strDevID = "";
  1179. if (nDevNo >= 10) return "";
  1180. switch (nDevNo)
  1181. {
  1182. case (int)DeviceCode.BOF:
  1183. strDevID = "BOF_DEVICE";
  1184. break;
  1185. case (int)DeviceCode.BOF01:
  1186. case (int)DeviceCode.BOF02:
  1187. case (int)DeviceCode.BOF03:
  1188. strDevID = String.Format("BOF{0,2}_DEVICE", nDevNo);
  1189. break;
  1190. }
  1191. strDevID = strDevID.Replace(" ", "0");
  1192. return strDevID;
  1193. }
  1194. private string GetDevBackCodeOfBof(int nDevNo)
  1195. {
  1196. string strDevID = "";
  1197. if (nDevNo >= 10) return "";
  1198. switch (nDevNo)
  1199. {
  1200. case (int)DeviceCode.BOF:
  1201. strDevID = "BOF_BACK";
  1202. break;
  1203. case (int)DeviceCode.BOF01:
  1204. case (int)DeviceCode.BOF02:
  1205. case (int)DeviceCode.BOF03:
  1206. strDevID = String.Format("BOF{0,2}_BACK", nDevNo);
  1207. break;
  1208. }
  1209. strDevID = strDevID.Replace(" ", "0");
  1210. return strDevID;
  1211. }
  1212. #region " From DataSet To Buffer "
  1213. /// <summary>
  1214. /// 遍历跟踪实体类,给实体类赋值
  1215. /// </summary>
  1216. /// <param name="ds"></param>
  1217. /// <param name="obj"></param>
  1218. private void DataSetToTrackObject(ref DataSet ds, ref TrackObjectInfo obj)
  1219. {
  1220. try
  1221. {
  1222. obj.ClearElement();
  1223. PropertyInfo[] PropertyInfos = null;
  1224. foreach (DataRow dr in ds.Tables[0].Rows)
  1225. {
  1226. RealDataTrackObjectInfor detail = new RealDataTrackObjectInfor();
  1227. if (PropertyInfos == null)
  1228. {
  1229. PropertyInfos = detail.GetType().GetProperties();
  1230. }
  1231. //给各个属性赋值
  1232. foreach (PropertyInfo oPropertyInfo in PropertyInfos)
  1233. {
  1234. try
  1235. {
  1236. if (dr[oPropertyInfo.Name] != System.DBNull.Value)
  1237. {
  1238. oPropertyInfo.SetValue(detail, dr[oPropertyInfo.Name.ToString()], null);
  1239. }
  1240. }
  1241. catch (Exception ex)
  1242. {
  1243. MessageBox.Show(ex.Message);
  1244. }
  1245. }
  1246. obj.Add(ref detail);
  1247. }//end foreach
  1248. _objTrackBuffer.DataHarmonize(ref obj);
  1249. }
  1250. catch (Exception ex)
  1251. {
  1252. string Msg = ex.Message;
  1253. }
  1254. finally
  1255. {
  1256. }
  1257. }
  1258. /// <summary>
  1259. /// 遍历成分实体类,给实体类赋值
  1260. /// </summary>
  1261. /// <param name="ds"></param>
  1262. /// <param name="obj"></param>
  1263. private void DataSetToCraftElement(ref DataSet ds, ref CraftElement obj)
  1264. {
  1265. try
  1266. {
  1267. obj.ClearElement();
  1268. PropertyInfo[] PropertyInfos = null;
  1269. foreach (DataRow dr in ds.Tables[0].Rows)
  1270. {
  1271. JOB_CHEMELEMENT detail = new JOB_CHEMELEMENT();
  1272. if (PropertyInfos == null)
  1273. {
  1274. PropertyInfos = detail.GetType().GetProperties();
  1275. }
  1276. //给各个属性赋值
  1277. foreach (PropertyInfo oPropertyInfo in PropertyInfos)
  1278. {
  1279. try
  1280. {
  1281. if (dr[oPropertyInfo.Name] != System.DBNull.Value)
  1282. {
  1283. oPropertyInfo.SetValue(detail, dr[oPropertyInfo.Name.ToString()], null);
  1284. }
  1285. }
  1286. catch (Exception ex)
  1287. {
  1288. MessageBox.Show(ex.Message);
  1289. }
  1290. }
  1291. obj.Add(ref detail);
  1292. }//end foreach
  1293. _objCraftEleBuffer.DataHarmonize(ref obj);
  1294. }
  1295. catch (Exception ex)
  1296. {
  1297. string Msg = ex.Message;
  1298. }
  1299. finally
  1300. {
  1301. }
  1302. }
  1303. /// <summary>
  1304. /// 遍历物料实体类,给实体类赋值
  1305. /// </summary>
  1306. /// <param name="ds"></param>
  1307. /// <param name="obj"></param>
  1308. private void DataSetToAdditive(ref DataSet ds, ref BofAdditive obj)
  1309. {
  1310. try
  1311. {
  1312. obj.ClearElement();
  1313. PropertyInfo[] PropertyInfos = null;
  1314. foreach (DataRow dr in ds.Tables[0].Rows)
  1315. {
  1316. JOB_BOF_ADDITIVES detail = new JOB_BOF_ADDITIVES();
  1317. if (PropertyInfos == null)
  1318. {
  1319. PropertyInfos = detail.GetType().GetProperties();
  1320. }
  1321. //给各个属性赋值
  1322. foreach (PropertyInfo oPropertyInfo in PropertyInfos)
  1323. {
  1324. try
  1325. {
  1326. if (ds.Tables[0].Columns.Contains(oPropertyInfo.Name))
  1327. {
  1328. if (dr[oPropertyInfo.Name] != System.DBNull.Value)
  1329. {
  1330. oPropertyInfo.SetValue(detail, dr[oPropertyInfo.Name.ToString()], null);
  1331. }
  1332. }
  1333. }
  1334. catch (Exception ex)
  1335. {
  1336. MessageBox.Show(ex.Message);
  1337. }
  1338. }
  1339. obj.Add(ref detail);
  1340. }//end foreach
  1341. _additiveBuffer.DataHarmonize(ref obj);
  1342. }
  1343. catch (Exception ex)
  1344. {
  1345. string Msg = ex.Message;
  1346. }
  1347. finally
  1348. {
  1349. }
  1350. }
  1351. #endregion
  1352. /// <summary>
  1353. /// 根据窗体名称获取设备位置
  1354. /// </summary>
  1355. private void GetDevicePosition()
  1356. {
  1357. if (this.Text == "") return;
  1358. string str = this.Text.Substring(0, 1);
  1359. switch (str)
  1360. {
  1361. case "1":
  1362. _DEVICE_POSITION = "BOF01";
  1363. _DEVICE_POS = 1;
  1364. break;
  1365. case "2":
  1366. _DEVICE_POSITION = "BOF02";
  1367. _DEVICE_POS = 2;
  1368. break;
  1369. case "3":
  1370. _DEVICE_POSITION = "BOF03";
  1371. _DEVICE_POS = 3;
  1372. break;
  1373. default:
  1374. break;
  1375. }
  1376. }
  1377. /// <summary>
  1378. /// 设置用户控件委托
  1379. /// </summary>
  1380. private void SetUserControlDelegate()
  1381. {
  1382. ucBofIronInfo1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucBofIronInfo1_ClickCellButton);
  1383. ucBofDevInfo1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucBofDevInfo1_ClickCellButton);
  1384. ucBofDevInfo1.ultraGrid1.KeyDown += new KeyEventHandler(ucBofDevInfo1_KeyDown);
  1385. ucBofTimeInfo1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucBofTimeInfo1_ClickCellButton);
  1386. ucBofPlan1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucBofPlan1_ClickCellButton);
  1387. ucBofIronInfo1.ultraGrid1.KeyDown += new KeyEventHandler(ucBofIronInfo1_KeyDown);
  1388. ucBofTimeInfo1.ultraGrid1.KeyDown += new KeyEventHandler(ucBofTimeInfo1_KeyDown);
  1389. }
  1390. /// <summary>
  1391. /// 清除所有界面Grid中的实时数据
  1392. /// </summary>
  1393. private void ClearGridData()
  1394. {
  1395. try
  1396. {
  1397. for (int j = 0; j < this.ultraDataSource1.Band.Columns.Count; j++)
  1398. {
  1399. this.ultraDataSource1.Rows[0][j] = "";
  1400. }
  1401. }
  1402. catch { }
  1403. try
  1404. {
  1405. for (int j = 0; j < this.ultraDataSource2.Band.Columns.Count; j++)
  1406. {
  1407. this.ultraDataSource2.Rows[0][j] = "";
  1408. }
  1409. }
  1410. catch { }
  1411. try
  1412. {
  1413. for (int j = 0; j < this.ultraDataSource3.Band.Columns.Count; j++)
  1414. {
  1415. this.ultraDataSource3.Rows[0][j] = "";
  1416. }
  1417. }
  1418. catch { }
  1419. try
  1420. {
  1421. _dtCraftElement.Rows.Clear();
  1422. }
  1423. catch { }
  1424. try
  1425. {
  1426. this._dtTemperature.Rows.Clear();
  1427. }
  1428. catch { }
  1429. }
  1430. /// <summary>
  1431. /// 重置界面用户控件的数据
  1432. /// </summary>
  1433. private void ResetAllData()
  1434. {
  1435. if (!_bResetDataFlag) // 如果已经清空,则直接返回
  1436. {
  1437. ucBofDevInfo1.ResetData();
  1438. ucBofIronInfo1.ResetData();
  1439. ucBofPlan1.ResetData();
  1440. ucBofTimeInfo1.ResetData();
  1441. _htPlanInfo.Clear();
  1442. _htOptInfo.Clear();
  1443. ClearGridData();
  1444. ucChemelEment1.ResetData();
  1445. ucBofPlanTime1.ResetData();
  1446. _bResetDataFlag = true;
  1447. }
  1448. }
  1449. /// <summary>
  1450. /// 根据设备状态设置图片显示
  1451. /// </summary>
  1452. /// <param name="strState"></param>
  1453. /// <returns></returns>
  1454. private Image SetPic(string strState)
  1455. {
  1456. //strstate = 'IDLE';
  1457. //strstate = 'HEAT'; -- 炉次开始
  1458. //strstate = 'SCRAPCHG'; --加废钢
  1459. //strstate = 'CHARGING'; --加铁水
  1460. //strstate = 'BLOWING'; --吹氧开始
  1461. //strstate = 'BLOWING'; --吹氧结束
  1462. //strstate = 'TAPPING'; --出钢开始
  1463. //strstate = 'TAPPING'; --出钢结束
  1464. //strstate = 'SPRAYSLAG'; --溅渣开始
  1465. //strstate = 'SPRAYSLAG'; --溅渣结束
  1466. //strstate = 'IDLE'; --炉次结束
  1467. //strstate = 'DESLAGING'; --倒渣开始
  1468. //strstate = 'DESLAGING'; --倒渣结束
  1469. //strstate = 'REPAIR'; --检修状态
  1470. int index = 0;
  1471. switch (strState)
  1472. {
  1473. case "IDLE":
  1474. index = 0;
  1475. break;
  1476. case "SCRAPCHG":
  1477. index = 4;
  1478. break;
  1479. case "CHARGING":
  1480. index = 5;
  1481. break;
  1482. case "BLOWINGBEGIN":
  1483. case "BLOWINGCLOSE":
  1484. // case "BLOWINGCLOSE":
  1485. // case "BLOWINGBEGIN":
  1486. case "BLOWING":
  1487. index = 1;
  1488. break;
  1489. case "TAPPINGBEGIN":
  1490. index = 2;
  1491. break;
  1492. case "TAPPINGCLOSE":
  1493. index = 2;
  1494. break;
  1495. case "TAPPING":
  1496. index = 2;
  1497. break;
  1498. case "DESLAGGING":
  1499. index = 2;
  1500. break;
  1501. case "REPAIR":
  1502. index = 3;
  1503. break;
  1504. case "WORK":
  1505. index = 1;
  1506. break;
  1507. default:
  1508. index = 0;
  1509. break;
  1510. }
  1511. try
  1512. {
  1513. return this.imageList1.Images[index];
  1514. }
  1515. catch { }
  1516. return this.imageList1.Images[0];
  1517. //空闲
  1518. //工作
  1519. //倒钢
  1520. //维修
  1521. //兑废钢
  1522. //兑铁水
  1523. }
  1524. /// <summary>
  1525. /// 根据铁水来源设置图片显示
  1526. /// </summary>
  1527. /// <param name="strState"></param>
  1528. /// <returns></returns>
  1529. private Image SetPic_V(string strState)
  1530. {
  1531. int index = 0;
  1532. switch (strState)
  1533. {
  1534. case "1":
  1535. index = 6;
  1536. break;
  1537. case "2":
  1538. index = 7;
  1539. break;
  1540. case "3":
  1541. index = 8;
  1542. break;
  1543. default:
  1544. index = 8;
  1545. break;
  1546. }
  1547. try
  1548. {
  1549. return this.imageList1.Images[index];
  1550. }
  1551. catch { }
  1552. return this.imageList1.Images[0];
  1553. //空闲
  1554. //工作
  1555. //倒钢
  1556. //维修
  1557. //兑废钢
  1558. //兑铁水
  1559. }
  1560. private void ultraExpandableGroupBox1_ExpandedStateChanged(object sender, EventArgs e)
  1561. {
  1562. try
  1563. {
  1564. if (_heatProcessNo != "")
  1565. {
  1566. _bHandThrow = ultraExpandableGroupBox1.Expanded;
  1567. if (_bHandThrow)
  1568. _bClearFlag = true;
  1569. }
  1570. if (ultraExpandableGroupBox1.Expanded)
  1571. {
  1572. //查询手投料物料配置
  1573. ClassManualUpdateInfo.SetProceThrowFace(ulgridHndMtr, ultraDataSource3, _DEVICE_POSITION, ref _dtMaterial, this.ob);
  1574. }
  1575. }
  1576. catch { }
  1577. }
  1578. /// <summary>
  1579. /// 设置料斗信息
  1580. /// </summary>
  1581. private void SetHopperInfo()
  1582. {
  1583. try
  1584. {
  1585. string strErr = "";
  1586. ArrayList arry = new ArrayList();
  1587. arry.Add("GetHopperName.Select");//此ID为XML文件ID
  1588. arry.Add(_DEVICE_POSITION);
  1589. //查询料斗物料设置信息
  1590. DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
  1591. "GetHopperName", arry, out strErr);
  1592. if (strErr == "" && ds != null)
  1593. {
  1594. DataTable dtHopper = ds.Tables[0];
  1595. string BH = "";
  1596. for (int i = 0; i < dtHopper.Rows.Count; i++)
  1597. {
  1598. BH = dtHopper.Rows[i]["MSNUMID"].ToString();
  1599. if (dtHopper.Rows[i]["MATERIELTYPE"].ToString() == "FL")
  1600. {
  1601. this.ulgridPrcMtr.DisplayLayout.Bands[0].Columns[BH].Header.Caption = dtHopper.Rows[i]["MATERIELFORSHORT"].ToString();
  1602. this.ulgridPrcMtr.DisplayLayout.Bands[0].Columns[BH].Tag = dtHopper.Rows[i]["MATERIELCODE"].ToString();
  1603. }
  1604. else
  1605. {
  1606. this.ulgridTapMtr.DisplayLayout.Bands[0].Columns[BH].Header.Caption = dtHopper.Rows[i]["MATERIELFORSHORT"].ToString();
  1607. this.ulgridTapMtr.DisplayLayout.Bands[0].Columns[BH].Tag = dtHopper.Rows[i]["MATERIELCODE"].ToString();
  1608. }
  1609. }
  1610. }
  1611. }
  1612. catch { }
  1613. }
  1614. /// <summary>
  1615. /// 更新铁水信息
  1616. /// </summary>
  1617. /// <param name="ColumnsName">字段名</param>
  1618. /// <param name="ColumnsType">字段类型</param>
  1619. /// <param name="Values">值</param>
  1620. private void SetIronPotInfo(string ColumnsName, string ColumnsType, string Values)
  1621. {
  1622. RealDataCommand realDataCommand = new RealDataCommand();
  1623. realDataCommand.COMMANDTYPE = "SCHEDULE_SET";
  1624. realDataCommand.OBJECTTYPE = "PROCVALUE";
  1625. realDataCommand.OBJECTPOS = _devPos;
  1626. realDataCommand.OBJECTID = _heatProcessNo;
  1627. realDataCommand.OBJECTLINKTABLE = "JOB_BOF_OPTINFO";
  1628. realDataCommand.OBJECTLINKKEY1 = _smeltingID;
  1629. realDataCommand.OBJECTLINKKEY2 = ColumnsName;
  1630. realDataCommand.VALUETYPE = ColumnsType;
  1631. realDataCommand.STR_VALUE = Values;
  1632. ClassManualUpdateInfo.UpdateTableField(_heatProcessNo, "STL_BOF_OPTINFO", ColumnsName, ColumnsType, Values, this.ob);
  1633. string szOut = "";
  1634. //hengxing
  1635. //CallingMessage par = new CallingMessage();
  1636. //par.ServerName = "lgJobMgt";
  1637. //par.AssemblyName = "Core.LgMes.Server.lgJobMgt";
  1638. //par.ClassName = "Core.LgMes.Server.lgJobMgt.classSendCommand";
  1639. //par.MethodName = "UpdateTableField";
  1640. //par.args = new object[] { realDataCommand };
  1641. //ClientCommon._RemotingHelp.ExecuteMethod(par, out szOut);
  1642. if (szOut != "")
  1643. MessageBox.Show("命令发送不成功!");
  1644. }
  1645. /// <summary>
  1646. /// 获取铁水含钒量
  1647. /// </summary>
  1648. /// <param name="strMolirnSource">铁水来源2是脱硫3是折罐</param>
  1649. /// <param name="strHeatprocessno">加热处理号</param>
  1650. /// <returns></returns>
  1651. public string GetIronV(string strMolirnSource, string strHeatprocessno)
  1652. {
  1653. //表名,字段名,加热处理号
  1654. string strTalbeName = "", strColumnsName = "", strHeatProcessnoName = "";
  1655. string err = "";
  1656. Double dcV = 0; //钒含量
  1657. string strMolirnType = "";
  1658. if (strMolirnSource == "2")
  1659. {
  1660. strTalbeName = "res_hmp_optinfo";
  1661. strColumnsName = "SWBELEMENTCODE";
  1662. strHeatProcessnoName = "heatprocessno";
  1663. }
  1664. else
  1665. {
  1666. strTalbeName = "RES_MIS_TAPHOLE";
  1667. strColumnsName = "IRONELEMENTCODE";
  1668. strHeatProcessnoName = "MISID";
  1669. }
  1670. DataSet ds = null;// (DataSet)ClientCommon._RemotingHelp.ExecuteMethod("lgJobMgt",
  1671. // "Core.LgMes.Server.lgJobMgt.classBofJob",
  1672. // "GetIronV", new object[] { strTalbeName, strColumnsName, strHeatProcessnoName, strHeatprocessno }, out err);
  1673. if (err == "" && ds != null)
  1674. {
  1675. if (ds.Tables[0].Rows.Count > 0)
  1676. {
  1677. if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["V"].ToString()))
  1678. dcV = Convert.ToDouble(ds.Tables[0].Rows[0]["V"]);
  1679. if (dcV > 0.3) //含钒铁水
  1680. strMolirnType = "2";
  1681. else //普通铁水
  1682. strMolirnType = "3";
  1683. }
  1684. else
  1685. strMolirnType = "3";
  1686. }
  1687. return strMolirnType;
  1688. }
  1689. /// <summary>
  1690. /// 初始化转炉辅料跟踪临时表
  1691. /// </summary>
  1692. private void InitGtt_bofadditives()
  1693. {
  1694. try
  1695. {
  1696. string strErr = "";
  1697. ArrayList arry = new ArrayList();
  1698. arry.Add("InitGtt_bofadditives.Update");//此ID为XML文件ID
  1699. arry.Add(_DEVICE_POSITION + "_FL");
  1700. arry.Add(_DEVICE_POSITION + "_HJ");
  1701. CoreClientParam ccp = this.ExecuteClietnToServer("Core.LgMes.Server.LgJobMgt.ClassBofJob",
  1702. "InitGtt_bofadditives", arry, out strErr);
  1703. if (strErr == "" && ccp.ReturnCode==0)
  1704. {
  1705. }
  1706. }
  1707. catch
  1708. {
  1709. }
  1710. }
  1711. #endregion
  1712. #region " Control Event "
  1713. /// <summary>
  1714. /// 功能按钮控制区
  1715. /// </summary>
  1716. /// <param name="sender"></param>
  1717. /// <param name="ToolbarKey"></param>
  1718. public override void ToolBar_Click(object sender, string ToolbarKey)
  1719. {
  1720. switch (ToolbarKey)
  1721. {
  1722. case "Result":
  1723. string szStr = _DEVICE_POS.ToString() + "#炼钢转炉实绩";
  1724. foreach (Form mdiChild in this.MdiParent.MdiChildren)
  1725. {
  1726. if (mdiChild.Text == szStr)
  1727. {
  1728. mdiChild.Activate();
  1729. return;
  1730. }
  1731. }
  1732. frmBofcResults frmSJSJ = new frmBofcResults();
  1733. frmSJSJ.MdiParent = this.MdiParent;
  1734. frmSJSJ.Text = szStr;
  1735. frmSJSJ.Tag = frmSJSJ.Text;
  1736. frmSJSJ.Key = "Core.LgMes.Client.LgResMgt.frmBofcResults";
  1737. frmSJSJ.CustomInfo = _DEVICE_POSITION;
  1738. frmSJSJ.Toolbar = CStaticMethod.GetFromToolInfo(frmSJSJ.Key, frmSJSJ.CustomInfo, this.ob);
  1739. frmSJSJ.ob = this.ob;
  1740. frmSJSJ.Show();
  1741. break;
  1742. case "MtrCsm": // 物料消耗
  1743. string szWLXH = "物料消耗";
  1744. foreach (Form mdiChild in this.MdiParent.MdiChildren)
  1745. {
  1746. if (mdiChild.Text == szWLXH)
  1747. {
  1748. mdiChild.Activate();
  1749. return;
  1750. }
  1751. }
  1752. frmAdditStat frmWLXH = new frmAdditStat();
  1753. frmWLXH.MdiParent = this.MdiParent;
  1754. frmWLXH.Text = szWLXH;
  1755. frmWLXH.Tag = frmWLXH.Text;
  1756. frmWLXH.Key = "Core.LgMes.Client.LgIntegrationQuery.frmAdditStat";
  1757. frmWLXH.Toolbar = CStaticMethod.GetFromToolInfo(frmWLXH.Key, "", this.ob);
  1758. frmWLXH.ob = this.ob;
  1759. frmWLXH.Show();
  1760. break;
  1761. case "ChemicElem": // 化学成分
  1762. string szEle = "化学成分查询";
  1763. foreach (Form mdiChild in this.MdiParent.MdiChildren)
  1764. {
  1765. if (mdiChild.Text == szEle)
  1766. {
  1767. mdiChild.Activate();
  1768. return;
  1769. }
  1770. }
  1771. frmLgElements frmHXCF = new frmLgElements();
  1772. frmHXCF.MdiParent = this.MdiParent;
  1773. frmHXCF.Text = szEle;
  1774. frmHXCF.Tag = frmHXCF.Text;
  1775. frmHXCF._devPos = _DEVICE_POSITION;
  1776. frmHXCF.Key = "Core.LgMes.Client.LgIntegrationQuery.frmLgElements";
  1777. frmHXCF.Toolbar = CStaticMethod.GetFromToolInfo(frmHXCF.Key, "", this.ob);
  1778. frmHXCF.ob = this.ob;
  1779. frmHXCF.Show();
  1780. break;
  1781. case "SftRcd": // 班组记录
  1782. string szRcd = "转炉操作记录";
  1783. foreach (Form mdiChild in this.MdiParent.MdiChildren)
  1784. {
  1785. if (mdiChild.Text == szRcd)
  1786. {
  1787. mdiChild.Activate();
  1788. return;
  1789. }
  1790. }
  1791. reportBOFData frmReport = new reportBOFData();
  1792. frmReport.MdiParent = this.MdiParent;
  1793. frmReport.Text = szRcd;
  1794. frmReport.Tag = frmReport.Text;
  1795. frmReport.Key = "Core.LgMes.Client.Report.reportBOFData";
  1796. frmReport.Toolbar = CStaticMethod.GetFromToolInfo(frmReport.Key, "", this.ob);
  1797. frmReport.ob = this.ob;
  1798. frmReport.Show();
  1799. break;
  1800. case "btnJobStd": // 操作规程
  1801. string szOR = "操作规程管理";
  1802. foreach (Form mdiChild in this.MdiParent.MdiChildren)
  1803. {
  1804. if (mdiChild.Text == szOR)
  1805. {
  1806. mdiChild.Activate();
  1807. return;
  1808. }
  1809. }
  1810. //Core.LgMes.Client.LgIntegrationQuery.frmOperateRule frmOR = new Core.LgMes.Client.LgIntegrationQuery.frmOperateRule();
  1811. //frmOR.MdiParent = this.MdiParent;
  1812. //frmOR.Key = "Core.LgMes.Client.LgIntegrationQuery.frmOperateRule";
  1813. //frmOR.Text = "操作规程管理";
  1814. //frmOR.blValue = false;
  1815. //if (_htPlanInfo != null && _htPlanInfo.Count > 0)
  1816. //{
  1817. // frmOR.strDeviceNo = _DEVICE_POSITION;
  1818. // frmOR.strSteelCode = _htPlanInfo["STEEL"].ToString();
  1819. // frmOR.strCraftCode = _htPlanInfo["STD_CODE"].ToString();
  1820. //}
  1821. //frmOR.Show();
  1822. break;
  1823. case "JobPlan": // 作业计划
  1824. string szPlan = "作业计划查询";
  1825. foreach (Form mdiChild in this.MdiParent.MdiChildren)
  1826. {
  1827. if (mdiChild.Text == szPlan)
  1828. {
  1829. mdiChild.Activate();
  1830. return;
  1831. }
  1832. }
  1833. frmSchedulingQuery frmZYJH = new frmSchedulingQuery();
  1834. frmZYJH.MdiParent = this.MdiParent;
  1835. frmZYJH.Text = szPlan;
  1836. frmZYJH.Tag = frmZYJH.Text;
  1837. frmZYJH.Key = "Core.LgMes.Client.LgIntegrationQuery.frmSchedulingQuery";
  1838. frmZYJH.Toolbar = CStaticMethod.GetFromToolInfo(frmZYJH.Key, "", this.ob);
  1839. frmZYJH.ob = this.ob;
  1840. frmZYJH.Show();
  1841. break;
  1842. case "butIronElements":
  1843. string szIron = "铁水站出铁成分";
  1844. foreach (Form mdiChild in this.MdiParent.MdiChildren)
  1845. {
  1846. if (mdiChild.Text == szIron)
  1847. {
  1848. mdiChild.Activate();
  1849. return;
  1850. }
  1851. }
  1852. //Core.LgMes.Client.LgIntegrationQuery.frmIronElementsInfo frmIron = new Core.LgMes.Client.LgIntegrationQuery.frmIronElementsInfo();
  1853. //frmIron.MdiParent = this.MdiParent;
  1854. //frmIron.Text = szIron;
  1855. //frmIron.Tag = frmIron.Text;
  1856. //frmIron.Key = "Core.LgMes.Client.LgIntegrationQuery.frmIronElementsInfo";
  1857. //frmIron.Show();
  1858. break;
  1859. case "Exit":
  1860. this.Close();
  1861. break;
  1862. default:
  1863. break;
  1864. }
  1865. }
  1866. private void ulgridHndMtr_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  1867. {
  1868. //利用弹出计算器窗体增加手投料消耗
  1869. ClassManualUpdateInfo.HndMtrFromAddMaterial(_heatProcessNo, ulgridHndMtr.ActiveCell, this._dtMaterial, this.ob);
  1870. }
  1871. private void ulgridHndMtr_KeyDown(object sender, KeyEventArgs e)
  1872. {
  1873. if (ulgridHndMtr.ActiveCell != null && e.KeyCode == Keys.Enter && ulgridHndMtr.ActiveRow != null && _smeltingID != ""
  1874. && ulgridHndMtr.ActiveCell.Column.Header.Caption != "")
  1875. {
  1876. string szBM = "";
  1877. if (ulgridHndMtr.ActiveCell.Column.Tag.ToString() != ulgridHndMtr.ActiveCell.Column.Key)
  1878. szBM = ulgridHndMtr.ActiveCell.Column.Tag.ToString();
  1879. string szMC = this.ulgridHndMtr.ActiveCell.Column.Header.Caption, szWLLX = "";
  1880. DataRow[] rows = _dtMaterial.Select(" MATERIELCODE = '" + szBM + "'");
  1881. if (rows.Length > 0)
  1882. {
  1883. szWLLX = rows[0]["MATERIELTYPE"].ToString();
  1884. //录入手投料消耗
  1885. ClassManualUpdateInfo.AddMaterialProc(_heatProcessNo, szBM, szWLLX, ulgridHndMtr.ActiveCell.Text,
  1886. ulgridHndMtr.ActiveCell.Column.Key.ToString(), "2", ob);
  1887. ulgridTempInfo.Focus();
  1888. }
  1889. }
  1890. }
  1891. private void ulgridHndMtr_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  1892. {
  1893. if (ulgridHndMtr.ActiveCell.Text != "")
  1894. CStaticMethod.CheckNumValidate(ulgridHndMtr.ActiveCell.Text);
  1895. }
  1896. private void ulgridHndMtr_DoubleClickHeader(object sender, Infragistics.Win.UltraWinGrid.DoubleClickHeaderEventArgs e)
  1897. {
  1898. //设置手投料
  1899. ClassManualUpdateInfo.SetHatMaterial(ulgridHndMtr.ActiveCell, ref e, _DEVICE_POSITION,this.ob);
  1900. }
  1901. private void ulgridPrcMtr_DoubleClickHeader(object sender, Infragistics.Win.UltraWinGrid.DoubleClickHeaderEventArgs e)
  1902. {
  1903. Core.LgMes.Client.LgJobMgt.frmSetHopper frmLCPZ = new Core.LgMes.Client.LgJobMgt.frmSetHopper(_DEVICE_POSITION);
  1904. frmLCPZ.WindowState = FormWindowState.Normal;
  1905. frmLCPZ.ob = this.ob;
  1906. frmLCPZ.ShowDialog();
  1907. SetHopperInfo();
  1908. }
  1909. /// <summary>
  1910. /// 辅料消耗录入
  1911. /// </summary>
  1912. /// <param name="sender"></param>
  1913. /// <param name="e"></param>
  1914. private void ulgridPrcMtr_KeyDown(object sender, KeyEventArgs e)
  1915. {
  1916. if (ulgridPrcMtr.ActiveCell != null && e.KeyCode == Keys.Enter && ulgridPrcMtr.ActiveRow != null && _smeltingID != ""
  1917. && ulgridPrcMtr.ActiveCell.Column.Header.Caption != "")
  1918. {
  1919. string szBM = "";
  1920. if (ulgridPrcMtr.ActiveCell.Column.Tag.ToString() != ulgridPrcMtr.ActiveCell.Column.Key)
  1921. szBM = ulgridPrcMtr.ActiveCell.Column.Tag.ToString();
  1922. string szMC = this.ulgridPrcMtr.ActiveCell.Column.Header.Caption, szWLLX = "";
  1923. DataRow[] rows = _dtMaterial.Select(" MATERIELCODE = '" + szBM + "'");
  1924. if (rows.Length > 0)
  1925. {
  1926. szWLLX = rows[0]["MATERIELTYPE"].ToString();
  1927. ////添加辅料消耗
  1928. ClassManualUpdateInfo.AddMaterialProc(_heatProcessNo, szBM, szWLLX, ulgridPrcMtr.ActiveCell.Text,
  1929. ulgridPrcMtr.ActiveCell.Column.Key.ToString(),"1", ob);
  1930. ulgridTempInfo.Focus();
  1931. }
  1932. }
  1933. }
  1934. private void ulgridTapMtr_KeyDown(object sender, KeyEventArgs e)
  1935. {
  1936. if (ulgridTapMtr.ActiveCell != null && e.KeyCode == Keys.Enter && ulgridTapMtr.ActiveRow != null && _smeltingID != ""
  1937. && ulgridTapMtr.ActiveCell.Column.Header.Caption != "")
  1938. {
  1939. string szBM = "";
  1940. if (ulgridTapMtr.ActiveCell.Column.Tag.ToString() != ulgridTapMtr.ActiveCell.Column.Key)
  1941. szBM = ulgridTapMtr.ActiveCell.Column.Tag.ToString();
  1942. string szMC = this.ulgridTapMtr.ActiveCell.Column.Header.Caption, szWLLX = "";
  1943. DataRow[] rows = _dtMaterial.Select(" MATERIELCODE = '" + szBM + "'");
  1944. if (rows.Length > 0)
  1945. {
  1946. szWLLX = rows[0]["MATERIELTYPE"].ToString();
  1947. //添加合金消耗
  1948. ClassManualUpdateInfo.AddMaterialProc(_heatProcessNo, szBM, szWLLX, ulgridTapMtr.ActiveCell.Text,
  1949. ulgridTapMtr.ActiveCell.Column.Key.ToString(),"1", ob);
  1950. ulgridTempInfo.Focus();
  1951. }
  1952. }
  1953. }
  1954. /// <summary>
  1955. /// 验证是否为数字
  1956. /// </summary>
  1957. /// <param name="sender"></param>
  1958. /// <param name="e"></param>
  1959. private void ulgridPrcMtr_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  1960. {
  1961. if (ulgridPrcMtr.ActiveCell.Text != "")
  1962. CStaticMethod.CheckNumValidate(ulgridPrcMtr.ActiveCell.Text);
  1963. }
  1964. /// <summary>
  1965. /// 验证是否为数字
  1966. /// </summary>
  1967. /// <param name="sender"></param>
  1968. /// <param name="e"></param>
  1969. private void ulgridTapMtr_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
  1970. {
  1971. if (ulgridTapMtr.ActiveCell.Text != "")
  1972. CStaticMethod.CheckNumValidate(ulgridTapMtr.ActiveCell.Text);
  1973. }
  1974. #endregion
  1975. private void ultraGroupBox1_DoubleClick(object sender, EventArgs e)
  1976. {
  1977. if (!string.IsNullOrEmpty(ucBofPlan1.ultraGrid1.DisplayLayout.Rows[0].Cells["HEATNO"].Value.ToString()))
  1978. {
  1979. frmProcessAbnormity frmPA = new frmProcessAbnormity();
  1980. frmPA.strSmeltingID = ucBofPlan1.ultraGrid1.DisplayLayout.Rows[0].Cells["HEATNO"].Value.ToString();
  1981. frmPA.strCraftposID = _DEVICE_POSITION;
  1982. frmPA.ShowDialog();
  1983. }
  1984. }
  1985. private void frmBofcJob_Resize(object sender, EventArgs e)
  1986. {
  1987. //SetLocation();
  1988. }
  1989. /// <summary>
  1990. /// 获取化学成分检验号
  1991. /// </summary>
  1992. /// <param name="strMolirnSource"></param>
  1993. /// <returns></returns>
  1994. private string GetMolirnSource(string strMolirnSource)
  1995. {
  1996. string szOut = "";
  1997. string strCheckNo = "";
  1998. strCheckNo = "";// (string)Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgJobMgt",
  1999. // "Core.LgMes.Server.lgJobMgt.classTrackObjectInfo", "GetMolirnSource", new object[] { strMolirnSource }, out szOut);
  2000. if (szOut == "")
  2001. return strCheckNo;
  2002. return strCheckNo;
  2003. }
  2004. private void ulgridPrcMtr_DoubleClickCell(object sender, Infragistics.Win.UltraWinGrid.DoubleClickCellEventArgs e)
  2005. {
  2006. frmMtrBatchChem frmmbchem = new frmMtrBatchChem(ulgridPrcMtr.DisplayLayout.Bands[0].Columns[e.Cell.Column.Key.ToString()].Tag.ToString(),
  2007. e.Cell.Column.Key.ToString(), "BOF0" + _DEVICE_POS);
  2008. frmmbchem.Location = CStaticMethod.GetChildWindowLocation(frmmbchem.Size);
  2009. frmmbchem.ShowDialog();
  2010. }
  2011. private void ulgridTapMtr_DoubleClickCell(object sender, Infragistics.Win.UltraWinGrid.DoubleClickCellEventArgs e)
  2012. {
  2013. frmMtrBatchChem frmmbchem = new frmMtrBatchChem(ulgridTapMtr.DisplayLayout.Bands[0].Columns[e.Cell.Column.Key.ToString()].Tag.ToString(),
  2014. e.Cell.Column.Key.ToString(), "BOF0" +_DEVICE_POS);
  2015. frmmbchem.Location = CStaticMethod.GetChildWindowLocation(frmmbchem.Size);
  2016. frmmbchem.ShowDialog();
  2017. }
  2018. }
  2019. }