[WHERE
6.3 开台模块实现过程
本模块使用的数据表:tb_Room、tb_Waiter 开台模块的具体实现步骤如下:
(1)新建一个Windows窗体,命名为frmOpen.cs,主要用于实现对指定的桌台进行开台操作的功能。该窗体用到的主要控件如表10所示。
(2)首先建立两个公共变量以便程序中调用。关键代码如下: 例程22 代码位置:光盘\\ TM \\06\\ MrCy \\frmOpen.cs public string name;
public SqlConnection conn;
(3)在窗体加载时,将数据库中所有的桌台信息和职员信息检索出来显示在ComboBox控
件上。
关键代码如下:
例程23 代码位置:光盘\\ TM \\06\\ MrCy \\frmOpen.cs
private void frmOpen_Load(object sender, EventArgs e) {
conn = BaseClass.DBConn.CyCon(); //数据库连接 conn.Open(); //打开连接
SqlCommand cmd = new SqlCommand(\ SqlDataReader sdr = cmd.ExecuteReader(); ? while (sdr.Read()) {
cbNum.Items.Add(sdr[\显示所有桌台信息 }
cbNum.SelectedItem= name.Trim(); //设置选中项 sdr.Close();
cmd = new SqlCommand(\ sdr = cmd.ExecuteReader(); ? while (sdr.Read()) {
//显示所有职员信息
cbWaiter.Items.Add(sdr[\
}
cbWaiter.SelectedIndex = 0; //设置选中第一项 sdr.Close(); }? 代码贴士
此处添加所有桌台信息,用于选择顾客消费的桌台。 ? 此处添加所有职员信息,用于选择为顾客开台的职员名称。 ?
(4)在“用餐人数”文本框中输入用餐人数,此数据必须保证为大于0的数字。关键代码如下:
例程24 代码位置:光盘\\ TM \\06\\ MrCy \\frmOpen.cs
private void txtNum_KeyPress(object sender, KeyPressEventArgs e) {
//判断输入的数据是否为数字
if ((e.KeyChar != 8 && !char.IsDigit(e.KeyChar)) && e.KeyChar != 13) {
MessageBox.Show(\请输入数字\ e.Handled = true; } }
(5)当数据输入完毕之后,单击“保存”按钮即可对指定的桌台进行开台操作。关键代码如下:
例程25 代码位置:光盘\\ TM \\06\\ MrCy \\frmOpen.cs
private void btnSave_Click(object sender, EventArgs e)
{
//如果输入的数据为空或者小于等于0时
if (txtNum.Text == \ {
MessageBox.Show(\请输入用餐人数\ } else {
string RoomName = cbNum.SelectedItem.ToString(); //获取开台的桌台名称 SqlCommand cmd1 = new SqlCommand(\tb_Room set GuestName='\+ txtName.Text + \
Date='\+ dateTimePicker1.Value.ToString() + \+ Convert.ToInt32(txtNum.Text) + \
SelectedItem. ToString() + \使用' where RoomName='\+ name + \conn);
cmd1.ExecuteNonQuery(); //更新相应的数据 this.Close(); //关闭窗体 } }
7 点菜模块设计
7.1 点菜模块概述
为顾客选定好桌台,并且开台之后,会根据顾客的需要点菜或购买茶水烟酒之类的消费品,在点菜模块中会显示餐厅特有的一些菜系,用户可以对不同的菜系进行选择。点菜模块运行结果如图 31所示。
7.2 点菜模块技术分析
系统的点菜模块主要利用了 TreeView控件显示所有的菜系,利用 DataGridView控件显示顾客消费的所有信息,当单击某个菜系时,右侧将出现此菜系的所有详细信息,选择菜系后单击“保存”按钮完成对指定桌台的点菜操作。下面对点菜模块中用到的TreeView控件进行介绍。
TreeView控件可以为用户显示节点层次结构,就像在Windows操作系统的资源管理器的左窗格中显示文件和文件夹一样。 树视图中的各个节点都可以包含其他节点。用户可以按展开或折叠的方式显示父节点或包含子节点的节点。另外,通过将树视图的CheckBoxes属性设置为true,可以在节点旁边显示复选框,用户可以通过将节点的Checked属性设置为true或false来选中或清除节点。
TreeView控件的属性及说明如表11所示。
下面详细介绍Nodes属性,该属性用于设置TreeView控件中的所有节点。 语法格式如下:
public TreeNodeCollection Nodes { get; }
属性值:TreeNodeCollection表示分配给树视图控件的树节点。 例如:
private void button1_Click(object sender, EventArgs e) {
treeView1.ImageList = imageList1; //设置TreeView控件的图像源 TreeNode tr = new TreeNode(\公司职员\添加根节点 tr.Nodes.Add(\小张\为根节点添加子节点 tr.Nodes.Add(\小王\为根节点添加子节点 tr.Nodes.Add(\小李\为根节点添加子节点 tr.Nodes.Add(\小刘\为根节点添加子节点 tr.Nodes.Add(\小孰\为根节点添加子节点 tr.Nodes.Add(\小赵\为根节点添加子节点 tr.Nodes.Add(\小懂\为根节点添加子节点 tr.Nodes.Add(\小高\为根节点添加子节点 treeView1.Nodes.Add(tr); //将节点添加到控件中 treeView1.ExpandAll(); //展开控件 }
相关推荐: