frmCasJob.cs 93 KB

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