




已阅读5页,还剩22页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
数据库课程设计报告学号: 成绩:_武汉科技大学城市学院课程设计报告院 系 信息科学与工程系 专 业 计算机科学与技术 年级 班 06级 计科二班 课程名称 数据库应用与原理 设计题目 公司办公费用信息管理系统姓 名 指导教师 2008年 6 月 27 日设计题目:公司办公费用管理信息系统设计设计主要内容:一、开发平台:vb+ sql server 2000二、功能要求:1、设计内容设计一个公司办公费用管理信息系统,该系统的用户由一般用户和管理员组成,然后不同的用户拥有不同的权限,各自完成各自的管理功能,首先是欢迎界面,然后选择登录,登录的时候首先要判断用户的身份,合法的用户然后进入到系统主界面中,不同的用户看到不同的系统功能。用sql server2000创建后台数据库,然后利用程序设计语言(vb)编写程序实现对数据库的操作,按照要求完成所有的功能和模块。2、公司办公费用管理信息系统主要功能(1)用户管理:用户登录界面、用户注册界面、办公费用申请界面、办公费用信息查询界面、本用户密码的修改界面(2)管理员管理:管理员登录界面、办公费用查询界面、办公费用添加、删除界面、本用户密码修改界面。 3、公司办公费用管理信息系统数据库表单(可以按照需求增加)(1)用户信息表单:用户名、密码、用户身份(管理员和普通用户)(2)部门信息表单:部门编号、部门名称、部门负责人、联系电话、电子邮件、备注(3)办公费用申请表单:序号、费用编号(外码)、费用金额、部门编号(外码)、申请年月、是否通过审核、备注(4)办公费用类别表单:费用编号、费用名称 (5)办公费用控制表单:部门编号(外码)、年份、本年预算、本年累计支出 (6)办公费用支出明细表单:序号、费用编号(外码)、费用金额、部门编号(外码)、支出日期 三、课程设计报告主要内容:1公司办公费用管理信息系统需求分析(给出系统功能模块图,对各功能作出详细介绍)2公司办公费用管理信息系统界面设计(给出界面截图及其主要控件的属性设置表格,并给出各界面的详细代码)3公司办公费用管理信息系统数据库设计(给出数据库各个表单中数据的字段名,数据类型及其相应的说明)4公司办公费用管理信息系统程序设计(功能模块给出详细的程序代码,重点语句的注释)1. 公司办公费用管理信息系统需求分析公司办公费用管理信息系统登 录用 户 登 录管 理 员 登 录用户服务新用户注册管理员服务本用户密码的修改办公费用信息查询办公费用申请办公费用查询办公费用添加、删除本用户密码的修改 添 加更 新 删 除 查 询图1.1零件交易管理信息系统1.1欢迎界面系统启动之后便可进入欢迎界面,单击“系统登陆”按钮便可进入选择登陆界面。1.2登录界面1.2.1选中管理员登录后便进入管理员服务界面1.2.2选中用户登录后便进入用户服务界面1.2.3点注册弹出注册界面,注册成功可返回登录界面1.3管理员服务界面 可以进行办公费用查询,办公费用添加、删除,本用户密码修改。1.3.1本用户密码修改 管理员通过输入和确认新密码来更改自己的密码。1.3.2办公费用添加、删除 选此项后弹出选择费用修改类型,管理员可以查询,删除,添加费用信息,在vb界面中修改了数据库中的信息。1.3.3办公费用查询 管理员可以根据部门的编号进行查询,可以查询申请和支出两种费用。1.4用户界面 用户可以进行本用户密码的修改,查看零件信息和工程项目使零件情况。1.4.1本用户密码修改用户通过输入和确认新密码来更改自己的密码。1.4.2办公费用申请 用户进入界面后可输入信息进行费用申请。1.4.3办公费用信息查询用户可以根据部门的编号进行查询,可以查询申请和支出两种费用。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 办公费用查询界面(用户/管理员)表2.3 办公费用查询界面属性表对象属性设置值dadagrid1datasourceadodc1adodc1captionadodc1commandstringdsn=chenzhaocommandtype2-adcmdtablerecordsourcepartment visiblefalse图2.9 费用修改类型选择图2.10 申请费用修改界面表2.4 申请费用修改界面属性表对象属性设置值adodc1captionadodc1commandstringdsn=chenzhaocommandtype2-adcmdtablerecordsourceapplicationvisiblefalseadodc2captionadodc2commandstringdsn=chenzhaocommandtype2-adcmdtablevisiblefalserecordsourcecontrol图2.11 支出费用修改界面表2.5 支出费用界面属性表对象属性设置值dadagriddatasourceadodc1adodc1captionadodc1commandtype2-adcmdtablerecordsourceoutvisiblefalseadodc2captionadodc2commandtype2-adcmdtablerecordsourceoutvisiblefalse 图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是ps备注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外码 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登录界面 进入此界面后,使用者可根据自己的身份选择登录方式。普通用户选择用户登录,管理员选择管理员登录。如果是新用户,直接点注册。代码如下: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.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 users 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 登录成功 form4.show form2.hide exit subend ifwendwhile a = 1if 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 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 users 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 subprivate 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用户服务界面用户登录进去后,可以到用户服务界面选择自己所需的服务,该界面为用户提供了三种服务,分别是“本用户密码的修改”,“办公费用信息查询”和“办公费用申请”。4.4 管理员服务界面管理员登录进去后,可以到管理员服务界面选择自己所需的服务,该界面为管理员提供了三种服务,分别是“本用户密码的修改”,“办公费用信息查询”和“办公费用添加、删除”。4.5 用户密码修改界面程序设计(管理员密码修改也是次界面)用户如需修改自己的密码可在此界面进行,用户通过用户服务界面到此,然后在此界面中输入原始密码和新密码并验证新密码,确认后如果无误就会提示用户修改成功,并且其密码在用户信息表中也会有相应的修改。代码如下:private sub command1_click()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 密码不正确,请重新输入!, 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.fields(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.movefirstend 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()adodc1.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 = & strpno & 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 stringstrpno = 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.columns(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.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 = select 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.columns(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).caption = 部门编号 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 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).value 将序号的最大值赋给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 = msgbox(确实要删除此行记录吗?, 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 如果是通过的申请费用,有日期的,则从预算中减去这部分费用 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 then 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 adodc2.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 subend 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.text) 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.recordset.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 = & 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.cancelupdatecommand5.enabled = truecommand6.enabled = truecommand8.enabled = falseend subprivate sub form_load()command8.enabled = falsecommand7.enabled = falseend subprivate sub command1_click()adodc1.recordset.movefirstend 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()adodc1.recordset.movelastend sub支出费用修改代码如下:dim a as integerdim b as variantdim c as variantprivate sub command5_click()adodc1.commandtype = adcmdtextadodc1.recordsource = select max(ono) max from outadodc1.refresha = adodc1.recordset.fields(max).valueadodc1.commandtype = adcmdtableadodc1.recordsource = outadodc1.refreshadodc1.recordset.addnewtext1.setfocuscommand5.enabled = falsecommand6.enabled = falsecommand7.enabled = truecommand8.enabled = trueend subprivate sub command6_click()dim res as integerres = msgbox(确实要删除此行记录吗?, vbexclamation + vbyesno + vbdefaultbutton2) if res = vbyes then if adodc1.recordset.recordcount 1 then 如果支出的费用有日期,则从总支出中去掉这部分支出 if len(text5.text) 0 then adodc2.commandtype = adcmdtext adodc2.recordsource = select * from control where pno = & trim(text3.text) & and cyear = & mid$(trim(text5.text), 1, 4) & adodc2.refresh d = adodc2.recordset.fields(cout).value - val(trim(text2.text) adodc2.recordset.fields(cout).value = d adodc2.recordset.update adodc1.recordset.delete adodc1.recordset.update end if if adodc1.recordset.eof = true then adodc1.recordset.movelast end if else msgbox 不能将数据全部删除 exit sub end if end ifend subprivate sub command7_click()adodc1.recordset.fields(ono).value = a + 1if len(text1.text) 0 thenadodc2.commandtype = adcmdtextadodc2.recordsource = select tno from type where tno = & trim(text1.text) & adodc2.refresh if adodc2.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(omoney).value = trim(text2.text)elsemsgbox 请输入数字text2.text = text2.setfocusexit subend 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.text) end ifend ifif len(text3.text) = 0 thenmsgbox 请输入部门编
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工装合同范本版本
- 门窗拆除安装合同范本
- 保姆和个人合同范本
- 废旧连杆出售合同范本
- 小区改造门面合同范本
- 太阳纸业订购合同范本
- 弧形夹板出售合同范本
- 农业投资代管合同范本
- 社区小学生安全知识培训课件
- 道路救援服务合同范本
- 2025-2030奢侈品礼品包装消费行为与品牌战略分析报告
- 业务流程优化实施步骤指导手册
- 宗教事务条例解读课件
- 2025-2026学年接力版(2024)小学英语四年级上册(全册)教学设计(附目录)
- 2025年发展对象考试题题库及答案
- 2025年医疗质量安全核心制度及病历书写规范考核试题(附答案)
- 2025年电力交易员(高级工)考试复习题库(含答案)
- 2025北京广播电视台校园招聘17人笔试备考题库及参考答案详解
- 冷库安全基本知识培训课件
- DB11T 1481-2024 生产经营单位安全事故应急预案评审规范
- 澄海玩具行业出口中存在的问题及对策分析
评论
0/150
提交评论