using System; using System.Data; using System.Drawing; 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.LgIntegrationQuery; using Core.LgMes.Client.Report; using Core.LgMes.Client.Comm; namespace Core.LgMes.Client.LgJobMgt { public partial class frmRhsJob : CommonClientToServer { #region " Class Member Variable" private string _heatProcessNo = ""; // 加热处理号 private string _smeltingID = ""; // 熔炼号 private string _oldSmelt = ""; // 保存上一个炉号 private string _stationCode = ""; // 岗位编号 private string _dealTime = ""; // 处理次数 private string _shiftCode = ""; // 班次编码 private string _szWorkBit = "3"; // 初始化为 3 (1 为1#小车; 2 为2# 小车; 3为钢包位) private DataTable _dtCraftElement = null; // 工艺化学成分信息表 private DataTable _dtStdElement = null; // 标准成分表 private DataTable _dtTemperature = null; // 温度 private DataTable _dtSamplingOfCvt = null; // 转炉采样数据表 private DataTable _dtSamplingOfCas = null; // 吹氩采样数据表 private DataTable _dtSamplingOfLfs = null; // 钢包采样数据表 private DataTable _dtSamplingOfRhs = null; // RH炉采样数据表 private DataTable _dtMaterial = null; // 存储辅料信息 private DataTable _dtEleStd = null; // 标准元素值表 private DataTable _dtCraftStdVal = null; // 炼钢工艺标准值 private CommandClass _commClass; // 消息发送类 private string _DEVICE_POSITION = "RHS01"; // 设备位置 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 LfsAdditive _procAdditive; // 存放过程添加剂信息 private LfsAdditive _additiveBuffer; // 用于刷新过程添加剂信息的缓冲区 private Hashtable _htPlanInfo; // 用于作业计划信息的表字段数据 private Hashtable _htOptInfo; // 用于存储操作信息的表字段数据 private delegate void SetDataThreadDelegate(); // 刷新数据线程的一个委托方法,目的是达到界面所有数据刷新同步 #endregion #region " Construct Function " public frmRhsJob() { InitializeComponent(); // 初始化成员变量 _commClass = new CommandClass(); _tmpObjTrack = new TrackObjectInfo(); _objTrackBuffer = new TrackObjectInfo(); _tmpObjCraftEle = new CraftElement(); _objCraftEleBuffer = new CraftElement(); _procAdditive = new LfsAdditive(); _additiveBuffer = new LfsAdditive(); _htOptInfo = new Hashtable(); _htPlanInfo = new Hashtable(); ucRhsDevInfo1.m_imageDefault = imageList1.Images[0]; } #endregion #region " Init Form Element" private void frmRhsJob_Load(object sender, EventArgs e) { ucRhsPlanTime1.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; _dtTemperature.Rows.Add(new object[] { "一倒" }); _dtTemperature.Rows.Add(new object[] { "出钢(终点)" }); _dtTemperature.Rows.Add(new object[] { "吹氩氩前" }); _dtTemperature.Rows.Add(new object[] { "吹氩在站" }); _dtTemperature.Rows.Add(new object[] { "吹氩氩后" }); _dtTemperature.Rows.Add(new object[] { "精炼炉进站" }); _dtTemperature.Rows.Add(new object[] { "精炼炉出站" }); } /// /// 获取物料信息 /// 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) { System.Threading.Thread.Sleep(500); continue; } try { GetDataFromServer(); Thread.Sleep(2000); } catch { } } } /// /// 刷新数据线程程序 /// private void SetDataThread() { while (_bIfSetData) { if (!this.On_Off_Thread) { System.Threading.Thread.Sleep(500); continue; } try { this.Invoke(new SetDataThreadDelegate(SetDataOperate)); Thread.Sleep(1000); } catch { } } } private void GetDataFromServer() { GetTrackInfoData(); GetHeatProcessList(); JudgeHeatProcess(); GetPlanInfo(); GetOptInfo(); GetDevPosInfo(); GetAllowOperate(); // GetCraftEleInfo(); ucChemelEment1.GetCraftEleInfo(_smeltingID, "F0" + _DEVICE_POS, "S",""); if (_htPlanInfo["STEEL"] != null) ucChemelEment1.GetStandardElement(_smeltingID); GetSamplingOfPost(); JudgeSmeltID(); GetAdditiveData(); ucRhsPlanTime1.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 ucRhsDevInfo1_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { string[] bufferArray = { "", "", "", "" }; string strMsg = ""; switch (e.Cell.Column.Key) { case "HCW": { if (e.Cell.Text != string.Empty && _listHeatProcess[0].ToString().Length > (int)OBJLEN.nHeatProcessNo) { string strCurtPos = "RHS0" + _DEVICE_POS.ToString() + "_IDLE"; string sIdleHeatNo = _listHeatProcess[0].ToString().Substring(0, (int)OBJLEN.nHeatProcessNo); ClassManualOperate.arryHeatNo = _listHeatProcess; ClassManualOperate.ManualOperateEntrance(sIdleHeatNo, strCurtPos, this.ob, _objTrackBuffer); //切换工位信息显示 if (!string.IsNullOrEmpty(ClassManualOperate.strPosInfo)) _szWorkBit = ClassManualOperate.strPosInfo; } } break; case "XCW1": //"1#小车位" { if (e.Cell.Text != string.Empty && _listHeatProcess[1].ToString().Length > (int)OBJLEN.nHeatProcessNo) { string strCurtPos = "RHS0" + _DEVICE_POS.ToString() + "_FRONT"; string sFrontHeatNo = _listHeatProcess[1].ToString().Substring(0, (int)OBJLEN.nHeatProcessNo); ClassManualOperate.arryHeatNo = _listHeatProcess; ClassManualOperate.ManualOperateEntrance(sFrontHeatNo, strCurtPos, this.ob, _objTrackBuffer); //切换工位信息显示 if (!string.IsNullOrEmpty(ClassManualOperate.strPosInfo)) _szWorkBit = ClassManualOperate.strPosInfo; } } break; case "YLW": //"冶炼位" { if (e.Cell.Text != string.Empty && _listHeatProcess[2].ToString().Length > (int)OBJLEN.nHeatProcessNo) { string strCurtPos = "RHS0" + _DEVICE_POS.ToString() + "_DEVICE"; string sCurHeatNo = _listHeatProcess[2].ToString().Substring(0, (int)OBJLEN.nHeatProcessNo); ClassManualOperate.arryHeatNo = _listHeatProcess; ClassManualOperate.ManualOperateEntrance(sCurHeatNo, strCurtPos, this.ob, _objTrackBuffer); //切换工位信息显示 if (!string.IsNullOrEmpty(ClassManualOperate.strPosInfo)) _szWorkBit = ClassManualOperate.strPosInfo; } } break; case "XCW2": // 小车位2 { if (e.Cell.Text != string.Empty && _listHeatProcess[3].ToString().Length > (int)OBJLEN.nHeatProcessNo) { string strCurtPos = "RHS0" + _DEVICE_POS.ToString() + "_BACK"; string sBackHeatNo = _listHeatProcess[3].ToString().Substring(0, (int)OBJLEN.nHeatProcessNo); ClassManualOperate.arryHeatNo = _listHeatProcess; ClassManualOperate.ManualOperateEntrance(sBackHeatNo, strCurtPos, this.ob, _objTrackBuffer); //切换工位信息显示 if (!string.IsNullOrEmpty(ClassManualOperate.strPosInfo)) _szWorkBit = ClassManualOperate.strPosInfo; } } break; default: break; } } 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() + "#RH炉", _DEVICE_POSITION); frmPlan.Location = CStaticMethod.GetChildWindowLocation(frmPlan.Size); frmPlan.ShowDialog(); if (frmPlan._currSmeltingID != string.Empty && cell.Text == string.Empty) { cell.Value = frmPlan._currSmeltingID; //this._commClass.setHeatID(_heatProcessNo); //this._commClass.setChargingCommand("MOLSTL", _DEVICE_POSITION + "_DEVICE", frmPlan._currSmeltingID); } else if (frmPlan._currSmeltingID != string.Empty && cell.Text != string.Empty) MessageBox.Show("本岗位有炉号信息,暂时不能加载!", "提示"); } private void ucRhsTimeInfo1_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { ClassManualUpdateInfo.SetCellDateTime(e.Cell, _heatProcessNo, this.ob); //弹出时间更新窗体更新时间 } private void ucRhsTimeInfo1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { if (e.KeyCode != Keys.Enter || _heatProcessNo.Length < 11) return; ucRhsTimeInfo1.ultraGrid1.UpdateData(); string keyStr = ucRhsTimeInfo1.ultraGrid1.ActiveCell.Column.Key; DateTime valueStr; string UptValue = ""; if (keyStr == "ARRIVETIME" || keyStr == "LEAVETIME" || keyStr == "REPOSEBEGINTIME" || keyStr == "REPOSECLOSETIME" || keyStr == "VACBEGINTIME" || keyStr == "VACLOSETIME" || keyStr == "FEEDBEGINTIME" || keyStr == "FEEDCLOSETIME" || keyStr == "ARBEGINTIME" || keyStr == "ARCLOSETIME") { try { if (ucRhsTimeInfo1.ultraGrid1.ActiveCell.Value.ToString() != "") UptValue = ((DateTime)ucRhsTimeInfo1.ultraGrid1.ActiveCell.Value).ToString("yyyy-MM-dd HH:mm"); else UptValue = ""; //更新时间 ClassManualUpdateInfo.UpdateTableField(_heatProcessNo, "STL_RHS_OPTINFO", keyStr, "DATE", UptValue, ob); ucRhsTimeInfo1.ultraGrid1.ActiveCell.Value = UptValue; } catch (Exception ex) { string Msg = ex.Message; MessageBox.Show("日期输入格式错误,请改正!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information); } } } private void ucRhsDevInfo1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { if (e.KeyCode != Keys.Enter || _heatProcessNo.Length < 11) return; this.ucRhsDevInfo1.ultraGrid1.UpdateData(); string keyStr = ucRhsDevInfo1.ultraGrid1.ActiveCell.Column.Key; string valueStr = ucRhsDevInfo1.ultraGrid1.ActiveCell.Text; if (keyStr == "RESIDUETHICKNESS") //渣厚 { try { //更新数据 ClassManualUpdateInfo.UpdateTableField(_heatProcessNo, "STL_RHS_OPTINFO", keyStr, "VARCHAR2", valueStr, ob); ucRhsDevInfo1.ultraGrid1.ActiveCell.Value = valueStr; } 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 void GetHeatProcessList() { try { _listHeatProcess = new ArrayList(); string Key = _DEVICE_POSITION + "_IDLE"; string szIdle = "", szFront = "", szDevice = "", szBack = ""; RealDataTrackObjectInfor objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key]; szIdle = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID + objTrack.DEVICESTATES : ""; Key = _DEVICE_POSITION + "_FRONT"; objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key]; szFront = (!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 : ""; Key = _DEVICE_POSITION + "_BACK"; objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key]; szBack = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID + objTrack.DEVICESTATES : ""; _listHeatProcess.Add(szIdle); //Idle _listHeatProcess.Add(szFront); //Front _listHeatProcess.Add(szDevice); //Device _listHeatProcess.Add(szBack); //Back } catch (Exception ex) { string msg = ex.Message; _listHeatProcess = null; } } /// /// 对获取到的加热处理号进行判断 /// private void JudgeHeatProcess() { try { if (_listHeatProcess.Count < 4) return; _heatProcessNo = ""; _devPos = ""; if (_szWorkBit == "3" && _listHeatProcess[2].ToString().Length > (int)OBJLEN.nHeatProcessNo) //Device 冶炼工位 { string strHeat = _listHeatProcess[2].ToString(); _heatProcessNo = strHeat.Substring(0, (int)OBJLEN.nHeatProcessNo); _devPos = GetDevDeviceCodeOfRhs(_DEVICE_POS); } //Front 1#小车位 if ((_heatProcessNo == "" && _listHeatProcess[1].ToString().Length > (int)OBJLEN.nHeatProcessNo) || (_szWorkBit == "1" && _listHeatProcess[1].ToString().Length > (int)OBJLEN.nHeatProcessNo)) { string strHeat = _listHeatProcess[1].ToString(); _heatProcessNo = strHeat.Substring(0, (int)OBJLEN.nHeatProcessNo); _devPos = GetDevFrontCodeOfRhs(_DEVICE_POS); } //Back 2#小车位 if ((_heatProcessNo == "" && _listHeatProcess[3].ToString().Length > (int)OBJLEN.nHeatProcessNo) || (_szWorkBit == "2" && _listHeatProcess[3].ToString().Length > (int)OBJLEN.nHeatProcessNo)) { string strHeat = _listHeatProcess[3].ToString(); _heatProcessNo = strHeat.Substring(0, (int)OBJLEN.nHeatProcessNo); _devPos = GetDevBackCodeOfRhs(_DEVICE_POS); } if (_heatProcessNo == "" && _listHeatProcess[0].ToString().Length > (int)OBJLEN.nHeatProcessNo) { string strHeat = _listHeatProcess[0].ToString(); _heatProcessNo = strHeat.Substring(0, (int)OBJLEN.nHeatProcessNo); _devPos = GetDevIdleCodeOfRhs(_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() { 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 { } } /// /// 获取RH操作数据 /// private void GetOptInfo() { if (_heatProcessNo == "") return; #region " 取RH炉操作数据 " try { string strErr = ""; ArrayList arry = new ArrayList(); arry.Add("GetRhsOptInfo.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()); } } else _htOptInfo.Clear(); } } catch { } #endregion } /// /// 获取设备位置信息 /// private void GetDevPosInfo() { try { string strState = ""; if (_listHeatProcess[2].ToString().Length > (int)OBJLEN.nHeatProcessNo) strState = "BLOWING"; else if (_listHeatProcess[1].ToString().Length > (int)OBJLEN.nHeatProcessNo || _listHeatProcess[3].ToString().Length > (int)OBJLEN.nHeatProcessNo) strState = "LADLEARRIVE"; else strState = "IDLE"; if (_htOptInfo.Contains("TP")) _htOptInfo.Remove("TP"); _htOptInfo.Add("TP", SetPic(strState)); // 图片 if (_listHeatProcess.Count >= 4) { string szID = _listHeatProcess[0].ToString(); szID = (szID.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(szID.Substring(0, (int)OBJLEN.nHeatProcessNo)) : ""; if (_htOptInfo.Contains("HCW")) _htOptInfo.Remove("HCW"); _htOptInfo.Add("HCW", szID); // 缓冲位 szID = _listHeatProcess[1].ToString(); szID = (szID.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(szID.Substring(0, (int)OBJLEN.nHeatProcessNo)) : ""; if (_htOptInfo.Contains("XCW1")) _htOptInfo.Remove("XCW1"); _htOptInfo.Add("XCW1", szID); // 1#小车位 szID = _listHeatProcess[2].ToString(); szID = (szID.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(szID.Substring(0, (int)OBJLEN.nHeatProcessNo)) : ""; if (_htOptInfo.Contains("YLW")) _htOptInfo.Remove("YLW"); _htOptInfo.Add("YLW", szID); // 精炼炉位 szID = _listHeatProcess[3].ToString(); szID = (szID.Length > (int)OBJLEN.nHeatNo) ? CStaticMethod.getSmeltingID(szID.Substring(0, (int)OBJLEN.nHeatProcessNo)) : ""; if (_htOptInfo.Contains("XCW2")) _htOptInfo.Remove("XCW2"); _htOptInfo.Add("XCW2", szID); // 2#小车位 } } catch { } } /// /// 获取当前允许操作工位 /// private void GetAllowOperate() { try { string strErr = ""; ArrayList arry = new ArrayList(); arry.Add("GetRhsAllowOperate.Select");//此ID为XML文件ID //获取当前允许操作工位 DataSet ds = this.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule", "GetAllowOperate", arry, out strErr); if (strErr == "" && ds != null) { DataTable tb = ds.Tables[0]; if (tb.Rows.Count > 0) { if (_htOptInfo.Contains("ALLOWOPERATE")) _htOptInfo.Remove("ALLOWOPERATE"); if (_DEVICE_POS == 1) _htOptInfo.Add("ALLOWOPERATE", tb.Rows[0]["Rhs1allowOperate"].ToString()); } } } catch { } } /// /// 获取转炉过程添加剂信息 /// private void GetAdditiveData() { if (_heatProcessNo == "") return; try { string strErr = ""; ArrayList arry = new ArrayList(); arry.Add("GetRhsAdditiveData.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 GetSamplingOfPost() { try { ArrayList al = null; string strErr = ""; ArrayList arry = new ArrayList(); arry.Add(_smeltingID); arry.Add(_DEVICE_POSITION); arry.Add(_dealTime); //查询作业采样信息 CoreClientParam ccp = this.ExecuteQueryArrayList("Core.LgMes.Server.LgJobMgt.ClassCommonModule", "GetSamplingOfPost", arry, out strErr); if (strErr == "" && ccp.ReturnObject != null) { al = ccp.ReturnObject as ArrayList; GetDataOfPost(al); } else { _dtSamplingOfCvt.Clear(); _dtSamplingOfCas.Clear(); _dtSamplingOfLfs.Clear(); _dtSamplingOfRhs.Clear(); } //} } catch { } } /// /// 取各岗位数据表记录 /// private void GetDataOfPost(ArrayList ar) { try { int nPos = 0; string szPos = ""; DataRow[] drVacvalue = null; string strVacvalue = ""; if (ar != null) { ArrayList alOperate = new ArrayList(); nPos = ar.Count - 1; szPos = ar[nPos].ToString(); alOperate = ar[nPos - 1] as ArrayList; if (szPos != "") { for (int i = 0; i < szPos.Length; i++) { switch (szPos.Substring(i, 1)) { case "C": // 转炉 _dtSamplingOfCvt = ConvertToDataTable(ar[i] as IList); //将服务器端传回的List转换成DataTable break; case "D": // 吹氩 _dtSamplingOfCas = ConvertToDataTable(ar[i] as IList); //将服务器端传回的List转换成DataTable break; case "E": // 精炼炉 _dtSamplingOfLfs = ConvertToDataTable(ar[i] as IList); //将服务器端传回的List转换成DataTable break; case "F": // RH炉 _dtSamplingOfRhs = ConvertToDataTable(ar[i] as IList); //将服务器端传回的List转换成DataTable if (_dtSamplingOfRhs != null && _dtSamplingOfRhs.Rows.Count > 0) drVacvalue = _dtSamplingOfRhs.Select("SAMPLINGNAME='VACVALUE'", " SAMPLINGDATE DESC"); if (drVacvalue != null && drVacvalue.Length > 0) strVacvalue = drVacvalue[0]["SAMPLINGVALUE"].ToString(); if (_htOptInfo.Contains("VAC")) _htOptInfo.Remove("VAC"); _htOptInfo.Add("VAC", strVacvalue); break; default: break; } } } } } catch { } } /// /// 填充用户控件上面的数据 /// private void FillUserControlData() { ucBofPlan1.SetData(_htPlanInfo); ucRhsTimeInfo1.SetData(_htOptInfo); ucRhsDevInfo1.SetData(_htOptInfo); ucChemelEment1.FillCraftElement(); //if (ucChemelEment1.ulgridElement.Rows.Count > 0) //add on 2009-04-24 显示最后一行 //{ // ucChemelEment1.ulgridElement.ActiveRow = ucChemelEment1.ulgridElement.Rows[ucChemelEment1.ulgridElement.Rows.Count - 1]; // ucChemelEment1.ulgridElement.Rows[ucChemelEment1.ulgridElement.Rows.Count - 1].Selected = false; // ucChemelEment1.ulgridElement.Show(); //} ucRhsPlanTime1.SetData(); } /// /// 填充温度信息界面数据 /// private void FillTemperatureData() { try { lock (this) { int nRows = 3; // 加一条转炉出钢温度 和 吹氩站出站温度、精炼炉 DataRow[] dr1 = null, dr2 = null, dr3 = null,dr4=null; if (_dtSamplingOfCvt != null && _dtSamplingOfCvt.Rows.Count > 0) dr1 = _dtSamplingOfCvt.Select("SAMPLINGNAME='TEMPERATURE'", " SAMPLINGDATE DESC"); if (_dtSamplingOfCas != null && _dtSamplingOfCas.Rows.Count > 0) dr2 = _dtSamplingOfCas.Select("SAMPLINGNAME='TEMPERATURE'", " SAMPLINGDATE DESC"); if (_dtSamplingOfLfs != null && _dtSamplingOfLfs.Rows.Count > 0) dr3 = _dtSamplingOfLfs.Select("SAMPLINGNAME='TEMPERATURE'", " SAMPLINGDATE DESC"); if (_dtSamplingOfRhs != null && _dtSamplingOfRhs.Rows.Count > 0) dr4 = _dtSamplingOfRhs.Select("SAMPLINGNAME='TEMPERATURE'", " SAMPLINGDATE ASC"); if (dr4 != null && dr4.Length > 0) nRows += dr4.Length; CStaticMethod.ResetTableRows(ref _dtTemperature, nRows); int i = 0; #region " 转炉出钢温度 " string szVal = ""; string szTemp = ""; if (dr1 != null && dr1.Length > 0) { szVal = dr1[0]["SAMPLINGVALUE"].ToString(); szTemp = dr1[0]["SAMPLINGDATE"].ToString(); } CStaticMethod.SetGridTemperature(ref _dtTemperature, "转炉终点温度", "", szVal,szTemp, i); i++; #endregion #region " 吹氩站温度 " szVal = ""; szTemp = ""; if (dr2 != null && dr2.Length > 0) { szVal = dr2[0]["SAMPLINGVALUE"].ToString(); szTemp = dr2[0]["SAMPLINGDATE"].ToString(); } CStaticMethod.SetGridTemperature(ref _dtTemperature, "吹氩出站温度", "", szVal, szTemp, i); i++; #endregion #region " 精炼温度 " szVal = ""; szTemp = ""; if (dr3 != null && dr3.Length > 0) { szVal = dr3[0]["SAMPLINGVALUE"].ToString(); szTemp = dr3[0]["SAMPLINGDATE"].ToString(); } CStaticMethod.SetGridTemperature(ref _dtTemperature, "精炼出站温度", "", szVal, szTemp, i); i++; #endregion #region " 实时值 " if (dr4 != null && dr4.Length > 0) { string str = ""; for (int j = 0; j < dr4.Length; j++, i++) { if (i == 3) str = "RH炉进站温度"; else if (i == dr4.Length+2) str = "RH炉出站温度"; else str = "RH炉过程温度"; CStaticMethod.SetGridTemperature(ref _dtTemperature, str, "", dr4[j]["SAMPLINGVALUE"].ToString(), dr4[j]["SAMPLINGDATE"].ToString(), i); } } #endregion #region " 与标准进行比对 " // 转炉终点温度 if (dr1 != null && dr1.Length > 0) CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "LG0201002", ref ulgridTempInfo, 0, "C"); // 吹氩站终点温度 if (dr2 != null && dr2.Length > 0) CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "LG0301002", ref ulgridTempInfo, 1, "D"); //精炼炉温度 if (dr3 != null && dr3.Length > 0) CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "LG0401002", ref ulgridTempInfo, 2, "E"); if (dr4 != null && dr4.Length > 0) { CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "LG0501002", ref ulgridTempInfo, 3, "F"); CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "LG0501002", ref ulgridTempInfo, dr4.Length+2, "F"); } #endregion } } catch (Exception ex) { string Msg = ex.Message; } } /// /// 添加过程添加剂数据到界面 /// private void SetAdditiveData() { try { try { string szName = "", szLC = ""; DataRow[] rows; bool bClear = true; #region " 喂丝 " for (int j = 0; j < this.ultraDataSource2.Band.Columns.Count; j++) { szLC = this.ultraDataSource2.Band.Columns[j].Key; for (int i = 0; i < _additiveBuffer.hList.Count; i++) { JOB_LFS_ADDITIVES obj = (JOB_LFS_ADDITIVES)_additiveBuffer.hList[i]; try { if (obj.MATERIELTYPE == "WS" && obj.JMTYPE == "1" && szLC == obj.HOPPERNUMID) // 物料类型为喂丝 { rows = this._dtMaterial.Select(" MATERIELCODE = '" + obj.MATERIELCODE + "' and MATERIELTYPE = 'WS'"); szName = (rows.Length > 0) ? rows[0]["MATERIELFORSHORT"].ToString() : ""; if (szName != "" && ulgridFeedMtr.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 #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_LFS_ADDITIVES obj = (JOB_LFS_ADDITIVES)_additiveBuffer.hList[i]; try { if ((obj.MATERIELTYPE == "HJ" || obj.MATERIELTYPE == "FL") && obj.JMTYPE == "1" && szLC == obj.HOPPERNUMID) // 物料类型为 合金 { rows = this._dtMaterial.Select(" MATERIELCODE = '" + obj.MATERIELCODE + "' and (MATERIELTYPE = 'HJ' or 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; } } catch { } } if (bClear) ultraDataSource1.Rows[0][szLC] = ""; else bClear = true; } #endregion ulgridPrcMtr.UpdateData(); ulgridFeedMtr.UpdateData(); } catch (Exception ex) { string Msg = ex.Message; } } 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_LFS_ADDITIVES obj = (JOB_LFS_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 void SetProceThrowFace() { try { string outErrStr = ""; #region " 冶炼过程手投料 " string strWhere = " where CONFGITEM = '" + _DEVICE_POSITION + "' and USEDLOCATION = 'STL'"; // 冶炼过程手投料 GCSTL //hengxing //CallingMessage par = new CallingMessage(); //par.ServerName = "lgJobMgt"; //par.AssemblyName = "Core.LgMes.Server.lgJobMgt"; //par.ClassName = "Core.LgMes.Server.lgJobMgt.classSendCommand"; //par.MethodName = "GetHndTrwMtr"; //par.args = new object[] { strWhere }; object obj = null;// ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr); if (outErrStr == "" && obj != null) { DataTable dt = ((DataSet)obj).Tables[0]; if (dt.Rows.Count > 0) { string szPZBM = dt.Rows[0]["CONFGCODE"].ToString(); string[] arBM = szPZBM.Split('/'); DataRow[] rows; int nCount = this.ulgridHndMtr.DisplayLayout.Bands[0].Columns.Count;// > arBM.Length ? arBM.Length : udHandMaterial.DisplayLayout.Bands[0].Columns.Count; for (int i = 0; i < nCount; i++) { if (i < arBM.Length - 1) { rows = _dtMaterial.Select("MATERIELCODE='" + arBM[i] + "'"); if (rows.Length > 0) { this.ulgridHndMtr.DisplayLayout.Bands[0].Columns[i].Header.Caption = rows[0]["MATERIELFORSHORT"].ToString(); this.ulgridHndMtr.DisplayLayout.Bands[0].Columns[i].Tag = arBM[i]; } } else { this.ulgridHndMtr.DisplayLayout.Bands[0].Columns[i].Header.Caption = ""; this.ulgridHndMtr.DisplayLayout.Bands[0].Columns[i].Tag = ultraDataSource3.Band.Columns[i].Key; } } } } #endregion } catch { } } private string GetDevDeviceCodeOfRhs(int nDevNo) { string strDevID = ""; switch (nDevNo) { case (int)DeviceCode.RHS: strDevID = "RHS_DEVICE"; break; case (int)DeviceCode.RHS01: case (int)DeviceCode.RHS02: case (int)DeviceCode.RHS03: strDevID = String.Format("RHS{0,2}_DEVICE", nDevNo); break; } strDevID = strDevID.Replace(" ", "0"); return strDevID; } private string GetDevFrontCodeOfRhs(int nDevNo) { string strDevID = ""; switch (nDevNo) { case (int)DeviceCode.RHS: strDevID = "RHS_FRONT"; break; case (int)DeviceCode.RHS01: case (int)DeviceCode.RHS02: case (int)DeviceCode.RHS03: strDevID = String.Format("RHS{0,2}_FRONT", nDevNo); break; } strDevID = strDevID.Replace(" ", "0"); return strDevID; } private string GetDevIdleCodeOfRhs(int nDevNo) { string strDevID = ""; switch (nDevNo) { case (int)DeviceCode.RHS: strDevID = "RHS_IDLE"; break; case (int)DeviceCode.RHS01: case (int)DeviceCode.RHS02: case (int)DeviceCode.RHS03: strDevID = String.Format("RHS{0,2}_IDLE", nDevNo); break; } strDevID = strDevID.Replace(" ", "0"); return strDevID; } private string GetDevBackCodeOfRhs(int nDevNo) { string strDevID = ""; switch (nDevNo) { case (int)DeviceCode.RHS: strDevID = "RHS_BACK"; break; case (int)DeviceCode.RHS01: case (int)DeviceCode.RHS02: case (int)DeviceCode.RHS03: strDevID = String.Format("RHS{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 LfsAdditive obj) { try { obj.ClearElement(); PropertyInfo[] PropertyInfos = null; foreach (DataRow dr in ds.Tables[0].Rows) { JOB_LFS_ADDITIVES detail = new JOB_LFS_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.CustomInfo.Trim();//this.Text.Substring(0, 1); str = str.Substring(str.Length - 1, 1); switch (str) { case "1": _DEVICE_POSITION = "RHS01"; _DEVICE_POS = 1; break; case "2": _DEVICE_POSITION = "RHS02"; _DEVICE_POS = 2; break; case "3": _DEVICE_POSITION = "RHS03"; _DEVICE_POS = 3; break; default: break; } } /// /// 设置用户控件委托 /// private void SetUserControlDelegate() { ucRhsDevInfo1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucRhsDevInfo1_ClickCellButton); ucRhsTimeInfo1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucRhsTimeInfo1_ClickCellButton); ucBofPlan1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucBofPlan1_ClickCellButton); ucRhsTimeInfo1.ultraGrid1.KeyDown += new KeyEventHandler(ucRhsTimeInfo1_KeyDown); ucRhsDevInfo1.ultraGrid1.KeyDown += new KeyEventHandler(ucRhsDevInfo1_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) // 如果已经清空,则直接返回 { ucRhsDevInfo1.ResetData(); ucBofPlan1.ResetData(); ucRhsTimeInfo1.ResetData(); ucChemelEment1.ResetData(); _htPlanInfo.Clear(); _htOptInfo.Clear(); ClearGridData(); ucRhsPlanTime1.ResetData(); _bResetDataFlag = true; } } /// /// 根据设备状态设置图片显示 /// /// /// private Image SetPic(string strState) { int index = 0; try { switch (strState) { case "IDLE": index = 0; break; case "LADLEARRIVE": index = 5; break; case "LADLEDEPARTURE": index = 2; break; case "BLOWING": index = 3; break; case "REPAIR": index = 4; break; default: index = 0; break; } } catch { index = 0; } return this.imageList1.Images[index]; } 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() == "WS") { this.ulgridFeedMtr.DisplayLayout.Bands[0].Columns[BH].Header.Caption = dtHopper.Rows[i]["MATERIELFORSHORT"].ToString(); this.ulgridFeedMtr.DisplayLayout.Bands[0].Columns[BH].Tag = dtHopper.Rows[i]["MATERIELCODE"].ToString(); } else { 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(); } } } } catch { } } #endregion #region " Control Event " /// /// 功能按钮控制区 /// /// /// public override void ToolBar_Click(object sender, string ToolbarKey) { switch (ToolbarKey) { case "Result": string szStr = _DEVICE_POS.ToString() + "#RH炉实绩"; foreach (Form mdiChild in this.MdiParent.MdiChildren) { if (mdiChild.Text == szStr) { mdiChild.Activate(); return; } } frmRhsResults frmSJSJ = new frmRhsResults(); frmSJSJ.MdiParent = this.MdiParent; frmSJSJ.Text = szStr; frmSJSJ.Tag = frmSJSJ.Text; frmSJSJ.Key = "Core.LgMes.Client.LgResMgt.frmRhsResults"; 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 = "RH炉操作记录"; foreach (Form mdiChild in this.MdiParent.MdiChildren) { if (mdiChild.Text == szRcd) { mdiChild.Activate(); return; } } reportRHData frmReport = new reportRHData(); frmReport.MdiParent = this.MdiParent; frmReport.Text = szRcd; frmReport.Tag = frmReport.Text; frmReport.Key = "Core.LgMes.Client.Report.reportRHData"; 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 = "CCM0" + _htPlanInfo["CAST_ID"].ToString(); // frmOR.strSteelCode = _htPlanInfo["STEEL"].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 "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(); } #endregion /// /// 修改自动加料 /// /// /// 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 ulgridPrcMtr_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { if (ulgridPrcMtr.ActiveCell.Text != "") CStaticMethod.CheckNumValidate(ulgridPrcMtr.ActiveCell.Text); } /// /// 修改自动投料喂丝 /// /// /// private void ulgridFeedMtr_KeyDown(object sender, KeyEventArgs e) { if (ulgridFeedMtr.ActiveCell !=null && e.KeyCode == Keys.Enter && ulgridFeedMtr.ActiveRow != null && _smeltingID != "" && ulgridFeedMtr.ActiveCell.Column.Header.Caption != "") { string szBM = ""; if (ulgridFeedMtr.ActiveCell.Column.Tag.ToString() != ulgridFeedMtr.ActiveCell.Column.Key) szBM = ulgridFeedMtr.ActiveCell.Column.Tag.ToString(); string szMC = this.ulgridFeedMtr.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, ulgridFeedMtr.ActiveCell.Text, ulgridFeedMtr.ActiveCell.Column.Key.ToString(), "1", ob); ulgridTempInfo.Focus(); } } } /// /// 验证是否是数字 /// /// /// private void ulgridFeedMtr_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e) { if (ulgridFeedMtr.ActiveCell.Text != "") CStaticMethod.CheckNumValidate(ulgridFeedMtr.ActiveCell.Text); } private void ultraGroupBox2_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(); } } } }