frmVdJob.cs 76 KB

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