using System;
using System.Collections.Generic;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
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;
using Core.LgMes.Client.Comm;
using System.Net;
namespace Core.LgMes.Client.LgJobMgt
{
public partial class frmCasJob : CommonClientToServer
{
#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 _dtTemperature = null; // 温度
private DataTable _dtSamplingOfCvt = null; // 转炉采样数据表
private DataTable _dtSamplingOfCas = null; // 吹氩采样数据表
private DataTable _dtMaterial = null; // 存储辅料信息
private DataTable _dtCraftStdVal = null; // 炼钢工艺标准值
private CommandClass _commClass; // 消息发送类
private string _DEVICE_POSITION = "CAS01"; // 设备位置
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 CasAdditive _procAdditive; // 存放过程添加剂信息
private CasAdditive _additiveBuffer; // 用于刷新过程添加剂信息的缓冲区
private Hashtable _htPlanInfo; // 用于作业计划信息的表字段数据
private Hashtable _htOptInfo; // 用于存储操作信息的表字段数据
private delegate void SetDataThreadDelegate(); // 刷新数据线程的一个委托方法,目的是达到界面所有数据刷新同步
#endregion
#region " Construct Function "
public frmCasJob()
{
InitializeComponent();
// 初始化成员变量
_commClass = new CommandClass();
_tmpObjTrack = new TrackObjectInfo();
_objTrackBuffer = new TrackObjectInfo();
_tmpObjCraftEle = new CraftElement();
_objCraftEleBuffer = new CraftElement();
_procAdditive = new CasAdditive();
_additiveBuffer = new CasAdditive();
_htOptInfo = new Hashtable();
_htPlanInfo = new Hashtable();
ucCasDevInfo1.m_imageDefault = imageList1.Images[4];
}
#endregion
#region " Init Form Element "
private void frmCasJob_Load(object sender, EventArgs e)
{
ucCasPlanTime1.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[] { "吹氩氩后" });
}
///
/// 获取物料信息
///
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, "D0" + _DEVICE_POS, "S","");
if (_htPlanInfo["V_HEAT_ID"] != null)
ucChemelEment1.GetStandardElement(_smeltingID);
//GetSampleData();
GetSamplingOfPost();
JudgeSmeltID();
GetAdditiveData();
ucCasPlanTime1.GetPlanAndFactTime(_smeltingID);
if (_htPlanInfo != null && _htPlanInfo.Contains("STEEL"))
_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 ucCasDevInfo1_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
{
if (e.Cell.Value.ToString().Equals(string.Empty) || _listHeatProcess == null) return;
switch (e.Cell.Column.Key)
{
case "HCW":
{
ClassManualOperate.ManualOperateEntrance(_heatProcessNo, _devPos, this.ob, _objTrackBuffer);
break;
}
case "DDW":
{
ClassManualOperate.ManualOperateEntrance(_heatProcessNo, _devPos, this.ob, _objTrackBuffer);
break;
}
case "CLW":
{
ClassManualOperate.ManualOperateEntrance(_heatProcessNo, _devPos, this.ob, _objTrackBuffer);
break;
}
default:
break;
}
}
private void ucCasDevInfo1_CellListSelect(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
{
if (_heatProcessNo.Length < 11)
return;
string keyStr = ucCasDevInfo1.ultraGrid1.ActiveCell.Column.Key;
this.ucCasDevInfo1.ultraGrid1.UpdateData();
string valueStr = ucCasDevInfo1.ultraGrid1.ActiveCell.Value.ToString();
if (keyStr == "DESLAGGFLAG") //是否顶渣
{
try
{
//更新数据
ClassManualUpdateInfo.UpdateTableField(_heatProcessNo, "STL_CAS_OPTINFO", keyStr, "VARCHAR2",
valueStr, ob);
ucCasDevInfo1.ultraGrid1.ActiveCell.Value = valueStr;
}
catch (Exception ex)
{
string Msg = ex.Message;
MessageBox.Show("数据格式错误,请改正!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
private void ucCasDevInfo1_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.ucCasDevInfo1.ultraGrid1.UpdateData();
string keyStr = ucCasDevInfo1.ultraGrid1.ActiveCell.Column.Key;
string valueStr;
if (keyStr == "SETSTAYTIME")
{
try
{
if (ucCasDevInfo1.ultraGrid1.ActiveCell.Value.ToString() != "")
{
valueStr = ucCasDevInfo1.ultraGrid1.ActiveCell.Value.ToString();
//作业数据
ClassManualUpdateInfo.UpdateTableField(_heatProcessNo, "STL_CAS_OPTINFO", keyStr, "VARCHAR2",
valueStr, ob);
}
else
{
MessageBox.Show("不能为空值,重新输入!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Asterisk);
return;
}
ucCasDevInfo1.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.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 DdwCellButton(string strPos, int initNo, string strCurrPos)
{
frmCasOperate frm = new frmCasOperate();
frm.Location = CStaticMethod.GetChildWindowLocation(frm.Size);
frm.InitNo = initNo;
frm._devPos = strPos;
if (_htPlanInfo["CAST_ID"] != null)
frm.CAST_ID =Convert.ToInt16(_htPlanInfo["CAST_ID"].ToString());
frm.ShowDialog();
if (frm.Tag == null) return;
string str = "", strMsg = "";
string strSme = _smeltingID;
string strInOrOut = "LEAVETIME";
bool blIDLE = false;
switch (frm.Tag.ToString())
{
case "IN":
RealDataTrackObjectInfor objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[_DEVICE_POSITION + "_DEVICE"];
RealDataTrackObjectInfor objTrackFrt = (RealDataTrackObjectInfor)_objTrackBuffer.hList[_DEVICE_POSITION + "_FRONT"];
if (!string.IsNullOrEmpty(objTrack.OBJECTID) && string.IsNullOrEmpty(objTrackFrt.OBJECTID))
{
blIDLE = true;
str = _DEVICE_POSITION + "_FRONT";
strMsg = "熔炼号: " + strSme + " 正常从 " + strCurrPos + " 进站去 等待位 \n 是否确认?";
}
else if (string.IsNullOrEmpty(objTrack.OBJECTID))
{
str = _DEVICE_POSITION + "_DEVICE";
strMsg = "熔炼号: " + strSme + " 正常从 " + strCurrPos + " 进站去 处理位 \n 是否确认?";
}
strInOrOut = "";
break;
case "OUT":
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 是否确认?";
strInOrOut = "LEAVETIME";
}
break;
case "GONEXT":
strOut = "";
//hengxing
//CallingMessage parr = new CallingMessage();
//parr.ServerName = "lgJobMgt";
//parr.AssemblyName = "Core.LgMes.Server.lgJobMgt";
//parr.ClassName = "Core.LgMes.Server.lgJobMgt.classTrackObjectInfo";
//parr.MethodName = "GetNextPos";
//parr.args = new object[] { _heatProcessNo };
object obj1 = null;// ClientCommon._RemotingHelp.ExecuteMethod(parr, out strOut);
if (obj1 == null) MessageBox.Show(strOut);
else
{
str = obj1.ToString();
strMsg = "熔炼号: " + strSme + " 正常从 " + strCurrPos + " 去 下道工序(" + GetNextProcName(str) + ") \n 是否确认?";
strInOrOut = "LEAVETIME";
}
break;
case "GOLFS1":
str = "LFS01_IDLE";
strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 1#精炼炉缓冲位 \n 是否确认?";
break;
case "GOLFS2":
str = "LFS02_IDLE";
strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 2#精炼炉缓冲位 \n 是否确认?";
break;
case "GOCAS1":
str = "CAS01_IDLE";
strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 1#吹氩站缓冲位 \n 是否确认?";
strInOrOut = "";
break;
case "GOCAS2":
str = "CAS02_IDLE";
strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 2#吹氩站缓冲位 \n 是否确认?";
strInOrOut = "";
break;
case "GOCAS3":
str = "CAS03_IDLE";
strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 3#吹氩站缓冲位 \n 是否确认?";
strInOrOut = "";
break;
case "GOCCM1":
str = "CCM01_IDLE";
strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 1#连铸机缓冲位 \n 是否确认?";
break;
case "GOCCM2":
str = "CCM02_IDLE";
strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 2#连铸机缓冲位 \n 是否确认?";
break;
case "GOCCM3":
str = "CCM03_IDLE";
strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 3#连铸机缓冲位 \n 是否确认?";
break;
case "GOCCM4":
str = "CCM04_IDLE";
strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 0#连铸机缓冲位 \n 是否确认?";
break;
case "GORHS1":
str = "RHS01_IDLE";
strMsg = "熔炼号: " + strSme + " 异常从 " + strCurrPos + " 去 1#RH炉缓冲位 \n 是否确认?";
break;
case "OVER":
str = _DEVICE_POSITION+"_OVER";
strMsg = "熔炼号: " + strSme + " 任务强制结束";
break;
}
if (str != "")
{
if (MessageBox.Show(strMsg, "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information) == DialogResult.Yes)
{
//处理处理有炉号,IDLE位加载到等待位的情况
if (blIDLE == true)
{
RealDataTrackObjectInfor objTrackIDLE = (RealDataTrackObjectInfor)_objTrackBuffer.hList[_DEVICE_POSITION + "_IDLE"];
_commClass.setHeatID(objTrackIDLE.OBJECTID);
}
else
_commClass.setHeatID(_heatProcessNo);
_commClass.goNextPosCvtCmmd(strPos, str);
if (strInOrOut != "")
{
RealDataCommand realDataCommand = new RealDataCommand();
realDataCommand.COMMANDTYPE = "SCHEDULE_SET";
realDataCommand.OBJECTTYPE = "PROCVALUE";
realDataCommand.OBJECTPOS = _devPos;
realDataCommand.OBJECTID = _heatProcessNo;
realDataCommand.OBJECTLINKTABLE = "JOB_CAS_OPTINFO";
realDataCommand.OBJECTLINKKEY1 = _smeltingID;
realDataCommand.OBJECTLINKKEY2 = strInOrOut;
realDataCommand.VALUETYPE = "DATE";
realDataCommand.STR_VALUE = System.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 = "ExceptionalUpdateTableField";
//par.args = new object[] { realDataCommand };
//ClientCommon._RemotingHelp.ExecuteMethod(par, out szOut);
if (szOut != "")
MessageBox.Show("命令发送不成功!");
}
}
}
}
private void ucCasTimeInfo1_ClickCellButton(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
{
ClassManualUpdateInfo.SetCellDateTime(e.Cell, _heatProcessNo, this.ob); //弹出时间更新窗体更新时间
}
private void ucCasTimeInfo1_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if (e.KeyCode != Keys.Enter || _heatProcessNo.Length < 11)
return;
this.ucCasTimeInfo1.ultraGrid1.UpdateData();
string keyStr = ucCasTimeInfo1.ultraGrid1.ActiveCell.Column.Key;
DateTime valueStr;
string UptValue = "";
if (keyStr == "ARRIVETIME" || keyStr == "LEAVETIME" ||
keyStr == "BLOWARSTARTTIME" || keyStr == "BLOWARENDTIME" ||
keyStr == "CASSTARTTIME" || keyStr == "CASENDTIME" ||
keyStr == "FEEDSILKBEGINTIME" || keyStr =="FEEDSILKCLOSETIME")
{
try
{
if (ucCasTimeInfo1.ultraGrid1.ActiveCell.Value.ToString() != "")
UptValue = ((DateTime)ucCasTimeInfo1.ultraGrid1.ActiveCell.Value).ToString("yyyy-MM-dd HH:mm");
else
UptValue = "";
//更新时间
ClassManualUpdateInfo.UpdateTableField(_heatProcessNo, "STL_CAS_OPTINFO", keyStr, "DATE",
UptValue, ob);
ucCasTimeInfo1.ultraGrid1.ActiveCell.Value = UptValue;
}
catch (Exception ex)
{
string Msg = ex.Message;
MessageBox.Show("日期输入格式错误,请改正!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
}
}
}
///
/// 将下道工序编码转换为中文名称
///
///
///
private string GetNextProcName(string str)
{
if (str.Length < 5) return "";
switch (str.Substring(0, 5))
{
case "CAS01":
return "1#吹氩站";
case "CAS02":
return "2#吹氩站";
case "CAS03":
return "3#吹氩站";
case "LFS01":
return "1#精炼炉";
case "LFS02":
return "2#精炼炉";
case "LFS03":
return "3#精炼炉";
case "CCM01":
return "1#连铸机";
case "CCM02":
return "2#连铸机";
case "CCM03":
return "3#连铸机";
case "CCM04":
return "0#连铸机";
default:
return "";
}
}
#endregion
#region " Commonly Function "
///
/// 获取当前设备的后台实时跟踪信息
///
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 = "";
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 : "";
_listHeatProcess.Add(szIdle); //Idle (缓冲位)
_listHeatProcess.Add(szFront); //Front (等待位)
_listHeatProcess.Add(szDevice); //device (处理位)
}
catch (Exception ex)
{
string msg = ex.Message;
_listHeatProcess = null;
}
}
///
/// 对获取到的加热处理号进行判断
///
private void JudgeHeatProcess()
{
try
{
if (_listHeatProcess.Count < 3)
return;
_heatProcessNo = "";
_devPos = "";
if (_listHeatProcess[0].ToString().Length > (int)OBJLEN.nHeatProcessNo)
{
string strHeat = _listHeatProcess[0].ToString();
_heatProcessNo = strHeat.Substring(0, (int)OBJLEN.nHeatProcessNo);
_devPos = GetDevIdleCodeOfCas(_DEVICE_POS);
}
if (_listHeatProcess[1].ToString().Length > (int)OBJLEN.nHeatProcessNo)
{
string strHeat = _listHeatProcess[1].ToString();
_heatProcessNo = strHeat.Substring(0, (int)OBJLEN.nHeatProcessNo);
_devPos = GetDevFrontCodeOfCas(_DEVICE_POS);
}
if (_listHeatProcess[2].ToString().Length > (int)OBJLEN.nHeatProcessNo)
{
string strHeat = _listHeatProcess[2].ToString();
_heatProcessNo = strHeat.Substring(0, (int)OBJLEN.nHeatProcessNo);
_devPos = GetDevDeviceCodeOfCas(_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 JudgeSmeltID()
{
if (!this._oldSmelt.Equals(this._smeltingID))
this._oldSmelt = this._smeltingID;
}
///
/// 获取转炉计划信息
///
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("GetCasOptInfo.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[0].ToString().Length > (int)OBJLEN.nHeatProcessNo)
strState = "IDLE";
if (_htOptInfo.Contains("TP"))
_htOptInfo.Remove("TP");
_htOptInfo.Add("TP", SetPic(strState)); // 图片
if (_listHeatProcess.Count >= 3)
{
string szID = _listHeatProcess[2].ToString();
szID = (szID.Length > 8) ? CStaticMethod.getSmeltingID(szID.Substring(0, (int)OBJLEN.nHeatProcessNo)) : "";
if (_htOptInfo.Contains("CLW"))
_htOptInfo.Remove("CLW");
_htOptInfo.Add("CLW", szID); // 处理位
szID = _listHeatProcess[1].ToString();
szID = (szID.Length > 8) ? CStaticMethod.getSmeltingID(szID.Substring(0, (int)OBJLEN.nHeatProcessNo)) : "";
if (_htOptInfo.Contains("DDW"))
_htOptInfo.Remove("DDW");
_htOptInfo.Add("DDW", szID); // 等待位
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); // 缓冲位
}
}
catch { }
}
///
/// 获取吹氩过程添加剂信息
///
private void GetAdditiveData()
{
if (_heatProcessNo == "")
return;
try
{
string strErr = "";
ArrayList arry = new ArrayList();
arry.Add("GetCasAdditiveData.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();
}
}
catch { }
}
///
/// 取各岗位数据表记录
///
private void GetDataOfPost(ArrayList ar)
{
try
{
int nPos = 0;
string szPos = "";
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;
default:
break;
}
}
}
}
}
catch { }
}
///
/// 填充用户控件上面的数据
///
private void FillUserControlData()
{
ucBofPlan1.SetData(_htPlanInfo);
ucCasTimeInfo1.SetData(_htOptInfo);
ucCasDevInfo1.SetData(_htOptInfo);
ucChemelEment1.FillCraftElement();
ucCasPlanTime1.SetData();
}
///
/// 填充温度信息界面数据
///
private void FillTemperatureData()
{
try
{
lock (this)
{
int nRows = 1; // 加一条转炉出钢温度
DataRow[] dr = null, drr = null;
if (_dtSamplingOfCvt != null && _dtSamplingOfCvt.Rows.Count > 0)
dr = _dtSamplingOfCvt.Select("SAMPLINGNAME='TEMPERATURE'", " SAMPLINGDATE DESC");
if (_dtSamplingOfCas != null && _dtSamplingOfCas.Rows.Count > 0)
drr = _dtSamplingOfCas.Select("SAMPLINGNAME='TEMPERATURE'", " SAMPLINGDATE ASC");
if (drr != null && drr.Length > 0)
nRows += drr.Length;
CStaticMethod.ResetTableRows(ref _dtTemperature, nRows);
int i = 0;
#region " 转炉出钢温度 "
string szVal = "";
string szTemp = "";
if (dr != null && dr.Length > 0)
{
szVal = dr[0]["SAMPLINGVALUE"].ToString();
szTemp = dr[0]["SAMPLINGDATE"].ToString();
}
CStaticMethod.SetGridTemperature(ref _dtTemperature, "转炉终点温度", "", szVal,szTemp, i);
i++;
#endregion
#region " 实时值 "
if (drr != null && drr.Length > 0)
{
string str = "";
for (int j = 0; j < drr.Length; j++, i++)
{
if (i ==1)
str = "吹氩进站温度";
else if (i == drr.Length)
str = "吹氩出站温度";
else
str = "吹氩过程温度";
CStaticMethod.SetGridTemperature(ref _dtTemperature, str, "", drr[j]["SAMPLINGVALUE"].ToString(),drr[j]["SAMPLINGDATE"].ToString(), i);
}
}
#endregion
#region " 与标准进行比对 "
// 出钢终点温度
if(dr!=null && dr.Length >0)
CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "LG0201002", ref ulgridTempInfo, 0, "C");
//吹氩站温度
if (drr != null && drr.Length > 0)
{
CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "LG0301002", ref ulgridTempInfo, 1, "D");
CStaticMethod.CompareStandard(_dtCraftStdVal, ref _dtTemperature, "LG0301002", ref ulgridTempInfo, drr.Length, "D");
}
#endregion
}
}
catch (Exception ex)
{
string Msg = ex.Message;
}
}
#region " Del "
///
/// 设置温度数据
///
//private void SetGridTemperature()
//{
// try
// {
// DataRow[] dr = null;
// Decimal dZXZ = 0, dZDZ = 0, dVal = 0;
// #region " 一倒 "
// if (_dtSamplingOfCvt.Rows.Count > 0)
// {
// dr = _dtSamplingOfCvt.Select("SAMPLINGNAME='GSWD'", " SAMPLINGDATE ASC");
// if (dr.Length > 0)
// {
// _dtTemperature.Rows[0]["实际值"] = dr[0]["SAMPLINGVALUE"].ToString();
// dVal = Convert.ToDecimal(dr[0]["SAMPLINGVALUE"]);
// }
// }
// if (_dtCraftStdVal != null && _dtCraftStdVal.Rows.Count > 0)
// {
// try
// {
// dr = _dtCraftStdVal.Select(" CRAFTITEMCODE1 = '03002'");
// if (dr.Length > 0)
// {
// if (dr[0]["ITEMMAXVALUE1"].ToString() != "" && dr[0]["ITEMMINVALUE1"].ToString() != "")
// _dtTemperature.Rows[0]["设定范围"] = dr[0]["ITEMMINVALUE1"].ToString() + "-" + dr[0]["ITEMMAXVALUE1"].ToString();
// else if (dr[0]["ITEMMAXVALUE1"].ToString() != "" && dr[0]["ITEMMINVALUE1"].ToString() == "")
// _dtTemperature.Rows[0]["设定范围"] = "≤ " + dr[0]["ITEMMAXVALUE1"].ToString();
// else if (dr[0]["ITEMMAXVALUE1"].ToString() == "" && dr[0]["ITEMMINVALUE1"].ToString() != "")
// _dtTemperature.Rows[0]["设定范围"] = "> " + dr[0]["ITEMMINVALUE1"].ToString();
// dZXZ = Convert.ToDecimal(dr[0]["ITEMMINVALUE1"]);
// dZDZ = Convert.ToDecimal(dr[0]["ITEMMAXVALUE1"]);
// if ((dVal > 0) && (dVal < dZXZ || dVal > dZDZ))
// ulgridTempInfo.DisplayLayout.Rows[0].Cells["实际值"].Appearance.ForeColor = Color.Red; // 报警显示
// else
// ulgridTempInfo.DisplayLayout.Rows[0].Cells["实际值"].Appearance.ForeColor = Color.Black;
// dZXZ = dZDZ = 0;
// }
// }
// catch { }
// }
// dVal = 0;
// #endregion
// #region " 出钢终点 "
// if (_dtSamplingOfCvt.Rows.Count > 0)
// {
// dr = _dtSamplingOfCvt.Select("SAMPLINGNAME='GSWD'", " SAMPLINGDATE DESC");
// if (dr.Length > 0)
// {
// _dtTemperature.Rows[1]["实际值"] = dr[0]["SAMPLINGVALUE"].ToString();
// }
// }
// if (_dtCraftStdVal != null && this._dtCraftStdVal.Rows.Count > 0)
// {
// try
// {
// dr = _dtCraftStdVal.Select(" CRAFTITEMCODE1 = '03001'");
// if (dr.Length > 0)
// {
// if (dr[0]["ITEMMAXVALUE1"].ToString() != "" && dr[0]["ITEMMINVALUE1"].ToString() != "")
// _dtTemperature.Rows[1]["设定范围"] = dr[0]["ITEMMINVALUE1"].ToString() + "-" + dr[0]["ITEMMAXVALUE1"].ToString();
// else if (dr[0]["ITEMMAXVALUE1"].ToString() != "" && dr[0]["ITEMMINVALUE1"].ToString() == "")
// _dtTemperature.Rows[1]["设定范围"] = "≤ " + dr[0]["ITEMMAXVALUE1"].ToString();
// else if (dr[0]["ITEMMAXVALUE1"].ToString() == "" && dr[0]["ITEMMINVALUE1"].ToString() != "")
// _dtTemperature.Rows[1]["设定范围"] = "> " + dr[0]["ITEMMINVALUE1"].ToString();
// dZXZ = Convert.ToDecimal(dr[0]["ITEMMINVALUE1"]);
// dZDZ = Convert.ToDecimal(dr[0]["ITEMMAXVALUE1"]);
// if ((dVal > 0) && (dVal < dZXZ || dVal > dZDZ))
// this.ulgridTempInfo.DisplayLayout.Rows[1].Cells["实际值"].Appearance.ForeColor = Color.Red; // 报警显示
// else
// this.ulgridTempInfo.DisplayLayout.Rows[1].Cells["实际值"].Appearance.ForeColor = Color.Black;
// }
// }
// catch { }
// }
// #endregion
// #region " 吹氩氩前 "
// if (_dtSamplingOfCas.Rows.Count > 0)
// {
// dr = this._dtSamplingOfCas.Select("SAMPLINGNAME='GSWD'", " SAMPLINGDATE ASC");
// if (dr.Length > 0)
// _dtTemperature.Rows[2]["实际值"] = dr[0]["SAMPLINGVALUE"].ToString();
// }
// #endregion
// #region " 吹氩在站 "
// if (_dtSamplingOfCas.Rows.Count > 0)
// {
// dr = this._dtSamplingOfCas.Select("SAMPLINGNAME='GSWD'", " SAMPLINGDATE DESC");
// if (dr.Length > 0)
// {
// _dtTemperature.Rows[3]["实际值"] = dr[0]["SAMPLINGVALUE"].ToString();
// dVal = Convert.ToDecimal(_dtTemperature.Rows[3]["实际值"]);
// }
// }
// #endregion
// #region " 吹氩氩后 "
// if (_dtSamplingOfCas.Rows.Count > 0)
// {
// dr = this._dtSamplingOfCas.Select("SAMPLINGNAME='GSWD'", " SAMPLINGDATE DESC");
// if (dr.Length > 0)
// {
// _dtTemperature.Rows[4]["实际值"] = dr[0]["SAMPLINGVALUE"].ToString();
// dVal = Convert.ToDecimal(_dtTemperature.Rows[4]["实际值"]);
// }
// }
// #endregion
// }
// catch (Exception ex)
// {
// string Msg = ex.Message;
// }
// ulgridTempInfo.Refresh();
//}
#endregion
///
/// 添加过程添加剂数据到界面
///
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_CAS_ADDITIVES obj = (JOB_CAS_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_CAS_ADDITIVES obj = (JOB_CAS_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_CAS_ADDITIVES obj = (JOB_CAS_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 GetDevDeviceCodeOfCas(int nDevNo)
{
string strDevID = "";
if (nDevNo >= 10) return "";
switch (nDevNo)
{
case (int)DeviceCode.CAS:
strDevID = "CAS_DEVICE";
break;
case (int)DeviceCode.CAS01:
case (int)DeviceCode.CAS02:
case (int)DeviceCode.CAS03:
strDevID = String.Format("CAS{0,2}_DEVICE", nDevNo);
break;
}
strDevID = strDevID.Replace(" ", "0");
return strDevID;
}
private string GetDevFrontCodeOfCas(int nDevNo)
{
string strDevID = "";
if (nDevNo >= 10) return "";
switch (nDevNo)
{
case (int)DeviceCode.CAS:
strDevID = "CAS_FRONT";
break;
case (int)DeviceCode.CAS01:
case (int)DeviceCode.CAS02:
case (int)DeviceCode.CAS03:
strDevID = String.Format("CAS{0,2}_FRONT", nDevNo);
break;
}
strDevID = strDevID.Replace(" ", "0");
return strDevID;
}
private string GetDevIdleCodeOfCas(int nDevNo)
{
string strDevID = "";
if (nDevNo >= 10) return "";
switch (nDevNo)
{
case (int)DeviceCode.CAS:
strDevID = "CAS_IDLE";
break;
case (int)DeviceCode.CAS01:
case (int)DeviceCode.CAS02:
case (int)DeviceCode.CAS03:
strDevID = String.Format("CAS{0,2}_IDLE", 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 CasAdditive obj)
{
try
{
obj.ClearElement();
PropertyInfo[] PropertyInfos = null;
foreach (DataRow dr in ds.Tables[0].Rows)
{
JOB_CAS_ADDITIVES detail = new JOB_CAS_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 = "CAS01";
_DEVICE_POS = 1;
break;
case "2":
_DEVICE_POSITION = "CAS02";
_DEVICE_POS = 2;
break;
case "3":
_DEVICE_POSITION = "CAS03";
_DEVICE_POS = 3;
break;
default:
break;
}
}
///
/// 设置用户控件委托
///
private void SetUserControlDelegate()
{
ucCasDevInfo1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucCasDevInfo1_ClickCellButton);
ucCasDevInfo1.ultraGrid1.CellListSelect += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucCasDevInfo1_CellListSelect);
ucCasTimeInfo1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucCasTimeInfo1_ClickCellButton);
ucBofPlan1.ultraGrid1.ClickCellButton += new Infragistics.Win.UltraWinGrid.CellEventHandler(ucBofPlan1_ClickCellButton);
ucCasTimeInfo1.ultraGrid1.KeyDown += new KeyEventHandler(ucCasTimeInfo1_KeyDown);
ucCasDevInfo1.ultraGrid1.KeyDown += new KeyEventHandler(ucCasDevInfo1_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) // 如果已经清空,则直接返回
{
ucCasDevInfo1.ResetData();
ucBofPlan1.ResetData();
ucCasTimeInfo1.ResetData();
ucChemelEment1.ResetData();
ClearGridData();
_htPlanInfo.Clear();
_htOptInfo.Clear();
ucCasPlanTime1.ResetData();
_bResetDataFlag = true;
}
}
///
/// 根据设备状态设置图片显示
///
///
///
private Image SetPic(string strState)
{
int index = 0;
switch (strState)
{
case "IDLE":
index = 4;
break;
case "LADLEARRIVE":
index = 1;
break;
case "SLAGBUILD":
index = 1;
break;
case "FEEDSILK":
index = 1;
break;
case "BLOWING":
index = 3;
break;
case "FINISH":
index = 3;
break;
case "LADLEDEPARTURE":
index = 0;
break;
case "REPAIR":
index = 2;
break;
case "WORK":
break;
default:
break;
}
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
{
object obj = null;// ClientCommon._RemotingHelp.ExecuteMethod(par, out outErrStr);
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 "
///
/// 验证输入的是否是数字(手动投料)
///
///
///
private void ulgridHndMtr_CellChange(object sender, Infragistics.Win.UltraWinGrid.CellEventArgs e)
{
if (ulgridHndMtr.ActiveCell.Text != "")
CStaticMethod.CheckNumValidate(ulgridHndMtr.ActiveCell.Text);
}
///
/// 手投料录入(通过弹出数字鍵盘)
///
///
///
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_DoubleClickHeader(object sender, Infragistics.Win.UltraWinGrid.DoubleClickHeaderEventArgs e)
{
//设置手投料
ClassManualUpdateInfo.SetHatMaterial(ulgridHndMtr.ActiveCell, ref e, _DEVICE_POSITION, this.ob);
}
///
/// 发送钢包号
///
private void AfirmSteelPot()
{
#region " BOF01 "
string Key = "BOF01" + "_BACK", szDevice = "", szLH1 = "", szLH2 = "", szLH3 = "";
RealDataTrackObjectInfor objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key];
if (objTrack != null)
szDevice = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID : "";
if (szDevice == "")
{
Key = "BOF01" + "_DEVICE";
objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key];
if (objTrack != null)
szDevice = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID : "";
}
if (szDevice == "")
{
Key = "BOF01" + "_FRONT";
objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key];
if (objTrack != null)
szDevice = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID : "";
}
if (szDevice != "")
szLH1 = CStaticMethod.getSmeltingID(szDevice);
//判断是否是提钒
if (szDevice != "" && szDevice.Substring(0, 1) == "V") szLH1 = "V" + szLH1;
#endregion
#region " BOF02 "
Key = "BOF02" + "_BACK";
objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key];
if (objTrack != null)
szDevice = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID : "";
if (szDevice == "")
{
Key = "BOF02" + "_DEVICE";
objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key];
if (objTrack != null)
szDevice = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID : "";
}
if (szDevice == "")
{
Key = "BOF02" + "_FRONT";
objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key];
if (objTrack != null)
szDevice = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID : "";
}
if (szDevice != "")
szLH2 = CStaticMethod.getSmeltingID(szDevice);
//判断是否是提钒
if (szDevice != "" && szDevice.Substring(0, 1) == "V") szLH2 = "V" + szLH2;
#endregion
#region " BOF03 "
Key = "BOF03" + "_BACK";
objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key];
if (objTrack != null)
szDevice = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID : "";
if (szDevice == "")
{
Key = "BOF03" + "_DEVICE";
objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key];
if (objTrack != null)
szDevice = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID : "";
}
if (szDevice == "")
{
Key = "BOF03" + "_FRONT";
objTrack = (RealDataTrackObjectInfor)_objTrackBuffer.hList[Key];
if (objTrack != null)
szDevice = (!string.IsNullOrEmpty(objTrack.OBJECTID)) ? objTrack.OBJECTID : "";
}
if (szDevice != "")
szLH3 = CStaticMethod.getSmeltingID(szDevice);
//判断是否是提钒
if (szDevice != "" && szDevice.Substring(0, 1) == "V") szLH3 = "V" + szLH3;
#endregion
frmSendSteelPot frmBOF = new frmSendSteelPot(szLH1, szLH2, szLH3);
frmBOF.ShowDialog();
}
///
/// 功能按钮控制区
///
///
///
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;
}
}
frmCasResults frmCYSJ = new frmCasResults();
frmCYSJ.MdiParent = this.MdiParent;
frmCYSJ.Text = szStr;
frmCYSJ.Tag = frmCYSJ.Text;
frmCYSJ.Key = "Core.LgMes.Client.LgResMgt.frmCasResults";
frmCYSJ.CustomInfo = _DEVICE_POSITION;
frmCYSJ.Toolbar = CStaticMethod.GetFromToolInfo(frmCYSJ.Key, frmCYSJ.CustomInfo, this.ob);
frmCYSJ.ob = this.ob;
frmCYSJ.Show();
break;
case "btnPotAffirm": // 钢包确认
AfirmSteelPot();
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;
}
}
reportCASData frmReport = new reportCASData();
frmReport.MdiParent = this.MdiParent;
frmReport.Text = szRcd;
frmReport.Tag = frmReport.Text;
frmReport.Key = "Core.LgMes.Client.Report.reportCASData";
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 "POTOK":
/*
* 功能描述:只有指定IP 地址电脑才可以做确认
* 修改人:ym
* 修改时间:20140218
*/
if (!this.isCorrectMac())
{
MessageBox.Show("您没有操作权限!,只有指定电脑可以操作", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
try
{
Core.LgMes.Client.LgDeviceManager.FrmCasAffirm frmPAF = new Core.LgMes.Client.LgDeviceManager.FrmCasAffirm(ob);
frmPAF.Location = CStaticMethod.GetChildWindowLocation(frmPAF.Size);
frmPAF.StartPosition = FormStartPosition.CenterParent;
frmPAF.ShowDialog();
}
catch (Exception ex)
{
MessageBox.Show("钢包确认界面打开失败:" + ex.Message);
}
break;
case "Exit":
this.Close();
break;
default:
break;
}
}
///
/// 双击打开料仓配置界面(自动加料)
///
///
///
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 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);
}
#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 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(), "CAS0" + _DEVICE_POS);
frmmbchem.Location = CStaticMethod.GetChildWindowLocation(frmmbchem.Size);
frmmbchem.ShowDialog();
}
private void ulgridFeedMtr_DoubleClickCell(object sender, Infragistics.Win.UltraWinGrid.DoubleClickCellEventArgs e)
{
frmMtrBatchChem frmmbchem = new frmMtrBatchChem(ulgridFeedMtr.DisplayLayout.Bands[0].Columns[e.Cell.Column.Key.ToString()].Tag.ToString(),
e.Cell.Column.Key.ToString(), "CAS0" + _DEVICE_POS);
frmmbchem.Location = CStaticMethod.GetChildWindowLocation(frmmbchem.Size);
frmmbchem.ShowDialog();
}
///
/// 返回允许操作的电脑IP地址or物理地址
///
///
private List getAllCorrectPriAddress()
{
List list = new List();
try
{
/*DataSet ds = this.returnDataSet(returnScm_Base_InfoBySort_Code("400308"));//Core.Mes.Client.Common.lgCommon.returnScm_Base_InfoBySort_Code("400308")
if (ds != null & ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
list.Add(dr["BASENAME"].ToString().Trim());
}
}*/
list.Add("10.160.70.177");
list.Add("172.16.50.213");
list.Add("172.16.10.213");
list.Add("172.16.0.207");
list.Add("10.160.70.176");
list.Add("192.168.204.32");
list.Add("192.168.94.129");
}
catch(Exception ex)
{
MessageBox.Show("获取IP配置失败:" + ex.Message);
return list;
}
return list;
}
///
/// 返回2钢基础数据sq by 分类编码
///
///
///
public static string returnScm_Base_InfoBySort_Code(string sortCode)
{
string sqlStr = SqlCollection.returnScm_Base_InfoByAllCondition(string.Format(" and sortcode = '{0}'", sortCode));
return sqlStr;
}
///
/// 获取某一电脑iP
///
///
public List returnLocalComputerIpAddress()
{
List list = new List();
try
{
System.Net.IPAddress[] addressList = System.Net.Dns.GetHostEntry(Dns.GetHostName()).AddressList;
foreach (System.Net.IPAddress iplist in addressList)
{
list.Add(iplist.ToString());
}
}
catch (Exception e)
{
MessageBox.Show("IP地址获取失败:" + e.Message);
return null;
}
return list;
}
private bool isCorrectMac()
{
try
{
List ipAddress = new List();
ipAddress = this.returnLocalComputerIpAddress();
List ipList = this.getAllCorrectPriAddress()/*Core.Mes.Client.Common.lgCommon.getAllCorrectPriAddress()*/;
foreach (string s in ipAddress)
{
if (ipList.Contains(s))
return true;
}
return false;
}
catch (Exception e)
{
MessageBox.Show("IP地址判断失败:"+e.Message);
return false;
}
}
private DataSet returnDataSet(string sqlStr)
{
DataSet ds = new DataSet();
try
{
CoreFS.CA06.FrmBase fr = new FrmBase();
fr.ob = ob;
CoreClientParam CCP_Query = new CoreClientParam();
DataTable dt = new DataTable();
CCP_Query.ServerName = "Core.LgMes.Server.Common.ComDBQuery";
CCP_Query.MethodName = "doSimpleQuery";
CCP_Query.ServerParams = new object[] { sqlStr };
CCP_Query.SourceDataTable = dt;
fr.ExecuteQueryToDataTable(CCP_Query, CoreInvokeType.Internal);
ds.Tables.Add(dt);
}
catch
{
}
return ds;
}
}
}