frmVdJob.cs 76 KB

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