加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

VB机房收费系统问题

发布时间:2020-12-16 22:20:21 所属栏目:大数据 来源:网络整理
导读:这次的VB机房收费系统,昨天算是完全做完了. 其实还是有些问题,比如我的特殊字符检查就做的不好,我只检查了单引号,其他的特殊字符,想想都觉得麻烦,就没做.其实还是有些方法的,比如杨元说可以用正则表达式来控制输入,W就是只能输入数字,字母,汉字和_的,就不用

这次的VB机房收费系统,昨天算是完全做完了.

其实还是有些问题,比如我的特殊字符检查就做的不好,我只检查了单引号,其他的特殊字符,想想都觉得麻烦,就没做.其实还是有些方法的,比如杨元说可以用正则表达式来控制输入,W就是只能输入数字,字母,汉字和_的,就不用担心会输入一些特殊字符了.还有就是可以多写些函数,到时候调用就好了.还有就是控制键盘的输入,只能输入数字和字母.

系统花了比较长的时间来做,前面做的时候还好,没什么大问题,后面就费劲了.报表,和强制下机这部分我觉得最麻烦.主要就是想不通.

比如选中学生强制下机,我分析流程,首先是要选中学生,然后获得卡号,然后就是从各个表中获得需要的数据,然后计算消费金额,余额,最后把结果写到下机表中,还要更新学生信息表的金额字段.这部分到是不难,但是代码很多.

要从基本信息表,正在上机表和学生信息表中都调用数据,然后还要进行计算,不管是日期的,还是金额的都相当费劲.而且选中学生强制下机还好办,只要这么写一次就好.所有学生强制下机,得写多少次啊.后来一想,写成函数调用就好了.所有学生强制下机,弄个循环就好了.每次选中一个记录,获得卡号,然后执行一次函数,移到下一条记录,继续循环.

接着就是报表,报表弄起来也还算可以.先是弄好了界面,参考博客还有Grid++Report自带的例子.我想不通的是,数据什么时候写进表里?我知道报表要的就是从日结账单表或周结账单中获取数据,这很简单.

可是我是什么时候把数据写到表里去的呢?后来想了很久,觉得窗体加载的时候把数据写进去就好了,然后把数据显示出来.然后每次都清空表,清空的话用truncast,比delete要好用,具体什么好,上网查.这是没问题了,然后日结账单,周结账单的记录从哪来?从其他各个表中得来,充值表,下机表,退卡表,分别获得充值金额,消费金额,和退卡金额.然后就是上期余额,要怎么得来比较费劲. 还要根据日期,日期的话,当成参数传入就好.把符合条件的,语句是这样的,

Select sum(sAmount) from StuInfo where datediff(dd,sdate,’ “ &strDate & “ ‘)>0,这句的意思就是查询StuInfo表中日期sdate小于strDate(我传入的参数)的金额的和.这就是上期的余额.本来是这样的,但是我的数据有问题,所以只好换另外一种方法,把充值表,退卡表中符合条件的数据依次读出,然后上期充值余额=充值表-下机表-退卡表.

周结账单的内容也差不多,只不过要传入的是两个日期.其实作为参数的仍然是一个日期,跟日结账单的函数是一模一样的.用循环,先将开始日期传入,然后datediff增加日期,直到结束日期.会弄日结账单,周结账单也就差不多了.

还有就是弄完之后,发现Tag这个属性其实是很好用的.比如我要修改学生的基本信息,然后改错了想取消修改的时候,就可以用它来还原那些值.而不是像我写的那样,从数据库中查找出来.

txtCardNo.Tag=txtCardNo.Text '保存文本框的值
txtCardNo.Text=txtCardNo.Tag '还原值

控制所有的控件

Dim control As Control '控件
For Each control In Me.Controls
    control.Left= 1000
Next

这样窗体上的控件就左对齐了.但是比如只是要文本框对齐的话,就要用到TypeOf.

TypeOf txt Is TextBox=True/False

Dim myTextbox As Control '控件
  For Each myTextbox In Me.Controls
   IfTypeOf myTextbox Is TextBox Then
      myTextbox.Left = 2000
  End If
Next

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读