《数据库原理与应用》课程设计报告仓库管理系统_第1页
《数据库原理与应用》课程设计报告仓库管理系统_第2页
《数据库原理与应用》课程设计报告仓库管理系统_第3页
《数据库原理与应用》课程设计报告仓库管理系统_第4页
《数据库原理与应用》课程设计报告仓库管理系统_第5页
已阅读5页,还剩13页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库原理与应用课程设计分析与设计报告题 目 仓库管理系统 专业班级 网络0801 学 号 姓 名 指导老师 完成时间 2011.1.14 目 录1. 任务设计与要求12. 需求分析23. 系统总体设计34. 数据库设计45. 运行结果与测试56.参考资料16 一 设计任务与要求1.1任务设计与要求随着科学技术的不断发展和完善,计算机逐渐地应用与各个领域。当然,现代化的办公也离不开计算机这门先进的技术地参与,从而实现高效率的办公目的。着眼于现实生活中的仓库管理系统,我们选择了仓库管理这个题目作为本次课程设计的主题,为的是能从实践中真正的考量自己对课本知识的掌握程度和灵活应用的能力,以便在以后的

2、工作中能够游刃有余。 仓库管理系统的主要任务就是能够实现对货物信息的录入、修改和查询的功能,以及对货物资料、库存资料进行简单的管理,并且能够实现仓库出库表、入库表的打印等功能。我们通过vb编程建立数据库,数据表,表单,视图,报表等类,建立一个仓库基本信息管理及查询的系统。这样做的意义,就是能够为仓库和管理者提供便捷的服务,以便创造更大的社会价值。二.需求分析通过与多个中小企业后勤仓库负责人进行沟通,详细了解了企业的需求,得到该系统需要具备的功能,具体如下。1.系统管理l 可以将管理操作员,如增加操作员,设置修改操作员密码;l 可以备份数据库;l 可以恢复工资数据。2.数据管理l 可以新增入库单

3、;l 可以新增出库单;l 可以对入库单进行管理;l 可以对出库单进行管理;设置系统使用的辅助数据,如部门、职称、职务等参照数据。3.查询统计l 可以查询在制定期间的库存信息;l 可以对指定期间内的单据进行查询;l 可以统计在指定期间内的货物信息;l 可以对货物在制定期间内进行出入统计4.打印票据l 可以打印出库票据;l 可以打印入库票据。4.登记信息l 可以登记货物信息;l 可以登记仓库信息;l 可以登记供应商信息;l 可以等级入库经办人;l 可以等级出库经办人。3 系统总体设计 通过前面的需求分析,对功能要求和性能要求有了大概了解,下面应该确定系统的最终目标及初步的功能结构。(1) 系统目标

4、根据需求分析的描述及与用户的沟通,最终确定系统要实现的目标如下。l 界面简洁、框架清晰、美观大方;l 领会、快速的填写仓库信息、入库、出库资料;l 对用户输入的数据,系统进行严格的数据检验,尽可能排除人为输入错误;l 实现查询统计功能,用来查询统计员工工资数据;l 最大限度地实现系统的易维护性和易操作性;l 确保系统数据安全。(2) 系统功能结构本系统主要包括仓库基本信息管理,数据处理,货物信息录入、查询、修改,库存信息的查询统计,系统管理等部分其系统结构如图所示。 (3) 构建开发环境本项目开发环境如下:l microsoft visual basic 6.0中文版;l access数据库。

5、access是运行在windows系列平台之上的具备了多媒体与开放性的数据库系统。它的直观性、易用性、开放性及功能强大的特点,使其成为目前最受欢迎的pc数据库软件。(4) 系统特色介绍本系统特色有:l 操作简单,符合windows的风格的操作界面,使用户容易上手;l 减少数据重复录入,大部分数据都只需录入一次,即可在其他模块中引用。如供应商、货物资料、库存等信息,都只需录入一次。(5) 处理流程以“判断能否录入货物信息”为例,可描述如下:l 处理过程:“判断能否录入货物信息”;l 说明:根据货物编号判断是否属于有效货物;l 输入:货物编号、货物货物名称、类别等有效信息;l 输出:能否录入货物信

6、息;l 处理:如果属于有效货物编号,即可录入,否则不可录入。(6) 主要功能的原理用户管理主要采用microsoftvisualbasic6.0制作的登录界面和access制作的数据库对员工的基本信息进行管理;应用vb对用户的添加、删除、修改进行操作。4.数据库设计4.1概念结构设计供应商信息表:供应商编号,供应商地址,供应商名称,电话,联系人姓名,联系人职称货物信息表:货物编号,货物名称,货物数量,类别,最低限量,最高限量种类表:类别编号,类别名称客户信息表:客户编号,客户名称,联系人,客户电话仓库信息表:仓库编号,仓库名称,仓库地址,用户编号用户信息表:用户名,用户密码,用户权限库存信息表

7、:库存编号,货物编号,库存数量,仓库编号入库单:入库单编号,货物编号,经办人编号,入库时间,货物数量,仓库编号,供应商编号出库单:出库单编号,货物编号,经办人编号,出库时间,出库单价,客户编号,仓库编号4.2逻辑结构设计根据关系规范化理论和e-r转换成关系模型的规则,整体e-r图可转换得到下列关系模式:供应商(供应商编号,供应商地址,供应商名称,电话,联系人姓名,联系人职称)货物(货物编号,货物名称,货物数量,类别,最低限量,最高限量)种类(类别编号,类别名称)客户(客户编号,客户名称,联系人,客户电话)仓库(仓库编号,仓库名称,仓库地址,用户编号)用户(用户名,用户密码,用户权限)库存(库存

8、编号,货物编号,库存数量,仓库编号)入库单(入库单编号,货物编号,经办人编号,入库时间,货物数量,仓库编号,供应商编号)出库单(出库单编号,货物编号,经办人编号,出库时间,出库单价,客户编号,仓库编号)4.3物理结构设计1.供应商信息表列名数据类型长度主键或外键约束中文名称offernovarchar20主键not null供应商编号offernamevarchar30not null 供应商名称addressvarchar20not null供应商地址telvarchar20not null电话partnervarchar50not null联系人姓名postvarchar20not nul

9、l联系人职称2.客户信息表列名数据类型长度主键或外键约束中文名称cnovarchar10主键not null客户编号cnamevarchar20not null客户名称partnervarchar20not null联系人telvarchar20not null客户电话3.货物信息表列名数据类型长度主键或外键约束中文名称gnovarchar20主键not null货物编号gnamevarchar20not null货物名称gnumvarchar10not null货物数量gclavarchar10not null类别minvarchar20not null最低限量maxvarchar20not

10、 null最高限量4.仓库信息表列名数据类型长度主键或外键约束中文名称snovarchar10外键not nul仓库编号snamevarchar20not null仓库名称saddvarcahr30not null仓库地址unamevarcahr20外键not null用户名5.用户信息表列名数据类型长度主键或外键约束中文名称unamevarchar10主键not null用户名upassvarchar20not null用户密码uwordvarchar10not null用户权限6.种类信息表列名数据类型长度主键或外键中文名称clnovarchar20主键类别编号clnamevarchar1

11、0类别名称7.入库单信息表列名数据类型长度主键或外键中文名称inputnovarchar20主键入库单编号gnovarchar20货物编号passnernovarchar10经办人编号inputtimevarchar10入库时间numbervarchar10货物数量snovarchar10仓库编号offernovarchar10供应商编号8.出库单编号列名数据类型长度主键或外键中文名称outputnovarchar20主键出库单编号gnovarchar20货物编号passnernovarchar10经办人编号outputtimevarchar10出库时间cnovarchar10客户编号snov

12、archar10仓库编号5 运行结果和测试(1)仓库管理系统运行界面和对应原代码(上面为运行界面,对应原代码在下面)如以下各图所示: 图1. 登陆界面 private sub form_load() on error resume nextadodc1.connectionstring = dataconnectstring adodc1.recordsource = select * from 用户管理 where 用户名=username adodc1.refreshend subprivate sub modify_click() if oldpas.text userpas then

13、msgbox 原密码错误! exit sub end if if newpas1.text newpas2.text then msgbox 两次密码不一致! exit sub end if on error resume next 查找用户名 if adodc1.recordset.fields(用户名) = username then 设置新密码 set adors = adocon.execute(update 用户管理 set 用户密码= + newpas1.text + where 用户名= + username + ) adodc1.refresh msgbox 修改成功! end

14、 if unload me end subprivate sub newpas1_keydown(keycode as integer, shift as integer)if keycode = 13 then 如果按下的是回车键,则光标落到文本框当中newpas2.setfocusend ifend sub 图2. 登记信息 图3.单据管理 图4.查询统计图2.图3.图4的原代码如下所示:private sub 操作信息_resize() shape1.left = 0 shape1.width = 操作信息.width shape2.left = 0 shape2.width = 操作信

15、息.width end subprivate sub 查看库存状况_mousedown(button as integer, shift as integer, x as single, y as single) if button 1 then exit sub m库存状况_clickend subprivate sub 查看日志_mousedown(button as integer, shift as integer, x as single, y as single) if button 1 then exit sub if 权限类别(15) 0 then m查看日志_clickend

16、 subprivate sub 查询统计_mousedown(button as integer, shift as integer, x as single, y as single) if button 1 then exit sub end subprivate sub 创建新仓库_mousedown(button as integer, shift as integer, x as single, y as single) if button 1 then exit sub if 权限类别(11) 0 then m仓库信息_clickend subprivate sub l单据查询_m

17、ousedown(button as integer, shift as integer, x as single, y as single) if button 1 then exit sub if 权限类别(6) 0 then m单据查询_clickend subprivate sub 当前日期_click()表.show vbmodalend subprivate sub 登记新供应商_mousedown(button as integer, shift as integer, x as single, y as single) if button 1 then exit sub if

18、权限类别(4) 0 then m供应商_clickend subprivate sub 登记新货物_mousedown(button as integer, shift as integer, x as single, y as single) if button 1 then exit sub if 权限类别(12) 0 then m货物信息_clickend subprivate sub 登记新客户_mousedown(button as integer, shift as integer, x as single, y as single) if button 1 then exit s

19、ub if 权限类别(5) 0 then m往来客户_clickend subprivate sub 登记新职员_mousedown(button as integer, shift as integer, x as single, y as single) if button 1 then exit sub if 权限类别(10) 0 then 职员信息.show vbmodalend subprivate sub 给作者写信_mousedown(button as integer, shift as integer, x as single, y as single) if button

20、1 then exit sub shellexecute 0, , mailto:smmhliu, , , 5end subprivate sub 更换用户登陆_mousedown(button as integer, shift as integer, x as single, y as single) if button 1 then exit sub frmlogin.show vbmodalend subprivate sub l货物出入统计_mousedown(button as integer, shift as integer, x as single, y as single)

21、 if button 1 then exit sub if 权限类别(6) 0 then m货物出入统计_clickend subprivate sub l库存查询_mousedown(button as integer, shift as integer, x as single, y as single) if button 1 then exit sub if 权限类别(6) 0 then m库存查询_clickend sub 图6.库存状况private sub datagrid1_click()end subprivate sub form_load() adodc1.connect

22、ionstring = dataconnectstring sql = adodc1.recordsource set datagrid1.datasource = adodc1 adodc1.refresh adodc1.visible = false adodc2.connectionstring = dataconnectstring set datacombo1.rowsource = adodc2 datacombo1.listfield = 仓库名称 adodc2.refresh adodc2.visible = false adodc3.connectionstring = da

23、taconnectstring set datagrid1.datasource = adodc1 adodc1.refresh adodc1.visible = false initdatagrid1 end sub 图7.入库单rivate sub datagrid1_headclick(byval colindex as integer) on error resume next dim caption as string caption = datagrid1.columns(colindex).caption if caption = 经办人 then caption = 姓名 if

24、 caption = 金额 then exit sub if caption = 备注 then caption = 入库单.备注 if caption = 编号 then caption = 入库单.编号 if caption = 供应商 then caption = 供应商名称 if caption = 存放仓库 then caption = 仓库名称 adodc1.recordsource = sql + order by + caption order(colindex) = true - order(colindex) if order(colindex) = true then a

25、dodc1.recordsource = adodc1.recordsource + asc else adodc1.recordsource = adodc1.recordsource + desc end if saveinit adodc1.refresh resumeinit end subprivate sub form_load() adodc1.connectionstring = dataconnectstring sql = adodc1.recordsource set datagrid1.datasource = adodc1 adodc1.refresh initdat

26、agrid1 通过权限来初始化控件性质 if 权限类别(0) = 0 then b新增入库单.enabled = false if 权限类别(1) = 0 then datagrid1.allowupdate = false if 权限类别(2) = 0 then 退出入库单.enabled = false 删除入库单.enabled = false end if if 权限类别(8) = 0 then 打印入库单.enabled = false end sub 图8.出库单private sub datagrid1_headclick(byval colindex as integer) o

27、n error resume next dim caption as string caption = datagrid1.columns(colindex).caption if caption = 经办人 then caption = 姓名 if caption = 金额 then exit sub if caption = 备注 then caption = 出库单.备注 if caption = 编号 then caption = 出库单.编号 if caption = 客户 then caption = 客户名称 if caption = 存放仓库 then caption = 仓库

28、名称 adodc1.recordsource = sql + order by + caption order(colindex) = true - order(colindex) if order(colindex) = true then adodc1.recordsource = adodc1.recordsource + asc else adodc1.recordsource = adodc1.recordsource + desc end if saveinit adodc1.refresh resumeinit end subprivate sub form_load() ado

29、dc1.connectionstring = dataconnectstring sql = adodc1.recordsource set datagrid1.datasource = adodc1 adodc1.refresh initdatagrid1 通过权限来初始化控件性质 if 权限类别(0) = 0 then b新增出库单.enabled = false if 权限类别(1) = 0 then datagrid1.allowupdate = false if 权限类别(2) = 0 then 退出出库单.enabled = false 删除出库单.enabled = false

30、end if if 权限类别(8) = 0 then 打印出库单.enabled = false end sub 图9.单据查询private sub form_load()on error goto quit adodc1.connectionstring = dataconnectstring adodc1.visible = false adodc2.connectionstring = dataconnectstring adodc2.visible = false adodc1.recordsource = select 出库单.编号,货物信息.货物名称,货物信息.货物类别,货物信息

31、.货物规格,职员信息.姓名 as 领走人,出库单.出库时间,出库单.出库单价,货物信息.计量单位,出库单.出库数量,(出库单.出库单价*出库单.出库数量) as 金额,客户.客户名称 as 部门,出库单.定单状况,出库单.备注 as 工程名称 from 出库单,货物信息,职员信息,客户,仓库 where 货物信息.编号=出库单.货物编号 and 职员信息.编号=出库单.经办人编号 and 客户.编号=出库单.经办人编号 and 仓库.编号=出库单.仓库编号 set datagrid1.datasource = adodc1 adodc1.refresh 制单时间.year = year(dat

32、e) 制单时间.month = month(date) 制单时间.day = day(date) t制单时间.text = 无限制 t货物数量.text = 无限制 t其它金额.text = 无限制 quit:end sub 图10.供应商信息private sub datagrid1_afterdelete() 写入系统日志 fmainform.writelog (删除供应商)end subprivate sub datagrid1_afterupdate() 写入系统日志 fmainform.writelog (更新供应商)end sub 图11.增加新货物private sub 增加新货

33、物_click() if 货物编号.text = then msgbox 请填写货物编号!, vbquestion: exit sub if 货物名称.text = then msgbox 请填写货物名称!, vbquestion: exit sub if 最低限量.text = then msgbox 请填写最低限量!, vbquestion: exit sub if 最高限量.text = then msgbox 请填写最高限量!, vbquestion: exit sub if 计量单位.text = then msgbox 请填写计量单位!, vbquestion: exit sub

34、on error resume next saveinit adodc2.recordset.addnew adodc2.recordset.fields(编号) = 货物编号.text adodc2.recordset.fields(货物名称) = 货物名称.text adodc2.recordset.fields(货物类别) = datagrid1.columns(0).text adodc2.recordset.fields(货物规格) = 货物规格.text adodc2.recordset.fields(计量单位) = 计量单位.text adodc2.recordset.field

35、s(最低限量) = 最低限量.text adodc2.recordset.fields(最高限量) = 最高限量.text adodc2.recordset.fields(备注) = 备注.text adodc2.recordset.update adodc2.recordset.requery initdatagrid3 adodc2.refresh resumeinit 货物编号.text = 货物编号.text + 1 写入系统日志 fmainform.writelog (增加新货物) msgbox 保存成功, vbokonly, 同时把文本清空,以便填写下一个 货物名称.text =

36、计量单位.text = 货物规格.text = end sub(2) 对在调试中发现的问题进行说明。6 参考资料visual basic高级编程及其项目应用开发 李存斌 郭晓鹏 编著 中国水利水电出版社visual basic编程实例教程 北京希望电子出版社 总策划 袁帅 郭月强 焦祝军 等 编写ut2apodfxxc02gybkskcww97mrqqwhoj5tl15zt6jipyytycummtarp3v1n5luizi3xh3bhwyreko8d9g7nmzqowpjetldrw08gvs8dsdqqygc3ce7moo2tlf0jf1gk74iuxybmtivr97ckrfvqult5

37、fn2t6mpjr6rbzvpsortzvij5nb5ndvvsr4iwr1twlfkglspzuhrjq3cmzu98euouijdlszqpmvrw9zkupxf8wfug9l2g9277g2rtipa1ypczeuqxpkbhtvdcooqozxuz3vjrzmocijym62zchmeootyes8ebmm932tbz2yo09rtszeys8zrd2yktj8l6jeazvajnfbtrylvsm6ofbftoxvrffn7owiygjlamkunxjybz5rrb7r4vsur9zpfzfmfsjhcfca37lnw2vvlrkn7r8psz1bn6oric5hu5z6hcxayqynpog8duybawqsl20csg06dh2sm8hltgpkicskrgopdpuhbj1lmpk7lydvc6nnmwl3fwhzftfvyaary7lhssxj10v3ph3y19bxyr77ib7cpzsu2tijqe3hkqkkau9kskcphkxuikvvyjzpg2yijrkqfbggovyqkuxnwi9omnjtt6qilzxtyrf7d20fbmabcfiixrqkusvnxbppfuxyq1fjskfsubkgs2duvqc9sz4jkbgn4qqv66pyoarjurnfj3txyfclzieeptwfjthpheipdfnqnr2hj

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论