机房收费系统之结账(SSTab)

来源:互联网 发布:pop3服务端口 编辑:程序博客网 时间:2024/04/27 07:23

     本篇博客讲解机房中结账模块,突然释怀了很多,终于要把这个项目搞定了。我们首次面对结账这个名词,不知道各位有没有什么思路?反正当时我就是想着和算钱有关系,无非又是筛选表后进行一系列的计算后显示到控件里面,然后我就去看原程序窗体了;


结果映入我们眼帘的是这个东东,这又是什么鬼?于是乎自己去搜集资料,需要了解并且使用这个控件;

     含义SSTab 控件提供了一组选项卡,每个选项卡都可作为其它控件的容器。在控件中,同一时刻只有一个选项卡是活动的,这个选项卡向用户显示它本身所包含的控件而隐藏其它选项卡中的控件。


     经过了解后,自己也知道该如何使用了(起码在机房这个项目里面);然后开始实现窗体,似乎一切都显得那么顺利,心情还不错,最后就是考虑逻辑执行顺序了;

     然后我就懵逼了,我要依靠表中的哪些数据判断他们是否需要结账呢?思前想后我记得当时没有想出来,然后就去找王哥商量这个结账的窗体到底是什么“原理”;经过向王哥请教我大概了解了,于是乎有了下面的执行过程;


     这个导图看似不简单,真的不简单,我的天,足足在纸上写了两遍,然后导图又修改了两遍(小范围),不过还不错,理清楚思路,剩下的干就行了;哈哈...

     对了,我还要插播一句话,在反复思考的阶段你会发现如果修改表中的字段,就会方便自己敲代码---相反你至少需要结合两个表才可以将数据显示出来,而现在一个表就可以,并且条理很清晰!不相信的伙伴们可以尝试下,因为如果你相信的话,指定就会这样去做了;呜呼.....

     不过,这里面也会引入其他的Bug,还记得软工开发里面的“水波效应”,然后我就开始思考哪些窗体应用到我修改的表了,随后开始修复bug,结果发现远远没有自己预算的辣么难;超爽....

     终于踏上了自己的敲代码实现窗体之路,这下还算畅通无阻,下面罗列些比较刺激费脑子的代码吧;

(1)checkday和checkweek表中的数据保持一致;

    txtSql = "delete from checkweek_info"    Set mrc = ExecuteSQL(txtSql, msgText)    txtSql1 = "insert into checkweek_info select * from checkday_info"    Set mrc1 = ExecuteSQL(txtSql1, msgText)
(2)结账的具体算法

    Case 4        txtSellCardSum(0).Text = MSHFlexGrid1.Rows - 1        txtBackCardSum(1).Text = MSHFlexGrid3.Rows - 1        txtAllSellCardSum(5).Text = Val(txtSellCardSum(0).Text) + Val(txtBackCardSum(1).Text)        For i = 1 To MSHFlexGrid2.Rows - 1            Sum = Sum + Val(MSHFlexGrid2.TextMatrix(i, 2))        Next        txtRecharge(2).Text = Sum        For i = 1 To MSHFlexGrid3.Rows - 1            Sum1 = Sum1 + Val(MSHFlexGrid3.TextMatrix(i, 4))        Next        txtBackCardMoney(4).Text = Sum1        txtCollectMoney(6).Text = Sum - Sum1        For i = 1 To MSHFlexGrid2.Rows - 1            If Trim(MSHFlexGrid2.TextMatrix(i, 5)) = "临时用户" Then                Sum2 = Sum2 + Val(MSHFlexGrid2.TextMatrix(i, 2))            End If        Next        For i = 1 To MSHFlexGrid3.Rows - 1            If Trim(MSHFlexGrid3.TextMatrix(i, 5)) = "临时用户" Then                Sum3 = Sum3 + Val(MSHFlexGrid3.TextMatrix(i, 4))            End If        Next        txtTmpRecharge(3).Text = Sum2 - Sum3


     至于该窗体中的其它模块,经过简单的查询和执行就可以搞定了,无非就是考虑的是否全面,具体的可以自己慢慢优化,不需要太着急;感谢阅读....下一篇也就是压轴篇---“报表篇”,敬请期待。

原创粉丝点击