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 Control_Point : Form { private ClsDBConn_sql db = new ClsDBConn_sql(); private System.Data.DataSet ds = new System.Data.DataSet(); string str_sql = ""; public Control_Point( int w , int h) { InitializeComponent(); this.Width = w; this.Height = h; 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()); } } } } private void Control_Point_Load(object sender, EventArgs e) { ds.Tables.Clear(); str_sql = "SELECT CONVERT( VARCHAR(10),Assembly_Line.ID)+' . '+Line_name as 线体" + ",[Assembly_Line] as 线体编号" + ",[Loc_ID] as 位置编号" + ",[Flag_Value] as 标记值" + ",[Loc_X] as 坐标x" + ",[Loc_Y] as 坐标y" + ",CONVERT( VARCHAR(10),Loc_X)+','+CONVERT( VARCHAR(10),Loc_Y) as 位置坐标" + ",[Binding] as 绑定方式" + ",LandMarkInfo.[Area] as 地图编号" + ",(Case when LandMarkInfo.Assembly_ID >0 THEN '管控停止点' ELSE '管控复位点' END) as 位置类型" + ",[Bank] as 障碍物模式" + ",[Speed] as 速度" + ",[Next_Station1] as 下一站点1" + ",[Drict1] as 运动模式1" + ",[LongTime1] as 运动时间1" + ",[Next_Station2] as 下一站点2" + ",[Drict2] as 运动模式2" + ",[LongTime2] as 运动时间2" + ",[Next_Station3] as 下一站点3" + ",[Drict3] as 运动模式3" + ",[LongTime3] as 运动时间3" + " FROM LandMarkInfo ,Assembly_Line" + " WHERE LandMarkInfo.Assembly_Line = Assembly_Line.ID"; ds = db.connDt(str_sql); if (ds.Tables.Count > 0) dataGridView1.DataSource = ds.Tables[0]; groupBox1.Enabled = false; groupBox2.Enabled = false; groupBox3.Enabled = false; } private void dataGridView1_DoubleClick(object sender, EventArgs e) { if (dataGridView1.RowCount > 0) { groupBox1.Enabled = false; groupBox2.Enabled = false; groupBox3.Enabled = false; cmb_linelist.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["线体"].Value.ToString(); num_id.Value = Convert.ToDecimal(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["位置编号"].Value); num_plcvalue.Value = Convert.ToDecimal(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["标记值"].Value); cmb_map.SelectedIndex =Convert.ToInt16( dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["地图编号"].Value.ToString()); cmb_bd.SelectedIndex = Convert.ToInt16(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["绑定方式"].Value.ToString()); txt_zb.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["位置坐标"].Value.ToString(); cmb_type.Text = dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["位置类型"].Value.ToString(); cmb_zhangaiwu.SelectedIndex = Convert.ToInt16(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["障碍物模式"].Value.ToString()); num_speed.Value = Convert.ToDecimal(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["速度"].Value); next_loc1.Value = Convert.ToDecimal(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["下一站点1"].Value); next_loc2.Value = Convert.ToDecimal(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["下一站点2"].Value); next_longtime1.Value = Convert.ToDecimal(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["运动时间1"].Value); next_longtime2.Value = Convert.ToDecimal(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["运动时间2"].Value); cmb_run1.SelectedIndex = Convert.ToInt16(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["运动模式1"].Value); cmb_run2.SelectedIndex = Convert.ToInt16(dataGridView1.Rows[dataGridView1.CurrentRow.Index].Cells["运动模式2"].Value); } } private void btn_Click(object sender, EventArgs e) { } private string delete_point(string line_id, string point_id) { string rowcount = "0"; DataSet ds = new DataSet(); rowcount = db.Command("delete from LandMarkInfo where Assembly_Line = " + line_id + " and Loc_ID = " + point_id); return rowcount; } 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) { groupBox1.Enabled = true; groupBox2.Enabled = true; groupBox3.Enabled = true; num_plcvalue.Value = 0; cmb_map.SelectedIndex = 0; cmb_bd.SelectedIndex = 0; cmb_type.SelectedIndex = 0; cmb_zhangaiwu.SelectedIndex = 0; num_speed.Value = 0; next_loc1.Value = 0; next_loc2.Value = 0; next_longtime1.Value = 0; next_longtime2.Value = 0; cmb_run1.SelectedIndex = 0; cmb_run2.SelectedIndex = 0; txt_zb.Text = "0,0"; DataSet ds1 = db.connDt("Select max(loc_id)+1 from LandMarkInfo " ); if (ds1.Tables[0].Rows[0][0].ToString() != "") num_id.Value = Convert.ToInt16(ds1.Tables[0].Rows[0][0].ToString()); else num_id.Value = 1; } private string add_point(int Assembly_Line, int Loc_ID, int Flag_Value, int Binding, int Area, int Assembly_ID, int Bank, int Speed, int Next_Station1, int Drict1, int LongTime1, int Next_Station2, int Drict2, int LongTime2,int loc_x,int loc_y) { string rowcount = "0", strsql; strsql = "INSERT INTO [LandMarkInfo]" + "([Assembly_Line] ,[Loc_ID] ,[Flag_Value] ,[Binding]" + ",[Area] ,[Assembly_ID] ,[Bank] ,[Speed] " + ",[Next_Station1],[Drict1] ,[LongTime1] ,[Next_Station2]" + ",[Drict2] ,[LongTime2] ,loc_x ,loc_y ) VALUES (" + Assembly_Line + " ," + Loc_ID + " ," + Flag_Value + " ," + Binding + "," + Area + " ," + Assembly_ID + " ," + Bank + " ," + Speed + "," + Next_Station1 + "," + Drict1 + " ," + LongTime1 + " ," + Next_Station2 + "," + Drict2 + " ," + LongTime2+","+loc_x+","+loc_y+")"; rowcount = db.Command(strsql); return rowcount; } private void toolStripButton3_Click(object sender, EventArgs e) { if (Cls.Param.UserName_temp == "") { MessageBox.Show("请登录管理员权限!", "AGV调度管理系统", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (num_id.Value == 0 || cmb_linelist.Text == "") { return; } if (add_point(Convert.ToInt16( cmb_linelist.Text.Split('.')[0]), Convert.ToInt16( num_id.Value), Convert.ToInt16( num_plcvalue.Value), cmb_bd.SelectedIndex, cmb_map.SelectedIndex,Convert.ToInt16( (cmb_type.SelectedIndex == 1) ? cmb_linelist.Text.Split('.')[0] : "0"),cmb_zhangaiwu.SelectedIndex,Convert.ToInt16( num_speed.Value), Convert.ToInt16( next_loc1.Value), cmb_run1.SelectedIndex, Convert.ToInt16( next_longtime1.Value), Convert.ToInt16( next_loc2.Value), cmb_run2.SelectedIndex, Convert.ToInt16(next_longtime2.Value), Convert.ToInt16(txt_zb.Text.Split(',')[0]), Convert.ToInt16(txt_zb.Text.Split(',')[1])) == "1") { MessageBox.Show("添加成功!"); Control_Point_Load(null, null); } else return; } private void toolStripButton4_Click(object sender, EventArgs e) { if (Cls.Param.UserName_temp == "") { MessageBox.Show("请登录管理员权限!", "AGV调度管理系统", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (delete_point(cmb_linelist.Text.Split('.')[0], num_id.Value.ToString()) == "1") { MessageBox.Show("删除成功!"); Control_Point_Load(null, null); } else return; } private void toolStripButton5_Click(object sender, EventArgs e) { groupBox1.Enabled = true; groupBox2.Enabled = true; groupBox3.Enabled = true; } private void toolStripButton2_Click(object sender, EventArgs e) { if (cmb_linelist.Text != "" || num_id.Value != 0 || num_plcvalue.Value != 0) { ds.Tables.Clear(); str_sql = "SELECT CONVERT( VARCHAR(10),Assembly_Line.ID)+' . '+Line_name as 线体" + ",[Assembly_Line] as 线体编号" + ",[Loc_ID] as 位置编号" + ",[Flag_Value] as 标记值" + ",[Loc_X] as 坐标x" + ",[Loc_Y] as 坐标y" + ",CONVERT( VARCHAR(10),Loc_X)+','+CONVERT( VARCHAR(10),Loc_Y) as 位置坐标" + ",[Binding] as 绑定方式" + ",LandMarkInfo.[Area] as 地图编号" + ",(Case when LandMarkInfo.Assembly_ID >0 THEN '管控停止点' ELSE '管控复位点' END) as 位置类型" + ",[Bank] as 障碍物模式" + ",[Speed] as 速度" + ",[Next_Station1] as 下一站点1" + ",[Drict1] as 运动模式1" + ",[LongTime1] as 运动时间1" + ",[Next_Station2] as 下一站点2" + ",[Drict2] as 运动模式2" + ",[LongTime2] as 运动时间2" + ",[Next_Station3] as 下一站点3" + ",[Drict3] as 运动模式3" + ",[LongTime3] as 运动时间3" + " FROM LandMarkInfo ,Assembly_Line" + " WHERE LandMarkInfo.Assembly_Line = Assembly_Line.ID"; ds = db.connDt(str_sql); if (cmb_linelist.Text != "" && cmb_linelist.Text != "所有线体") str_sql = str_sql + " and LandMarkInfo.Assembly_Line = " + cmb_linelist.Text.Split('.')[0]; if (num_id.Value != 0) str_sql = str_sql + " and Landmarkinfo.Loc_id = " + num_id.Value.ToString(); if (num_plcvalue.Value != 0) str_sql = str_sql + " and Landmarkinfo.flag_value = " + num_plcvalue.Value.ToString(); ds = db.connDt(str_sql); if (ds.Tables.Count > 0) dataGridView1.DataSource = ds.Tables[0]; } } DataSet ds1; private void num_id_ValueChanged(object sender, EventArgs e) { string strsql; if (groupBox1.Enabled==true && num_id.Value != 0) { strsql = "SELECT top 1 [Flag_Value] ,[Loc_X] ,[Loc_Y] ,[Binding] ,[Area] ,[Assembly_ID] ,[Bank] " + ",[Speed] ,[Next_Station1] ,[Drict1] ,[LongTime1] ,[Next_Station2] ,[Drict2] ,[LongTime2] " + " FROM [LandMarkInfo] where loc_id =" + num_id.Value; ds1 = db.connDt(strsql); if (ds1.Tables[0].Rows.Count == 1) button1.Visible = true; else button1.Visible = false; } if (!groupBox1.Enabled) button1.Visible = false; } private void button1_Click(object sender, EventArgs e) { if (ds1.Tables[0].Rows.Count == 1) { num_plcvalue.Value = Convert.ToInt16(ds1.Tables[0].Rows[0]["Flag_Value"].ToString()); cmb_map.SelectedIndex = Convert.ToInt16(ds1.Tables[0].Rows[0]["Area"].ToString()); cmb_bd.SelectedIndex = Convert.ToInt16(ds1.Tables[0].Rows[0]["Binding"].ToString()); txt_zb.Text = ds1.Tables[0].Rows[0]["Loc_X"].ToString() + "," + ds1.Tables[0].Rows[0]["Loc_Y"].ToString(); cmb_type.SelectedIndex = ds1.Tables[0].Rows[0]["Assembly_ID"].ToString() == "0" ? 0 : 1; cmb_zhangaiwu.SelectedIndex = Convert.ToInt16(ds1.Tables[0].Rows[0]["Bank"].ToString()); num_speed.Value = Convert.ToDecimal(ds1.Tables[0].Rows[0]["Speed"].ToString()); next_loc1.Value = Convert.ToDecimal(ds1.Tables[0].Rows[0]["Next_Station1"].ToString()); next_loc2.Value = Convert.ToDecimal(ds1.Tables[0].Rows[0]["Next_Station2"].ToString()); next_longtime1.Value = Convert.ToDecimal(ds1.Tables[0].Rows[0]["LongTime1"].ToString()); next_longtime2.Value = Convert.ToDecimal(ds1.Tables[0].Rows[0]["LongTime2"].ToString()); cmb_run1.SelectedIndex = Convert.ToInt16(ds1.Tables[0].Rows[0]["Drict1"].ToString()); cmb_run2.SelectedIndex = Convert.ToInt16(ds1.Tables[0].Rows[0]["Drict2"].ToString()); } } private string update_point(int Assembly_Line, int Loc_ID, int Flag_Value, int Binding, int Area, int Assembly_ID, int Bank, int Speed, int Next_Station1, int Drict1, int LongTime1, int Next_Station2, int Drict2, int LongTime2, int Loc_X, int Loc_Y) { string rowcount = "0" ,strsql; strsql = "UPDATE [LandMarkInfo] "+ " SET [Flag_Value] = "+Flag_Value+ " ,[Loc_X] = "+Loc_X+ " ,[Loc_Y] = "+Loc_Y + " ,[Binding] = "+Binding+ " ,[Area] = "+Area+ " ,[Assembly_ID] = "+Assembly_ID+ " ,[Bank] = "+Bank+ " ,[Speed] = "+Speed+ " ,[Next_Station1] = "+Next_Station1+ " ,[Drict1] = "+Drict1+ " ,[LongTime1] = "+LongTime1+ " ,[Next_Station2] = "+Next_Station2+ " ,[Drict2] = "+Drict2+ " ,[LongTime2] = "+LongTime2+ " WHERE [Assembly_Line] = "+Assembly_Line+ " and [Loc_ID] ="+Loc_ID; rowcount = db.Command(strsql); return rowcount; } private void toolStripButton6_Click(object sender, EventArgs e) { if (Cls.Param.UserName_temp == "") { MessageBox.Show("请登录管理员权限!", "AGV调度管理系统", MessageBoxButtons.OK, MessageBoxIcon.Information); return; } if (update_point(Convert.ToInt16(cmb_linelist.Text.Split('.')[0]), Convert.ToInt16(num_id.Value), Convert.ToInt16(num_plcvalue.Value), cmb_bd.SelectedIndex, cmb_map.SelectedIndex, Convert.ToInt16((cmb_type.SelectedIndex == 1) ? cmb_linelist.Text.Split('.')[0] : "0"), cmb_zhangaiwu.SelectedIndex, Convert.ToInt16(num_speed.Value), Convert.ToInt16(next_loc1.Value), cmb_run1.SelectedIndex, Convert.ToInt16(next_longtime1.Value), Convert.ToInt16(next_loc2.Value), cmb_run2.SelectedIndex, Convert.ToInt16(next_longtime2.Value), Convert.ToInt16(txt_zb.Text.Split(',')[0]), Convert.ToInt16(txt_zb.Text.Split(',')[1])) == "1") { MessageBox.Show("更新成功!"); Control_Point_Load(null, null); } else return; } } }