You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
515 lines
18 KiB
515 lines
18 KiB
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 Microsoft.VisualBasic;
|
|
using System.Resources;
|
|
using System.Collections;
|
|
using System.ServiceModel;
|
|
namespace wcfControlMonitorClient
|
|
{
|
|
/// <summary>
|
|
/// Creator:Richard.liu
|
|
/// 设备状态维护
|
|
/// </summary>
|
|
public partial class FrmDeviceInfoEdit : Form
|
|
{
|
|
string Commsql = "SELECT T_Base_Device.F_DeviceIndex AS 设备索引, " +
|
|
" T_Base_Device.F_DeviceName AS 设备名称, " +
|
|
" T_Base_Device.F_DeviceKindIndex AS 设备类型索引, " +
|
|
" T_Base_Device_Kind.F_DeviceKindName AS 设备类型名称, " +
|
|
" F_LockedState AS 执行状态,F_errorcode as 设备状态, " +
|
|
" F_ManTaskReserve as 调度预约锁,F_SwitchLock as 充电锁,F_HaveGoods as 是否逻辑有物" +
|
|
" FROM T_Base_Device,T_Base_Device_Kind";
|
|
private bool _laneIndex = false;
|
|
|
|
public bool LaneIndex
|
|
{
|
|
get { return _laneIndex; }
|
|
set { _laneIndex = value; }
|
|
}
|
|
private bool _laneGateDeviceIndex = false;
|
|
|
|
public bool LaneGateDeviceIndex
|
|
{
|
|
get { return _laneGateDeviceIndex; }
|
|
set { _laneGateDeviceIndex = value; }
|
|
}
|
|
private bool _isSelected = false;
|
|
|
|
public bool IsSelected
|
|
{
|
|
get { return _isSelected; }
|
|
set { _isSelected = value; }
|
|
}
|
|
private static FrmDeviceInfoEdit _formInstance;
|
|
|
|
public static FrmDeviceInfoEdit FormInstance
|
|
{
|
|
get
|
|
{
|
|
if (_formInstance == null)
|
|
{
|
|
_formInstance = new FrmDeviceInfoEdit();
|
|
|
|
}
|
|
return _formInstance;
|
|
}
|
|
set { FrmDeviceInfoEdit._formInstance = value; }
|
|
}
|
|
DBOperator dbo = CStaticClass.dbo;
|
|
Model.MDevice mdev;
|
|
public FrmDeviceInfoEdit()
|
|
{
|
|
InitializeComponent();
|
|
_formInstance = this;
|
|
dbo.Open();
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
private void btQuery_Click(object sender, EventArgs e)
|
|
{
|
|
if (tbContent.Text.Trim() == "") return;
|
|
try
|
|
{
|
|
string df = "";
|
|
|
|
switch (this.cbField.Text)
|
|
{
|
|
case "设备索引":
|
|
df = "F_DeviceIndex";
|
|
break;
|
|
case "设备名称":
|
|
df = "F_DeviceName";
|
|
break;
|
|
case "设备类型索引":
|
|
df = "T_Base_Device.F_DeviceKindIndex";
|
|
break;
|
|
case "设备类型名称":
|
|
df = "F_DeviceKindName";
|
|
break;
|
|
|
|
default:
|
|
return;
|
|
}
|
|
//20100208
|
|
string sql = Commsql+" WHERE " +
|
|
" T_Base_Device.F_DeviceKindIndex = T_Base_Device_Kind.F_DeviceKindIndex " +
|
|
" and " + df + "= '" + this.tbContent.Text + "' ";
|
|
DataSet ds = dbo.ExceSQL(sql);
|
|
this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
|
|
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
private void btNullQuery_Click(object sender, EventArgs e)
|
|
{
|
|
this.cbField.Text = "";
|
|
this.tbContent.Text = "";
|
|
|
|
}
|
|
|
|
|
|
|
|
private void btBack_Click(object sender, EventArgs e)
|
|
{
|
|
this.Close();
|
|
}
|
|
|
|
|
|
|
|
private void tsmEdit_Click(object sender, EventArgs e)
|
|
{
|
|
if (dataGridView1.RowCount <= 0)
|
|
{
|
|
return;
|
|
}
|
|
|
|
this.tabControl1.SelectTab("tabPage1");
|
|
this.tbDeviceIndex.Text = this.dataGridView1.CurrentRow.Cells[0].Value.ToString()+ "";
|
|
this.tbDeviceName.Text = this.dataGridView1.CurrentRow.Cells[1].Value.ToString() + "";
|
|
this.tbDeviceKindIndex.Text = this.dataGridView1.CurrentRow.Cells[2].Value.ToString() + "";
|
|
|
|
if(this.dataGridView1.CurrentRow.Cells[4].Value.ToString() + ""=="0")
|
|
{
|
|
this.cbLockedState.Text = "0:空闲";
|
|
}
|
|
else if (this.dataGridView1.CurrentRow.Cells[4].Value.ToString() + "" == "-1")
|
|
{
|
|
this.cbLockedState.Text = "-1:停用";
|
|
}
|
|
else
|
|
{
|
|
this.cbLockedState.Text = this.dataGridView1.CurrentRow.Cells[4].Value.ToString() + "";
|
|
}
|
|
if (this.dataGridView1.CurrentRow.Cells[5].Value.ToString() + "" == "0")
|
|
{
|
|
this.cbErrorCode.Text = "0:正常";
|
|
}
|
|
|
|
else
|
|
{
|
|
this.cbErrorCode.Text = this.dataGridView1.CurrentRow.Cells[5].Value.ToString() + "";
|
|
}
|
|
if (this.dataGridView1.CurrentRow.Cells[6].Value.ToString() + "" == "0")
|
|
{
|
|
this.cbManTaskReserve.Text = "0:空闲";
|
|
}
|
|
|
|
else
|
|
{
|
|
this.cbManTaskReserve.Text = this.dataGridView1.CurrentRow.Cells[6].Value.ToString() + "";
|
|
}
|
|
|
|
if (this.dataGridView1.CurrentRow.Cells[7].Value.ToString() + "" == "0")
|
|
{
|
|
this.cbSwitchLock.Text = "0:空闲";
|
|
}
|
|
|
|
else
|
|
{
|
|
this.cbSwitchLock.Text = this.dataGridView1.CurrentRow.Cells[7].Value.ToString() + "";
|
|
}
|
|
if (this.dataGridView1.CurrentRow.Cells[8].Value.ToString() + "" == "1")
|
|
{
|
|
this.cbHaveGoods.Text = "有";
|
|
}
|
|
|
|
else
|
|
{
|
|
this.cbHaveGoods.Text = "无";
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
private void button2_Click(object sender, EventArgs e)
|
|
{
|
|
//20100208
|
|
string sql = Commsql + " WHERE " +
|
|
" T_Base_Device.F_DeviceKindIndex = T_Base_Device_Kind.F_DeviceKindIndex " ;
|
|
DataSet ds = dbo.ExceSQL(sql);
|
|
this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
|
|
|
|
}
|
|
|
|
private void btSave_Click(object sender, EventArgs e)
|
|
{
|
|
//增加提示:
|
|
if (MessageBox.Show("您确认要修改设备状态吗?", "操作提示:", MessageBoxButtons.OKCancel, MessageBoxIcon.Question) != DialogResult.OK)
|
|
{
|
|
return;
|
|
}
|
|
int a = 0;
|
|
int lockstate = 0;
|
|
int errorcode = 0;//20100208
|
|
bool haveGoods = false;
|
|
int manTaskReserve = 0;
|
|
int chargeLock = 0;
|
|
if (this.tbDeviceIndex.Text.Trim().Length == 0)
|
|
{
|
|
MessageBox.Show("设备索引不允许输入空值!", "误操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
this.tbDeviceIndex.Focus();
|
|
return;
|
|
}
|
|
if (this.cbLockedState.Text.Trim().Length == 0)
|
|
{
|
|
MessageBox.Show("执行状态不允许输入空值!", "误操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
this.cbLockedState.Focus();
|
|
return;
|
|
}
|
|
if (this.cbErrorCode.Text.Trim().Length == 0)
|
|
{
|
|
MessageBox.Show("设备状态不允许输入空值!", "误操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
this.cbErrorCode.Focus();
|
|
return;
|
|
}
|
|
if (this.cbHaveGoods.Text.Trim().Length == 0)
|
|
{
|
|
MessageBox.Show("设备逻辑有物不允许输入空值!", "误操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
this.cbHaveGoods.Focus();
|
|
return;
|
|
}
|
|
if (this.cbManTaskReserve.Text.Trim().Length == 0)
|
|
{
|
|
MessageBox.Show("调度预约锁不允许输入空值!", "误操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
this.cbManTaskReserve.Focus();
|
|
return;
|
|
}
|
|
if (this.cbSwitchLock.Text.Trim().Length == 0)
|
|
{
|
|
MessageBox.Show("充电锁不允许输入空值!", "误操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
this.cbSwitchLock.Focus();
|
|
return;
|
|
}
|
|
|
|
|
|
if (this.cbLockedState.Text == "0:空闲")
|
|
{
|
|
lockstate=0;
|
|
errorcode = 0;//20100208
|
|
}
|
|
else if (this.cbLockedState.Text == "-1:停用")
|
|
{
|
|
lockstate =-1 ;
|
|
errorcode = 998;//20100208
|
|
}
|
|
else
|
|
{
|
|
if (int.TryParse(this.cbLockedState.Text,out a) == true)
|
|
{
|
|
lockstate = Convert.ToInt32(this.cbLockedState.Text);
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("执行状态只允许输入“0:空闲”,“-1:停用”或者整型设备指令索引!", "误操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
this.cbLockedState.Focus();
|
|
return;
|
|
}
|
|
errorcode = 0;//20100208
|
|
}
|
|
if (this.cbErrorCode.Text == "0:正常")
|
|
{
|
|
errorcode = 0;//20100208
|
|
}
|
|
|
|
else
|
|
{
|
|
if (int.TryParse(this.cbErrorCode.Text,out a) == true)
|
|
{
|
|
errorcode = Convert.ToInt32(this.cbErrorCode.Text);
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("设备状态只允许输入“0:正常”或者整型故障编码!", "误操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
this.cbErrorCode.Focus();
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (this.cbManTaskReserve.Text == "0:空闲")
|
|
{
|
|
manTaskReserve = 0;
|
|
}
|
|
|
|
else
|
|
{
|
|
if (int.TryParse(this.cbManTaskReserve.Text,out a) == true)
|
|
{
|
|
manTaskReserve = Convert.ToInt32(this.cbManTaskReserve.Text);
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("设备状态只允许输入“0:正常”或者整型故障编码!", "误操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
this.cbManTaskReserve.Focus();
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (this.cbSwitchLock.Text == "0:空闲")
|
|
{
|
|
chargeLock = 0;
|
|
}
|
|
|
|
else
|
|
{
|
|
if (int.TryParse(this.cbSwitchLock.Text, out a) == true)
|
|
{
|
|
chargeLock = Convert.ToInt32(this.cbSwitchLock.Text);
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("设备状态只允许输入“0:正常”或者整型故障编码!", "误操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
this.cbSwitchLock.Focus();
|
|
return;
|
|
}
|
|
}
|
|
|
|
if (this.cbHaveGoods.Text == "有")
|
|
{
|
|
haveGoods = true;
|
|
}
|
|
else if (this.cbHaveGoods.Text == "无")
|
|
{
|
|
haveGoods = false;
|
|
}
|
|
else
|
|
{
|
|
MessageBox.Show("只能选择逻辑有物或者无物!", "误操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Warning);
|
|
this.cbHaveGoods.Focus();
|
|
return;
|
|
|
|
}
|
|
try
|
|
{
|
|
string sql;
|
|
DataSet ds;
|
|
|
|
MessageBox.Show("设备信息修改成功!", "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Information);
|
|
sql = Commsql + " WHERE " +
|
|
" T_Base_Device.F_DeviceKindIndex = T_Base_Device_Kind.F_DeviceKindIndex " +
|
|
" and F_DeviceIndex= " + Convert.ToInt32(this.tbDeviceIndex.Text.Trim());
|
|
ds = dbo.ExceSQL(sql);
|
|
this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
|
|
mdev = Model.CGetInfo.GetDeviceInfo(Convert.ToInt32(this.tbDeviceIndex.Text.Trim()));
|
|
if (lockstate == -1)
|
|
{
|
|
mdev.RunState = 4;
|
|
}
|
|
else
|
|
{
|
|
mdev.RunState = lockstate;
|
|
}
|
|
mdev.ManTaskReserve = manTaskReserve;
|
|
mdev.ErrorCode = errorcode;
|
|
mdev.Switch_Lock = chargeLock;
|
|
CStaticClass.WcfControl.BeginSetDeviceState(mdev, new AsyncCallback(SetDeviceStateCallBack), null);
|
|
object[] ob = new object[4] { lockstate, errorcode, manTaskReserve, Convert.ToInt32(this.tbDeviceIndex.Text.Trim()) };
|
|
dbo.ExecuteSql(string.Format("UPDATE T_Base_Device SET F_LockedState ={0},f_errorcode={1},F_ManTaskReserve ={2} where F_DeviceIndex= {3}", ob));
|
|
CStaticClass.WcfControl.BeginSetLogicHaveGoods(haveGoods, Convert.ToInt32(this.tbDeviceIndex.Text.Trim()), new AsyncCallback(SetLogicHaveGoodsCallBack), null);
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
private void button1_Click(object sender, EventArgs e)
|
|
{
|
|
//20100208
|
|
string sql = Commsql + " WHERE F_LockedState=-1 AND " +
|
|
" T_Base_Device.F_DeviceKindIndex = T_Base_Device_Kind.F_DeviceKindIndex ";
|
|
DataSet ds = dbo.ExceSQL(sql);
|
|
this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
|
|
}
|
|
|
|
private void button3_Click(object sender, EventArgs e)
|
|
{
|
|
string sql = Commsql + " WHERE F_errorcode>0 AND " +
|
|
" T_Base_Device.F_DeviceKindIndex = T_Base_Device_Kind.F_DeviceKindIndex ";
|
|
DataSet ds = dbo.ExceSQL(sql);
|
|
this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
|
|
}
|
|
|
|
private void button4_Click(object sender, EventArgs e)
|
|
{
|
|
string sql = Commsql + " WHERE F_ManTaskReserve>0 AND " +
|
|
" T_Base_Device.F_DeviceKindIndex = T_Base_Device_Kind.F_DeviceKindIndex ";
|
|
DataSet ds = dbo.ExceSQL(sql);
|
|
this.dataGridView1.DataSource = ds.Tables[0].DefaultView;
|
|
}
|
|
|
|
private void cbLockedState_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
if (this.cbLockedState.Text == "0:空闲")
|
|
{
|
|
this.cbErrorCode.Text = "0:正常";
|
|
}
|
|
else if (this.cbLockedState.Text == "-1:停用")
|
|
{
|
|
this.cbErrorCode.Text = "998";
|
|
}
|
|
}
|
|
|
|
private void cbField_SelectedIndexChanged(object sender, EventArgs e)
|
|
{
|
|
try
|
|
{
|
|
string df = "";
|
|
|
|
switch (this.cbField.Text)
|
|
{
|
|
case "设备索引":
|
|
df = "F_DeviceIndex";
|
|
break;
|
|
case "设备名称":
|
|
df = "F_DeviceName";
|
|
break;
|
|
case "设备类型索引":
|
|
df = "F_DeviceKindIndex";
|
|
break;
|
|
case "设备类型名称":
|
|
df = "F_DeviceKindName";
|
|
break;
|
|
|
|
default:
|
|
return;
|
|
}
|
|
//20100208
|
|
string sql = "select distinct " + df + " from T_Base_Device ";
|
|
DataView dv = dbo.ExceSQL(sql).Tables[0].DefaultView;
|
|
if (dv.Count > 0)
|
|
{
|
|
this.tbContent.DataSource = null;
|
|
this.tbContent.DisplayMember = df;
|
|
this.tbContent.ValueMember= df;
|
|
this.tbContent.DataSource = dv;
|
|
}
|
|
}
|
|
catch (Exception ex)
|
|
{
|
|
throw ex;
|
|
}
|
|
}
|
|
|
|
private void dataGridView1_CellMouseDown(object sender, DataGridViewCellMouseEventArgs e)
|
|
{
|
|
if ((e.ColumnIndex >= 0) && (e.RowIndex >= 0) && (e.Button == MouseButtons.Right))//20110309
|
|
{
|
|
dataGridView1.ClearSelection();
|
|
dataGridView1.Rows[e.RowIndex].Selected = true;
|
|
dataGridView1.CurrentCell = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex];
|
|
|
|
}
|
|
}
|
|
|
|
void SetDeviceStateCallBack(IAsyncResult ar)
|
|
{
|
|
string errtext = string.Empty;
|
|
this.BeginInvoke(new MethodInvoker(delegate()
|
|
{
|
|
if (CStaticClass.WcfControl.EndSetDeviceState(out errtext, ar) == false)
|
|
{
|
|
MessageBox.Show(errtext, "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
|
|
}));
|
|
}
|
|
void SetLogicHaveGoodsCallBack(IAsyncResult ar)
|
|
{
|
|
string errtext = string.Empty;
|
|
this.BeginInvoke(new MethodInvoker(delegate()
|
|
{
|
|
|
|
if (CStaticClass.WcfControl.EndSetLogicHaveGoods(out errtext, ar) == false)
|
|
{
|
|
MessageBox.Show(errtext, "操作提示:", MessageBoxButtons.OK, MessageBoxIcon.Error);
|
|
}
|
|
|
|
}));
|
|
}
|
|
|
|
private void FrmDeviceInfoEdit_FormClosing(object sender, FormClosingEventArgs e)
|
|
{
|
|
_formInstance = null;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
}
|