版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
【前言】
哦吼!它来咯,它来咯,它带着结账窗体走来咯!昨天进行到了号称机房“三座大山”之一的结账窗体,看了一眼,懵逼三连,这啥玩意?啥意思?咋敲啊?这个就长下面这个样子。然后捋了很长时间的思路,终于还是把它给做出来啦,下面奉上我的看法和总结!
【控件】
1.这个窗体用到了一个新的控件—SS Tab控件,首先来说一下它的添加,我们像添加日期控件那样,在工程—部件窗口中找到这个控件,点击确定。
2.我们点击工具箱窗口里多出来的这个SS Tab控件,然后把它添加到窗体上,右击,点击属性,在弹出的界面中输入下列内容
3.点击下图框起来的位置,依次输入标题,输入完全部的之后点击确定即可。
【思路】
控件添加完之后我们来捋一下这个窗体的流程,这个窗体的功能是结账,说通俗点就是网吧老板想看看他的某个小员工最近卖出去几张卡,退了几张卡,他是挣钱还是赔钱啊。我们来看一下流程图。
【代码】
安好了控件,弄清了思路,接下来就是如何用代码来实现了,首先是根据管理员选择的操作员用户名直接加载出操作员姓名来,我还做了一个根据姓名选用户名,异曲同工,因为老板可能不会记得我员工的用户名是123还是别的,他可能只记得他是不是叫小张、小刘等等。代码如下。
'根据用户名选姓名
txtsql = "select * from user_info where userid = '" & Trim(combousername.Text) & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
comboname.Text = mrc.Fields(3)
mrc.Close
'根据姓名选用户名
txtsql = "select * from user_info where username = '" & Trim(comboname.Text) & "'"
Set mrc = ExecuteSQL(txtsql, msgtext)
combousername.Text = mrc.Fields(0)
查询售卡结果并加载在表格中,注意student表里的有关结账和未结账的字段名是lscheck,不是Lscheck,否则字段名敲错整个查询语句就错了,肯定就会报”91"了。
txtsql = "select * from student_info where Ischeck='未结账' and type = '固定用户' and UserID = '" & Trim(combousername.Text) & "'"
Set mrs = ExecuteSQL(txtsql, msgtext)
With msfgrid1
.Rows = 1
.CellAlignment = 4
.TextMatrix(0, 0) = "学号"
.TextMatrix(0, 1) = "卡号"
.TextMatrix(0, 2) = "日期"
.TextMatrix(0, 3) = "时间"
Do While Not mrs.EOF
.Rows = .Rows + 1
.CellAlignment = 4
.TextMatrix(.Rows - 1, 0) = Trim(mrs.Fields(1))
.TextMatrix(.Rows - 1, 1) = Trim(mrs.Fields(0))
.TextMatrix(.Rows - 1, 2) = Trim(mrs.Fields(12))
.TextMatrix(.Rows - 1, 3) = Trim(mrs.Fields(13))
'移动到下一条记录
mrs.MoveNext
Loop
End With
查询退卡结果
txtsql = "select * from cancelcard_info where status='未结账' and UserID = '" & Trim(combousername.Text) & "'"
Set mrcc = ExecuteSQL(txtsql, msgtext)
查询充值结果
txtsql = "select * from recharge_info where status='未结账' and UserID = '" & Trim(combousername.Text) & "'"
Set mrss = ExecuteSQL(txtsql, msgtext)
查询临时用户消费
txtsql = "select * from student_info where Ischeck='未结账' and type = '临时用户' and UserID = '" & Trim(combousername.Text) & "'"
Set mrccc = ExecuteSQL(txtsql, msgtext)