‘改变卡状态标识
(6) 个人卡解挂失
e = " update KXX set kztbs='00' where kh='" & (txtkh.Text) & "'"
rs.Open e, cnk, adOpenKeyset, adLockOptimistic
‘改变卡状态标识
(7) 个人卡销户
f = "select * from GRZHXX where kyyxlh='" & Trim(txtkh.Text) & "'"
rsf.Open f, cnk, adOpenKeyset, adLockOptimistic
Dim a As Integer
q = DateDiff("m", (rsf!cjrq), Now) ‘计算卡使用时间
Dim w As Single
If q < 6 Then
xx = MsgBox("卡开户未满六个月,不能销户!", vbExclamation, "消息")
cmdrec.Enabled = False
cmdret.SetFocus
Else
w = (Val(txtye.Text) + Val(txtyj.Text) - q) ‘计算找还金额
txtzh.Text = w ‘显示找还金额
txtzj.Text = q ‘显示折旧费
End if
(8) 卡消费交易
s = " select * from KXX join KLXXX on KXX.klxbs=KLXXX.Klxbs join KZTXX on KXX.kztbs=KZTXX.kztbs where kh ='" & (txtkh.Text) & "'"
rsk.Open s, cnkjy, adOpenKeyset, adLockOptimistic
‘读卡信息
sr = "select * from KJYJL where jyrq='" & (Date) & "' and xfdbh='" & Trim(txtxfd.Text) & "'"
rsy.Open sr, cnkjy, adOpenKeyset, adLockOptimistic
‘查询上次交易流水号
If rsy.EOF Then
txtxh.Text = "000001"
kjyxh = 1
Else
rsy.MoveLast
kjyxh = (Val(rsy!jyxh) + 1) ‘计算本次交易流水号
txtxh = String((7 - Len(kjyxh)), "0") & (kjyxh)
‘显示本次交易流水号
ss = " insert into KJYJL values('" & (Date) & "','" & Trim(txtxfd.Text) & "','" & Trim(txtxh.Text) & "','" & Trim(txtkh.Text) & "','" & Trim(txtje(1).Text) & "','" & Trim(txtsf.Text) & "')"
rsj.Open ss, cnkjy, adOpenKeyset, adLockOptimistic
‘记录本次消费信息
(9) 帐户更改
x1 = (Val(txtye.Text) - Val(txtsf.Text)) ‘计算消费后卡内余额If (Val(txtcs(0).Text)) > 0 Then ‘判断有无优惠信息
sj = " update KXX set yhcs='" & ((Val(txtcs(0).Text)) - 1) & "',je='" & (x1) & "' where kh='" & Trim(txtkh.Text) & "'"
rsj.Open sj, cnkjy, adOpenKeyset, adLockOptimistic
Else
sj = " update KXX set je='" & (x1) & "' where kh='" & Trim(txtkh.Text) & "'"
rsj.Open sj, cnkjy, adOpenKeyset, adLockOptimistic
End If ‘更改卡信息
sy = " update GRZHXX set jtzhje='" & (x1) & "' where kyyxlh='" & Trim(txtkh.Text) & "'"
rsy.Open sy, cnkjy, adOpenKeyset, adLockOptimistic
‘更改帐户信息
sq = "insert into GRKJYMX values('" & Trim(txtkh.Text) & "','" & (Now) & "','" & Trim(txtye.Text) & "','" & Trim(txtsf.Text) & "','0','" & (x1) & "')"
rsq.Open sq, cnkjy, adOpenKeyset, adLockOptimistic
‘记录本次交易信息
(10) 支票入帐
s1 = "update ZPXX set Zpdzrq='" & (Date) & "' where Zph='" & Trim(txth.Text) & "'"
rss.Open s1, cnz, adOpenKeyset, adLockOptimistic
‘更改支票信息
f = " insert into DWCZMX values ('" & (o) & "','" & (Date) & "')" rss1.Open f, cnz, adOpenKeyset, adLockOptimistic
‘记录单位充值信息
k1 = "select * from KJKMSZ where Kjkmbh='00'"
rs1.Open k1, cnz, adOpenKeyset, adLockOptimistic
If rs1.EOF Then
k2 = "insert into KJKMSZ values ('" & (Date) & "','00','0','" & Trim(txtz(2).Text) & "','" & Trim(txtz(2).Text) & "')"
rs2.Open k2, cnz, adOpenKeyset, adLockOptimistic
Else
rs1.MoveLast
If rs1!Jyrq <> (Date) Then
Dim q As Single
q = rs1!Ye
q = (q + Val(txtz(2).Text))
k3 = "insert into KJKMSZ values ('" & (Date) & "','00','0','" & Trim(txtz(2).Text) & "','" & (q) & "')"
rs3.Open k3, cnz, adOpenKeyset, adLockOptimistic
Else
Dim w, w1 As Single
w = rs1!Dffse
w1 = rs1!Ye
k4 = "update KJKMSZ set Dffse='" & (Val(txtz(2).Text) + w) & "',Ye='" & (Val(txtz(2).Text) + w1) & "' where Jyrq='" & (Date) & "' and Kjkmbh='00'"
rs4.Open k4, cnz, adOpenKeyset, adLockOptimistic
End if
End if
‘更改会计科目收支信息
(11) 会计科目收支查询
On Error Resume Next‘错误处理后,返回到出错语句的下一句
Select Case Index
Case 0 '首记录 ‘查询首记录
rskjsz.MoveFirst
txt(0).Text = rskjsz!Jyrq
Dim i1 As Integer
i1 = 2
Do While i1 <= 4 ‘显示记录
txt(i1).Text = rskjsz.Fields(i1)
i1 = i1 + 1
Loop
Case 1 '上一条 ‘查询上一条记录
rskjsz.MovePrevious
If rskjsz.BOF Then
rskjsz.MoveFirst
xx = MsgBox("本条为首记录", vbExclamation, "消息")
End If ‘提示处于首记录位置
txt(0).Text = rskjsz!Jyrq
Dim i2 As Integer
i2 = 2
Do While i2 <= 4
txt(i2).Text = rskjsz.Fields(i2)
i2 = i2 + 1
Loop
Case 2 '下一条 ‘查询下一条记录
rskjsz.MoveNext
If rskjsz.EOF Then
rskjsz.MoveLast
xx = MsgBox("本条为末记录", vbExclamation, "消息")
End If ‘提示处于末记录位置
txt(0).Text = rskjsz!Jyrq
Dim i3 As Integer
i3 = 2
Do While i3 <= 4
txt(i3).Text = rskjsz.Fields(i3)
i3 = i3 + 1
Loop
Case 3 '末记录 ‘查询末记录
rskjsz.MoveLast
txt(0).Text = rskjsz!Jyrq
Dim i4 As Integer
i4 = 2
Do While i4 <= 4
txt(i4).Text = rskjsz.Fields(i4)
i4 = i4 + 1
Loop
End Select
4.3 系统实验
为了使系统能够稳定运行,我对系统进行了有针对性的全面实验检测,所采取的方式是:
(1)窗体独立检测:为保证每一个窗体都能正常运行,完成各自独立的功能,每完成一个窗体的设计工作,我都对其多次输入数据,进行反复测试。
(2)模块检测:窗体测试完成后,再对由几个窗体组成的模块进行整体测试。例如,在联机交易模块中,先开户,再充值,挂失,解挂失,最后销户。从而保证每个模块能够正常完成功能。
(3)综合检测:所有窗体设计完成后,对系统功能进行整体的综合测试,即将每个可能的操作步骤运行一遍。经过反复输入、删除数据来检验系统功能是否符合系统设计的要求。
5. 系统使用说明
5.1 操作步骤
系统操作流程如图5—1所示:
图 5.1 系统操作流程图
系统中主要操作过程步骤:
(1)联机交易:
联机交易模块→租卡→充值→销户
(2)正常消费:
脱机交易模块→卡交易消费→数据清分模块→账户更改→车载运营统计→
→车队运营统计→分公司运营统计→客运集团运营统计
(3)非法消费:
脱机交易模块→卡交易消费→联机交易模块→个人卡挂失→数据清分模块→
→账户更改→车载非法消费统计→车队非法消费统计→分公司非法消费统计→
→客运集团非法消费统计
(4)个人卡查询: 账户信息
联机交易模块→个人卡交易→信息查询账户信息
交易信息
(5)支票管理:
联机交易模块→单位交易→预充值→支票支付→帐务管理模块→
→支票到帐→联机交易数据清分
5.2 使用方法
5.2.1 数据录入
本系统中的输入采用键盘输入法。
5.2.2 怎样进入系统
(1)当初始安装以后,点击“交易统计及帐务统计系统”即可启动本系统。
(2)欢迎界面出现后,等待三秒钟便可出现用户登录界面,在登录界面中输入用户名称和用户密码后即可以进入系统。
结论
在大学学习期间,我比较注重理论学习,而实际应用的知识掌握地比较少。因此,这次文档设计对我来说既是一种考验也是一个很好的学习机会。
本次文档设计我选择了应用难度较低的可视化编程工具Visual Basic 6.0 作为前台开发软件工具。在自学的过程中,我发现VB提供的示例程序很好,它的可视化程序设计方法使用户不必编写大量代码去描述界面元素的外观和位置,而只需选定特定界面元素的样本,然后通过不同的方法,编写一些容易理解的事件处理程序,就可完成应用软件的设计。Visual Basic 6.0最新支持的数据访问对象ADO具有对象模型简单,使用方便的特点,它有较少的对象,较多的属性,方法及事件,可以简单方便地完成访问数据库的任务。
到目前为止,我们还是只懂理论而对实际工作中的业务知识知之甚少的学生,在这一段文档设计过程中,经过老师的悉心指导以及自己的学习,我了解到了许多有关管理及财务等方面的实际应用知识,这对于我们来说是一段宝贵的经验。
因此,通过本次文档设计,确实使我学习到了很多课本上没有的知识,提高了自身的能力。
在本次设计初始阶段,由于我没有认真仔细地研究设计课题就盲目开始动手进行设计工作,因此走了一段弯路,做了一些无用功,当意识到错误时已浪费了很多时间。这使我深刻认识到做任何事情之前的准备工作是非常重要的,不做好充分的准备工作,就不可能成功地完成任务。理论是为实际所服务的,必须以实际为基础,因此,在类似的设计工作中,实际的调研工作不可轻视,否则只会浪费时间而无任何实质性的成果。
致谢
本次文档设计历时近三个月,在此期间,许多老师、同学和朋友给了我无私的支持和帮助,我的文档设计能够顺利完成是与他们分不开的。在此,我要向他们表示衷心的感谢。
首先,我要感谢我的导师王洪源老师,他给予了我悉心的关怀与指导,并且给我提出了许多宝贵的、关键性的意见,使我受益匪浅。王老师亲切近人、学识渊博、业务能力强,他对我们的指导工作持以严谨负责的态度,不断督促我们的知识学习和课题研究,使我们这组同学不仅学到了许多专业知识,而且学到了做人的道理。同时,我也感谢与我同组的各位同学,他们也给予了我很多帮助,使我克服了不少设计过程中遇到的困难。
紧张而忙碌的文档设计即将完成,我由衷地感到高兴,我想这将是我终生难忘的一段学习经历,因为在此期间我收获的不仅仅是知识。再次向帮助过我的老师、同学和朋友们致以最衷心的感谢!
由于自身能力有限,本次设计中必然存在欠缺与疏漏之处,请各位老师批评指正!
参考文献
[1] 李长林,张丽华,王红.《Visual Basic数据库应用系统开发从基础到实践》.第二版.电子工业出版社,2006年:P367~412
[2] 张海藩.《软件工程》.人民邮电出版社.2002年:P115~118
[3] 童爱红,侯太平.《Visual Basic 数据库编程》.第一版.清华大学出版社.北京交通大学出版社,2004年:P68~84
[4] 导向科技,夏帮贵,刘凡馨《中文版SQL Server数据库开发培训教程》.第一版.人民邮电出版社,2005年:P269~275
[5] 佟伟光 . 《Visual Basic 程序设计教程》.第一版.电子工业出版社,2001年:P125~132
[6] 李赫雄,许宏泰,唐家才. 《SQL Server 2000应用程序开发》.第二版.人民邮电出版社,2001年:P265~276
[7] 丁宝康,董键全. 《数据库实用教程》.第二版.清华大学出版社,2003年:P52~61
[8] 郭琦. 《Visual Basic 数据库开发技术》.第二版.人民邮电出版社,2003年:P126~131
[9] Mike Gunderloy Joseph L.Jorden .《SQL Server 2000 从入门到精通》.第二版.电子工业版社,2001年:P274~294
[10] Cutis Smith Michael Amundsen .《 Visual Basic 6.0 数据库编程》.第二版.清华大学出版社,2001年:P185~203