using System;
using System.Data;
using System.Windows.Forms;
using Core.Mes.Client.Common;
using System.Collections;
using Core.LgMes.Client.Comm;
namespace Core.LgMes.Client.LgJobMgt
{
public partial class frmManualOperate : Form
{
public CoreFS.CA06.OpeBase ob;
public string strStationCode = ""; //岗位编号
public bool blTrade = false; //是否有切换工位信息
public string strOldPos = ""; //原始工位
public string strObjectPos = ""; //目标位置
public string strOptcommandType = "";//操作命令类型
public string strOptcaption = ""; //操作说明
public string strNormalOpt = ""; //操作类型(正常操作、异常操作、互换信息)
public frmManualOperate()
{
InitializeComponent();
}
private void frmManualOperate_Load(object sender, EventArgs e)
{
InitializeInfo();
}
///
/// 初始化所有信息
///
private void InitializeInfo()
{
//初始化标题
string strChineseName = CStaticMethod.analysChineseName(strStationCode);
this.Text = strChineseName + "工序手动操作";
if (strStationCode == "LFS" || strStationCode == "RHS" || strStationCode == "VDS")
blTrade = true;
//初始切换工位信息功能
if (blTrade == true)
ultegbTradeOpt.Visible = true;
else
{
if (strStationCode == "CCM")
this.Width = this.Width - ultegbTradeOpt.Width + 50;
else
this.Width = this.Width - ultegbTradeOpt.Width;
}
//作业手动操作配置信息
GetManualOperateInfo();
//初始化加载窗体时默认正常操作
InitializeLoadDefaultOpt();
}
///
/// 初始化手动操作OptionSet控件
///
private void InitializeOptSet(Infragistics.Win.UltraWinEditors.UltraOptionSet ultost)
{
//正常操作
for (int i = 0; i < ultosNormalOpt.Items.Count; i++)
{
ultosNormalOpt.Items[i].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.Default;
if (ultost != ultosNormalOpt)
ultosNormalOpt.Value = false;
}
//异常操作
for (int i = 0; i < ultosExpOpt.Items.Count; i++)
{
ultosExpOpt.Items[i].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.Default;
if (ultost != ultosExpOpt)
ultosExpOpt.Value = false;
}
//切换工位信息
for (int i = 0; i < ultosTradeOpt.Items.Count; i++)
{
ultosTradeOpt.Items[i].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.Default;
if (ultost != ultosTradeOpt)
ultosTradeOpt.Value = false;
}
}
///
/// 初始化加载窗体时默认正常操作
///
private void InitializeLoadDefaultOpt()
{
foreach (Infragistics.Win.ValueListItem vli in ultosNormalOpt.Items)
{
if (strStationCode == "HMP")
{
ValueListItem listvalue = (ValueListItem)vli.DataValue;
//根据炉次所在工位默认作操
switch (strOldPos)
{
case "DEVICE": //处理位
if (listvalue.ID == "_OVER") ultosNormalOpt.CheckedItem = vli;
break;
case "FRONT": //小车位
if (listvalue.ID == "_DEVICE") ultosNormalOpt.CheckedItem = vli;
break;
default:
break;
}
}
if (strStationCode == "BOF")
{
ValueListItem listvalue =(ValueListItem) vli.DataValue;
//根据炉次所在工位默认作操
switch (strOldPos)
{
case "DEVICE": //吹炼位
if (listvalue.ID == "_BACK") ultosNormalOpt.CheckedItem = vli;
break;
case "BACK": //出钢位
if (listvalue.ID == "_IDLE") ultosNormalOpt.CheckedItem = vli;
break;
default:
break;
}
}
if (strStationCode == "CAS")
{
ValueListItem listvalue = (ValueListItem)vli.DataValue;
//根据炉次所在工位默认作操
switch (strOldPos)
{
case "IDLE": //缓冲位
case "FRONT": //等待位
if (listvalue.ID == "_FRONT") ultosNormalOpt.CheckedItem = vli;
break;
case "DEVICE": //处理位
if (listvalue.ID == "_IDLE" && listvalue.Name=="出站") ultosNormalOpt.CheckedItem = vli;
break;
default:
break;
}
}
if (strStationCode == "LFS")
{
ValueListItem listvalue = (ValueListItem)vli.DataValue;
//根据炉次所在工位默认作操
switch (strOldPos)
{
case "IDLE": //缓冲位
case "FRONT": //1#小车
case "BACK": //2#小车
if (listvalue.ID == "_DEVICE") ultosNormalOpt.CheckedItem = vli;
break;
case "DEVICE": //处理位
if (listvalue.ID == "_IDLE" && listvalue.Name == "出站") ultosNormalOpt.CheckedItem = vli;
break;
default:
break;
}
}
if (strStationCode == "RHS")
{
ValueListItem listvalue = (ValueListItem)vli.DataValue;
//根据炉次所在工位默认作操
switch (strOldPos)
{
case "IDLE": //缓冲位
case "FRONT": //1#小车
case "BACK": //2#小车
if (listvalue.ID == "_DEVICE") ultosNormalOpt.CheckedItem = vli;
break;
case "DEVICE": //处理位
if (listvalue.ID == "_IDLE" && listvalue.Name == "出站") ultosNormalOpt.CheckedItem = vli;
break;
default:
break;
}
}
if (strStationCode == "VDS")
{
ValueListItem listvalue = (ValueListItem)vli.DataValue;
//根据炉次所在工位默认作操
switch (strOldPos)
{
case "IDLE": //缓冲位
if (listvalue.ID == "_FRONT") ultosNormalOpt.CheckedItem = vli;
break;
case "FRONT": //1#处理位
case "DEVICE": //2#处理位
case "BACK": //2#处理位
if (listvalue.ID == "_IDLE" && listvalue.Name == "出站") ultosNormalOpt.CheckedItem = vli;
break;
default:
break;
}
}
if (strStationCode == "CCM")
{
ValueListItem listvalue = (ValueListItem)vli.DataValue;
//根据炉次所在工位默认作操
switch (strOldPos)
{
case "IDLE": //缓冲位
if (listvalue.ID == "_FRONT") ultosNormalOpt.CheckedItem = vli;
break;
case "FRONT": //换包位
if (listvalue.ID == "_DEVICE") ultosNormalOpt.CheckedItem = vli;
break;
case "DEVICE": //2#处理位
if (listvalue.ID == "_OVER" && listvalue.Name == "大包下台") ultosNormalOpt.CheckedItem = vli;
break;
default:
break;
}
}
}
}
///
/// 查询作业手动操作配置信息
///
private void GetManualOperateInfo()
{
string strErr = "";
int intNormaOptIndex = 0;
int intExpOptIndex = 0;
int intTradeOptIndex = 0;
if (strStationCode == "") return;
ArrayList arry = new ArrayList();
arry.Add("GetManualOperateInfo.Select");//此ID为XML文件ID
arry.Add(strStationCode);
CommonClientToServer cctos = new CommonClientToServer();
cctos.ob = ob;
//查询作业手动操作配置信息
DataSet ds = cctos.ExecuteQueryFunctions("Core.LgMes.Server.LgJobMgt.ClassCommonModule",
"GetManualOperateInfo", arry, out strErr);
if (strErr == "" && ds != null)
{
DataTable dtOpt = ds.Tables[0];
foreach (DataRow drOpt in dtOpt.Rows)
{
//正常操作
if (drOpt["OPTTYPE"].ToString() == "1")
{
ultosNormalOpt.Items.Add(new ValueListItem( drOpt["OBJECTPOS"].ToString(), drOpt["OPTCAPTION"].ToString() ));
ultosNormalOpt.Items[intNormaOptIndex].Tag = drOpt["OPTCOMMANDTYPE"].ToString();
intNormaOptIndex++;
}
//异常操作
if (drOpt["OPTTYPE"].ToString() == "2")
{
ultosExpOpt.Items.Add(new ValueListItem(drOpt["OBJECTPOS"].ToString(), drOpt["OPTCAPTION"].ToString()));
ultosExpOpt.Items[intExpOptIndex].Tag = drOpt["OPTCOMMANDTYPE"].ToString();
intExpOptIndex++;
}
//切换工位信息
if (drOpt["OPTTYPE"].ToString() == "3")
{
ultosTradeOpt.Items.Add(new ValueListItem(drOpt["OBJECTPOS"].ToString(), drOpt["OPTCAPTION"].ToString()));
ultosTradeOpt.Items[intTradeOptIndex].Tag = drOpt["OPTCOMMANDTYPE"].ToString();
intTradeOptIndex++;
}
}
}
}
///
/// 确认作业手动操作
///
private void ConfirmManualOpterate()
{
if (ultosNormalOpt.CheckedItem != null)
{
ValueListItem vli = (ValueListItem)ultosNormalOpt.CheckedItem.DataValue;
strObjectPos = vli.ID;
strOptcaption = vli.Name;
strOptcommandType = ultosNormalOpt.CheckedItem.Tag.ToString();
strNormalOpt = "1";
}
if (ultosExpOpt.CheckedItem != null)
{
ValueListItem vli = (ValueListItem)ultosExpOpt.CheckedItem.DataValue;
strObjectPos = vli.ID;
strOptcaption = vli.Name;
strOptcommandType = ultosExpOpt.CheckedItem.Tag.ToString();
strNormalOpt = "2";
}
if (ultosTradeOpt.CheckedItem != null)
{
ValueListItem vli = (ValueListItem)ultosTradeOpt.CheckedItem.DataValue;
strObjectPos = vli.ID;
strOptcaption = vli.Name;
strOptcommandType = ultosTradeOpt.CheckedItem.Tag.ToString();
strNormalOpt = "3";
}
}
private void ultosNormalOpt_ValueChanged(object sender, EventArgs e)
{
Infragistics.Win.UltraWinEditors.UltraOptionSet ultOs = (Infragistics.Win.UltraWinEditors.UltraOptionSet)sender;
if (ultOs.ValueList.SelectedIndex != -1)
ultOs.Items[ultOs.ValueList.SelectedIndex].Appearance.FontData.Bold = Infragistics.Win.DefaultableBoolean.True;
}
private void ultosNormalOpt_Click(object sender, EventArgs e)
{
Infragistics.Win.UltraWinEditors.UltraOptionSet ultOs = (Infragistics.Win.UltraWinEditors.UltraOptionSet)sender;
InitializeOptSet(ultOs);
}
private void ulttbmMain_ToolClick(object sender, Infragistics.Win.UltraWinToolbars.ToolClickEventArgs e)
{
switch (e.Tool.Key)
{
case "Confirm": //确认作业手动操作
strObjectPos = "";
strOptcommandType = "";
ConfirmManualOpterate();
this.Close();
break;
case "Cancel":
this.Close();
break;
default:
break;
}
}
}
}