如果顾客点菜之后想退掉某个菜,就可以在显示所有消费信息的dataGridView1控件中欲删除的商品,单击“删除”按钮,即可将菜退掉,关键代码如下:
1.9 结账模块设计 1.9.1 结账模块概述
顾客消费完毕后,需要对顾客消费清单进行统计,即计算出消费的总额,这
些都是通过结账模块实现额。结账模块主要功能是当顾客每次消费时将顾客消费的项目添加到数据库中,在用户结账时通过对数据库的查询,检索出顾客本次消费的商品名称及价格,然后计算出总额,如图1_19所示。
图1_19 顾客结账
如果输入的金额小于消费的金额,单击“结账”按钮结账,将弹出“金额不足”的提示信息,如图1_20所示;如果在“收银”文本框中输入了错误的数据,将弹出图1_21所示的提示信息。
图1_20 金额不足提示信息
图1_21 提示输入的数据必须为数字
1.9.2 结账模块技术分析
本系统的结账模块,首先从数据库中将顾客消费的所有项目检索出来显示到
DataGridView控件上,以方便管理员校对消费金额,然后通过程序计算后将顾客消费的总额显示出来,当顾客结账时,输入顾客支付的金额,会出现相应的余额,以方便管理员为顾客退还余额。
在开发此模块式,主要用到SUM聚合函数以桌台名称为搜索条件,查询出
消费的总额。
SUM聚合函数用于返回表达式中所有值得和,或只返回DISTINCT值。SUM
只能用于数字列。空值将被忽略。语法如下:
SUM ( [ ALL | DISTINCT ] expression)
? ALL:对所有的值进行聚合函数运算,ALL是默认设置。
? DISTINCT:指定SUM返回唯一值的和。
? EXPRESS:是常量、列火函数,或者是算术、按位与字符串等运算符的
任意组合。Express是精确数字或近似数字数据类型分类(bit数据类型除外)的表达式,不允许使用聚合函数和子查询。
1.9.3 结账模块实现过程
本模块使用的数据表:tb_GuestFood、tb_Room. 结账模块的具体实现步骤如下: (1)
新建一个Windows窗体,命名为frmJZ.cs,主要用于实现对指定的桌台进行结账操作的功能,该窗体用到的主要控件如表1_15所示。 略
(2)
引用建立两个公共变量,分别用于接收住窗体模块中传递的桌台名称及根据名称查询消费的总额,关键代码如下:
当窗体加载时,首先显示结账的桌台名称,然后通过桌台名称检索出消费的所有账目显示到DataGridView控件上,最后将查询出消费的总金额显示到Label控件上,关键代码如下:
在输入顾客支付金额文本框的KeyPress事件下面添加代码,判断文本框中是否输入了正确的数据,关键代码如下:
当管理员在“收银”文本框中输入顾客支付的金额后,系统将自动计算出退还顾客的金额,管家代码如下: