您的位置:首页 > 其它

餐饮管理之开台

2016-05-25 16:07 295 查看
开台主要有两个功能,对已开台的管理和新增开台,

一 开台表的设计

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

表格显示效果如下:



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

效果如下:



二 新增开台

界面设计





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

初始化的过程代码

private void OpenForm_Load(object sender, EventArgs e)
{
string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; ";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
String sqlcommond = String.Format(@"select * from 桌台信息 where 状态 ='空闲'");
SqlCommand cmd = new SqlCommand(sqlcommond, conn);
//对SQL或存储过程执行后返回的“结果”进行操作
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;

SqlDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
comboBox1.Items.Add(dr["编号"].ToString());
}
dr.Close();

String sqlcommondwork = String.Format(@"select * from 员工信息");
SqlCommand cmdwork = new SqlCommand(sqlcommondwork, conn);
//对SQL或存储过程执行后返回的“结果”进行操作
SqlDataAdapter dawork = new SqlDataAdapter();
da.SelectCommand = cmdwork;

SqlDataReader drwork = cmdwork.ExecuteReader();
while (drwork.Read())
{
comboBox2.Items.Add(drwork["员工姓名"].ToString());
}
drwork.Close();

conn.Close();
}


加入数据库

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

string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; ";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();

String strcout = comboBox1.Text;
String strpeoname = comboBox2 .Text;
String strpeocout = textBox2.Text;
String strdate = "";


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

if (strcout == "")
{
MessageBox.Show("请输入要开台的编号!");
}
else if (strpeoname == "")
{
MessageBox.Show("请输入服务员姓名!");
}
else
{
String sqlcommond = string.Format(@"select * from 桌台信息 where 编号 ='" + strcout + "'");
SqlCommand cmd = new SqlCommand(sqlcommond, conn);

//对SQL或存储过程执行后返回的“结果”进行操作
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;

SqlDataReader dr = cmd.ExecuteReader();

if (!dr.Read())
{
MessageBox.Show("没有该桌号!");
}
else if (dr["状态"].ToString().Equals("占用"))
{
MessageBox.Show("该桌号非空闲");
}
else
{
String strname = dr["名称"].ToString();
strdate = DateTime.Now.ToString();
dr.Close();
String sqlcommond2 = string.Format(@"insert into 开台表(编号,名称,服务员,人数,日期) values('" + strcout + "','" + strname + "','" + strpeoname + "','" + strpeocout + "','" + strdate + "')");
SqlCommand cmd2 = new SqlCommand(sqlcommond2, conn);
cmd2.ExecuteNonQuery();
String sqlcommond3 = string.Format(@"update 桌台信息 set 状态='占用' where 编号='" + strcout + "'");
SqlCommand cmd3 = new SqlCommand(sqlcommond3, conn);
cmd3.ExecuteNonQuery();
MessageBox.Show(strcout + "号开台成功");
}
conn.Close();


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

Order ord = new Order();
ord.desknum = comboBox1.Text.Trim();
ord.servername = comboBox2.Text.Trim();
ord.peocount = Convert.ToInt32(textBox2.Text.Trim());
ord.time = strdate;

ord.Show();


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

三 开台表界面





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

开台表初始化代码

private void Opentable_Load(object sender, EventArgs e)
{
string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; ";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
String sqlcommond = "select * from 开台表";
SqlCommand cmd = new SqlCommand(sqlcommond, conn);

//对SQL或存储过程执行后返回的“结果”进行操作
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;

SqlDataReader dr = cmd.ExecuteReader();
listView1.Items.Clear();//再次
comboBox1.Items.Clear();
while (dr.Read())
{
//MessageBox.Show("1111");
//构建一个ListView的数据,存入数据库数据,以便添加到listView1的行数据中
ListViewItem it = new ListViewItem();
it.Text = dr["编号"].ToString();

it.SubItems.Add(dr["名称"].ToString());

it.SubItems.Add(dr["服务员"].ToString());

it.SubItems.Add(dr["人数"].ToString());

it.SubItems.Add(dr["日期"].ToString());

//将lt数据添加到listView1控件中
listView1.Items.Add(it);

comboBox1.Items.Add(dr["编号"].ToString());
}
conn.Close();
}


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

查询操作的显示及代码

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



查询操作的相应代码如下

private void button3_Click(object sender, EventArgs e)
{

Boolean flag = false;
for(int i=0;i<listView1.Items.Count;i++)
{
if (listView1.Items[i].SubItems[0].Text.IndexOf(comboBox1.Text.Trim()) >= 0)
{
flag = true;
listView1.Items[i].Selected = true;
listView1.Items[i].EnsureVisible();
listView1.Items[oldread].BackColor = Color.White;
listView1.Items[i].BackColor = Color.Blue;
oldread = i;
break;
}
}
if(!flag)
{
MessageBox.Show("未找到该桌号");
}

}


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

取消开台及刷新

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

取消开台的代码如下:

private void button4_Click_1(object sender, EventArgs e)
{

if (listView1.SelectedItems.Count > 0)
{
string desknum = listView1.SelectedItems[0].SubItems[0].Text;
string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; ";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
//删除桌台表中的相关信息
string sqlcommondkaitai = string.Format(@"delete from 开台表 where 编号 = '" + desknum + "'");
SqlCommand cmd = new SqlCommand(sqlcommondkaitai, conn);
SqlDataReader sr =  cmd.ExecuteReader();
sr.Close();

//删除点菜信息中的相关信息
string sqlcommondorder = string.Format(@"delete from 点菜信息 where 桌台位置 = '" + desknum + "'");
SqlCommand cmdorder = new SqlCommand(sqlcommondorder, conn);
SqlDataReader srorder = cmdorder.ExecuteReader();
srorder.Close();

//删除具体点菜信息中的相关信息
string sqlcommondorder1 = string.Format(@"delete from 具体点菜信息 where 桌台位置 = '" + desknum + "'");
SqlCommand cmdorder1 = new SqlCommand(sqlcommondorder1, conn);
SqlDataReader srorder1 = cmdorder.ExecuteReader();
srorder1.Close();

//修改桌台信息表中相应的信息由占用到空闲
int desk = Convert.ToInt32(desknum);
String sqlcommond3 = string.Format(@"update 桌台信息 set 状态='空闲' where 编号= '"+desk+"' ");
SqlCommand cmd3 = new SqlCommand(sqlcommond3, conn);
SqlDataReader sr3 = cmd3.ExecuteReader();
sr3.Close();

conn.Close();

//删除选择项
int lisnum = listView1.Items.IndexOf(listView1.FocusedItem);
listView1.Items.Remove(listView1.Items[lisnum]);

}
else
{
MessageBox.Show("请选择你要删除的桌台!");

}

}


刷新操作的代码如下

private void button1_Click(object sender, EventArgs e)
{
string strConn = @"Data Source=.;Initial Catalog=Restaurant;Integrated Security=SSPI; ";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
String sqlcommond = "select * from 开台表";
SqlCommand cmd = new SqlCommand(sqlcommond, conn);

//对SQL或存储过程执行后返回的“结果”进行操作
SqlDataAdapter da = new SqlDataAdapter();
da.SelectCommand = cmd;

SqlDataReader dr = cmd.ExecuteReader();
listView1.Items.Clear();//再次
comboBox1.Items.Clear();
while (dr.Read())
{
//MessageBox.Show("1111");
//构建一个ListView的数据,存入数据库数据,以便添加到listView1的行数据中
ListViewItem it = new ListViewItem();
it.Text = dr["编号"].ToString();

it.SubItems.Add(dr["名称"].ToString());

it.SubItems.Add(dr["服务员"].ToString());

it.SubItems.Add(dr["人数"].ToString());

it.SubItems.Add(dr["日期"].ToString());

//将lt数据添加到listView1控件中
listView1.Items.Add(it);

comboBox1.Items.Add(dr["编号"].ToString());
}
conn.Close();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: