还没开始做机房时,便听到有人说,机房慢慢做,尤其结账那一块特别难。特别难,到底有多难呢?还没开始做,心里便有了一丝害怕。验SQL视频时,特意问了问师父,结账是否真如他们所说,有那么难。嘉颖师父诚恳地跟我说,没事,只有你去做了,才知道做出来的成就感。有了嘉颖师父的定心丸,我心里好像踏实了许多。
这是结账的界面。在做结账前,我们要先理清思路。结账只是针对操作员而言,操作员在这一系统过程所做的一系列工作:购卡、充值、退卡、临时用户和汇总。前四个都还OK啦!只需要读取相关信息。难点在汇总,需要进行一些计算。此时,你要保持足够的头脑,明白以下内容:
售卡张数=购卡选项卡的记录总数
退卡张数=退卡选项卡的记录总数
退卡金额=cancelcard_Info表中的金额进行累加
总售卡数=售卡数-退卡数
注册和充值金额=student_Info 表中注册时候的充值金额+Recharge_Info 表中的充值金额(注册时的充值的钱和充值时充进去的钱其实都一样)
应收金额=注册和充值金额-退卡金额
结账:将student_Info 、Recharge_Info、Cancelcard_Info 中的“未结账”改为“结账”。
好啦,思路清晰了,接下来就是代码的实现部分了。以下是我结账窗体的重要代码:
'通过用户名显示真实姓名
txtsql = "select * from user_info where UserID='" & comboOpUserID.Text & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
comboOpRealName.Text = mrc!UserName
mrc.Close
购卡选项卡的重要代码:
If SSTab1.Tab = 0 Then
'将查询的内容显示在表格控件中
With myFgBuyCard(0)
.Rows = 1
.CellAlignment = 4
.TextMatrix(0, 0) = "???"
.TextMatrix(0, 1) = "????"
.TextMatrix(0, 2) = "????"
.TextMatrix(0, 3) = "???"
'判断是否移动到数据集对象的最后一条
Do While Not mrc1.EOF
.Rows = .Rows + 1
.CellAlignment = 4
.TextMatrix(.Rows - 1, 0) = Trim(mrc1.Fields(1))
.TextMatrix(.Rows - 1, 1) = Trim(mrc1.Fields(0))
.TextMatrix(.Rows - 1, 2) = Trim(mrc1.Fields(13))
.TextMatrix(.Rows - 1, 3) = Trim(mrc1.Fields(14))
'移动到下一条记录
mrc1.MoveNext
Loop
End With
End If
算钱那一部分我主要用到了多条循环语句:
do while not mrc.eof
语句块
loop