结账是做机房遇到的难点之一, 难在是第一次接触结账计算功能,所以很多情况考虑不够全面,做之前一定要梳理关系,把结账的关系梳理清楚,有一个自己的思路,那么,做起来还是很简单的,每一个功能都有它的套路,只要找到了关键的部分,剩下的就是去做了。
结账分为五步:1、选择操作员。2、查询信息。3、计算汇总信息。4、进行结账计算。5、退出
第一步,选择操作员用户名,在这需要考虑的是,操作员用户名能否选择管理员,在软件的使用过程中,管理员也有操作员的全部功能,所以个人认为,操作员用户名应选择操作员和管理员。通过操作员用户名获取姓名,这个很简单,就不在这里说了
第二步,查询购卡、充值、退卡、临时用户信息,这些查询功能使用sql查询语句就可以做到,以下为查询代码:
如:
'购卡
'连接数据库
txtsql = "select * from student_Info where UserID='" & Trim(cbuser.Text) & "'and ischeck='未结账'"
Set mrc = ExecuteSQL(txtsql, msgtext)
'充值
'连接数据库
txtsql = "select * from ReCharge_Info where UserID='" & cbuser.Text & "'and status='未结账'"
Set mrc = ExecuteSQL(txtsql, msgtext)
'退卡
'连接数据库
txtsql = "select * from CancelCard_Info where UserID='" & Trim(cbuser.Text) & "'and status='未结账'"
Set mrc = ExecuteSQL(txtsql, msgtext)
'临时用户
'连接数据库
txtsql = "select * from student_Info where UserID='" & Trim(cbuser.Text) & "'and type='临时用户'and ischeck='未结账'"
Set mrc = ExecuteSQL(txtsql, msgtext)
第三步,汇总
汇总需要计算,该操作员售卡张数、退卡金额、退卡张数、总售卡数、充值金额、应收金额、临时收费金额
售卡张数通过student_Info表查出,查询代码为
'通过student表---查询该操作员售卡数,
txtsql = "select * from student_Info where UserID='" & Trim(cbuser.Text) & "'and ischeck='未结账'" 'and date=date and status='使用'"
Set mrc = ExecuteSQL(txtsql, msgtext)
退卡金额通过CancelCard_Info表查出,查询代码为
'通过CandelCard表,查看退卡金额
txtsql = "select SUM(CancelCash) AS SUM_Info from CancelCard_Info where userID = '" & Trim(cbuser.Text) & "' and status='未结账'"
Set mrc = ExecuteSQL(txtsql, msgtext)
退卡张数通过CancelCard_Info表,查询代码为
'查询退卡张数
txtsql = "select * from CancelCard_Info where userID='" & Trim(cbuser.Text) & "'and status= '未结账' "
Set mrc = ExecuteSQL(txtsql, msgtext)
总售卡数通过student_Info查询,查询代码为
'机房该操作员总售卡数
txtsql = "select * from student_Info where UserID='" & Trim(cbuser.Text) & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
充值金额利用临时表查出,代码为
'充值金额
txtsql = "select SUM(addmoney) AS SUM_Info from ReCharge_Info where userID = '" & cbuser.Text & "' and status='未结账'"
Set mrc = ExecuteSQL(txtsql, msgtext)
If IsNull(Trim(mrc.Fields(0))) Then '充值金额是否为空
txtcash.Text = 0
Else
txtcash.Text = mrc.Fields(0)
End If
本期应收金额(消费金额+余额)=本期充值金额-本期退卡金额
第四步,结账
结账,就是计算日结账单和周结账单中的内容,然后保存到对应的CheckDay_Info表和checkWeek_Info表中,日结账单和周结账单中的内容是一样的
日结账单中需要计算的信息和表中对应关系如下
上期余额---RemainCash
本期充值金额---RechargeCash
本期消费金额---ConsumeCash
本期退款金额---CancelCash
本期金额---AllCash
日期---date
上期余额计算查询代码
'计算上期余额
txtsql = "select sum(cash) from student_Info where UserID='" & Trim(cbuser.Text) & "'and ischeck = '" & "未结账" & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
本期消费金额计算查询代码
'从line表计算当日消费金额
txtsql = "select sum(consume) from Line_Info "
Set mrcL = ExecuteSQL(txtsql, msgtext)
第五步,退出
Unload Me
有不当之处,请在下方评论指出