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 frmVdJob : 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 frmVdJob()
{
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();
ucVdDevInfo1.m_imageDefault = imageList1.Images[0];
}
#endregion
#region " Init Form Element"
private void frmVdJob_Load(object sender, EventArgs e)
{
ucVdPlanTime1.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();
// GetCraftEleInfo();
ucChemelEment1.GetCraftEleInfo(_smeltingID, "V0" + _DEVICE_POS, "S","");
if (_htPlanInfo["STEEL"] != null)
ucChemelEment1.GetStandardElement(_smeltingID);
GetSamplingOfPost();
JudgeSmeltID();
GetAdditiveData();
ucVdPlanTime1.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 ucVdDevInfo1_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
{
switch (e.Cell.Column.Key)
{
case "HCW":
{
if (e.Cell.Text != string.Empty && _listHeatProcess[0].ToString().Length > (int)OBJLEN.nHeatProcessNo)
{
string strCurtPos = "VDS0" + _DEVICE_POS.ToString() + "_IDLE";
string sIdleHeatNo = _listHeatProcess[0].ToString().Substring(0, (int)OBJLEN.nHeatProcessNo);
string sSmeltID2 = CStaticMethod.getSmeltingID(sIdleHeatNo);
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 = "VDS0" + _DEVICE_POS.ToString() + "_FRONT";
string sFrontHeatNo = _listHeatProcess[1].ToString().Substring(0, (int)OBJLEN.nHeatProcessNo);
string sSmeltID = CStaticMethod.getSmeltingID(sFrontHeatNo);
ClassManualOperate.arryHeatNo = _listHeatProcess;
ClassManualOperate.ManualOperateEntrance(sFrontHeatNo, 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 = "VDS0" + _DEVICE_POS.ToString() + "_BACK";
string sFrontHeatNo = _listHeatProcess[3].ToString().Substring(0, (int)OBJLEN.nHeatProcessNo);
string sSmeltID = CStaticMethod.getSmeltingID(sFrontHeatNo);
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 = "VDS0" + _DEVICE_POS.ToString() + "_DEVICE";
string sCurHeatNo = _listHeatProcess[2].ToString().Substring(0, (int)OBJLEN.nHeatProcessNo);
string sSmeltID2 = CStaticMethod.getSmeltingID(sCurHeatNo);
ClassManualOperate.arryHeatNo = _listHeatProcess;
ClassManualOperate.ManualOperateEntrance(sCurHeatNo, 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 ucVdsTimeInfo1_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
{
ClassManualUpdateInfo.SetCellDateTime(e.Cell, _heatProcessNo, this.ob); //弹出时间更新窗体更新时间
}
private void ucVdsTimeInfo1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode != Keys.Enter || _heatProcessNo.Length < 11)
return;
ucVdTimeInfo1.ultraGrid1.UpdateData();
string keyStr = ucVdTimeInfo1.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 (ucVdTimeInfo1.ultraGrid1.ActiveCell.Value.ToString() != "")
UptValue = ((DateTime)ucVdTimeInfo1.ultraGrid1.ActiveCell.Value).ToString("yyyy-MM-dd HH:mm");
else
UptValue = "";
//更新时间
ClassManualUpdateInfo.UpdateTableField(_heatProcessNo, "STL_LFS_OPTINFO", keyStr, "DATE",
UptValue, ob);
ucVdTimeInfo1.ultraGrid1.ActiveCell.Value = UptValue;
}
catch (Exception ex)
{
string Msg = ex.Message;
MessageBox.Show("日期输入格式错误,请改正!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
private void ucVdDevInfo1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode != Keys.Enter || _heatProcessNo.Length < 11)
return;
this.ucVdDevInfo1.ultraGrid1.UpdateData();
string keyStr = ucVdDevInfo1.ultraGrid1.ActiveCell.Column.Key;
string valueStr = ucVdDevInfo1.ultraGrid1.ActiveCell.Text;
if (keyStr == "RESIDUETHICKNESS") //渣厚
{
try
{
//更新数据
ClassManualUpdateInfo.UpdateTableField(_heatProcessNo, "STL_VDS_OPTINFO", keyStr, "VARCHAR2",
valueStr, ob);
ucVdDevInfo1.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("GetVdsOptInfo.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 > 8) ? 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 { }
}
///
/// 获取VD炉过程添加剂信息
///
private void GetAdditiveData()
{
if (_heatProcessNo == "")
return;
try
{
string strErr = "";
ArrayList arry = new ArrayList();
arry.Add("GetVdsAdditiveData.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);
ucVdTimeInfo1.SetData(_htOptInfo);
ucVdDevInfo1.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();
//}
ucVdPlanTime1.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 = "VD炉进站温度";
else if (i == dr4.Length+2)
str = "VD炉出站温度";
else
str = "VD炉过程温度";
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, 1, "E");
//vd炉温度
if (dr4 != null && dr4.Length > 0)
{
CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "LG0701002", ref ulgridTempInfo, 2, "I");
CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "LG0701002", ref ulgridTempInfo, dr3.Length + 1, "I");
}
#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 = "VDS_DEVICE";
break;
case (int)DeviceCode.VDS01:
case (int)DeviceCode.VDS02:
case (int)DeviceCode.VDS03:
strDevID = String.Format("VDS{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 = "VDS_FRONT";
break;
case (int)DeviceCode.RHS01:
case (int)DeviceCode.RHS02:
case (int)DeviceCode.RHS03:
strDevID = String.Format("VDS{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 = "VDS_IDLE";
break;
case (int)DeviceCode.VDS01:
case (int)DeviceCode.VDS02:
case (int)DeviceCode.VDS03:
strDevID = String.Format("VDS{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 = "VDS_BACK";
break;
case (int)DeviceCode.VDS01:
case (int)DeviceCode.VDS02:
case (int)DeviceCode.VDS03:
strDevID = String.Format("VDS{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.Text.Substring(0, 1);
switch (str)
{
case "1":
_DEVICE_POSITION = "VDS01";
_DEVICE_POS = 1;
break;
case "2":
_DEVICE_POSITION = "VDS02";
_DEVICE_POS = 2;
break;
case "3":
_DEVICE_POSITION = "VDS03";
_DEVICE_POS = 3;
break;
default:
break;
}
}
///
/// 设置用户控件委托
///
private void SetUserControlDelegate()
{
ucVdDevInfo1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucVdDevInfo1_ClickCellButton);
ucVdTimeInfo1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucVdsTimeInfo1_ClickCellButton);
ucBofPlan1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucBofPlan1_ClickCellButton);
ucVdTimeInfo1.ultraGrid1.KeyDown += new KeyEventHandler(ucVdsTimeInfo1_KeyDown);
ucVdDevInfo1.ultraGrid1.KeyDown += new KeyEventHandler(ucVdDevInfo1_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) // 如果已经清空,则直接返回
{
ucVdDevInfo1.ResetData();
ucBofPlan1.ResetData();
ucVdTimeInfo1.ResetData();
ucChemelEment1.ResetData();
_htPlanInfo.Clear();
_htOptInfo.Clear();
ClearGridData();
ucVdPlanTime1.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": // lgResMgt
string szStr = _DEVICE_POS.ToString() + "#VD炉实绩";
foreach (Form mdiChild in this.MdiParent.MdiChildren)
{
if (mdiChild.Text == szStr)
{
mdiChild.Activate();
return;
}
}
frmVdResults frmSJSJ = new frmVdResults();
frmSJSJ.MdiParent = this.MdiParent;
frmSJSJ.Text = szStr;
frmSJSJ.Tag = frmSJSJ.Text;
frmSJSJ.Key = "Core.LgMes.Client.LgResMgt.frmVdResults";
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 = "VD炉操作记录";
foreach (Form mdiChild in this.MdiParent.MdiChildren)
{
if (mdiChild.Text == szRcd)
{
mdiChild.Activate();
return;
}
}
reportVDData frmReport = new reportVDData();
frmReport.MdiParent = this.MdiParent;
frmReport.Text = szRcd;
frmReport.Tag = frmReport.Text;
frmReport.Key = "Core.LgMes.Client.Report.reportVDData";
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();
}
}
}
}