《数据库应用与原理课程设计公司办公费用信息管理系统.doc》由会员分享,可在线阅读,更多相关《数据库应用与原理课程设计公司办公费用信息管理系统.doc(26页珍藏版)》请在三一办公上搜索。
1、学号: 成绩:_武汉科技大学城市学院课程设计报告院 系 信息科学与工程系 专 业 计算机科学与技术 年级 班 06级 计科二班 课程名称 数据库应用与原理 设计题目 公司办公费用信息管理系统姓 名 指导教师 2008年 6 月 27 日设计题目:公司办公费用管理信息系统设计设计主要内容:一、开发平台:VB+ SQL SERVER 2000二、功能要求:1、设计内容设计一个公司办公费用管理信息系统,该系统的用户由一般用户和管理员组成,然后不同的用户拥有不同的权限,各自完成各自的管理功能,首先是欢迎界面,然后选择登录,登录的时候首先要判断用户的身份,合法的用户然后进入到系统主界面中,不同的用户看到
2、不同的系统功能。用sql server2000创建后台数据库,然后利用程序设计语言(VB)编写程序实现对数据库的操作,按照要求完成所有的功能和模块。2、公司办公费用管理信息系统主要功能(1)用户管理:用户登录界面、用户注册界面、办公费用申请界面、办公费用信息查询界面、本用户密码的修改界面(2)管理员管理:管理员登录界面、办公费用查询界面、办公费用添加、删除界面、本用户密码修改界面。 3、公司办公费用管理信息系统数据库表单(可以按照需求增加)(1)用户信息表单:用户名、密码、用户身份(管理员和普通用户)(2)部门信息表单:部门编号、部门名称、部门负责人、联系电话、电子邮件、备注(3)办公费用申请
3、表单:序号、费用编号(外码)、费用金额、部门编号(外码)、申请年月、是否通过审核、备注(4)办公费用类别表单:费用编号、费用名称 (5)办公费用控制表单:部门编号(外码)、年份、本年预算、本年累计支出 (6)办公费用支出明细表单:序号、费用编号(外码)、费用金额、部门编号(外码)、支出日期 三、课程设计报告主要内容:1公司办公费用管理信息系统需求分析(给出系统功能模块图,对各功能作出详细介绍)2公司办公费用管理信息系统界面设计(给出界面截图及其主要控件的属性设置表格,并给出各界面的详细代码)3公司办公费用管理信息系统数据库设计(给出数据库各个表单中数据的字段名,数据类型及其相应的说明)4公司办
4、公费用管理信息系统程序设计(功能模块给出详细的程序代码,重点语句的注释)1. 公司办公费用管理信息系统需求分析公司办公费用管理信息系统登 录用 户 登 录管 理 员 登 录用户服务新用户注册管理员服务本用户密码的修改办公费用信息查询办公费用申请办公费用查询办公费用添加、删除本用户密码的修改 添 加更 新 删 除 查 询图1.1零件交易管理信息系统1.1欢迎界面系统启动之后便可进入欢迎界面,单击“系统登陆”按钮便可进入选择登陆界面。1.2登录界面1.2.1选中管理员登录后便进入管理员服务界面1.2.2选中用户登录后便进入用户服务界面1.2.3点注册弹出注册界面,注册成功可返回登录界面1.3管理员
5、服务界面 可以进行办公费用查询,办公费用添加、删除,本用户密码修改。1.3.1本用户密码修改 管理员通过输入和确认新密码来更改自己的密码。1.3.2办公费用添加、删除 选此项后弹出选择费用修改类型,管理员可以查询,删除,添加费用信息,在VB界面中修改了数据库中的信息。1.3.3办公费用查询 管理员可以根据部门的编号进行查询,可以查询申请和支出两种费用。1.4用户界面 用户可以进行本用户密码的修改,查看零件信息和工程项目使零件情况。1.4.1本用户密码修改用户通过输入和确认新密码来更改自己的密码。1.4.2办公费用申请 用户进入界面后可输入信息进行费用申请。1.4.3办公费用信息查询用户可以根据
6、部门的编号进行查询,可以查询申请和支出两种费用。2公司办公费用管理信息系统图2.1 欢迎界面图2.2 登录界面图2.3 新用户注册界面图2.4 管理员服务界面表2.1 管理员服务界面属性表对象属性设定值Option1Caption本用户密码修改Option2Caption办公费用添加、删除Option3caption办公费用查询图2.5 用户服务界面表2.2 用户服务界面属性表对象属性设定值Option1Caption本用户密码修改Option2Caption办公费用申请Option3caption办公费用信息查询图2.6 用户/管理员密码修改界面图2.7 办公费用申请界面图2.8 办公费用查
7、询界面(用户/管理员)表2.3 办公费用查询界面属性表对象属性设置值Dadagrid1datasourceAdodc1Adodc1CaptionAdodc1CommandstringDSN=chenzhaoCommandtype2-adcmdtableRecordsourcePartment Visiblefalse图2.9 费用修改类型选择图2.10 申请费用修改界面表2.4 申请费用修改界面属性表对象属性设置值Adodc1CaptionAdodc1CommandstringDSN=chenzhaoCommandtype2-adcmdtableRecordsourceApplicationV
8、isiblefalseAdodc2CaptionAdodc2CommandstringDSN=chenzhaoCommandtype2-adcmdtableVisiblefalseRecordsourceControl图2.11 支出费用修改界面表2.5 支出费用界面属性表对象属性设置值dadagridDatasourceAdodc1Adodc1CaptionAdodc1Commandtype2-adcmdtableRecordsourceOutVisiblefalseAdodc2CaptionAdodc2Commandtype2-adcmdtableRecordsourceOutVisibl
9、efalse 图2.11 MDI主窗体界面3公司办公费用管理信息系统数据库设计公司办公费用管理信息系统总共有六张表:用户信息表单、部门信息表单、办公费用申请表单、办公费用类别表单、办公费用控制表单、办公费用支出明细表单。表3.1 用户信息表Users字段名称标始名称数据类型是否允许为空字段说明Uname用户名char否主码Ukey密码char否Utype用户类型char否 表3.2 部门信息表Partment字段名称标始名称数据类型是否允许为空字段说明Pno部门编号char否主码Pname部门名称char否Pmanager负责人char是Pcall电话char是Pemail电子邮件Char是P
10、s备注Char是表3.3 办公费用申请表Application字段名称标始名称数据类型是否允许为空字段说明Ano序号int否主码Tno费用编号char否引用Type外码Amoney申请费用char是Pno部门编号char否Partment外码Adate申请时间smalldatetime是Apermit是否通过char是Aps备注char是 表3.4 办公费用类别表Type字段名称标始名称数据类型是否允许为空字段说明Tno费用编号char否主码Tname费用名称char否表3.5 办公费用控制表Control字段名称标始名称数据类型是否允许为空字段说明Pno部门编号char否Partmen外码
11、Cyear年份char是Cadvance本年预算char是Cout本年支出char是表3.6 办公费用支出明细表Out字段名称标始名称数据类型是否允许为空字段说明Ono序号int否主码Tno费用编号char否引用Type外码Omoney支出金额char是Pno部门编号char否Partment外码Odate支出日期Smalldatetime是4公司办公费用管理信息系统程序设计(部分代码)4.1欢迎界面欢迎界面是整个系统的首页,用户可通过它进入到登录系统。4.2登录界面 进入此界面后,使用者可根据自己的身份选择登录方式。普通用户选择用户登录,管理员选择管理员登录。如果是新用户,直接点注册。代码如
12、下:Dim a As IntegerPrivate Sub Command1_Click()a = Combo1.ListIndexWhile a = 0If Len(Text1.Text) 0 Then Adodc1.CommandType = adCmdText Adodc1.RecordSource = select uname from users where uname = & Trim(Text1.Text) & and Utype = & 用户 & Adodc1.Refresh Else MsgBox 请填写用户名 Exit Sub End If If Adodc1.Record
13、set.EOF = True Then MsgBox 姓名错误!, 48, warning! Text1.Text = Text2.Text = Exit Sub End If If Len(Text2.Text) 0 Then Adodc1.CommandType = adCmdText Adodc1.RecordSource = select ukey from users where uname = & Trim(Text1.Text) & Adodc1.Refresh Else MsgBox 请填写密码 Exit Sub End If If StrComp(Trim(Adodc1.Re
14、cordset.Fields(ukey).Value), Trim(Form2.Text2.Text) 0 Then MsgBox 密码错误!, 48, warning Text2.Text = Text2.SetFocus Exit Sub Else MsgBox 登录成功 Form4.Show Form2.Hide Exit SubEnd IfWendWhile a = 1If Len(Text1.Text) 0 Then Adodc1.CommandType = adCmdText Adodc1.RecordSource = select uname from users where u
15、name = & Trim(Text1.Text) & and Utype = & 管理员 & Adodc1.Refresh Else MsgBox 请填写用户名 Exit Sub End IfIf Adodc1.Recordset.EOF = True Then MsgBox 姓名错误!, 48, warning! Text1.Text = Text2.Text = Exit Sub End If If Len(Text2.Text) 0 Then Adodc1.CommandType = adCmdText Adodc1.RecordSource = select ukey from us
16、ers where uname = & Trim(Text1.Text) & Adodc1.Refresh Else MsgBox 请填写密码 Exit Sub End If If StrComp(Trim(Adodc1.Recordset.Fields(ukey).Value), Trim(Form2.Text2.Text) 0 Then MsgBox 密码错误!, 48, warning Text2.Text = Text2.SetFocus Exit Sub Else MsgBox 登录成功 Form5.Show Form2.Hide Exit SubEnd IfWendEnd SubP
17、rivate Sub Command2_Click()Dim a As Integera = MsgBox(您真的要退出吗?, 305, 提示)If a = 1 Then End End IfEnd SubPrivate Sub Command3_Click()Form3.ShowEnd SubPrivate Sub Form_Load()Combo1.AddItem 用户Combo1.AddItem 管理员Combo1.Text = Combo1.List(0)Text1.Text = Text2.Text = End Sub4.3用户服务界面用户登录进去后,可以到用户服务界面选择自己所需的
18、服务,该界面为用户提供了三种服务,分别是“本用户密码的修改”,“办公费用信息查询”和“办公费用申请”。4.4 管理员服务界面管理员登录进去后,可以到管理员服务界面选择自己所需的服务,该界面为管理员提供了三种服务,分别是“本用户密码的修改”,“办公费用信息查询”和“办公费用添加、删除”。4.5 用户密码修改界面程序设计(管理员密码修改也是次界面)用户如需修改自己的密码可在此界面进行,用户通过用户服务界面到此,然后在此界面中输入原始密码和新密码并验证新密码,确认后如果无误就会提示用户修改成功,并且其密码在用户信息表中也会有相应的修改。代码如下:Private Sub Command1_Click(
19、)If Trim(Text1.Text = ) Then MsgBox 请输入密码!, 0, 提示 Text1.SetFocus Exit SubEnd IfAdodc1.CommandType = adCmdTextAdodc1.RecordSource = select ukey from users where uname = & Trim(Form2.Text1.Text) & And ukey = & Trim(Form6.Text1.Text) & Adodc1.RefreshIf Adodc1.Recordset.EOF = True Then MsgBox 密码不正确,请重新输
20、入!, 0, 提示 Text1.Text = Text2.Text = Text3.Text = Text1.SetFocus Exit SubEnd IfIf Trim(Text2.Text) = Then MsgBox 请输入新密码, 0, 提示 Text2.SetFocus Exit SubEnd IfIf Trim(Text2.Text) Trim(Text3.Text) Then MsgBox 新密码不一致,请从新输入, 0, 提示 Text2.Text = Text3.Text = Text2.SetFocus Exit SubEnd IfAdodc1.Recordset.Fiel
21、ds(ukey).Value = Trim(Text3.Text)Adodc1.Recordset.UpdateAdodc1.RefreshMsgBox 修改密码成功!, 0, 提示Unload MeEnd SubPrivate Sub Command2_Click()Unload MeEnd Sub4.6办公费用查询界面用户可通过输入部门编号查找相应部门信息,还可以查询此部门申请/支出费用信息。利用datagrid和adodc控件的连接显示出来。代码如下:Dim i As VariantPrivate Sub Command1_Click()Adodc1.Recordset.MoveFirs
22、tEnd SubPrivate Sub Command2_Click()Adodc1.Recordset.MovePreviousIf Adodc1.Recordset.BOF = True Then Adodc1.Recordset.MoveFirst End IfEnd SubPrivate Sub Command3_Click()Adodc1.Recordset.MoveNextIf Adodc1.Recordset.EOF = True Then Adodc1.Recordset.MoveLast End IfEnd SubPrivate Sub Command4_Click()Ado
23、dc1.Recordset.MoveLastEnd SubPrivate Sub Command5_Click()Unload MeEnd SubPrivate Sub Command6_Click()Dim strpno As StringDim strselect As Stringstrpno = Trim(Form7.Text1.Text)strselect = select type.tno,tname,amoney from type join application on type.tno = application.tno where application.pno = & s
24、trpno & Adodc1.CommandType = adCmdTextAdodc1.RecordSource = strselectAdodc1.RefreshSet DataGrid1.DataSource = Adodc1 DataGrid1.Columns(0).Caption = 费用编号 DataGrid1.Columns(1).Caption = 费用名称 DataGrid1.Columns(2).Caption = 申请金额End SubPrivate Sub Command7_Click()Dim strpno As StringDim strselect As Stri
25、ngstrpno = Trim(Form7.Text1.Text)strselect = select type.tno,tname,omoney from type join out on type.tno = out.tno where out.pno = & strpno & Adodc1.CommandType = adCmdTextAdodc1.RecordSource = strselectAdodc1.RefreshSet DataGrid1.DataSource = Adodc1 DataGrid1.Columns(0).Caption = 费用编号 DataGrid1.Col
26、umns(1).Caption = 费用名称 DataGrid1.Columns(2).Caption = 支出金额End SubPrivate Sub Command8_Click()Dim strselect As Stringstrselect = select pno,pname,pmanager,pcall,pemail,ps from partmentAdodc1.CommandType = adCmdTextAdodc1.RecordSource = strselectAdodc1.RefreshSet DataGrid1.DataSource = Adodc1DataGrid1
27、.Columns(0).Caption = 部门编号 DataGrid1.Columns(1).Caption = 部门名称 DataGrid1.Columns(2).Caption = 负责人 DataGrid1.Columns(3).Caption = 联系电话 DataGrid1.Columns(4).Caption = 电子邮件 DataGrid1.Columns(5).Caption = 备注End SubPrivate Sub Command9_Click()Dim strselect As StringIf Len(Text4.Text) 0 Thenstrselect = se
28、lect pno,pname,pmanager,pcall,pemail,ps from partment where pno = & Trim(Text4.Text) & Adodc1.CommandType = adCmdTextAdodc1.RecordSource = strselectAdodc1.Refresh If Adodc1.Recordset.EOF = True Then MsgBox 没有这个部门 Text4.Text = Text4.SetFocus Exit Sub Else Set DataGrid1.DataSource = Adodc1 DataGrid1.C
29、olumns(0).Caption = 部门编号 DataGrid1.Columns(1).Caption = 部门名称 DataGrid1.Columns(2).Caption = 负责人 DataGrid1.Columns(3).Caption = 联系电话 DataGrid1.Columns(4).Caption = 电子邮件 DataGrid1.Columns(5).Caption = 备注 End IfEnd IfEnd SubPrivate Sub Form_Load()Set DataGrid1.DataSource = Adodc1DataGrid1.Columns(0).Ca
30、ption = 部门编号 DataGrid1.Columns(1).Caption = 部门名称 DataGrid1.Columns(2).Caption = 负责人 DataGrid1.Columns(3).Caption = 联系电话 DataGrid1.Columns(4).Caption = 电子邮件 DataGrid1.Columns(5).Caption = 备注End Sub4.7办公费用添加、删除界面从管理员服务界面进入,有两种费用类型,申请/支出费用修改,管理员需要选择。申请费用修改界面代码如下:Dim a As IntegerDim b As VariantDim c As
31、 VariantPrivate Sub Command5_Click()设置文本可编辑Text1.Locked = FalseText2.Locked = FalseText3.Locked = FalseText7.Locked = FalseText5.Locked = FalseText6.Locked = FalseAdodc1.CommandType = adCmdTextAdodc1.RecordSource = select max(ano) max from applicationAdodc1.Refresha = Adodc1.Recordset.Fields(max).Va
32、lue 将序号的最大值赋给aAdodc1.CommandType = adCmdTableAdodc1.RecordSource = applicationAdodc1.RefreshAdodc1.Recordset.AddNewText1.SetFocusCommand5.Enabled = FalseCommand6.Enabled = FalseCommand7.Enabled = TrueCommand8.Enabled = TrueEnd SubPrivate Sub Command6_Click()Dim res As IntegerDim d As Variantres = Ms
33、gBox(确实要删除此行记录吗?, vbExclamation + vbYesNo + vbDefaultButton2) If res = vbYes Then If Adodc1.Recordset.RecordCount 1 Then Adodc2.CommandType = adCmdText Adodc2.RecordSource = select * from control where pno = & Trim(Text3.Text) & and cyear = & Mid$(Trim(Text5.Text), 1, 4) & Adodc2.Refresh 如果是通过的申请费用,
34、有日期的,则从预算中减去这部分费用 If Trim(Text6.Text) = 是 And Len(Text5.Text) 0 Then d = Adodc2.Recordset.Fields(cadvance).Value - Val(Trim(Text2.Text) Adodc2.Recordset.Fields(cadvance).Value = d Adodc2.Recordset.Update End If Adodc1.Recordset.Delete Adodc1.Recordset.Update End If If Adodc1.Recordset.EOF = True The
35、n Adodc1.Recordset.MoveLast End If Else MsgBox 不能将数据全部删除 Exit Sub End IfEnd SubPrivate Sub Command7_Click()Adodc1.Recordset.Fields(ano).Value = a + 1If Len(Text1.Text) 0 ThenAdodc2.CommandType = adCmdTextAdodc2.RecordSource = select tno from type where tno = & Trim(Text1.Text) & Adodc2.Refresh If Ad
36、odc2.Recordset.EOF = True Then MsgBox 无此费用编号 Text1.Text = Text1.SetFocus Exit Sub Else Adodc1.Recordset.Fields(tno).Value = Trim(Text1.Text) End IfEnd IfIf IsNumeric(Trim(Text2.Text) = True ThenAdodc1.Recordset.Fields(amoney).Value = Trim(Text2.Text)ElseMsgBox 请输入数字Text2.Text = Text2.SetFocusExit Su
37、bEnd IfIf Len(Text3.Text) 0 ThenAdodc2.CommandType = adCmdTextAdodc2.RecordSource = select pno from partment where pno = & Trim(Text3.Text) & Adodc2.Refresh If Adodc2.Recordset.EOF = True Then MsgBox 无此部门编号 Text3.Text = Text3.SetFocus Exit Sub Else Adodc1.Recordset.Fields(pno).Value = Trim(Text3.Tex
38、t) End IfEnd IfIf Len(Text3.Text) = 0 ThenMsgBox 请输入部门编号Text3.SetFocusExit SubEnd IfIf Len(Text1.Text) 0 Then If IsDate(Trim(Text5.Text) = True Then Adodc1.Recordset.Fields(adate).Value = Trim(Text5.Text) Else MsgBox 日期格式错误,请按XXXX-XX-XX输入 Text5.Text = Text5.SetFocus Exit Sub End IfEnd IfAdodc1.Recor
39、dset.Fields(apermit).Value = Trim(Text6.Text)Adodc1.Recordset.Fields(aps).Value = Trim(Text7.Text)如果申请通过,则将申请的费用金额加如到对应预算中If Trim(Text6.Text) = 是 Then If Len(Text5.Text) 0 Thenb = Mid$(Trim(Text5.Text), 1, 4) 取日期的年份Adodc2.CommandType = adCmdTextAdodc2.RecordSource = select * from control where pno =
40、 & Trim(Text3.Text) & and cyear = & b & Adodc2.Refreshc = Adodc2.Recordset.Fields(cadvance).Value + Val(Trim(Text2.Text) 取预算金额和申请金额之和Adodc2.Recordset.Fields(cadvance).Value = cAdodc2.Recordset.Update End IfEnd IfAdodc1.Recordset.UpdateMsgBox 更新成功设置文本不可编辑Text1.Locked = TrueText2.Locked = TrueText3.Locked = TrueText7.Locked = TrueText5.Locked = TrueText6.Locked = TrueCommand5.Enabled = TrueCommand6.Enabled = TrueCommand8.Enabled = FalseEnd SubPrivate Sub Command8_Click()Adodc1.Recordset.Cance