餐饮管理之开台

开台主要有两个功能,对已开台的管理和新增开台,

一 开台表的设计

  此表名为'开台表',属性有编号,名称,服务员,人数,日期.编号是每台桌子的编号,唯一不为空,设置为主键,需从桌台管理表中查询,名称,相当于每台桌子的位置,服务员,在开台时可指派服务员,须从服务员对应的表中查询,人数为此桌有多少人,日期可自己制定,默认为当前时间.

  表格显示效果如下:

在主界面的开台菜单下可选择进入开台表界面或开台

效果如下:

 

二 新增开台

 界面设计

开台需要添加桌号,服务员和人数信息,桌号和服务员都有下拉框,在开台页面初始化的过程中会将空闲桌号加入到桌号下拉框中,服务员的下拉框一样,便于用户操作.

 初始化的过程代码

 1 private void OpenForm_Load(object sender, EventArgs e)
 2         {
 3             string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; ";
 4             SqlConnection conn = new SqlConnection(strConn);
 5             conn.Open();
 6             String sqlcommond = String.Format(@"select * from 桌台信息 where 状态 ='空闲'");
 7             SqlCommand cmd = new SqlCommand(sqlcommond, conn);
 8             //对SQL或存储过程执行后返回的“结果”进行操作
 9             SqlDataAdapter da = new SqlDataAdapter();
10             da.SelectCommand = cmd;
11 
12             SqlDataReader dr = cmd.ExecuteReader();
13             while (dr.Read())
14             {
15                 comboBox1.Items.Add(dr["编号"].ToString());
16             }
17             dr.Close();
18 
19 
20             String sqlcommondwork = String.Format(@"select * from 员工信息");
21             SqlCommand cmdwork = new SqlCommand(sqlcommondwork, conn);
22             //对SQL或存储过程执行后返回的“结果”进行操作
23             SqlDataAdapter dawork = new SqlDataAdapter();
24             da.SelectCommand = cmdwork;
25 
26             SqlDataReader drwork = cmdwork.ExecuteReader();
27             while (drwork.Read())
28             {
29                 comboBox2.Items.Add(drwork["员工姓名"].ToString());
30             }
31             drwork.Close();
32 
33 
34             conn.Close();
35         }

 加入数据库

 确认添加后数据会加入开台表中,代码如下

1 string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; ";
2             SqlConnection conn = new SqlConnection(strConn);
3             conn.Open();
4 
5             String strcout = comboBox1.Text;
6             String strpeoname = comboBox2 .Text;
7             String strpeocout = textBox2.Text;
8             String strdate = "";

连接数据库,并将插入的信息保存在字符串中.

 

 1 if (strcout == "")
 2             {
 3                 MessageBox.Show("请输入要开台的编号!");
 4             }
 5             else if (strpeoname == "")
 6             {
 7                 MessageBox.Show("请输入服务员姓名!");
 8             }
 9             else
10             {
11                 String sqlcommond = string.Format(@"select * from 桌台信息 where 编号 ='" + strcout + "'");
12                 SqlCommand cmd = new SqlCommand(sqlcommond, conn);
13 
14                 //对SQL或存储过程执行后返回的“结果”进行操作
15                 SqlDataAdapter da = new SqlDataAdapter();
16                 da.SelectCommand = cmd;
17 
18                 SqlDataReader dr = cmd.ExecuteReader();
19 
20                 if (!dr.Read())
21                 {
22                     MessageBox.Show("没有该桌号!");
23                 }
24                 else if (dr["状态"].ToString().Equals("占用"))
25                 {
26                     MessageBox.Show("该桌号非空闲");
27                 }
28                 else
29                 {
30                     String strname = dr["名称"].ToString();
31                     strdate = DateTime.Now.ToString();
32                     dr.Close();
33                     String sqlcommond2 = string.Format(@"insert into 开台表(编号,名称,服务员,人数,日期) values('" + strcout + "','" + strname + "','" + strpeoname + "','" + strpeocout + "','" + strdate + "')");
34                     SqlCommand cmd2 = new SqlCommand(sqlcommond2, conn);
35                     cmd2.ExecuteNonQuery();
36                     String sqlcommond3 = string.Format(@"update 桌台信息 set 状态='占用' where 编号='" + strcout + "'");
37                     SqlCommand cmd3 = new SqlCommand(sqlcommond3, conn);
38                     cmd3.ExecuteNonQuery();
39                     MessageBox.Show(strcout + "号开台成功");
40                 }
41                 conn.Close();

需要对插入的信息进行判断是否合格,都合格后插入开台表,并更新'桌台信息'表中该桌台的状态为占用.插入成功后需要跳出插入成功的提示.最后要关闭数据库.

1 Order ord = new Order();
2                 ord.desknum = comboBox1.Text.Trim();
3                 ord.servername = comboBox2.Text.Trim();
4                 ord.peocount = Convert.ToInt32(textBox2.Text.Trim());
5                 ord.time = strdate;
6 
7 
8                 ord.Show();

成功开台后,跳到选菜的界面.

三 开台表界面

开台界面的主要功能有显示开台信息,查询,删除等,开台表中的编号栏也有下拉框,其中的信息为所有已开台的编号.

开台表初始化代码

 

 1  private void Opentable_Load(object sender, EventArgs e)
 2         {
 3             string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; ";
 4             SqlConnection conn = new SqlConnection(strConn);
 5             conn.Open();
 6             String sqlcommond = "select * from 开台表";
 7             SqlCommand cmd = new SqlCommand(sqlcommond, conn);
 8 
 9             //对SQL或存储过程执行后返回的“结果”进行操作
10             SqlDataAdapter da = new SqlDataAdapter();
11             da.SelectCommand = cmd;
12 
13             SqlDataReader dr = cmd.ExecuteReader();
14             listView1.Items.Clear();//再次
15             comboBox1.Items.Clear();
16             while (dr.Read())
17             {
18                 //MessageBox.Show("1111");
19                 //构建一个ListView的数据,存入数据库数据,以便添加到listView1的行数据中
20                 ListViewItem it = new ListViewItem();
21                 it.Text = dr["编号"].ToString();
22 
23                 it.SubItems.Add(dr["名称"].ToString());
24 
25                 it.SubItems.Add(dr["服务员"].ToString());
26 
27                 it.SubItems.Add(dr["人数"].ToString());
28 
29                 it.SubItems.Add(dr["日期"].ToString());
30 
31 
32                 //将lt数据添加到listView1控件中
33                 listView1.Items.Add(it);
34 
35                 comboBox1.Items.Add(dr["编号"].ToString());
36             }
37             conn.Close();
38         }

  搜索开台表将所有开台的编号加入到下拉框中,最后关闭数据库.

查询操作的显示及代码

开台界面的查询操作是在所有已开台的桌子中进行查询,查到相应桌子后需要对开台表中对应的一栏进行标蓝便于用户看见,效果如下图

 查询操作的相应代码如下

 1  private void button3_Click(object sender, EventArgs e)
 2         {
 3 
 4                 Boolean flag = false;
 5                 for(int i=0;i<listView1.Items.Count;i++)
 6                 {
 7                     if (listView1.Items[i].SubItems[0].Text.IndexOf(comboBox1.Text.Trim()) >= 0)
 8                     {
 9                         flag = true;
10                         listView1.Items[i].Selected = true;
11                         listView1.Items[i].EnsureVisible();
12                         listView1.Items[oldread].BackColor = Color.White;
13                         listView1.Items[i].BackColor = Color.Blue;
14                         oldread = i;
15                         break;
16                     }
17                 }
18                 if(!flag)
19                 {
20                     MessageBox.Show("未找到该桌号");
21                 }
22             
23 
24         }

此操作无需查询数据库,在该开台界面显示的开台表中查询即可,若未找到会报出相应的提示.

取消开台及刷新

取消开台不仅仅是在该开台表中删除相应开台信息,还涉及其他表的一些信息的改变,如桌台信息表中该编号相应的状态信息要进行更新操作.

取消开台的代码如下:

 1 private void button4_Click_1(object sender, EventArgs e)
 2         {
 3 
 4             if (listView1.SelectedItems.Count > 0)
 5             {
 6                 string desknum = listView1.SelectedItems[0].SubItems[0].Text;
 7                 string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; ";
 8                 SqlConnection conn = new SqlConnection(strConn);
 9                 conn.Open();
10                 //删除桌台表中的相关信息
11                 string sqlcommondkaitai = string.Format(@"delete from 开台表 where 编号 = '" + desknum + "'");            
12                 SqlCommand cmd = new SqlCommand(sqlcommondkaitai, conn);
13                 SqlDataReader sr =  cmd.ExecuteReader();
14                 sr.Close();
15 
16                 //删除点菜信息中的相关信息
17                 string sqlcommondorder = string.Format(@"delete from 点菜信息 where 桌台位置 = '" + desknum + "'");
18                 SqlCommand cmdorder = new SqlCommand(sqlcommondorder, conn);
19                 SqlDataReader srorder = cmdorder.ExecuteReader();
20                 srorder.Close();
21 
22                 //删除具体点菜信息中的相关信息
23                 string sqlcommondorder1 = string.Format(@"delete from 具体点菜信息 where 桌台位置 = '" + desknum + "'");
24                 SqlCommand cmdorder1 = new SqlCommand(sqlcommondorder1, conn);
25                 SqlDataReader srorder1 = cmdorder.ExecuteReader();
26                 srorder1.Close();
27 
28                 //修改桌台信息表中相应的信息由占用到空闲
29                 int desk = Convert.ToInt32(desknum);
30                 String sqlcommond3 = string.Format(@"update 桌台信息 set 状态='空闲' where 编号= '"+desk+"' ");
31                 SqlCommand cmd3 = new SqlCommand(sqlcommond3, conn);
32                 SqlDataReader sr3 = cmd3.ExecuteReader();
33                 sr3.Close();
34 
35 
36 
37                 
38                 conn.Close();
39 
40 
41                 //删除选择项
42                 int lisnum = listView1.Items.IndexOf(listView1.FocusedItem);
43                 listView1.Items.Remove(listView1.Items[lisnum]);
44 
45             }
46             else
47             {
48                 MessageBox.Show("请选择你要删除的桌台!");
49 
50             }
51 
52         }

刷新操作的代码如下

 1  private void button1_Click(object sender, EventArgs e)
 2         {
 3             string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; ";
 4             SqlConnection conn = new SqlConnection(strConn);
 5             conn.Open();
 6             String sqlcommond = "select * from 开台表";
 7             SqlCommand cmd = new SqlCommand(sqlcommond, conn);
 8 
 9             //对SQL或存储过程执行后返回的“结果”进行操作
10             SqlDataAdapter da = new SqlDataAdapter();
11             da.SelectCommand = cmd;
12 
13             SqlDataReader dr = cmd.ExecuteReader();
14             listView1.Items.Clear();//再次
15             comboBox1.Items.Clear();
16             while (dr.Read())
17             {
18                 //MessageBox.Show("1111");
19                 //构建一个ListView的数据,存入数据库数据,以便添加到listView1的行数据中
20                 ListViewItem it = new ListViewItem();
21                 it.Text = dr["编号"].ToString();
22 
23                 it.SubItems.Add(dr["名称"].ToString());
24 
25                 it.SubItems.Add(dr["服务员"].ToString());
26 
27                 it.SubItems.Add(dr["人数"].ToString());
28 
29                 it.SubItems.Add(dr["日期"].ToString());
30 
31 
32                 //将lt数据添加到listView1控件中
33                 listView1.Items.Add(it);
34 
35                 comboBox1.Items.Add(dr["编号"].ToString());
36             }
37             conn.Close();
38 
39         }
40      

 

 

 

 

 

 

 

posted @ 2016-05-25 16:07  team_h2s2z  阅读(1015)  评论(0编辑  收藏  举报