机房收费系统之结账
在做机房收费系统的时候,最麻烦的事情,莫过于结账、日结与周结账单的操作。下面就来说一下我自己的经验。
思路
这是我们需要操作的界面。 在做的过程中,思路很重要,思路通了,整个代码也就基本上做出来了。 下面就来分析一下这个界面的功能。
1.通过选择不同的操作员,下面就呈现不同的操作员的工作记录。 2.购卡账单,显示购买卡学生的信息。 3.退卡账单显示退卡学生信息 4.充值卡显示充值学生信息。 5.结账界面,就是整个操作的汇总。
代码过程以上的操作怎么转变为代码呢? 操作员的设置。在操作员选择的部分是同步的(选择好操作员姓名后,下面就是操作员的真实姓名),其实感觉这个功能是多余的。
'选择框写入相应的人员的名字 txtsql = "select * from userinfo where level='" & "操作员" & "'" '选择用户级别 Set mrc = executesql(txtsql,msgtext) Do While mrc.EOF = False text33.AddItem mrc.Fields(0) '通过循环进行添加 mrc.MoveNext Loop
这个也好实现,只需要相应的组合框的单击事件即可同步。
购卡界面购卡界面,是通过切换实现,此操作员的购卡信息。代码如下:
'开始写入购卡信息 If sstab1.Tab = 0 Then '切换不同选项卡来写入事件 myflexgrid1.Rows = 1 '此功能是当切换的时候,自动的清楚行中的信息 myflexgrid1.Cols = 4 '售卡信息 txtsql = "select * from student_information where rechargeman = '" & Trim(text33.Text) & "'" & " and checkcount = '" & "否" & "'" Set mrc = executesql(txtsql,msgtext) With myflexgrid1 .TextMatrix(0,0) = "学号" .TextMatrix(0,1) = "卡号" .TextMatrix(0,2) = "日期" .TextMatrix(0,3) = "时间" Do While mrc.EOF = False .Rows = .Rows + 1 .TextMatrix(.Rows - 1,0) = Str(mrc.Fields(0)) .TextMatrix(.Rows - 1,1) = Str(mrc.Fields(6)) .TextMatrix(.Rows - 1,2) = mrc.Fields(8) .TextMatrix(.Rows - 1,3) = mrc.Fields(9) mrc.MoveNext Loop End With
结账界面操作退卡、充值的操作是一致的。在此就不多说了。 怎么来获得购卡张数,退卡张数呢? 代码如下:
'计算学生购卡的张数 txtsql = "select count(*) from student_information where rechargeman = '" & Trim(text33.Text) & "'" & " and checkcount = '" & "否" & "'" Set mrc = executesql(txtsql,msgtext) g_totalcard = mrc.Fields(0) mrc.Close End If '计算此操作员卖出去的总张数 txtsql = "select count(*) from student_information where rechargeman = '" & Trim(text33.Text) & "'" Set mrc = executesql(txtsql,msgtext) g_allcard = mrc.Fields(0) mrc.Close 通过这种方式可以计算出此操作员的各中操作。 总后的应收总金额总又怎么来写入呢? 应收总金额=充值金额-退卡金额
结账得到了以上的各种功能,下面就开始我们的结账了。 此操作就是把这个结账界面的信息存入到我们的日结账单表中,为以后查询做准备。
首先为了防止重复性的操作一个人员,需要修改状态。代码如下:
'充值状态变化 txtsql = "select * from rechargerecord where rechargeman ='" & Trim(text33.Text) & "'" & " and checkcount = '" & "否" & "'" Set mrc = executesql(txtsql,msgtext) Do While mrc.EOF = False mrc.Fields(5) = "是" mrc.MoveNext Loop mrc.Close
存入数据修改完状态后,就开始把需要的数据存储到日结账单表中 我们的日结账单表如下:
在此我们怎么来了解到上次结账的余额呢? 代码如下:
'上次剩余金额 txtsql = "select * from checkday" Set mrc = executesql(txtsql,msgtext) '获取上次的剩余金额 mrc.MoveLast '移动到最后 lastremain = mrc.Fields(4) '获得上次结账的余额 mrc.MoveFirst 通过对象的Movelast属性获得我们需要的数据。 写入数据
'添加下一次记录 mrc.AddNew mrc.Fields(0) = lastremain mrc.Fields(1) = g_consumecash mrc.Fields(2) = g_txttotalmoney + money mrc.Fields(3) = Text1.Text mrc.Fields(4) = txtreturnmoney + lastremain mrc.Fields(5) = registerdate mrc.Update mrc.Close MsgBox "结账成功",vbOKOnly + vbExclamation,"提示" 到此,整个结账的过程,添加完毕。
下一篇,将介绍周结账单。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |