using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; //using Core.LgMes.Client.LgResMgt; using System.Threading; using Core.LgMes.Client.lgClassModel; using System.Collections; using System.Reflection; using CoreFS.CA06; using Core.Mes.Client.Common; using Core.LgMes.Client.LgResMgt; using Core.LgMes.Client.LgIntegrationQuery; using Core.LgMes.Client.Report; namespace Core.LgMes.Client.LgJobMgt { public partial class frmBofcJob : CommonClientToServer // CoreFS.CA06.FrmBase { #region " Class Member Variable" private string _heatProcessNo = ""; // 加热处理号 private string _smeltingID = ""; // 熔炼号 private string _oldSmelt = ""; // 保存上一个炉号 private string _stationCode = ""; // 岗位编号 private string _dealTime = ""; // 处理次数 private string _shiftCode = ""; // 班次编码 private DataTable _dtCraftElement = null; // 工艺化学成分信息表 //private DataTable _dtStdElement = null; // 标准成分表 private DataTable _dtTemperature = null; // 温度 private DataTable _dtSample = null; // 采样数据表 private DataTable _dtMaterial = null; // 存储辅料信息 private DataTable _dtEleStd = null; // 标准元素值表 private DataTable _dtCraftStdVal = null; // 炼钢工艺标准值 private CommandClass _commClass; // 消息发送类 private string _DEVICE_POSITION = "BOF01"; // 设备位置 private int _DEVICE_POS = 1; // 设备号 private Thread _getDataThread; // 取数据线程 private Thread _setDataThread; // 刷新数据线程 private bool _bIfGetData = true; // 控制取数据线程循环的标志 private bool _bIfSetData = true; // 控制刷新数据线程循环的标志 private bool _bResetDataFlag = false; // 清空所有数据标志,True表示已经清空 private ArrayList _listHeatProcess = null; // 存储加热处理号的数组列表 private string _devPos = ""; // 当前设备位置的全称 private bool _bHandThrow = false; // 手投料标志 private bool _bClearFlag = false; private TrackObjectInfo _tmpObjTrack; // 实时跟踪信息类 用于存放当前实时跟踪信息 起一个中间过渡的缓冲 private TrackObjectInfo _objTrackBuffer; // 用于实时刷新实时跟踪信息的缓冲区 private CraftElement _tmpObjCraftEle; // 存放工艺化学成分信息的类 private CraftElement _objCraftEleBuffer; // 用于实时刷新工艺化学成分信息的缓冲区 private BofAdditive _procAdditive; // 存放过程添加剂信息 private BofAdditive _additiveBuffer; // 用于刷新过程添加剂信息的缓冲区 private Hashtable _htPlanInfo; // 用于作业计划信息的表字段数据 private Hashtable _htOptInfo; // 用于存储操作信息的表字段数据 private delegate void SetDataThreadDelegate(); // 刷新数据线程的一个委托方法,目的是达到界面所有数据刷新同步 private string strTemperature = "'L02004'"; // 显示的温度名称变量(例:'03001','03002') #endregion #region " Construct Function " public frmBofcJob() { InitializeComponent(); //CheckForIllegalCrossThreadCalls = false; // 初始化成员变量 _commClass = new CommandClass(); _tmpObjTrack = new TrackObjectInfo(); _objTrackBuffer = new TrackObjectInfo(); _tmpObjCraftEle = new CraftElement(); _objCraftEleBuffer = new CraftElement(); _procAdditive = new BofAdditive(); _additiveBuffer = new BofAdditive(); _htOptInfo = new Hashtable(); _htPlanInfo = new Hashtable(); ucBofDevInfo1.m_imageDefault = imageList1.Images[0]; } #endregion #region " Init Form Element" private void frmBofcJob_Load(object sender, EventArgs e) { ucBofPlanTime1.ob = this.ob; ucChemelEment1.ob = this.ob; InitDataSourse(); GenerateTableFrame(); GetDevicePosition(); SetUserControlDelegate(); GetMaterialData(); StartUpThread(); SetHopperInfo(); } private void InitDataSourse() { this.ultraDataSource1.Rows.Add(new object[] { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }); this.ultraDataSource2.Rows.Add(new object[] { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }); this.ultraDataSource3.Rows.Add(new object[] { "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "", "" }); } /// /// 生成温度的表架构 /// private void GenerateTableFrame() { _dtTemperature = new DataTable("temperature"); _dtTemperature.Columns.Add(new DataColumn("项目名", typeof(String))); _dtTemperature.Columns.Add(new DataColumn("实际值", typeof(String))); _dtTemperature.Columns.Add(new DataColumn("id", typeof(String))); _dtTemperature.Columns.Add(new DataColumn("采样时间", typeof(String))); _dtTemperature.Columns.Add(new DataColumn("设定范围", typeof(String))); this.ulgridTempInfo.DataSource = this._dtTemperature; this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[0].Width = 70; this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[0].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit; this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[1].Width = 58; this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[1].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit; this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[2].Hidden = true; this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[3].Width = 120; this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[3].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit; this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[4].Width = 75; this.ulgridTempInfo.DisplayLayout.Bands[0].Columns[4].CellActivation = Infragistics.Win.UltraWinGrid.Activation.NoEdit; } /// /// 获取物料信息 /// private void GetMaterialData() { try { string strErr = ""; string strSqlID = ""; strSqlID = "GetMaterialData.Select";//此ID为XML文件ID //查询物料配置信息 DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassBofJob", "GetMaterialData", strSqlID, out strErr); if (strErr == "" && ds != null) { _dtMaterial = ds.Tables[0]; } } catch { } } #endregion #region " Thread Handle " /// /// 启动线程主程序 /// private void StartUpThread() { ThreadStart ts = new ThreadStart(GetDataThread); _getDataThread = new Thread(ts); _getDataThread.Name = "GetDataThread " + _DEVICE_POSITION; _getDataThread.Start(); System.Threading.Thread.Sleep(1000); ThreadStart ts1 = new ThreadStart(SetDataThread); _setDataThread = new Thread(ts1); _setDataThread.Name = "SetDataThread " + _DEVICE_POSITION; _setDataThread.Start(); } /// /// 取数据线程程序 /// private void GetDataThread() { while (_bIfGetData) { if (!this.On_Off_Thread)//this.On_Off_Thread { System.Threading.Thread.Sleep(500); continue; } try { GetDataFromServer(); Thread.Sleep(2000); } catch { } } } /// /// 刷新数据线程程序 /// private void SetDataThread() { while (_bIfSetData) { if (!this.On_Off_Thread)//this.On_Off_Thread { System.Threading.Thread.Sleep(500); continue; } try { this.Invoke(new SetDataThreadDelegate(SetDataOperate)); Thread.Sleep(1000); } catch { } } } private void GetDataFromServer() { string strMolirn = ""; GetTrackInfoData(); GetHeatProcessList(); JudgeHeatProcess(); GetPlanInfo(); GetOptInfo(); GetDevPosInfo(); //GetCraftEleInfo(); if (_htOptInfo != null && !string.IsNullOrEmpty(_htOptInfo["MOLIRNSOURCE"].ToString())) strMolirn = _htOptInfo["MOLIRNSOURCE"].ToString(); //strMolirn = GetMolirnSource(_htOptInfo["MOLIRNSOURCE"].ToString()); ucChemelEment1.GetCraftEleInfo(_smeltingID, "C0" + _DEVICE_POS, "S", strMolirn); if (_htPlanInfo["V_HEAT_ID"] != null) ucChemelEment1.GetStandardElement(_smeltingID); GetSampleData(); JudgeSmeltID(); GetAdditiveData(); ucBofPlanTime1.GetPlanAndFactTime(_smeltingID); //作业时间与计划时间 if (_htPlanInfo != null) _dtCraftStdVal = CStaticMethod.GetJobStandardTemp(this.ob, _htPlanInfo["STEEL"].ToString()); } private void SetDataOperate() { lock (this) { if (_heatProcessNo == "") { ResetAllData(); return; } _bResetDataFlag = false; FillUserControlData(); // FillCraftElement(); FillTemperatureData(); SetAdditiveData(); HdctMaterialBind(); } } #endregion #region " Delegate " private void ucBofIronInfo1_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { string szCZSJ = ""; if (!_htOptInfo.Contains("OPTDATE")) return; if (_htOptInfo["OPTDATE"].ToString() != "") szCZSJ = Convert.ToDateTime(_htOptInfo["OPTDATE"]).AddHours(-4).ToString("yyyy-MM-dd HH:mm:ss"); if (e.Cell.Column.Key == "IRONPOTID") // 铁包号 { frmIronNo frm = new frmIronNo(szCZSJ); frm.Location = CStaticMethod.GetChildWindowLocation(frm.Size); frm.ob = this.ob; frm.ShowDialog(); if (frm._szTLCLH != "") { #region " 铁水信息" SetIronPotInfo("IRONPOTID", "VARCHAR2", frm._szTBH); //铁包号 SetIronPotInfo("IRONPOTWGT", "NUMBER", frm._szIronpotwgt); //铁水重量 SetIronPotInfo("IRONTEMPERATURE", "NUMBER", frm._szIrontemPerature); //铁水温度 SetIronPotInfo("MOLIRNSOURCE", "VARCHAR2", frm._szTLCLH); //铁水来源(上道工序关键字) SetIronPotInfo("RSWGT", "NUMBER", frm._szRsWgt); //回炉重量 SetIronPotInfo("RSSTOVENO", "VARCHAR2", frm._szRsstoveNo); //回炉炉号 string strMolirnType = ""; if (frm._szMolirnsource == "1") strMolirnType = "11"; //铁水来源(半钢),铁水类型(半钢) if (frm._szMolirnsource == "2") strMolirnType = "23"; //+ GetIronV("2", frm._szTLCLH); //脱硫铁水是否是含钒铁水 if (frm._szMolirnsource == "3") strMolirnType = "33"; // +GetIronV("3", frm._szTLCLH); //铁水站铁水是否是含钒铁水s //铁水类型 if (strMolirnType.Length == 2) SetIronPotInfo("MOLIRNTYPE", "VARCHAR2", strMolirnType); #endregion #region " 给脱硫作业表的炉号赋值 " if (frm._szMolirnsource == "2") { //选择铁水信息更新脱硫表所用炉次信息 ClassManualUpdateInfo.UpdateHmpTableField(frm._szTLCLH, "STL_HMP_OPTINFO", "HEATNO", "VARCHAR2", _smeltingID, this.ob); } #endregion } } if (e.Cell.Column.Key == "WSTEELWGT") //废钢确认与信息显示 { frmScrapSteel frmSs = new frmScrapSteel(_smeltingID, _stationCode, _dealTime, szCZSJ); frmSs.Location = CStaticMethod.GetChildWindowLocation(frmSs.Size); frmSs.ob = this.ob; frmSs.ShowDialog(); } } private void ucBofDevInfo1_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { if (!string.IsNullOrEmpty(e.Cell.Text.ToString())) { switch (e.Cell.Column.Key) { case "CLW": // 吹炼位 { ClassManualOperate.ManualOperateEntrance(_heatProcessNo, _devPos, this.ob, _objTrackBuffer); break; } case "CGW": // 出钢位 { ClassManualOperate.ManualOperateEntrance(_heatProcessNo, _devPos, this.ob, _objTrackBuffer); break; } default: break; } } } private void ucBofDevInfo1_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode != Keys.Enter || _heatProcessNo.Length < 11) return; if (MessageBox.Show("是否确认要修改当前值?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Asterisk) == DialogResult.No) return; this.ucBofDevInfo1.ultraGrid1.UpdateData(); string keyStr = ucBofDevInfo1.ultraGrid1.ActiveCell.Column.Key; string valueStr; if (keyStr == "SAGE" || keyStr == "EMOLSTLTIME" || keyStr == "TAPPINGWGT" || keyStr == "SUBAGE") { try { if (ucBofDevInfo1.ultraGrid1.ActiveCell.Value.ToString() != "") { valueStr = ucBofDevInfo1.ultraGrid1.ActiveCell.Value.ToString(); //作业数据 ClassManualUpdateInfo.UpdateTableField(_heatProcessNo, "STL_BOF_OPTINFO", keyStr, "VARCHAR2", valueStr, ob); } else { MessageBox.Show("不能为空值,重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } ucBofDevInfo1.ultraGrid1.ActiveCell.Value = valueStr; } catch (Exception ex) { string Msg = ex.Message; MessageBox.Show("修改错误!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } private void ucBofPlan1_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { switch (e.Cell.Column.Key) { case "HEATNO": // 熔炼号 SmeltClickCellButton(e.Cell.Value.ToString(), e.Cell); break; case "SHIFTCODE": // 班次 break; default: break; } } /// /// 熔炼号点击事件 /// /// /// private void SmeltClickCellButton(string szRLH, Infragistics.Win.UltraWinGrid.UltraGridCell cell) { frmJobPlanInfo frmPlan = new frmJobPlanInfo( _DEVICE_POS.ToString() + "#转炉", _DEVICE_POSITION); frmPlan.Location = CStaticMethod.GetChildWindowLocation(frmPlan.Size); frmPlan.ob = this.ob; frmPlan.ShowDialog(); if (frmPlan._currSmeltingID != string.Empty && cell.Text == string.Empty && frmPlan._currSmeltingID.Substring(2, 1) == _DEVICE_POS.ToString()) { if (!string.IsNullOrEmpty(_heatProcessNo)) { MessageBox.Show("当前岗位正在生产,不能加载!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk); return; } else { InitGtt_bofadditives(); //手动加载时初始化加料临时表 cell.Value = frmPlan._currSmeltingID; this._commClass.obComm = this.ob; this._commClass.setHeatID(_heatProcessNo); this._commClass.setChargingCommand("MOLSTL", _DEVICE_POSITION + "_DEVICE", frmPlan._currSmeltingID); } } else if (frmPlan._currSmeltingID != string.Empty && frmPlan._currSmeltingID.Substring(3, 1) != _DEVICE_POS.ToString()) MessageBox.Show("选择的炉号不是当前岗位生产,不能加载!", "提示"); else if (frmPlan._currSmeltingID != string.Empty && cell.Text != string.Empty) MessageBox.Show("本岗位有炉号信息,暂时不能加载!", "提示"); } /// /// 吹炼位点击事件 /// /// /// /// private void CLWCellButton(int initNo, string strCurrPos) { frmManualOperate frm = new frmManualOperate(); //frmCvtOperate frm = new frmCvtOperate(); frm.Location = CStaticMethod.GetChildWindowLocation(frm.Size); frm.strStationCode =_DEVICE_POSITION.Substring(0,3); frm.strOldPos = strCurrPos; frm.ob = this.ob; //frm.InitNo = initNo; frm.ShowDialog(); //if (frm.SelectedNo <= 0) return; //string str = "", strMsg = ""; //string strSme = _smeltingID; //string strSteel = "TAPPINGENDTIME"; //switch (frm.SelectedNo) //{ // case 1: // 倒钢 // str = _DEVICE_POSITION + "_BACK"; // strMsg = "熔炼号: " + strSme + " 正常从 " + strCurrPos + " 到出钢位 \n 是否确认?"; // strSteel = "TAPPINGSTARTTIME"; // break; // case 2: // 下一道工序 // string strOut = ""; // //hengxing // //CallingMessage par = new CallingMessage(); // //par.ServerName = "lgJobMgt"; // //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; // //par.ClassName = "Core.LgMes.Server.lgJobMgt.classTrackObjectInfo"; // //par.MethodName = "GetNextPos"; // //par.args = new object[] { _heatProcessNo }; // object obj = null;// ClientCommon._RemotingHelp.ExecuteMethod(par, out strOut); // if (obj == null) // MessageBox.Show(strOut); // else // { // str = obj.ToString(); // strMsg = "熔炼号:" + strSme + " 正常从 " + strCurrPos + " 去下道工序(" + GetNextProcName(str) + ") \n 是否确认?"; // } // break; // case 3: // 1# 吹氩 // str = "CAS01_FRONT"; // strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 1#吹氩 \n 是否确认?"; // break; // case 4: // 2# 吹氩 // str = "CAS02_FRONT"; // strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 2#吹氩 \n 是否确认?"; // break; // case 5: // 3# 吹氩 // str = "CAS03_FRONT"; // strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 3#吹氩 \n 是否确认?"; // break; // case 6: // 1# 精炼炉 // str = "LFS01_FRONT"; // strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 1#精炼炉 \n 是否确认?"; // break; // case 7: // 2# 精炼炉 // str = "LFS02_FRONT"; // strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 2#精炼炉 \n 是否确认?"; // break; // case 8: // 任务强制结束 // str = _DEVICE_POSITION + "_OVER";//"CVT_OVER"; // strMsg = "熔炼号: " + strSme + " 任务强制结束"; // break; // case 9: // 1# RH炉 // str = "RHS01_FRONT"; // strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 1#RH包炉 \n 是否确认?"; // break; // default: // break; //} //if (str != "") //{ // if (MessageBox.Show(strMsg, "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes) // { // if (this._heatProcessNo != "") // { // _commClass.setHeatID(this._heatProcessNo); // _commClass.goNextPosCvtCmmd(_devPos, str); // RealDataCommand realDataCommand = new RealDataCommand(); // realDataCommand.COMMANDTYPE = "SCHEDULE_SET"; // realDataCommand.OBJECTTYPE = "PROCVALUE"; // realDataCommand.OBJECTPOS = _devPos; // realDataCommand.OBJECTID = _heatProcessNo; // realDataCommand.OBJECTLINKTABLE = "JOB_BOF_OPTINFO"; // realDataCommand.OBJECTLINKKEY1 = CStaticMethod.getSmeltingID(_heatProcessNo); // realDataCommand.OBJECTLINKKEY2 = strSteel; // realDataCommand.VALUETYPE = "DATE"; // realDataCommand.STR_VALUE = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); // string szOut = ""; // //hengxing // //CallingMessage par = new CallingMessage(); // //par.ServerName = "lgJobMgt"; // //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; // //par.ClassName = "Core.LgMes.Server.lgJobMgt.classSendCommand"; // //par.MethodName = "UpdateTableField"; // //par.args = new object[] { realDataCommand }; // //ClientCommon._RemotingHelp.ExecuteMethod(par, out szOut); // if (szOut != "") // MessageBox.Show("命令发送不成功!"); // } // } //} } private void ucBofTimeInfo1_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { ClassManualUpdateInfo.SetCellDateTime(e.Cell,_heatProcessNo, this.ob); //弹出时间更新窗体更新时间 } private void ucBofIronInfo1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { if (e.KeyCode == Keys.Enter && this._smeltingID != "") { string keyStr = ucBofIronInfo1.ultraGrid1.ActiveCell.Column.Key; string valueStr = ucBofIronInfo1.ultraGrid1.ActiveCell.Text; string szValType = ""; if (_heatProcessNo.Length >= 11) { switch (keyStr) { case "IRONPOTWGT": case "WSTEELWGT": case "IRONTEMPERATURE": case "RSWGT": szValType = "NUMBER"; break; default: szValType = "VARCHAR2"; break; } //更新铁水数据 ClassManualUpdateInfo.UpdateTableField(_heatProcessNo, "STL_BOF_OPTINFO", keyStr, szValType, valueStr, ob); } } } private void ucBofTimeInfo1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { if (e.KeyCode != Keys.Enter || _heatProcessNo.Length <(int) OBJLEN.nHeatProcessNo) return; this.ucBofTimeInfo1.ultraGrid1.UpdateData(); string keyStr = ucBofTimeInfo1.ultraGrid1.ActiveCell.Column.Key; DateTime valueStr; string UptValue=""; if (keyStr == "CHANGESTARTTIME" || keyStr == "CHANGEENDTIME" || keyStr == "B1STARTTIME" || keyStr == "B1ENDTIME" || keyStr == "B2STARTTIME" || keyStr == "B2ENDTIME" || keyStr == "B3STARTTIME" || keyStr == "B3ENDTIME" || keyStr == "B4STARTTIME" || keyStr == "B4ENDTIME" || keyStr == "B5STARTTIME" || keyStr == "B5ENDTIME" || keyStr == "PSSTARTTIME" || keyStr == "PSENDTIME" || keyStr == "TAPPINGSTARTTIME" || keyStr == "TAPPINGENDTIME") { try { if (ucBofTimeInfo1.ultraGrid1.ActiveCell.Value.ToString() != "") UptValue = ((DateTime)ucBofTimeInfo1.ultraGrid1.ActiveCell.Value).ToString("yyyy-MM-dd HH:mm"); else UptValue = ""; //更新时间 ClassManualUpdateInfo.UpdateTableField(_heatProcessNo, "STL_BOF_OPTINFO", keyStr, "DATE", UptValue, ob); ucBofTimeInfo1.ultraGrid1.ActiveCell.Value = UptValue; } catch (Exception ex) { string Msg = ex.Message; MessageBox.Show("日期输入格式错误,请改正!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } #endregion #region " Commonly Function " /// /// 熔炼号判断 /// private void JudgeSmeltID() { if (!this._oldSmelt.Equals(this._smeltingID)) this._oldSmelt = this._smeltingID; } /// /// 获取当前设备的后台实时跟踪信息 /// private void GetTrackInfoData() { string strErr = ""; ArrayList arry = new ArrayList(); arry.Add("ReceiveTrackObjectData.Select");//此ID为XML文件ID arry.Add(_DEVICE_POSITION); //获取指定岗位后台实时跟踪信息 DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassTrackObjectInfo", "ReceiveTrackObjectData", arry,out strErr); if (strErr == "" && ds != null) { DataSetToTrackObject(ref ds, ref _tmpObjTrack); } } /// /// 获取加热处理号、炉号规则信息 /// private Hashtable GetHeatRegulation() { string strErr = ""; string strSqlID = "GetHeatRegulation.Select"; Hashtable hashHaet = new Hashtable(); //获取加热处理号、炉号规则信息 DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule", "GetHeatRegulation", strSqlID, out strErr); if (strErr == "" && ds != null) { PropertyInfo[] PropertyInfos_S = null; PropertyInfo[] PropertyInfos_L = null; foreach (DataRow dr in ds.Tables[0].Rows) { hashHaet.Add(dr["ITEMCODE"].ToString(), //项目编码 dr["STARTPOSITION"].ToString() + "*" + //起始位置 dr["ITEMLENGTH"].ToString()); //长度 HeatRegulationStart heatRs = new HeatRegulationStart(); HeatRegulationLength heatL = new HeatRegulationLength(); if (PropertyInfos_S == null) { PropertyInfos_S = heatRs.GetType().GetProperties(); PropertyInfos_L = heatL.GetType().GetProperties(); } //给各个属性赋值 foreach (PropertyInfo oPropertyInfo in PropertyInfos_S) { try { if (dr["ITEMCODE"].ToString() ==oPropertyInfo.Name) { oPropertyInfo.SetValue(heatRs, dr["startposition"], null); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } } } return hashHaet; } /// /// 获得加热处理号 /// private void GetHeatProcessList() { try { this._listHeatProcess = new ArrayList(); string Key = ""; string szDevice = "", szBack = ""; RealDataTrackObjectInfor objTrack; Key = _DEVICE_POSITION + "_BACK"; objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key]; szBack = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID + objTrack.DEVICESTATES : ""; Key = _DEVICE_POSITION + "_DEVICE"; objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key]; szDevice = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID + objTrack.DEVICESTATES : ""; //_listHeatProcess.Add(szFront); //Front (兑铁位) _listHeatProcess.Add(szBack); //Back (出钢位) _listHeatProcess.Add(szDevice); //device (吹炼位) } catch (Exception ex) { string msg = ex.Message; _listHeatProcess = null; } } /// /// 对获取到的加热处理号进行判断 /// private void JudgeHeatProcess() { try { if (_listHeatProcess.Count < 2) return; _heatProcessNo = ""; _devPos = ""; if (_listHeatProcess[1].ToString().Length >(int)OBJLEN.nHeatProcessNo) { string strHeat = _listHeatProcess[1].ToString(); _heatProcessNo = strHeat.Substring(0, (int)OBJLEN.nHeatProcessNo); _devPos = GetDevDeviceCodeOfBof(_DEVICE_POS); } if (_listHeatProcess[0].ToString().Length > (int)OBJLEN.nHeatProcessNo) { string strHeat = _listHeatProcess[0].ToString(); _heatProcessNo = strHeat.Substring(0, (int)OBJLEN.nHeatProcessNo); _devPos = GetDevBackCodeOfBof(_DEVICE_POS); } _smeltingID = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(_heatProcessNo) : ""; _stationCode = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? _heatProcessNo.Substring(1, (int)OBJLEN.nDevCode) : ""; _dealTime = (_heatProcessNo.Length > (int)OBJLEN.nHeatNo) ? _heatProcessNo.Substring(3, (int)OBJLEN.nDealTime) : ""; } catch { return; } } /// /// 获取转炉计划信息 /// private void GetPlanInfo() { string szOut = "", szWhere = ""; if (_smeltingID == "") return; try { #region " 炉次计划信息&钢包包号信息 " string strErr = ""; ArrayList arry = new ArrayList(); arry.Add("ReceivePlanInfo.Select");//此ID为XML文件ID arry.Add(_smeltingID); //获取指定炉号的作业计划信息 DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule", "ReceivePlanInfo", arry, out strErr); if (strErr == "" && ds != null) { DataTable tb = ds.Tables[0]; if (tb.Rows.Count > 0) { for (int i = 0; i < tb.Columns.Count; i++) { if (_htPlanInfo.Contains(tb.Columns[i].ColumnName)) _htPlanInfo.Remove(tb.Columns[i].ColumnName); _htPlanInfo.Add(tb.Columns[i].ColumnName, tb.Rows[0][i].ToString()); } } } //获取当前班次 _shiftCode = CStaticMethod.GetCurrentClass(this.ob); if (_htPlanInfo.Contains("SHIFTCODE")) _htPlanInfo.Remove("SHIFTCODE"); _htPlanInfo.Add("SHIFTCODE", _shiftCode); #endregion } catch { } } /// /// 获取转炉操作数据 /// private void GetOptInfo() { if (_heatProcessNo == "") return; #region " 取转炉操作数据 " try { string strErr = ""; ArrayList arry = new ArrayList(); arry.Add("GetBofOptInfo.Select");//此ID为XML文件ID arry.Add(_smeltingID); arry.Add(_stationCode); arry.Add(_dealTime); //查询转炉作业信息 DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassBofJob", "GetBofOptInfo", arry, out strErr); if (strErr == "" && ds != null) { DataTable tb = ds.Tables[0]; if (tb.Rows.Count > 0) { for (int i = 0; i < tb.Columns.Count; i++) { if (_htOptInfo.Contains(tb.Columns[i].ColumnName)) _htOptInfo.Remove(tb.Columns[i].ColumnName); _htOptInfo.Add(tb.Columns[i].ColumnName, tb.Rows[0][i].ToString()); } //氧枪枪位 if (_htOptInfo.Contains("YQQW")) _htOptInfo.Remove("YQQW"); if (_htOptInfo != null && !string.IsNullOrEmpty(_htOptInfo["OGGNUMID"].ToString())) _htOptInfo.Add("YQQW", GetSampleData("GUN" + _htOptInfo["OGGNUMID"].ToString() + "HIGH")); else _htOptInfo.Add("YQQW", ""); } } } catch { } #endregion } /// /// 获取设备位置信息 /// private void GetDevPosInfo() { try { //运行状态,铁水来源图片 string strState = ""; if (_listHeatProcess[0].ToString().Length > (int)OBJLEN.nHeatProcessNo) { string strHeat = _listHeatProcess[0].ToString(); strState = strHeat.Substring((int)OBJLEN.nHeatProcessNo); } else if (_listHeatProcess[1].ToString().Length > (int)OBJLEN.nHeatProcessNo) { string strHeat = _listHeatProcess[1].ToString(); strState = strHeat.Substring((int)OBJLEN.nHeatProcessNo); } if (_htOptInfo.Contains("TP")) _htOptInfo.Remove("TP"); _htOptInfo.Add("TP", SetPic(strState)); // 图片 //铁水来源图片 if (_htOptInfo.Contains("STS")) _htOptInfo.Remove("STS"); if (_htOptInfo["MOLIRNTYPE"] != null) _htOptInfo.Add("STS", SetPic_V(_htOptInfo["MOLIRNTYPE"].ToString())); if (_listHeatProcess.Count >= 2) { string szID = _listHeatProcess[1].ToString(); szID = (szID.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(szID.Substring(0, (int)OBJLEN.nHeatProcessNo)) : ""; if (_htOptInfo.Contains("CLW")) _htOptInfo.Remove("CLW"); _htOptInfo.Add("CLW", szID); // 吹炼位 szID = _listHeatProcess[0].ToString(); szID = (szID.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(szID.Substring(0, (int)OBJLEN.nHeatProcessNo)) : ""; if (_htOptInfo.Contains("CGW")) _htOptInfo.Remove("CGW"); _htOptInfo.Add("CGW", szID); // 出钢位 } } catch { } } /// /// 获取转炉过程添加剂信息 /// private void GetAdditiveData() { if (_heatProcessNo == "") return; try { string strErr = ""; ArrayList arry = new ArrayList(); arry.Add("GetBofAdditiveData.Select");//此ID为XML文件ID arry.Add(_smeltingID); arry.Add(_stationCode); arry.Add(_dealTime); //查询转炉作业采样信息 DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassBofJob", "GetBofAdditiveData", arry, out strErr); if (strErr == "" && ds != null) { DataSetToAdditive(ref ds, ref _procAdditive); } } catch { } } /// /// 获取采样数据(温度) /// private void GetSampleData() { string strErr = ""; ArrayList arry = new ArrayList(); arry.Add("GetBofTempInfo.Select"); arry.Add(_smeltingID); arry.Add(_stationCode); arry.Add(_dealTime); DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassBofJob", "GetBofTempInfo", arry, out strErr); if (strErr == "" && ds != null) { _dtSample = ds.Tables[0]; } } /// /// 获取采样数据 /// private string GetSampleData(string strSamplingName) { string strSamplingValue = ""; //采样值 string strErr = ""; ArrayList arry = new ArrayList(); arry.Add("GetBofSampling.Select");//此ID为XML文件ID arry.Add(_smeltingID); arry.Add(_stationCode); arry.Add(_dealTime); arry.Add(strSamplingName); arry.Add(_smeltingID); arry.Add(_stationCode); arry.Add(_dealTime); arry.Add(strSamplingName); //查询转炉作业采样信息 DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassBofJob", "GetBofSampling", arry, out strErr); if (strErr == "" && ds != null) { DataTable dt = ds.Tables[0]; if (dt.Rows.Count > 0) strSamplingValue = dt.Rows[0]["samplingvalue"].ToString(); } return strSamplingValue; } /// /// 填充化学成分信息界面数据 /// private void FillCraftElement() { try { lock (this) { int nRows = 0; nRows = _objCraftEleBuffer.hList.Count; if (_dtEleStd != null && _dtEleStd.Rows.Count > 0) { nRows++; } CStaticMethod.ResetTableRows(ref _dtCraftElement, nRows); int i = 0; #region " C标准" if (_dtEleStd != null && this._dtEleStd.Rows.Count > 0) { for (int j = 0; j < this._dtEleStd.Rows.Count; j++) { DataRow dr = this._dtEleStd.Rows[j]; CStaticMethod.SetStandardElemData(i, dr, ref _dtCraftElement); } i++; } #endregion #region " 实时值" for (int j = 0; j < _objCraftEleBuffer.hList.Count; j++, i++) { JOB_CHEMELEMENT obj = (JOB_CHEMELEMENT)_objCraftEleBuffer.hList[j]; CStaticMethod.SetCraftElemGridData(i, obj, "钢水", ref _dtCraftElement); } #endregion } } catch (Exception ex) { string Msg = ex.Message; } } /// /// 填充用户控件上面的数据 /// private void FillUserControlData() { ucBofPlan1.SetData(_htPlanInfo); ucBofIronInfo1.SetData(_htOptInfo); ucBofTimeInfo1.SetData(_htOptInfo); ucBofDevInfo1.SetData(_htOptInfo); ucChemelEment1.FillCraftElement(); ucBofPlanTime1.SetData(); } /// /// 填充温度信息界面数据 /// private void FillTemperatureData() { try { lock (this) { int nRows = 2; // 加一条铁水温度,铸机要温 DataRow[] dr = null; if (_dtSample != null && _dtSample.Rows.Count > 0) dr = _dtSample.Select("SAMPLINGNAME='TEMPERATURE'", " SAMPLINGDATE ASC"); if (dr != null && dr.Length > 0) nRows += dr.Length; CStaticMethod.ResetTableRows(ref _dtTemperature, nRows); int i = 0; #region " 铁水温度 " string szVal = ""; if (_htOptInfo.Contains("IRONTEMPERATURE")) szVal = _htOptInfo["IRONTEMPERATURE"].ToString(); CStaticMethod.SetGridTemperature(ref _dtTemperature, "铁水温度", "", szVal, i); i++; #endregion #region "铸机要温" szVal = ""; if (_htOptInfo.Contains("CCMPLANTEMPT")) szVal = _htOptInfo["CCMPLANTEMPT"].ToString(); CStaticMethod.SetGridTemperature(ref _dtTemperature, "铸机要温", "", szVal, _htOptInfo["CCMPLANTEMPTTIME"].ToString(), i); i++; #endregion #region " 实时值 " if (dr != null && dr.Length > 0) { string str = ""; for (int j = 0; j < dr.Length; j++, i++) { if (i == 1) str = "转炉一倒温度"; else if (i == dr.Length) str = "转炉终点温度"; else str = "转炉过程温度"; CStaticMethod.SetGridTemperature(ref _dtTemperature, str, "", dr[j]["SAMPLINGVALUE"].ToString(), dr[j]["SAMPLINGDATE"].ToString(), i); } } #endregion #region " 与标准进行比对 " if (dr != null && dr.Length > 0) { //// 一倒温度 //CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "L02001", ref ulgridTempInfo, 1); // 出钢终点温度 CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "LG0201002", ref ulgridTempInfo, dr.Length+1, "C"); } #endregion } } catch (Exception ex) { string Msg = ex.Message; } } /// /// 添加过程添加剂数据到界面 /// private void SetAdditiveData() { try { string szName = "", szLC = ""; DataRow[] rows; bool bClear = true; #region " 冶炼过程添加料 " for (int j = 0; j < ultraDataSource1.Band.Columns.Count; j++) { szLC = ultraDataSource1.Band.Columns[j].Key; for (int i = 0; i < _additiveBuffer.hList.Count; i++) { JOB_BOF_ADDITIVES obj = (JOB_BOF_ADDITIVES)_additiveBuffer.hList[i]; try { if (obj.MATERIELTYPE == "FL" && obj.JMTYPE == "1" && szLC == obj.HOPPERNUMID) // 物料类型为辅料 { rows = _dtMaterial.Select(" MATERIELCODE = '" + obj.MATERIELCODE + "' and MATERIELTYPE = 'FL'"); szName = (rows.Length > 0) ? rows[0]["MATERIELFORSHORT"].ToString() : ""; if (szName != "" && this.ulgridPrcMtr.DisplayLayout.Bands[0].Columns[szLC].Header.Caption == szName) { if (this.ultraDataSource1.Rows[0][szLC].ToString() != obj.JMWGT.ToString()) ultraDataSource1.Rows[0][szLC] = obj.JMWGT; bClear = false; break; } else ultraDataSource1.Rows[0][szLC] = ""; bClear = false; } else if (obj.MATERIELTYPE == "HJ" && obj.JMTYPE == "1" && szLC == obj.HOPPERNUMID) { rows = this._dtMaterial.Select(" MATERIELCODE = '" + obj.MATERIELCODE + "' and MATERIELTYPE = 'HJ'"); szName = (rows.Length > 0) ? rows[0]["MATERIELFORSHORT"].ToString() : ""; if (szName != "" && this.ulgridPrcMtr.DisplayLayout.Bands[0].Columns[szLC].Header.Caption == szName) { if (this.ultraDataSource1.Rows[0][szLC].ToString() != obj.JMWGT.ToString()) ultraDataSource1.Rows[0][szLC] = obj.JMWGT; bClear = false; break; } else ultraDataSource1.Rows[0][szLC] = ""; bClear = false; } } catch { } } if (bClear) ultraDataSource1.Rows[0][szLC] = ""; else bClear = true; } #endregion #region " 出钢过程添加料 " for (int j = 0; j < this.ultraDataSource1.Band.Columns.Count; j++) { szLC = this.ultraDataSource1.Band.Columns[j].Key; for (int i = 0; i < _additiveBuffer.hList.Count; i++) { JOB_BOF_ADDITIVES obj = (JOB_BOF_ADDITIVES)_additiveBuffer.hList[i]; try { if (obj.MATERIELTYPE == "FL" && obj.JMTYPE == "1" && szLC == obj.HOPPERNUMID) // 物料类型为辅料 { rows = this._dtMaterial.Select(" MATERIELCODE = '" + obj.MATERIELCODE + "' and MATERIELTYPE = 'FL'"); szName = (rows.Length > 0) ? rows[0]["MATERIELFORSHORT"].ToString() : ""; if (szName != "" && this.ulgridTapMtr.DisplayLayout.Bands[0].Columns[szLC].Header.Caption == szName) { if (this.ultraDataSource2.Rows[0][szLC].ToString() != obj.JMWGT.ToString()) ultraDataSource2.Rows[0][szLC] = obj.JMWGT; bClear = false; break; } else ultraDataSource2.Rows[0][szLC] = ""; bClear = false; } else if (obj.MATERIELTYPE == "HJ" && obj.JMTYPE == "1" && szLC == obj.HOPPERNUMID) // 物料类型为 合金 { rows = this._dtMaterial.Select(" MATERIELCODE = '" + obj.MATERIELCODE + "' and MATERIELTYPE = 'HJ'"); szName = (rows.Length > 0) ? rows[0]["MATERIELFORSHORT"].ToString() : ""; if (szName != "" && this.ulgridTapMtr.DisplayLayout.Bands[0].Columns[szLC].Header.Caption == szName) { if (this.ultraDataSource2.Rows[0][szLC].ToString() != obj.JMWGT.ToString()) ultraDataSource2.Rows[0][szLC] = obj.JMWGT; bClear = false; break; } else ultraDataSource2.Rows[0][szLC] = ""; bClear = false; } } catch { } } if (bClear) ultraDataSource2.Rows[0][szLC] = ""; else bClear = true; } #endregion this.ulgridPrcMtr.UpdateData(); this.ulgridTapMtr.UpdateData(); } catch (Exception ex) { string Msg = ex.Message; } } /// /// 手投料数据绑定 /// private void HdctMaterialBind() { try { if (_bHandThrow) { if (true == _bClearFlag) { for (int i = 0; i < this.ultraDataSource3.Band.Columns.Count; i++) { this.ulgridHndMtr.DisplayLayout.Rows[0].Cells[i].Value = ""; } _bClearFlag = false; } string szName = "", szLC = ""; DataRow[] rows; bool bClear1 = true; for (int j = 0; j < this.ultraDataSource3.Band.Columns.Count; j++) { szLC = this.ultraDataSource3.Band.Columns[j].Key; #region " 冶炼过程手投料 " for (int i = 0; i < _additiveBuffer.hList.Count; i++) { JOB_BOF_ADDITIVES obj = (JOB_BOF_ADDITIVES)_additiveBuffer.hList[i]; try { if (obj.JMTYPE == "2") { rows = _dtMaterial.Select(" MATERIELCODE = '" + obj.MATERIELCODE + "' and MATERIELTYPE = '" + obj.MATERIELTYPE + "'"); szName = (rows.Length > 0) ? rows[0]["MATERIELFORSHORT"].ToString() : ""; if (szName != "") { if (this.ulgridHndMtr.DisplayLayout.Bands[0].Columns[szLC].Header.Caption == szName) { ultraDataSource3.Rows[0][szLC] = obj.JMWGT; bClear1 = false; break; } } } } catch { } } if (bClear1) ultraDataSource3.Rows[0][szLC] = ""; else bClear1 = true; #endregion } ulgridHndMtr.UpdateData(); } } catch { } } private string GetDevDeviceCodeOfBof(int nDevNo) { string strDevID = ""; if (nDevNo >= 10) return ""; switch (nDevNo) { case (int)DeviceCode.BOF: strDevID = "BOF_DEVICE"; break; case (int)DeviceCode.BOF01: case (int)DeviceCode.BOF02: case (int)DeviceCode.BOF03: strDevID = String.Format("BOF{0,2}_DEVICE", nDevNo); break; } strDevID = strDevID.Replace(" ", "0"); return strDevID; } private string GetDevBackCodeOfBof(int nDevNo) { string strDevID = ""; if (nDevNo >= 10) return ""; switch (nDevNo) { case (int)DeviceCode.BOF: strDevID = "BOF_BACK"; break; case (int)DeviceCode.BOF01: case (int)DeviceCode.BOF02: case (int)DeviceCode.BOF03: strDevID = String.Format("BOF{0,2}_BACK", nDevNo); break; } strDevID = strDevID.Replace(" ", "0"); return strDevID; } #region " From DataSet To Buffer " /// /// 遍历跟踪实体类,给实体类赋值 /// /// /// private void DataSetToTrackObject(ref DataSet ds, ref TrackObjectInfo obj) { try { obj.ClearElement(); PropertyInfo[] PropertyInfos = null; foreach (DataRow dr in ds.Tables[0].Rows) { RealDataTrackObjectInfor detail = new RealDataTrackObjectInfor(); if (PropertyInfos == null) { PropertyInfos = detail.GetType().GetProperties(); } //给各个属性赋值 foreach (PropertyInfo oPropertyInfo in PropertyInfos) { try { if (dr[oPropertyInfo.Name] != System.DBNull.Value) { oPropertyInfo.SetValue(detail, dr[oPropertyInfo.Name.ToString()], null); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } obj.Add(ref detail); }//end foreach _objTrackBuffer.DataHarmonize(ref obj); } catch (Exception ex) { string Msg = ex.Message; } finally { } } /// /// 遍历成分实体类,给实体类赋值 /// /// /// private void DataSetToCraftElement(ref DataSet ds, ref CraftElement obj) { try { obj.ClearElement(); PropertyInfo[] PropertyInfos = null; foreach (DataRow dr in ds.Tables[0].Rows) { JOB_CHEMELEMENT detail = new JOB_CHEMELEMENT(); if (PropertyInfos == null) { PropertyInfos = detail.GetType().GetProperties(); } //给各个属性赋值 foreach (PropertyInfo oPropertyInfo in PropertyInfos) { try { if (dr[oPropertyInfo.Name] != System.DBNull.Value) { oPropertyInfo.SetValue(detail, dr[oPropertyInfo.Name.ToString()], null); } } catch (Exception ex) { MessageBox.Show(ex.Message); } } obj.Add(ref detail); }//end foreach _objCraftEleBuffer.DataHarmonize(ref obj); } catch (Exception ex) { string Msg = ex.Message; } finally { } } /// /// 遍历物料实体类,给实体类赋值 /// /// /// private void DataSetToAdditive(ref DataSet ds, ref BofAdditive obj) { try { obj.ClearElement(); PropertyInfo[] PropertyInfos = null; foreach (DataRow dr in ds.Tables[0].Rows) { JOB_BOF_ADDITIVES detail = new JOB_BOF_ADDITIVES(); if (PropertyInfos == null) { PropertyInfos = detail.GetType().GetProperties(); } //给各个属性赋值 foreach (PropertyInfo oPropertyInfo in PropertyInfos) { try { if (ds.Tables[0].Columns.Contains(oPropertyInfo.Name)) { if (dr[oPropertyInfo.Name] != System.DBNull.Value) { oPropertyInfo.SetValue(detail, dr[oPropertyInfo.Name.ToString()], null); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } } obj.Add(ref detail); }//end foreach _additiveBuffer.DataHarmonize(ref obj); } catch (Exception ex) { string Msg = ex.Message; } finally { } } #endregion /// /// 根据窗体名称获取设备位置 /// private void GetDevicePosition() { if (this.Text == "") return; string str = this.Text.Substring(0, 1); switch (str) { case "1": _DEVICE_POSITION = "BOF01"; _DEVICE_POS = 1; break; case "2": _DEVICE_POSITION = "BOF02"; _DEVICE_POS = 2; break; case "3": _DEVICE_POSITION = "BOF03"; _DEVICE_POS = 3; break; default: break; } } /// /// 设置用户控件委托 /// private void SetUserControlDelegate() { ucBofIronInfo1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucBofIronInfo1_ClickCellButton); ucBofDevInfo1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucBofDevInfo1_ClickCellButton); ucBofDevInfo1.ultraGrid1.KeyDown += new KeyEventHandler(ucBofDevInfo1_KeyDown); ucBofTimeInfo1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucBofTimeInfo1_ClickCellButton); ucBofPlan1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucBofPlan1_ClickCellButton); ucBofIronInfo1.ultraGrid1.KeyDown += new KeyEventHandler(ucBofIronInfo1_KeyDown); ucBofTimeInfo1.ultraGrid1.KeyDown += new KeyEventHandler(ucBofTimeInfo1_KeyDown); } /// /// 清除所有界面Grid中的实时数据 /// private void ClearGridData() { try { for (int j = 0; j < this.ultraDataSource1.Band.Columns.Count; j++) { this.ultraDataSource1.Rows[0][j] = ""; } } catch { } try { for (int j = 0; j < this.ultraDataSource2.Band.Columns.Count; j++) { this.ultraDataSource2.Rows[0][j] = ""; } } catch { } try { for (int j = 0; j < this.ultraDataSource3.Band.Columns.Count; j++) { this.ultraDataSource3.Rows[0][j] = ""; } } catch { } try { _dtCraftElement.Rows.Clear(); } catch { } try { this._dtTemperature.Rows.Clear(); } catch { } } /// /// 重置界面用户控件的数据 /// private void ResetAllData() { if (!_bResetDataFlag) // 如果已经清空,则直接返回 { ucBofDevInfo1.ResetData(); ucBofIronInfo1.ResetData(); ucBofPlan1.ResetData(); ucBofTimeInfo1.ResetData(); _htPlanInfo.Clear(); _htOptInfo.Clear(); ClearGridData(); ucChemelEment1.ResetData(); ucBofPlanTime1.ResetData(); _bResetDataFlag = true; } } /// /// 根据设备状态设置图片显示 /// /// /// private Image SetPic(string strState) { //strstate = 'IDLE'; //strstate = 'HEAT'; -- 炉次开始 //strstate = 'SCRAPCHG'; --加废钢 //strstate = 'CHARGING'; --加铁水 //strstate = 'BLOWING'; --吹氧开始 //strstate = 'BLOWING'; --吹氧结束 //strstate = 'TAPPING'; --出钢开始 //strstate = 'TAPPING'; --出钢结束 //strstate = 'SPRAYSLAG'; --溅渣开始 //strstate = 'SPRAYSLAG'; --溅渣结束 //strstate = 'IDLE'; --炉次结束 //strstate = 'DESLAGING'; --倒渣开始 //strstate = 'DESLAGING'; --倒渣结束 //strstate = 'REPAIR'; --检修状态 int index = 0; switch (strState) { case "IDLE": index = 0; break; case "SCRAPCHG": index = 4; break; case "CHARGING": index = 5; break; case "BLOWINGBEGIN": case "BLOWINGCLOSE": // case "BLOWINGCLOSE": // case "BLOWINGBEGIN": case "BLOWING": index = 1; break; case "TAPPINGBEGIN": index = 2; break; case "TAPPINGCLOSE": index = 2; break; case "TAPPING": index = 2; break; case "DESLAGGING": index = 2; break; case "REPAIR": index = 3; break; case "WORK": index = 1; break; default: index = 0; break; } try { return this.imageList1.Images[index]; } catch { } return this.imageList1.Images[0]; //空闲 //工作 //倒钢 //维修 //兑废钢 //兑铁水 } /// /// 根据铁水来源设置图片显示 /// /// /// private Image SetPic_V(string strState) { int index = 0; switch (strState) { case "1": index = 6; break; case "2": index = 7; break; case "3": index = 8; break; default: index = 8; break; } try { return this.imageList1.Images[index]; } catch { } return this.imageList1.Images[0]; //空闲 //工作 //倒钢 //维修 //兑废钢 //兑铁水 } private void ultraExpandableGroupBox1_ExpandedStateChanged(object sender, EventArgs e) { try { if (_heatProcessNo != "") { _bHandThrow = ultraExpandableGroupBox1.Expanded; if (_bHandThrow) _bClearFlag = true; } if (ultraExpandableGroupBox1.Expanded) { //查询手投料物料配置 ClassManualUpdateInfo.SetProceThrowFace(ulgridHndMtr, ultraDataSource3, _DEVICE_POSITION, ref _dtMaterial, this.ob); } } catch { } } /// /// 设置料斗信息 /// private void SetHopperInfo() { try { string strErr = ""; ArrayList arry = new ArrayList(); arry.Add("GetHopperName.Select");//此ID为XML文件ID arry.Add(_DEVICE_POSITION); //查询料斗物料设置信息 DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule", "GetHopperName", arry, out strErr); if (strErr == "" && ds != null) { DataTable dtHopper = ds.Tables[0]; string BH = ""; for (int i = 0; i < dtHopper.Rows.Count; i++) { BH = dtHopper.Rows[i]["MSNUMID"].ToString(); if (dtHopper.Rows[i]["MATERIELTYPE"].ToString() == "FL") { this.ulgridPrcMtr.DisplayLayout.Bands[0].Columns[BH].Header.Caption = dtHopper.Rows[i]["MATERIELFORSHORT"].ToString(); this.ulgridPrcMtr.DisplayLayout.Bands[0].Columns[BH].Tag = dtHopper.Rows[i]["MATERIELCODE"].ToString(); } else { this.ulgridTapMtr.DisplayLayout.Bands[0].Columns[BH].Header.Caption = dtHopper.Rows[i]["MATERIELFORSHORT"].ToString(); this.ulgridTapMtr.DisplayLayout.Bands[0].Columns[BH].Tag = dtHopper.Rows[i]["MATERIELCODE"].ToString(); } } } } catch { } } /// /// 更新铁水信息 /// /// 字段名 /// 字段类型 /// 值 private void SetIronPotInfo(string ColumnsName, string ColumnsType, string Values) { RealDataCommand realDataCommand = new RealDataCommand(); realDataCommand.COMMANDTYPE = "SCHEDULE_SET"; realDataCommand.OBJECTTYPE = "PROCVALUE"; realDataCommand.OBJECTPOS = _devPos; realDataCommand.OBJECTID = _heatProcessNo; realDataCommand.OBJECTLINKTABLE = "JOB_BOF_OPTINFO"; realDataCommand.OBJECTLINKKEY1 = _smeltingID; realDataCommand.OBJECTLINKKEY2 = ColumnsName; realDataCommand.VALUETYPE = ColumnsType; realDataCommand.STR_VALUE = Values; ClassManualUpdateInfo.UpdateTableField(_heatProcessNo, "STL_BOF_OPTINFO", ColumnsName, ColumnsType, Values, this.ob); string szOut = ""; //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.classSendCommand"; //par.MethodName = "UpdateTableField"; //par.args = new object[] { realDataCommand }; //ClientCommon._RemotingHelp.ExecuteMethod(par, out szOut); if (szOut != "") MessageBox.Show("命令发送不成功!"); } /// /// 获取铁水含钒量 /// /// 铁水来源2是脱硫3是折罐 /// 加热处理号 /// public string GetIronV(string strMolirnSource, string strHeatprocessno) { //表名,字段名,加热处理号 string strTalbeName = "", strColumnsName = "", strHeatProcessnoName = ""; string err = ""; Double dcV = 0; //钒含量 string strMolirnType = ""; if (strMolirnSource == "2") { strTalbeName = "res_hmp_optinfo"; strColumnsName = "SWBELEMENTCODE"; strHeatProcessnoName = "heatprocessno"; } else { strTalbeName = "RES_MIS_TAPHOLE"; strColumnsName = "IRONELEMENTCODE"; strHeatProcessnoName = "MISID"; } DataSet ds = null;// (DataSet)ClientCommon._RemotingHelp.ExecuteMethod("lgJobMgt", // "Core.LgMes.Server.lgJobMgt.classBofJob", // "GetIronV", new object[] { strTalbeName, strColumnsName, strHeatProcessnoName, strHeatprocessno }, out err); if (err == "" && ds != null) { if (ds.Tables[0].Rows.Count > 0) { if (!string.IsNullOrEmpty(ds.Tables[0].Rows[0]["V"].ToString())) dcV = Convert.ToDouble(ds.Tables[0].Rows[0]["V"]); if (dcV > 0.3) //含钒铁水 strMolirnType = "2"; else //普通铁水 strMolirnType = "3"; } else strMolirnType = "3"; } return strMolirnType; } /// /// 初始化转炉辅料跟踪临时表 /// private void InitGtt_bofadditives() { try { string strErr = ""; ArrayList arry = new ArrayList(); arry.Add("InitGtt_bofadditives.Update");//此ID为XML文件ID arry.Add(_DEVICE_POSITION + "_FL"); arry.Add(_DEVICE_POSITION + "_HJ"); CoreClientParam ccp = this.ExecuteClietnToServer("Core.LgMes.Server.LgJobMgt.ClassBofJob", "InitGtt_bofadditives", arry, out strErr); if (strErr == "" && ccp.ReturnCode==0) { } } catch { } } #endregion #region " Control Event " /// /// 功能按钮控制区 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Result": string szStr = _DEVICE_POS.ToString() + "#炼钢转炉实绩"; foreach (Form mdiChild in this.MdiParent.MdiChildren) { if (mdiChild.Text == szStr) { mdiChild.Activate(); return; } } frmBofcResults frmSJSJ = new frmBofcResults(); frmSJSJ.MdiParent = this.MdiParent; frmSJSJ.Text = szStr; frmSJSJ.Tag = frmSJSJ.Text; frmSJSJ.Key = "Core.LgMes.Client.LgResMgt.frmBofcResults"; frmSJSJ.CustomInfo = _DEVICE_POSITION; frmSJSJ.Toolbar = CStaticMethod.GetFromToolInfo(frmSJSJ.Key, frmSJSJ.CustomInfo, this.ob); frmSJSJ.ob = this.ob; frmSJSJ.Show(); break; case "MtrCsm": // 物料消耗 string szWLXH = "物料消耗"; foreach (Form mdiChild in this.MdiParent.MdiChildren) { if (mdiChild.Text == szWLXH) { mdiChild.Activate(); return; } } frmAdditStat frmWLXH = new frmAdditStat(); frmWLXH.MdiParent = this.MdiParent; frmWLXH.Text = szWLXH; frmWLXH.Tag = frmWLXH.Text; frmWLXH.Key = "Core.LgMes.Client.LgIntegrationQuery.frmAdditStat"; frmWLXH.Toolbar = CStaticMethod.GetFromToolInfo(frmWLXH.Key, "", this.ob); frmWLXH.ob = this.ob; frmWLXH.Show(); break; case "ChemicElem": // 化学成分 string szEle = "化学成分查询"; foreach (Form mdiChild in this.MdiParent.MdiChildren) { if (mdiChild.Text == szEle) { mdiChild.Activate(); return; } } frmLgElements frmHXCF = new frmLgElements(); frmHXCF.MdiParent = this.MdiParent; frmHXCF.Text = szEle; frmHXCF.Tag = frmHXCF.Text; frmHXCF._devPos = _DEVICE_POSITION; frmHXCF.Key = "Core.LgMes.Client.LgIntegrationQuery.frmLgElements"; frmHXCF.Toolbar = CStaticMethod.GetFromToolInfo(frmHXCF.Key, "", this.ob); frmHXCF.ob = this.ob; frmHXCF.Show(); break; case "SftRcd": // 班组记录 string szRcd = "转炉操作记录"; foreach (Form mdiChild in this.MdiParent.MdiChildren) { if (mdiChild.Text == szRcd) { mdiChild.Activate(); return; } } reportBOFData frmReport = new reportBOFData(); frmReport.MdiParent = this.MdiParent; frmReport.Text = szRcd; frmReport.Tag = frmReport.Text; frmReport.Key = "Core.LgMes.Client.Report.reportBOFData"; frmReport.Toolbar = CStaticMethod.GetFromToolInfo(frmReport.Key, "", this.ob); frmReport.ob = this.ob; frmReport.Show(); break; case "btnJobStd": // 操作规程 string szOR = "操作规程管理"; foreach (Form mdiChild in this.MdiParent.MdiChildren) { if (mdiChild.Text == szOR) { mdiChild.Activate(); return; } } //Core.LgMes.Client.LgIntegrationQuery.frmOperateRule frmOR = new Core.LgMes.Client.LgIntegrationQuery.frmOperateRule(); //frmOR.MdiParent = this.MdiParent; //frmOR.Key = "Core.LgMes.Client.LgIntegrationQuery.frmOperateRule"; //frmOR.Text = "操作规程管理"; //frmOR.blValue = false; //if (_htPlanInfo != null && _htPlanInfo.Count > 0) //{ // frmOR.strDeviceNo = _DEVICE_POSITION; // frmOR.strSteelCode = _htPlanInfo["STEEL"].ToString(); // frmOR.strCraftCode = _htPlanInfo["STD_CODE"].ToString(); //} //frmOR.Show(); break; case "JobPlan": // 作业计划 string szPlan = "作业计划查询"; foreach (Form mdiChild in this.MdiParent.MdiChildren) { if (mdiChild.Text == szPlan) { mdiChild.Activate(); return; } } frmSchedulingQuery frmZYJH = new frmSchedulingQuery(); frmZYJH.MdiParent = this.MdiParent; frmZYJH.Text = szPlan; frmZYJH.Tag = frmZYJH.Text; frmZYJH.Key = "Core.LgMes.Client.LgIntegrationQuery.frmSchedulingQuery"; frmZYJH.Toolbar = CStaticMethod.GetFromToolInfo(frmZYJH.Key, "", this.ob); frmZYJH.ob = this.ob; frmZYJH.Show(); break; case "butIronElements": string szIron = "铁水站出铁成分"; foreach (Form mdiChild in this.MdiParent.MdiChildren) { if (mdiChild.Text == szIron) { mdiChild.Activate(); return; } } //Core.LgMes.Client.LgIntegrationQuery.frmIronElementsInfo frmIron = new Core.LgMes.Client.LgIntegrationQuery.frmIronElementsInfo(); //frmIron.MdiParent = this.MdiParent; //frmIron.Text = szIron; //frmIron.Tag = frmIron.Text; //frmIron.Key = "Core.LgMes.Client.LgIntegrationQuery.frmIronElementsInfo"; //frmIron.Show(); break; case "Exit": this.Close(); break; default: break; } } private void ulgridHndMtr_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { //利用弹出计算器窗体增加手投料消耗 ClassManualUpdateInfo.HndMtrFromAddMaterial(_heatProcessNo, ulgridHndMtr.ActiveCell, this._dtMaterial, this.ob); } private void ulgridHndMtr_KeyDown(object sender, KeyEventArgs e) { if (ulgridHndMtr.ActiveCell != null && e.KeyCode == Keys.Enter && ulgridHndMtr.ActiveRow != null && _smeltingID != "" && ulgridHndMtr.ActiveCell.Column.Header.Caption != "") { string szBM = ""; if (ulgridHndMtr.ActiveCell.Column.Tag.ToString() != ulgridHndMtr.ActiveCell.Column.Key) szBM = ulgridHndMtr.ActiveCell.Column.Tag.ToString(); string szMC = this.ulgridHndMtr.ActiveCell.Column.Header.Caption, szWLLX = ""; DataRow[] rows = _dtMaterial.Select(" MATERIELCODE = '" + szBM + "'"); if (rows.Length > 0) { szWLLX = rows[0]["MATERIELTYPE"].ToString(); //录入手投料消耗 ClassManualUpdateInfo.AddMaterialProc(_heatProcessNo, szBM, szWLLX, ulgridHndMtr.ActiveCell.Text, ulgridHndMtr.ActiveCell.Column.Key.ToString(), "2", ob); ulgridTempInfo.Focus(); } } } private void ulgridHndMtr_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { if (ulgridHndMtr.ActiveCell.Text != "") CStaticMethod.CheckNumValidate(ulgridHndMtr.ActiveCell.Text); } private void ulgridHndMtr_DoubleClickHeader(object sender, Infragistics.Win.UltraWinGrid.DoubleClickHeaderEventArgs e) { //设置手投料 ClassManualUpdateInfo.SetHatMaterial(ulgridHndMtr.ActiveCell, ref e, _DEVICE_POSITION,this.ob); } private void ulgridPrcMtr_DoubleClickHeader(object sender, Infragistics.Win.UltraWinGrid.DoubleClickHeaderEventArgs e) { Core.LgMes.Client.LgJobMgt.frmSetHopper frmLCPZ = new Core.LgMes.Client.LgJobMgt.frmSetHopper(_DEVICE_POSITION); frmLCPZ.WindowState = FormWindowState.Normal; frmLCPZ.ob = this.ob; frmLCPZ.ShowDialog(); SetHopperInfo(); } /// /// 辅料消耗录入 /// /// /// private void ulgridPrcMtr_KeyDown(object sender, KeyEventArgs e) { if (ulgridPrcMtr.ActiveCell != null && e.KeyCode == Keys.Enter && ulgridPrcMtr.ActiveRow != null && _smeltingID != "" && ulgridPrcMtr.ActiveCell.Column.Header.Caption != "") { string szBM = ""; if (ulgridPrcMtr.ActiveCell.Column.Tag.ToString() != ulgridPrcMtr.ActiveCell.Column.Key) szBM = ulgridPrcMtr.ActiveCell.Column.Tag.ToString(); string szMC = this.ulgridPrcMtr.ActiveCell.Column.Header.Caption, szWLLX = ""; DataRow[] rows = _dtMaterial.Select(" MATERIELCODE = '" + szBM + "'"); if (rows.Length > 0) { szWLLX = rows[0]["MATERIELTYPE"].ToString(); ////添加辅料消耗 ClassManualUpdateInfo.AddMaterialProc(_heatProcessNo, szBM, szWLLX, ulgridPrcMtr.ActiveCell.Text, ulgridPrcMtr.ActiveCell.Column.Key.ToString(),"1", ob); ulgridTempInfo.Focus(); } } } private void ulgridTapMtr_KeyDown(object sender, KeyEventArgs e) { if (ulgridTapMtr.ActiveCell != null && e.KeyCode == Keys.Enter && ulgridTapMtr.ActiveRow != null && _smeltingID != "" && ulgridTapMtr.ActiveCell.Column.Header.Caption != "") { string szBM = ""; if (ulgridTapMtr.ActiveCell.Column.Tag.ToString() != ulgridTapMtr.ActiveCell.Column.Key) szBM = ulgridTapMtr.ActiveCell.Column.Tag.ToString(); string szMC = this.ulgridTapMtr.ActiveCell.Column.Header.Caption, szWLLX = ""; DataRow[] rows = _dtMaterial.Select(" MATERIELCODE = '" + szBM + "'"); if (rows.Length > 0) { szWLLX = rows[0]["MATERIELTYPE"].ToString(); //添加合金消耗 ClassManualUpdateInfo.AddMaterialProc(_heatProcessNo, szBM, szWLLX, ulgridTapMtr.ActiveCell.Text, ulgridTapMtr.ActiveCell.Column.Key.ToString(),"1", ob); ulgridTempInfo.Focus(); } } } /// /// 验证是否为数字 /// /// /// private void ulgridPrcMtr_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { if (ulgridPrcMtr.ActiveCell.Text != "") CStaticMethod.CheckNumValidate(ulgridPrcMtr.ActiveCell.Text); } /// /// 验证是否为数字 /// /// /// private void ulgridTapMtr_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { if (ulgridTapMtr.ActiveCell.Text != "") CStaticMethod.CheckNumValidate(ulgridTapMtr.ActiveCell.Text); } #endregion private void ultraGroupBox1_DoubleClick(object sender, EventArgs e) { if (!string.IsNullOrEmpty(ucBofPlan1.ultraGrid1.DisplayLayout.Rows[0].Cells["HEATNO"].Value.ToString())) { frmProcessAbnormity frmPA = new frmProcessAbnormity(); frmPA.strSmeltingID = ucBofPlan1.ultraGrid1.DisplayLayout.Rows[0].Cells["HEATNO"].Value.ToString(); frmPA.strCraftposID = _DEVICE_POSITION; frmPA.ShowDialog(); } } private void frmBofcJob_Resize(object sender, EventArgs e) { //SetLocation(); } /// /// 获取化学成分检验号 /// /// /// private string GetMolirnSource(string strMolirnSource) { string szOut = ""; string strCheckNo = ""; strCheckNo = "";// (string)Core.Mes.ClientFrameWork.ClientCommon._RemotingHelp.ExecuteMethod("lgJobMgt", // "Core.LgMes.Server.lgJobMgt.classTrackObjectInfo", "GetMolirnSource", new object[] { strMolirnSource }, out szOut); if (szOut == "") return strCheckNo; return strCheckNo; } private void ulgridPrcMtr_DoubleClickCell(object sender, Infragistics.Win.UltraWinGrid.DoubleClickCellEventArgs e) { frmMtrBatchChem frmmbchem = new frmMtrBatchChem(ulgridPrcMtr.DisplayLayout.Bands[0].Columns[e.Cell.Column.Key.ToString()].Tag.ToString(), e.Cell.Column.Key.ToString(), "BOF0" + _DEVICE_POS); frmmbchem.Location = CStaticMethod.GetChildWindowLocation(frmmbchem.Size); frmmbchem.ShowDialog(); } private void ulgridTapMtr_DoubleClickCell(object sender, Infragistics.Win.UltraWinGrid.DoubleClickCellEventArgs e) { frmMtrBatchChem frmmbchem = new frmMtrBatchChem(ulgridTapMtr.DisplayLayout.Bands[0].Columns[e.Cell.Column.Key.ToString()].Tag.ToString(), e.Cell.Column.Key.ToString(), "BOF0" +_DEVICE_POS); frmmbchem.Location = CStaticMethod.GetChildWindowLocation(frmmbchem.Size); frmmbchem.ShowDialog(); } } }