VB机房收费系统问题
2012-10-07 17:44
369 查看
这次的VB机房收费系统,昨天算是完全做完了.
其实还是有些问题,比如我的特殊字符检查就做的不好,我只检查了单引号,其他的特殊字符,想想都觉得麻烦,就没做.其实还是有些方法的,比如杨元说可以用正则表达式来控制输入,\W就是只能输入数字,字母,汉字和_的,就不用担心会输入一些特殊字符了.还有就是可以多写些函数,到时候调用就好了.还有就是控制键盘的输入,只能输入数字和字母.
系统花了比较长的时间来做,前面做的时候还好,没什么大问题,后面就费劲了.报表,和强制下机这部分我觉得最麻烦.主要就是想不通.
比如选中学生强制下机,我分析流程,首先是要选中学生,然后获得卡号,然后就是从各个表中获得需要的数据,然后计算消费金额,余额,最后把结果写到下机表中,还要更新学生信息表的金额字段.这部分到是不难,但是代码很多.
要从基本信息表,正在上机表和学生信息表中都调用数据,然后还要进行计算,不管是日期的,还是金额的都相当费劲.而且选中学生强制下机还好办,只要这么写一次就好.所有学生强制下机,得写多少次啊.后来一想,写成函数调用就好了.所有学生强制下机,弄个循环就好了.每次选中一个记录,获得卡号,然后执行一次函数,移到下一条记录,继续循环.
接着就是报表,报表弄起来也还算可以.先是弄好了界面,参考博客还有Grid++Report自带的例子.我想不通的是,数据什么时候写进表里?我知道报表要的就是从日结账单表或周结账单中获取数据,这很简单.
可是我是什么时候把数据写到表里去的呢?后来想了很久,觉得窗体加载的时候把数据写进去就好了,然后把数据显示出来.然后每次都清空表,清空的话用truncast,比delete要好用,具体什么好,上网查.这是没问题了,然后日结账单,周结账单的记录从哪来?从其他各个表中得来,充值表,下机表,退卡表,分别获得充值金额,消费金额,和退卡金额.然后就是上期余额,要怎么得来比较费劲. 还要根据日期,日期的话,当成参数传入就好.把符合条件的,语句是这样的,
Select sum(sAmount) from StuInfo where datediff(dd,sdate,’ “ &strDate & “ ‘)>0,这句的意思就是查询StuInfo表中日期sdate小于strDate(我传入的参数)的金额的和.这就是上期的余额.本来是这样的,但是我的数据有问题,所以只好换另外一种方法,把充值表,下机表,退卡表中符合条件的数据依次读出,然后上期充值余额=充值表-下机表-退卡表.
周结账单的内容也差不多,只不过要传入的是两个日期.其实作为参数的仍然是一个日期,跟日结账单的函数是一模一样的.用循环,先将开始日期传入,然后datediff增加日期,直到结束日期.会弄日结账单,周结账单也就差不多了.
还有就是弄完之后,发现Tag这个属性其实是很好用的.比如我要修改学生的基本信息,然后改错了想取消修改的时候,就可以用它来还原那些值.而不是像我写的那样,从数据库中查找出来.
控制所有的控件
这样窗体上的控件就左对齐了.但是比如只是要文本框对齐的话,就要用到TypeOf.
TypeOf txt Is TextBox=True/False
其实还是有些问题,比如我的特殊字符检查就做的不好,我只检查了单引号,其他的特殊字符,想想都觉得麻烦,就没做.其实还是有些方法的,比如杨元说可以用正则表达式来控制输入,\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
相关文章推荐
- VB.net机房收费系统小问题之变量赋值前被使用
- vb.net合作版版机房收费系统常见问题汇总
- VB机房收费系统05——一般用户模块逻辑问题总结
- 机房收费系统总结之4——VB.NET 轻松解决判断文本框、组合框为空问题
- 【VB与数据库】——机房收费系统之登陆问题
- 【VB与数据库】——机房收费系统小问题归总
- 机房收费系统总结之4——VB.NET 轻松解决判断文本框、组合框为空问题
- VB之旅-机房收费系统总结
- 类图问题机房收费系统个人重构——画图疑惑多多Strut2教程-java教程
- 机房收费系统—一堆小问题3
- 【VB与数据库】机房收费系统--序
- vb.net机房收费系统——存储过程
- vb.net机房收费系统重构——总结(一)梳理业务与表结构
- 小结——Vb.net 机房收费系统
- VB.NET+三层 机房收费系统之组合查询
- 机房收费系统--界面设计,人与软件之间的问题
- vb.net机房收费系统重构——总结(三)软件工程文档2
- vb.net机房收费系统重构——总结(四)软件工程文档3
- 重构版机房收费系统之分层、接口、数据库连接、反射+工厂(vb.net)
- VB.NET机房收费系统之报表制作(绑定数据源)(一)