机房开放收费管理系统—后期总结反思
在写了第一个机房收费管理系统功能分析表以后,我是这样想的,既然要模仿现在这个收费管理系统,那么就要了解它的功能,初步知道了功能,那如何实现这个功能,是什么技术支持,这些都好说,比较难找的就是这些功能,这些背后的东西,背后的联系,各自的细节处理等等这些东西都是需要好好考虑的。
就进行第一次分析后,我的步骤就是,按照后台操控、前台管理,分别走了这么一趟,测试过新卡注册、充值、刷卡上下机,各个权限的记录查询,结账,报表...
我把凡是和数据打交道的窗体都初定为一个数据库中的数据表,这样数据处理起来就会简单一点,可是又有好多表关联很紧,于是我就把它们"合并同类项"了,最后定下来了8个表,可是经过这个收费系统各个功能的一通儿实现后,发现这几个表根本不够,有的表中缺少一些其他的数据说明,于是我就增加几列来存储那些数据。有的数据没地儿存储,那只有新建表来存放这些数据啦,难不成让这些数据 "露宿街头"吧~ 。
我认为针对这个系统,了解各个功能窗体还主要是用于分析建表,对于数据库编程来说,主要对象还是数据库里数据的增删改查的基本操作。同样,这些简单的操作叠合在一起就会有金字塔般的效果。很神奇的哈~~
就这样,清点一下 总共是10各表。
其中的表的字段名定义很多不规范的,还需要好好总结,学习。
表1 Rguser_info(注册学生信息/学生的基本信息/学生的上机消费/余额信息)注:在这个表里增加了注册老师这一表项。
学号 |
姓名 |
系别 |
年级 |
班级 |
卡号 |
余额 |
性别 |
状态 |
备注 |
注册老师 |
Student_id |
student_name |
Subject |
grade |
class |
Card_no |
Blance |
Sex |
Student_state |
Remark |
Rg_Teacher |
表2 ChargeMo_info(学生充值信息/收取金额查询)
卡号 |
充值金额 |
充值日期 |
充值时间 |
充值教师 |
结账状态(未/已结帐) |
写入结账状态的日期 (用于后面的结账报表) |
Card_no |
Charge_amount |
Charge_date |
Charge_time |
Charge_teacher |
Close_state |
Close_date |
表3 CloseMo_info(退还学生金额信息,退卡信息)
卡号 |
退还金额 |
退还日期 |
退还时间 |
结账老师 |
结账状态() |
Card_no |
Close_amount |
Close_date |
Close_time |
Close_teacher |
Close_state |
表4 Operator_info(操作员工作记录查询)
序号 |
教师 |
级别 |
上机日期 |
上机时间 |
下机日期 |
下机时间 |
机器名 |
Serial_no |
Teacher_name |
Level_no |
Rg_date |
Rg_time |
Exit_date |
Exit_time |
Computer_name |
表5 ModifyOperator_info(添加、删除操作员)
用户名 |
用户级别 |
密码 |
姓名 |
开户人 |
Yhm |
Level_no |
password |
xm |
khr |
表6 StudentRcd_info(学生上机记录)
卡号 |
姓名 |
上机日期 |
上机时间 |
下机日期 |
下机时间 |
消费金额 |
余额 |
备注 |
Card_no |
Student_name |
login_date |
login_time |
Down_date |
Down_time |
Expense |
Blance |
Remark |
表7 OndutyOperator_info(正在值班老师查询)
教师 |
级别 |
登录日期 |
登录时间 |
在线状态 |
机器名 |
teacher_name |
Level_no |
Login_date |
Login_time |
Teacher_state |
Computer_name |
表8 SetBasedata_info(基本数据设定)
固定用户半小时消费 |
递增时间 |
最少时间 |
准备时间 |
最少金额 |
Half_cost |
Time_addstep |
Time_atleast |
Time_getready |
Money_atleast |
表9 DayCheckout_info(日结账报表)
上期充值卡余额 |
当日充值总额 |
当日消费 |
当日退款 |
本期充卡余额 |
备注 |
Lastcharge_blance |
Todaycharge_blance |
Today_expense |
Today_close |
Thischarge_blance |
Ramark |
表10 WeekCheckout_info(周结账报表)
上期充值卡余额 |
本期充值总额 |
本期消费金额 |
本期退款金额 |
本期充值卡余额 |
备注 |
Lastcharge_blance |
Thischarge_amount |
Thisexpense_amount |
Thisclose_amount |
Thischarge_blance |
remark |
表9和表10 是新增的表,主要是针对后面的报表打印,要使用GRD++Report 控件,如果单独有两个表来存储相关的数据,那会很省力。
接下来说说,在这个收费管理系统内部编码的过程遇到的一些问题。
1.问题:出现学生消费金额为null值不可读,这些问题出于未正常结账,客户端非正常关闭,这些信息多是因为调试阶段出现问题。
2、问题:显示记录信息的控件会"信息滞留",就是在你进行下一个操作的时候还回现实着上一个学生的信息。这样容易发生错误。只要在change过程里写一个清空,然后再初始化一下。
解决方法如下:
Private Sub txtCardno_Change()
myflexgrid.Clear
With myflexgrid