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