frmLfsJob.cs 75 KB

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