zoukankan      html  css  js  c++  java
  • 餐饮管理之开台

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

    一 开台表的设计

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

      表格显示效果如下:

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

    效果如下:

    二 新增开台

     界面设计

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

     初始化的过程代码

     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      

     

  • 相关阅读:
    XML炸弹
    IP分片攻击——就是发送部分分片报文,让对方一直等待从而耗对方内存的DoS攻击
    灰色软件——广告软件,拨号软件,远程访问软件等
    rootkit——一种特殊的恶意软件,它的功能是在安装目标上隐藏自身及指定的文件、进程和网络链接等信息,一般都和木马、后门等其他恶意程序结合使用
    漏洞利用 Exploit---利用默认口令、IP假冒、应用漏洞
    SequenceFile文件
    随机森林和GBDT的几个核心问题
    机器学习中的算法(1)-决策树模型组合之随机森林与GBDT
    直方图中最大矩形面积
    openMP多线程编程
  • 原文地址:https://www.cnblogs.com/team-h2s2z/p/5494855.html
Copyright © 2011-2022 走看看