Files
FG2608061/CODE/20230901/SA17168/AGVSystem Ver2.0/AGVManage.cs
T

342 lines
15 KiB
C#

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
namespace AGVSystem
{
public partial class AGVManage : Form
{
private int flag = 0;
private ClsDBConn_sql db = new ClsDBConn_sql();
private System.Data.DataSet ds = new System.Data.DataSet();
public AGVManage()//string caption, string btn_name
{
InitializeComponent();
//this.Text = caption;
//btn.Text = btn_name;
ds = db.connDt("select CONVERT( VARCHAR(10),id) +' . '+ line_name as info from Assembly_Line order by id");
if (ds.Tables.Count > 0)
{
if (ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
cmb_linelist.Items.Add(dr[0].ToString());
}
}
}
ds.Tables.Clear();
ds = db.connDt("select id from ipaddress where id not in (select ipaddress from agvinfo) order by seq");
if (ds.Tables.Count > 0)
{
if (ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
cmb_iplist.Items.Add(dr[0].ToString());
cmb_switchip.Items.Add(dr[0].ToString());
}
}
}
ds.Tables.Clear();
ds = db.connDt("SELECT [ID] FROM [Agv_Type]");
if (ds.Tables.Count > 0)
{
if (ds.Tables[0].Rows.Count > 0)
{
foreach (DataRow dr in ds.Tables[0].Rows)
{
cmb_type.Items.Add(dr[0].ToString());
}
}
}
ds.Tables.Clear();
ds = db.connDt("SELECT [Name] FROM [WorkLocationInfo]");
if (ds.Tables.Count > 0)
{
if (ds.Tables[0].Rows.Count > 0)
{
cmb_worktype.Items.Add("");
foreach (DataRow dr in ds.Tables[0].Rows)
{
cmb_worktype.Items.Add(dr[0].ToString());
}
}
}
}
private void AGVManage_Load(object sender, EventArgs e)
{
ds.Tables.Clear();
ds = db.connDt("SELECT AgvInfo.ID as 编号, AgvInfo.IPAddress as IP地址,SwitchIP as 交换机IP, port as 通讯端口, AgvInfo.WorkType as 物料名称 , AgvInfo.Internal_ID as 序号 ,[Status] as 设备状态,[Type] as 设备型号, " +
" AgvInfo.Assembly_Line as 线体编号 , assembly_line.line_name as 线体名称 ,agvinfo.Mileage as 行驶里程 FROM AgvInfo ,assembly_line " +
" where AgvInfo.Assembly_Line = assembly_line.id order by AgvInfo.ID");
dataGridView1.DataSource = ds.Tables[0];
groupBox2.Enabled = false;
this.WindowState = FormWindowState.Maximized;
}
private void btn_Click(object sender, EventArgs e)
{
num_id.Value = 0;
num_seq.Value = 0;
cmb_iplist.Text = "";
cmb_linelist.Text = "";
lab_km.Text = "0";
}
private int add_agv(string id, string seq, string ip, string line_id, int port, int type, string switchip, int WorkType)
{
int rowcount = 0;
rowcount = Convert.ToInt16(db.Command("insert into agvinfo (id , ipaddress , internal_id , assembly_line, port,type,switchip,WorkType) values (" + id + ",'" + ip + "'," + seq + "," + line_id + "," + port + "," + type + ",'" + switchip + "'," + WorkType + ")"));
return rowcount;
}
private int delete_agv(string id)
{
int rowcount = 0;
rowcount = Convert.ToInt16(db.Command("delete from agvinfo where id =" + id));
return rowcount;
}
private int update_agv()
{
int rowcount = 0;
string strsql;
strsql = "UPDATE [AgvInfo] "+
"SET [IPAddress] = '"+cmb_iplist.Text+"'"+
" ,[Status] = "+cmb_status.SelectedIndex+
" ,[Internal_ID] = "+num_seq.Value+
" ,[Assembly_Line] = "+cmb_linelist.Text.Split('.')[0]+
" ,[Type] = "+cmb_type.Text+
" ,[Mileage] = "+lab_km.Text+
" ,port = "+numPort.Value+
" ,switchip = '" +cmb_switchip.Text+
"' ,[WorkType] = " + cmb_worktype.SelectedIndex +
" WHERE [ID] = "+lab_id.Text;
rowcount = Convert.ToInt16(db.Command(strsql));
return rowcount;
}
private void select_agv(string id, string line_id)
{
ds.Tables.Clear();
if (id != "0")
{
ds = db.connDt("SELECT AgvInfo.ID as 编号, AgvInfo.IPAddress as IP地址, port as 通讯端口, AgvInfo.WorkType as 物料名称, AgvInfo.Internal_ID as 序号 ,[Status] as 设备状态,[Type] as 设备型号, " +
" AgvInfo.Assembly_Line as 线体编号 , assembly_line.line_name as 线体名称 ,agvinfo.Mileage as 行驶里程 FROM AgvInfo ,assembly_line " +
" where AgvInfo.Assembly_Line = assembly_line.id and AgvInfo.ID= " + id +
" order by AgvInfo.ID");
}
//else if (seq != "0")
//{
// ds = db.connDt("SELECT AgvInfo.ID as 编号, AgvInfo.IPAddress as IP地址, AgvInfo.Internal_ID as 序号 , " +
// " AgvInfo.Assembly_Line as 线体编号 , assembly_line.line_name as 线体名称,agvinfo.Mileage as 行驶里程 FROM AgvInfo ,assembly_line " +
// " where AgvInfo.Assembly_Line = assembly_line.id and AgvInfo.Internal_ID= " + seq +
// " order by AgvInfo.ID");
//}
//else if (ip != "")
//{
// ds = db.connDt("SELECT AgvInfo.ID as 编号, AgvInfo.IPAddress as IP地址, AgvInfo.Internal_ID as 序号 , " +
// " AgvInfo.Assembly_Line as 线体编号 , assembly_line.line_name as 线体名称,agvinfo.Mileage as 行驶里程 FROM AgvInfo ,assembly_line " +
// " where AgvInfo.Assembly_Line = assembly_line.id and AgvInfo.IPAddress= '" + ip +"'"+
// " order by AgvInfo.ID");
//}
else if (line_id.Trim() != "")
{
ds = db.connDt("SELECT AgvInfo.ID as 编号, AgvInfo.IPAddress as IP地址, port as 通讯端口, AgvInfo.WorkType as 物料名称, AgvInfo.Internal_ID as 序号 ,[Status] as 设备状态,[Type] as 设备型号, " +
" AgvInfo.Assembly_Line as 线体编号 , assembly_line.line_name as 线体名称 ,agvinfo.Mileage as 行驶里程 FROM AgvInfo ,assembly_line " +
" where AgvInfo.Assembly_Line = assembly_line.id and AgvInfo.Assembly_Line= " + line_id +
" order by AgvInfo.ID");
}
else
{
ds = db.connDt("SELECT AgvInfo.ID as 编号, AgvInfo.IPAddress as IP地址, port as 通讯端口, AgvInfo.WorkType as 物料名称, AgvInfo.Internal_ID as 序号 ,[Status] as 设备状态,[Type] as 设备型号, " +
" AgvInfo.Assembly_Line as 线体编号 , assembly_line.line_name as 线体名称 ,agvinfo.Mileage as 行驶里程 FROM AgvInfo ,assembly_line " +
" where AgvInfo.Assembly_Line = assembly_line.id order by AgvInfo.ID");
}
dataGridView1.DataSource = ds.Tables[0];
}
private void dataGridView1_DoubleClick(object sender, EventArgs e)
{
if (dataGridView1.RowCount > 0)
{
flag = 0;
num_id.Value = Convert.ToDecimal( dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["编号"].Value);
lab_id.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["编号"].Value.ToString();
num_seq.Value = Convert.ToDecimal( dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["序号"].Value);
cmb_iplist.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["IP地址"].Value.ToString();
cmb_switchip.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["交换机IP"].Value.ToString();
cmb_linelist.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["线体编号"].Value.ToString()+" . "+
dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["线体名称"].Value.ToString();
lab_km.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["行驶里程"].Value.ToString();
cmb_status.Text= (dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["设备状态"].Value.ToString()=="True")?"启用":"禁用";
cmb_type.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["设备型号"].Value.ToString();
numPort.Value = Convert.ToDecimal(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["通讯端口"].Value.ToString());
cmb_worktype.SelectedIndex = Convert.ToInt16(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["物料名称"].Value);
groupBox2.Enabled = false;
}
}
private void button5_Click(object sender, EventArgs e)
{
lab_km.Text = "0";
}
private void dataGridView1_RowStateChanged(object sender, DataGridViewRowStateChangedEventArgs e)
{
e.Row.HeaderCell.Value = string.Format("{0}", e.Row.Index + 1);
}
private void toolStripButton1_Click(object sender, EventArgs e)
{
flag = 1;
num_seq.Value = 0;
cmb_iplist.Text = "";
cmb_switchip.Text = "";
cmb_linelist.SelectedIndex = 0;
lab_km.Text = "0";
lab_id.Text = "";
groupBox2.Enabled = true;
DataSet ds1 = db.connDt("SELECT max([ID])+1 FROM [AgvInfo]");
if (ds1.Tables[0].Rows[0][0].ToString() != "")
{
num_id.Value = Convert.ToDecimal(ds1.Tables[0].Rows[0][0].ToString());
}
else
{
num_id.Value = 1;
}
cmb_type.SelectedIndex = 0;
numPort.Value = 0;
}
private void toolStripButton3_Click(object sender, EventArgs e)
{
flag = 0;
if (Cls.Param.UserName_temp == "")
{
MessageBox.Show("请登录管理员权限!", "AGV调度管理系统", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (num_id.Value == 0 || num_seq.Value == 0 || cmb_iplist.Text == "" || cmb_linelist.Text.Trim() == "")
{
return;
}
if (add_agv(num_id.Value.ToString(), num_seq.Value.ToString(), cmb_iplist.Text, cmb_linelist.Text.Split('.')[0], Convert.ToInt16(numPort.Value ),Convert.ToInt16( cmb_type.Text ),cmb_switchip.Text,cmb_worktype.SelectedIndex) > 0)
{
cmb_iplist.Items.Remove(cmb_iplist.Text);
MessageBox.Show("添加成功!");
}
else
{
return;
}
AGVManage_Load(null, null);
toolStripButton1_Click(null, null);
}
private void toolStripButton4_Click(object sender, EventArgs e)
{
flag = 0;
if (Cls.Param.UserName_temp == "")
{
MessageBox.Show("请登录管理员权限!", "AGV调度管理系统", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (num_id.Value == 0 || num_seq.Value == 0 || cmb_iplist.Text == "" || cmb_linelist.Text == "")
{
return;
}
if (delete_agv(num_id.Value.ToString()) > 0)
{
cmb_iplist.Items.Add(cmb_iplist.Text);
MessageBox.Show("删除成功!");
}
else
{
return;
}
AGVManage_Load(null, null);
toolStripButton1_Click(null, null);
}
private void toolStripButton6_Click(object sender, EventArgs e)
{
flag = 0;
if (Cls.Param.UserName_temp == "")
{
MessageBox.Show("请登录管理员权限!", "AGV调度管理系统", MessageBoxButtons.OK, MessageBoxIcon.Information);
return;
}
if (num_id.Value == 0 || num_seq.Value == 0 || cmb_iplist.Text == "" || cmb_linelist.Text == "")
{
return;
}
if (update_agv() > 0)
{
AGVManage_Load(null,null);
MessageBox.Show("修改成功!");
}
else
{
return;
}
}
private void toolStripButton2_Click(object sender, EventArgs e)
{
flag = 0;
select_agv(num_id.Value.ToString(), cmb_linelist.Text.Split('.')[0]);
return;
}
private void toolStripButton5_Click(object sender, EventArgs e)
{
flag = 0;
groupBox2.Enabled = true;
}
private void cmb_type_TextChanged(object sender, EventArgs e)
{
if (cmb_type.SelectedIndex == 0)
{
pictureBox1.BackgroundImage = null;
label9.Text = "";
}
else if (cmb_type.SelectedIndex > 0)
{
try
{
DataSet ds1 = db.connDt("SELECT [Remark] FROM [Agv_Type] where id =" + cmb_type.Text);
if (ds1.Tables[0].Rows.Count > 0)
label9.Text = ds1.Tables[0].Rows[0][0].ToString();
pictureBox1.BackgroundImage = Image.FromFile(Application.StartupPath + @"\picture\" + cmb_type.Text + ".JPG");
}
catch
{
}
}
}
private void cmb_linelist_TextChanged(object sender, EventArgs e)
{
if (flag == 1 && cmb_linelist.Text.Trim()!="")
{
DataSet ds1 = db.connDt("SELECT max([Internal_ID])+1 FROM [AgvInfo] where Assembly_Line=" + cmb_linelist.Text.Split('.')[0]);
if (ds1.Tables[0].Rows[0][0].ToString() !="")
num_seq.Value = Convert.ToDecimal(ds1.Tables[0].Rows[0][0].ToString());
else
num_seq.Value = 1;
}
}
}
}