frmLfsJob.cs 75 KB

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