using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using DBFactory; using System.ServiceModel; using Microsoft.VisualBasic; namespace wcfControlMonitorClient { /// /// Creator:Richard.liu /// 下达手工任务--单一设备 /// public partial class FrmHandCommand : Form { Model.MDevice deviceInfo; private static FrmHandCommand _formInstance; public static FrmHandCommand FormInstance { get { if (_formInstance == null) { _formInstance = new FrmHandCommand(); } return _formInstance; } set { _formInstance = value; } } DBOperator dbo = CStaticClass.dbo; #region ====变量定义 CommonClassLib.UCellPanel cellPanel = null; #endregion public FrmHandCommand() { InitializeComponent(); _formInstance = this; dbo.Open(); } private void FrmHandCommand_Load(object sender, EventArgs e) { this.cbInWorkBench.SelectedIndex = 2; this.comboBox1.SelectedIndex = 0; if (cellPanel == null) { cellPanel = new CommonClassLib.UCellPanel(this, txtCellCode, null, string.Empty); cellPanel.TaskType = "100"; cellPanel.GoodsName = ""; cellPanel.Dock = DockStyle.Fill; cellPanel.AllowWareHouseChanged = false; plCell.Controls.Add(cellPanel); } //20090910 and F_DBW1Address is not null DataView dv = dbo.ExceSQL("SELECT T_Base_Device.F_DeviceIndex, T_Base_Device.F_DeviceKindIndex," + " T_Base_Device.F_DeviceName, T_Base_Device_Kind.F_GoodsMoveKindIndex FROM T_Base_Device,T_Base_Device_Kind " + " where T_Base_Device.F_DeviceKindIndex = T_Base_Device_Kind.F_DeviceKindIndex and F_DBW1Address is not null and " + " (T_Base_Device_Kind.F_GoodsMoveKindIndex = 1 OR T_Base_Device_Kind.F_GoodsMoveKindIndex = 2) order by T_Base_Device.F_DeviceIndex").Tables[0].DefaultView; if (dv.Count > 0) { this.cbDeviceName.DisplayMember = "F_DeviceName"; this.cbDeviceName.ValueMember = "F_DeviceIndex"; this.cbDeviceName.DataSource = dv; this.cbDeviceName.Text = ""; this.cbDeviceName.SelectedValue = 0; } txtCellCode.Text = ""; } private void cbDeviceName_SelectedIndexChanged(object sender, EventArgs e) { DataView dv; this.cbDeviceCommand.DataSource=null; DataSet ds = dbo.ExceSQL("SELECT T_Base_Device.F_DeviceKindIndex, F_DeviceCommandName,F_DeviceCommandIndex FROM " + "T_Base_Device , T_Base_Device_Command WHERE T_Base_Device.F_DeviceKindIndex"+ "= T_Base_Device_Command.F_DeviceKindIndex and F_DeviceIndex=" + Convert.ToInt32(cbDeviceName.SelectedValue) + " and F_DeviceCommandIndex != -1"); if (ds.Tables[0].DefaultView.Count > 0) { deviceInfo = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(cbDeviceName.SelectedValue)); //if (deviceInfo.IfCorrelDoubleFork == "1" && deviceInfo.DeviceKind==1) if (deviceInfo.IfCorrelDoubleFork == "1") { pnDblFork.Visible = true; } else { pnDblFork.Visible = false; } if (deviceInfo.DeviceKind == 13) { pnGd.Visible = true; } else { pnGd.Visible = false; } this.cbDeviceCommand.DisplayMember = "F_DeviceCommandName"; this.cbDeviceCommand.ValueMember = "F_DeviceCommandIndex"; this.cbDeviceCommand.DataSource = ds.Tables[0].DefaultView; this.cbDeviceCommand.Text = ""; this.cbDeviceCommand.SelectedValue = 0; int rgvdev = 0;//20130510 switch (CStaticClass.GetDeviceKindIdx (Convert.ToInt32(cbDeviceName.SelectedValue))) { case 1://堆垛机 int devic=deviceInfo.DeviceIndex; if (deviceInfo.VirtualStack>0) { devic = deviceInfo.VirtualStack; } dv = dbo.ExceSQL("SELECT F_DeviceIndex, F_DeviceName FROM T_Base_Lane_Gate,T_Base_LaneInfo,T_Base_Device where F_LaneIndex = F_LaneDeviceIndex and T_Base_LaneInfo.F_StackIndex=" + devic + " and T_Base_Lane_Gate.F_LaneGateDeviceIndex=T_Base_Device.F_DeviceIndex" + " order by F_DeviceIndex").Tables[0].DefaultView; if (dv.Count > 0) { cbEndPosition.DataSource = null; cbEndPosition.DisplayMember = "F_DeviceName"; cbEndPosition.ValueMember = "F_DeviceIndex"; cbEndPosition.DataSource =dv; txtCellCode.Enabled = true; comboBox1.Enabled = true; DataView dv1 = dbo.ExceSQL(string.Format("SELECT F_ForkAmount FROM T_Base_StackInfo WHERE (F_StackIndex = {0})", Convert.ToInt32(cbDeviceName.SelectedValue))).Tables[0].DefaultView; if (dv1.Count > 0) { comboBox1.Items.Clear(); for (int j = 1; j <= Convert.ToInt32(dv1[0]["F_ForkAmount"]); j++) { comboBox1.Items.Add(j); } comboBox1.Text = "0"; } else { comboBox1.Text = "0"; } plCell.Enabled = true; cellPanel.StackDevice =devic.ToString(); cellPanel.WareHouse = GetWarehouse(devic); } break; case 2://输送机 dv = dbo.ExceSQL("SELECT F_DeviceIndex, F_DeviceName FROM T_Base_Device WHERE F_DeviceKindIndex =2 and F_DBW1Address is not null and f_s7connection='" + deviceInfo.S7Connection + "'" + " order by F_DeviceIndex").Tables[0].DefaultView; if (dv.Count > 0) { cbEndPosition.DataSource = null; cbEndPosition.DisplayMember = "F_DeviceName"; cbEndPosition.ValueMember = "F_DeviceIndex"; cbEndPosition.DataSource = dv; txtCellCode.Enabled = false; comboBox1.Enabled = false; plCell.Enabled = false; } if (deviceInfo.IfCorrelDoubleFork == "1") { comboBox1.Text = "1"; } else { comboBox1.Text = "0"; } break; case 13://高端输送机 comboBox1.Text = "0"; dv = dbo.ExceSQL(string.Format("SELECT FUCONVEYOR,F_DeviceName FROM ST_CELL,T_Base_Device WHERE FUCONVEYOR = F_DeviceIndex and (FUCODE = {0})", Convert.ToInt32(this.cbDeviceName.SelectedValue))).Tables[0].DefaultView; if (dv.Count > 0) { cbBeginDev.DataSource = null; cbBeginDev.DisplayMember = "F_DeviceName"; cbBeginDev.ValueMember = "FUCONVEYOR"; cbBeginDev.DataSource = dv; DataView dv1 = dbo.ExceSQL(string.Format("SELECT FUCONVEYOR,F_DeviceName FROM ST_CELL,T_Base_Device WHERE FUCONVEYOR = F_DeviceIndex and (FUCODE = {0})", Convert.ToInt32(this.cbDeviceName.SelectedValue))).Tables[0].DefaultView; cbEndDev.DataSource = null; cbEndDev.DisplayMember = "F_DeviceName"; cbEndDev.ValueMember = "FUCONVEYOR"; cbEndDev.DataSource = dv1; txtCellCode.Enabled = false; comboBox1.Enabled = false; plCell.Enabled = false; } break; case 4://RGV comboBox1.Text = "0"; //20130510 if (Convert.ToInt32(cbDeviceName.SelectedValue) == 23004) { rgvdev = 23002; } else if (Convert.ToInt32(cbDeviceName.SelectedValue) == 13004) { rgvdev = 13002; } else if((Convert.ToInt32(cbDeviceName.SelectedValue) == 35401) || (Convert.ToInt32(cbDeviceName.SelectedValue) == 35402) || (Convert.ToInt32(cbDeviceName.SelectedValue) == 35403))//gjn更改手工任务直穿无法查找到对应站台 { rgvdev = 35400; } else { rgvdev = Convert.ToInt32(cbDeviceName.SelectedValue); } pnGd.Visible = false; dv = dbo.ExceSQL("SELECT F_RGVGateDeviceIndex,F_DeviceName FROM T_Base_Device,T_Base_RGV_Gate WHERE F_DeviceIndex=F_RGVGateDeviceIndex and F_ChannelsIndex =" + rgvdev).Tables[0].DefaultView;//20130510 if (dv.Count > 0) { cbEndPosition.DataSource = null; cbEndPosition.DisplayMember = "F_DeviceName"; cbEndPosition.ValueMember = "F_RGVGateDeviceIndex"; cbEndPosition.DataSource = dv; comboBox1.Enabled = false; txtCellCode.Enabled = false; plCell.Enabled = false; } break; } this.cbEndPosition.Text = ""; txtCellCode.Text = ""; } } private void button1_Click(object sender, EventArgs e) { if (MessageBox.Show("您确认要增加手工任务吗?", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK) { return; } if (tbFPALLETBARCODE.Text.Trim().Length !=8) {//20230815richard.liu MessageBox.Show("条码不够8位字符!", "误操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //向调度任务表插入手工任务,管理类型4, //管理索引(如果调度任务表没有手工任务, //在T_Base_Manage_Task_Index_Hand_Task表去找个基数然后加一) try { //20090910 if (cbDeviceName.SelectedValue == null) { MessageBox.Show("请选择设备!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.cbDeviceName.Focus(); return; } if (this.cbDeviceName.Text.Trim() == "") { MessageBox.Show("请选择设备!","操作提示:",MessageBoxButtons.OK,MessageBoxIcon.Warning); this.cbDeviceName.Focus(); return; } if (this.cbDeviceCommand.Text.Trim() == "") { MessageBox.Show("请选择设备命令!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.cbDeviceCommand.Focus(); return; } if ((cbDeviceCommand.Text == "复位") || (cbDeviceCommand.Text == "回原点")) { } else { if (this.txtCellCode.Enabled == true) { DataView dv0; if (this.cbEndPosition.Text == "立库货位") { int fstack = 0; if (cbDeviceName.SelectedValue.ToString() == "35001" || cbDeviceName.SelectedValue.ToString() == "35002") { fstack = 35000; } else { fstack = Convert.ToInt32(cbDeviceName.SelectedValue); } dv0 = dbo.ExceSQL(string.Format("SELECT FCELLCODE FROM ST_CELL WHERE FStack={0} and (FCELLCODE ='{1}')", fstack, txtCellCode.Text)).Tables[0].DefaultView; if (dv0.Count <= 0) { MessageBox.Show("请输入或选择合适的货位编码!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.txtCellCode.Focus(); return; } } else { int ep = -1; if (cbEndPosition.SelectedValue == null) { MessageBox.Show("请输入或选择合适的终点位置!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.txtCellCode.Focus(); return; } int.TryParse(cbEndPosition.SelectedValue.ToString(), out ep); if (ep == -1) { MessageBox.Show("请输入或选择合适的终点位置!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.txtCellCode.Focus(); return; } dv0 = dbo.ExceSQL("SELECT F_LaneGateDeviceIndex FROM T_Base_Lane_Gate where F_LaneGateDeviceIndex=" + cbEndPosition.SelectedValue + " and F_ZXY='" + txtCellCode.Text + "'").Tables[0].DefaultView; if (dv0.Count <= 0) { MessageBox.Show("请输入或选择合适的货位编码!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.txtCellCode.Focus(); return; } } #region 判断取货位置近深货位是否有货//20230815richard.liu string[] zxy = txtCellCode.Text.Split('-');//获得任务坐标 if (zxy.Length > 2) { int FSTARTDEVICE = Convert.ToInt32(cbDeviceName.SelectedValue); StringBuilder sql = new StringBuilder(); sql.Append("select F_SENDZ from T_BASE_SENDROW WHERE F_WMSZ=").Append(zxy[0]).Append(" and F_LANENO= ").Append(FSTARTDEVICE); object SENDZ = dbo.GetSingle(sql.ToString()); if (SENDZ != null) { int getZ = Convert.ToInt32(SENDZ); int newZ; int tempZ = getZ; if (tempZ > 4) { tempZ = getZ % 4; } if (tempZ == 1 || tempZ == 4 || tempZ == 0)//里位取货时,要判读是否有外位的取货任务//扬州晶澳添加tempZ == 0 {//获取外位坐标 if (tempZ == 1) { newZ = getZ + 1; } else { newZ = getZ - 1; } string neighborzxy = string.Format("{0:D2}-{1:D2}-{2:D2}", newZ, zxy[1], zxy[2]);//获得外位坐标 string sqlstr = string.Format("select FID from ST_CELL where length(fpalletbarcode)>1 and flaneway={0} and fcellcode='{1}'", FSTARTDEVICE, neighborzxy); DataView dvmp = dbo.ExceSQL(sqlstr).Tables[0].DefaultView; if (dvmp.Count > 0) { MessageBox.Show(string.Format("近端货位{0}有货,请先下达近端货位{0}出库任务!", neighborzxy), "误操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } } } #endregion } } int routeIDsub = GetRouteIDsub(Convert.ToInt32(cbDeviceName.SelectedValue)); deviceInfo=Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(cbDeviceName.SelectedValue)); if ((routeIDsub == -1) && (deviceInfo.DeviceKind != 13) && (deviceInfo.DeviceKind != 31)) { MessageBox.Show("您选择的设备错误!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //DataView dv = dbo.ExceSQL("SELECT F_ManageTASKKINDINDEX, F_DeviceIndex FROM T_Monitor_Task where F_ManageTASKKINDINDEX=4 and F_DeviceIndex=" + this.cbDeviceName.SelectedValue + "").Tables[0].DefaultView; //if (dv.Count > 0) //{ // MessageBox.Show("在调度队列中已经存在这个设备的手工命令!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); // return; //} DataSet dss = dbo.ExceSQL("SELECT T_Base_Device.F_DeviceKindIndex, F_DeviceCommandName,F_DeviceCommandIndex FROM " + "T_Base_Device , T_Base_Device_Command WHERE T_Base_Device.F_DeviceKindIndex"+ "= T_Base_Device_Command.F_DeviceKindIndex and F_DeviceIndex=" + Convert.ToInt32(cbDeviceName.SelectedValue) + " and F_DeviceCommandIndex="+ Convert.ToInt32(this.cbDeviceCommand.SelectedValue) +" and F_DeviceCommandIndex != -1"); if (dss.Tables[0].DefaultView.Count <= 0) { MessageBox.Show("请选择设备和对应的有效命令!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } //20101028 string dtime = DateTime.Now.ToString("u"); dtime = dtime.Substring(0, dtime.Length - 1); int beginDeviceIndex = 0; int Inworkbench = 2,forkno=0; //2 将取,3 将送,4 取货,5 送货 switch (CStaticClass.GetDeviceKindIdx(Convert.ToInt32(cbDeviceName.SelectedValue))) { case 1://堆垛机 if ((cbDeviceCommand.SelectedValue.ToString() == "6" || cbDeviceCommand.SelectedValue.ToString() == "5")&&(this.cbEndPosition.Text == "立库货位")) { int fstack = 0; if (deviceInfo.VirtualStack>0) { fstack = deviceInfo.VirtualStack; } else { fstack = Convert.ToInt32(cbDeviceName.SelectedValue); } DataView dv0 = dbo.ExceSQL(string.Format("SELECT FCELLCODE FROM ST_CELL WHERE fstack={0} and (FCELLCODE ='{1}')", fstack, txtCellCode1.Text)).Tables[0].DefaultView; if (dv0.Count <= 0) { MessageBox.Show("请输入或选择合适的送货位编码!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.txtCellCode1.Focus(); return; } //判断取货位置近深货位是否有货 #region 判断取货位置近深货位是否有货//20230815richard.liu string[] zxy = txtCellCode1.Text.Split('-');//获得任务坐标 if (zxy.Length > 2) { int FSTARTDEVICE = Convert.ToInt32(cbDeviceName.SelectedValue); StringBuilder sql = new StringBuilder(); sql.Append("select F_SENDZ from T_BASE_SENDROW WHERE F_WMSZ=").Append(zxy[0]).Append(" and F_LANENO= ").Append(FSTARTDEVICE); object SENDZ = dbo.GetSingle(sql.ToString()); if (SENDZ != null) { int getZ = Convert.ToInt32(SENDZ); int newZ; int tempZ = getZ; if (tempZ > 4) { tempZ = getZ % 4; } if (tempZ == 1 || tempZ == 4 || tempZ == 0)//里位取货时,要判读是否有外位的取货任务//扬州晶澳添加tempZ == 0 {//获取外位坐标 if (tempZ == 1) { newZ = getZ + 1; } else { newZ = getZ - 1; } string neighborzxy = string.Format("{0:D2}-{1:D2}-{2:D2}", newZ, zxy[1], zxy[2]);//获得外位坐标 string sqlstr = string.Format("select FID from ST_CELL where length(fpalletbarcode)>1 and flaneway={0} and fcellcode='{1}'", FSTARTDEVICE, neighborzxy); DataView dvmp = dbo.ExceSQL(sqlstr).Tables[0].DefaultView; if (dvmp.Count > 0) { MessageBox.Show(string.Format("近端货位{0}有货,请先下达近端货位{0}出库任务!", neighborzxy), "误操作提示", MessageBoxButtons.OK, MessageBoxIcon.Warning); return; } } } } #endregion } if (this.comboBox1.Text.Trim() == "") { forkno = 0; } else { forkno = Convert.ToInt32(this.comboBox1.Text); } break; case 2://输送机 if (cbEndPosition.Text.Trim().Length==0 ) { MessageBox.Show("请选择目标位置!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.cbEndPosition.Focus(); return; } if (cbDeviceCommand.SelectedValue.ToString() != "6") { cbEndPosition.Text = "0"; } int.TryParse(this.comboBox1.Text, out forkno); break; case 4://RGV if (cbEndPosition.SelectedValue == null) { MessageBox.Show("请选择目标位置!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.cbEndPosition.Focus(); return; } break; case 13://高端 if (cbEndDev.SelectedValue == null) { MessageBox.Show("请选择目标位置!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.cbEndDev.Focus(); return; } if (cbBeginDev.SelectedValue == null) { MessageBox.Show("请选择目标位置!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.cbBeginDev.Focus(); return; } beginDeviceIndex = Convert.ToInt32(cbBeginDev.SelectedValue); if (int.TryParse(cbInWorkBench.Text, out Inworkbench) == false) { MessageBox.Show("请选择是否进工位!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning); this.cbInWorkBench.Focus(); return; } forkno = Inworkbench; break; } //调用服务 string errtext=string.Empty; string epp = string.Empty; if (cbEndPosition.SelectedValue == null) { epp = "0"; } else { epp = cbEndPosition.SelectedValue.ToString(); } string cellcode = string.Empty ; if (deviceInfo.DeviceKind == 13) { epp = cbEndDev.SelectedValue.ToString(); cellcode = tbFPALLETBARCODE.Text; } else { cellcode = txtCellCode.Text; } string cforks = string.Empty; if (fork2.Checked == true) { cforks = ",2"; } if (fork3.Checked == true) { cforks =cforks+ ",3"; } if (cforks.Length >= 2) { cforks = cforks.Substring(1); } Model.HandTask ht=new Model.HandTask(Convert.ToInt32(cbDeviceName.SelectedValue) ,Convert.ToInt32(cbDeviceCommand.SelectedValue),beginDeviceIndex, epp, //cellcode, txtCellCode1.Text, forkno, cforks ); cellcode, txtCellCode1.Text, forkno, tbFPALLETBARCODE.Text); CStaticClass.WcfControl.BeginBuildHandTask(ht,new AsyncCallback(BuildHandTaskCallBack ),ht); } catch(Exception ex) { throw ex; } } int GetManageHandIdx() { DataSet ds = dbo.ExceSQL("SELECT F_ManageTaskKindIndex, max(FID) as mFID FROM T_Manage_Task Where F_ManageTaskKindIndex=4 group by F_ManageTaskKindIndex"); if (ds.Tables[0].DefaultView.Count > 0) { return (Convert.ToInt32(ds.Tables[0].DefaultView[0]["mFID"]) + 1); } else { DataSet dss = dbo.ExceSQL("SELECT F_ManageTaskIndex FROM T_Base_Task_Index_Hand_Task"); if (dss.Tables[0].DefaultView.Count > 0) { if ((Convert.ToInt32(dss.Tables[0].DefaultView[0]["F_ManageTaskIndex"]) + 1) >= 29998) { return 20001; } else { return (Convert.ToInt32(dss.Tables[0].DefaultView[0]["F_ManageTaskIndex"]) + 1); } } else { return 20001; } } } void RecordMaxHandTaskFID(int fid) { DataSet ds = dbo.ExceSQL("select F_ManageTaskIndex from T_Base_Task_Index_Hand_Task"); DataView dv = ds.Tables[0].DefaultView; if (dv.Count > 0) { if (fid == 29998) { dbo.ExceSQL("UPDATE T_Base_Task_Index_Hand_Task SET F_ManageTaskIndex =20001" ); return; } if (fid > Convert.ToInt32(dv[0]["F_ManageTaskIndex"])) { dbo.ExceSQL("UPDATE T_Base_Task_Index_Hand_Task SET F_ManageTaskIndex =" + fid); return; } } else { dbo.ExceSQL("INSERT INTO T_Base_Task_Index_Hand_Task (F_ManageTaskIndex)VALUES (" + fid + ")"); return; } } void BuildHandTaskCallBack( IAsyncResult ar) { string errtext = string.Empty; if (CStaticClass.WcfControl.EndBuildHandTask(out errtext, ar) == false) { MessageBox.Show(errtext, "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Error); } } string GetWarehouse(int Fstack) { DataView dv = dbo.ExceSQL(string.Format("SELECT DISTINCT FWAREHOUSE FROM ST_CELL WHERE (Fstack = {0})", Fstack)).Tables[0].DefaultView; if (dv.Count > 0) { return dv[0][0].ToString(); } else { return "01"; } } int GetRouteIDsub(int device) { DataView dv1 = dbo.ExceSQL("SELECT F_ChannelsIndex FROM T_Base_AGV_Gate where F_Top=" + device + "").Tables[0].DefaultView; if (dv1.Count > 0) { device = Convert.ToInt32(dv1[0]["F_ChannelsIndex"]); } DataView dv = dbo.ExceSQL("SELECT F_RouteIDSub, F_DeviceIndex, F_RouteID FROM T_Base_Route_Device where F_DeviceIndex="+device+"").Tables[0].DefaultView; if (dv.Count > 0) { return Convert.ToInt32(dv[0]["F_RouteIDSub"]); } else { return -1; } } private void cbDeviceCommand_SelectedIndexChanged(object sender, EventArgs e) { if (this.cbDeviceCommand.SelectedValue != null && this.cbDeviceName.SelectedValue != null && this.cbDeviceCommand.Text.Trim() != "") { switch (CStaticClass.GetDeviceKindIdx(Convert.ToInt32(this.cbDeviceName.SelectedValue))) { case 1: if (cbDeviceCommand.SelectedValue.ToString() == "1") { txtCellCode.Text = "00-00-00"; txtCellCode.Enabled = true; txtCellCode1.Enabled = false; txtCellCode1.Text = ""; cbEndPosition.SelectedValue = 0; } else if (cbDeviceCommand.SelectedValue.ToString() == "6") { txtCellCode.Enabled = true; txtCellCode.Text = ""; txtCellCode1.Enabled = true; txtCellCode1.Text = ""; } else if ((cbDeviceCommand.SelectedValue.ToString() == "2") || (cbDeviceCommand.SelectedValue.ToString() == "4")) { txtCellCode.Enabled = true; txtCellCode.Text = ""; txtCellCode1.Enabled = false; txtCellCode1.Text = ""; cellPanel.ControlCellCode = txtCellCode; } else if ((cbDeviceCommand.SelectedValue.ToString() == "3") || (cbDeviceCommand.SelectedValue.ToString() == "5")) { txtCellCode.Enabled = false; txtCellCode.Text = ""; txtCellCode1.Enabled = true; txtCellCode1.Text = ""; cellPanel.ControlCellCode = txtCellCode1; } else { txtCellCode1.Enabled = false; txtCellCode1.Text = ""; txtCellCode.Text = ""; } break; case 2: if (cbDeviceCommand.SelectedValue.ToString() != "6") { cbEndPosition.SelectedValue = 0; cbEndPosition.Text = "0"; } else { cbEndPosition.SelectedValue = -1; cbEndPosition.Text = ""; } txtCellCode.Text = ""; txtCellCode1.Enabled = false; txtCellCode1.Text = ""; break; case 31: if (cbDeviceCommand.SelectedValue.ToString() != "6") { cbEndPosition.SelectedValue = 0; cbEndPosition.Text = "0"; } else { cbEndPosition.SelectedValue = -1; cbEndPosition.Text = ""; } txtCellCode.Text = ""; txtCellCode.Enabled = false; txtCellCode1.Enabled = false; txtCellCode1.Text = ""; break; } } } private void cbEndPosition_SelectedIndexChanged(object sender, EventArgs e) { int devic = 35000; if ((Convert.ToInt32(cbDeviceName.SelectedValue) == 35001) || (Convert.ToInt32(cbDeviceName.SelectedValue) == 35002)) { devic = 35000; } else { devic = Convert.ToInt32(cbDeviceName.SelectedValue); } if (this.cbEndPosition.SelectedValue == null) return; int qq=-1; if (int.TryParse(this.cbEndPosition.SelectedValue.ToString(),out qq) == true) { DataView dv = dbo.ExceSQL(string.Format("SELECT T_Base_Lane_Gate.F_ZXY FROM T_Base_LaneInfo,T_Base_Lane_Gate WHERE T_Base_LaneInfo.F_LaneDeviceIndex = T_Base_Lane_Gate.F_LaneIndex and (T_Base_LaneInfo.F_StackIndex = {0}) AND (T_Base_Lane_Gate.F_LaneGateDeviceIndex = {1})",devic,cbEndPosition.SelectedValue)).Tables[0].DefaultView; if (dv.Count > 0) { if (txtCellCode.Enabled == true) { txtCellCode.Text = dv[0][0].ToString(); } else { txtCellCode1.Text = dv[0][0].ToString(); } } else { txtCellCode.Text = ""; } } } private void txtCellCode_TextChanged(object sender, EventArgs e) { if(this.cbDeviceName.SelectedValue==null)return; if (CStaticClass.GetDeviceKindIdx(Convert.ToInt32(this.cbDeviceName.SelectedValue)) != 1) return; int fstack = 0; if (cbDeviceName.SelectedValue.ToString() == "35001" || cbDeviceName.SelectedValue.ToString() == "35002") { fstack = 35000; } else { fstack = Convert.ToInt32(cbDeviceName.SelectedValue); } DataView dv0 = dbo.ExceSQL("SELECT F_LaneGateDeviceIndex FROM T_Base_Lane_Gate WHERE F_ZXY='" + txtCellCode.Text + "' and F_LaneIndex=" + CStaticClass.GetLaneWay(fstack) + "").Tables[0].DefaultView; if (dv0.Count > 0) { this.cbEndPosition.SelectedValue = dv0[0][0]; } else { dv0 = dbo.ExceSQL("SELECT FCELLCODE FROM ST_CELL WHERE fstack="+fstack+" and (FCELLCODE ='" + txtCellCode.Text + "')").Tables[0].DefaultView; if (dv0.Count > 0) { this.cbEndPosition.SelectedValue = 0; this.cbEndPosition.Text = "立库货位"; } } DataView dv = dbo.ExceSQL(string.Format("SELECT FPALLETBARCODE FROM ST_CELL WHERE FPALLETBARCODE !='-' and (FCELLCODE = '{0}')", txtCellCode.Text)).Tables[0].DefaultView; if (dv.Count > 0) { tbFPALLETBARCODE.Text = dv[0][0].ToString(); } } private void FrmHandCommand_FormClosing(object sender, FormClosingEventArgs e) { _formInstance = null; } private void txtCellCode1_TextChanged(object sender, EventArgs e) { if (this.cbDeviceName.SelectedValue == null) return; if (CStaticClass.GetDeviceKindIdx(Convert.ToInt32(this.cbDeviceName.SelectedValue)) != 1) return; int fstack = 0; if (cbDeviceName.SelectedValue.ToString() == "35001" || cbDeviceName.SelectedValue.ToString() == "35002") { fstack = 35000; } else { fstack = Convert.ToInt32(cbDeviceName.SelectedValue); } DataView dv0 = dbo.ExceSQL("SELECT F_LaneGateDeviceIndex FROM T_Base_Lane_Gate WHERE F_ZXY='" + txtCellCode1.Text + "' and F_LaneIndex=" + CStaticClass.GetLaneWay(fstack) + "").Tables[0].DefaultView; if (dv0.Count > 0) { this.cbEndPosition.SelectedValue = dv0[0][0]; } else { dv0 = dbo.ExceSQL("SELECT FCELLCODE FROM ST_CELL WHERE fstack=" + fstack + " and (FCELLCODE ='" + txtCellCode1.Text + "')").Tables[0].DefaultView; if (dv0.Count > 0) { this.cbEndPosition.SelectedValue = 0; this.cbEndPosition.Text = "立库货位"; } } } private void comboBox1_SelectedIndexChanged(object sender, EventArgs e) { //if (comboBox1.Text == "1")//扬州晶澳 //{ // fork2.Visible = true; // fork3.Visible = true; //} //else if (comboBox1.Text == "2") //{ // fork2.Visible = false; // fork3.Visible = true; //} //else if (comboBox1.Text == "3") //{ // fork2.Visible = false; // fork3.Visible = false; //} } } }