VFP仓库管理系统课程设计报告.doc
课 程 设 计 说 明 书 课程设计名称: 专 业: 学 号: 姓 名: 一、 课程设计题目 仓库管理系统二、 功能描述 满足基本的功能主要包括: 1.满足仓库物品查询功能以及分类查询的功能 2.满足仓库物品出入库统计的功能 3.满足仓库物品各种信息记录的功能 4.满足统计物品信息的功能 5.可制作报表 6.出入库数据记录 7.管理员及普通用户的权限 8.满足保密功能 三、 概要设计: 、整体系统欢 迎 界 面 权 限 选 择普通用户登陆管理员登陆登陆物品详细查询功能界面统计打印添加查询浏览按编号号按库房号按物品名入库浏览详细浏览 .打开仓库管理系统,首先展示的是欢迎界面,此界面显示当前日期,并且含有说明文字等。此界面可以退出,即退出系统。 . 权限选择中对管理员与普通用户的权限进行分类,其中普通用户只拥有浏览的权限,而管理员拥有查看、统计、打印,浏览等权限。此界面可以退出,即退出本界面。 . 登陆界面包括普通用户登陆界面和管理员登陆界面,两者都需要键入账户名和密码,密码错误不得进入。此界面可以退出,即退出本界面。 .管理员输入正确账户名和密码后,进入主要功能界面,此功能界面比较清楚简洁地展示了管理员享有的各个功能,对功能进行细分。主要有:详细浏览、入库浏览、按物品名查询、按库房号查询、按编号查询、添加、统计、打印等功能。此界面可以退出,即退出本系统。 普通用户输入正确用户名和密码后进入详细浏览界面,在此界面普通用户享有查看库存物品编号、品名、产地、进口否、库房号、照片的权限,且此界面含有功能按钮进行帮助快速浏览。此界面可以退出,即退出本界面。 .a、管理员进入详细浏览界面,在此界面普通用户享有查看库存物品编号、品名、产地、进口否、库房号、照片的权限,且此界面含有功能按钮进行帮助快速浏览。此界面可以退出,即退出本界面。 b、管理员进入入库浏览界面,在此界面里管理员可以查看物品的编号、库房号、品名、类别,且此界面含有功能按钮进行帮助快速浏览。此界面可以退出,即退出本界面。 c、管理员进入按编号查询界面,在此界面管理员可以输入物品编号进行快速查询物品的信息,而且可以使用用清除键快速清除输入编号。此界面可以退出,即退出本界面。 d、管理员进入按品名查询界面。在此界面管理员可以输入物品名进行快速查询,进而查看物品的信息,而且可以使用清除键快速清除输入的品名。此界面可以退出,即退出本界面。 e、管理员进入按库房号查询界面。在此界面管理员可以在组合框里选择需要查询的库房进行快速查询,进而查看物品的信息。此界面可以退出,即退出本界面。 f、管理员进入添加物品界面。在此界面管理员可以在物品信息框里键入物品的各种信息,点击添加按钮,把入库的新物品追加的数据库的物品详细表中。此界面可以退出,即退出本界面。 g、管理员进入统计界面。在此界面管理员可以在选项按钮组中选择需要统计的依据,可以按类别、进口否及库房号进行统计,进而查看各种统计信息。此界面可以退出,即退出本界面。 h、管理员进入打印界面,在此界面管理员享有打印、预览报表的功能。此界面可以退出,即退出本界面。四、 详细设计:1. 建立自由表。建立管理员(gly)、密码(mm)、入库详细表(rkxx)、物品详细表(wpxx)。2. 建立表单。 a.建立详细浏览表单(xxll)。按上图建立标签,文本框,命令按钮。右键添加数据环境,添加wpxx设置controlsource,字符数等属性第一个的代码是:go topthisform.refresh上一个的代码是:if .not.bof() skip -1 thisform.refreshelse messagebox("已经是第一个了")endif 下一个的代码是:if .not.eof() skip 1 thisform.refreshelse messagebox("已经是最后一个了")endif 末一个的代码时:go bottomthisform.refresh退出的代码是:thisform.release b、建立入库浏览表(rkll)按上图建立标签,命令按钮,文本框右键添加数据环境,添加rkxx表设置controlsource,字符数等属性第一个的代码是:go topthisform.refresh上一个的代码是:if .not.bof() skip -1 thisform.refreshelse messagebox("已经是第一个了")endif 下一个的代码是:if .not.eof() skip 1 thisform.refreshelse messagebox("已经是最后一个了")endif 末一个的代码时:go bottomthisform.refresh退出的代码是:thisform.releasec、建立品名查询表(pmcx)按上图新建三个按钮,一个文本框,一个标签,一个表格,设置属性 查询的代码是:select * from wpxx where 品名=alltrim(thisform.text1.value) into cursor aathisform.grid1.recordsource="aa"thisform.refresh清除的代码是:thisform.text1.value=""退出的代码是:thisform.released、建立库房查询表单(kfcx)按图建立组合框,按钮及表格,设置属性。右键,把rkxx和wpxx添加入,设置属性,右键组合框在组合框生成器里添加库房字段,设置属性。 其中查询的代码是:select * from rkxx where 库房号=bo1.value into cursor hhthisform.grid1.recordsource="hh"thisform.refresh 退出的代码是:thisform.releasef、建立编号查询表单(bhcx)按上图建立一个标签,一个文本框,三个按钮,一个表格,设置属性。其中查询的命令为:select * from wpxx where 编号=alltrim(thisform.text1.value) into cursor aathisform.grid1.recordsource="aa"thisform.re清除的命令是:thisform.text1.value=""退出的命令是:thisform.releaseg、建立添加表单(tjwp)右键添加wpxx到数据环境,设置属性,将编号、类别、库房号、规格、品名、产地拖到表单上,设置属性。添加的代码是:m=messagebox("是否保存?",4+48,"信息窗口")if m=6messagebox("信息已保存",48,"信息窗口")elsedeletepackendifappend blankthisform.txt编号.setfocusthisform.refresh退出的代码是:deletepackthisform.releaseuseh、建立统计表单(tj)按上图建立选项按钮组,数量为3,建立两个按钮及一个表格,设置属性。统计的代码是:do case case thisform.optiongroup1.value=1 select 类别,count(*) as 物品数 from wpxx group by 类别 into cursor aa thisform.grid1.recordsource="aa" thisform.refresh case thisform.optiongroup1.value=2 select 进口否,count(*) as 物品数 from wpxx group by 进口否 into cursor bb thisform.grid1.recordsource="bb" thisform.refresh case thisform.optiongroup1.value=3 select 库房号,count(*) as 物品数 from wpxx group by 库房号 into cursor cc thisform.grid1.recordsource="cc" thisform.refreshendcase 退出的代码是:Thisform.releasei、建立报表按上图建立报表。添加数据环境rkxx,将字段拖进报表设置属性.预览效果如下图:j、建立打印表单(dy)按上图建立一个选项按钮组,数量为2及两个按钮,设置属性。统计的代码是:do case case thisform.optiongroup1.value=2 report form 报表 environment to printer thisform.refresh case thisform.optiongroup1.value=1 report form 报表 environment preview thisform.refreshendcase 退出的代码是:thisform.releasek、建立程序1内容为:do form hyjmread eventsl、建立功能界面(gnjm)建立lable1 及10个命令按钮如下图:详细浏览的命令为:do form xxll入库浏览的命令为:do form rkll按物品名的命令为:do form pmxx按库房名的命令为:do form kfcx按编号的命令为:do form bhcx添加的命令为:do form tjwp统计的命令为:do form tj打印的命令为:do form dy退出的命令为:quitm、建立管理员登陆表单(glydl)按上图建立两个标签,两个按钮,一个组合框,一个文本狂,设置属性。右键添加mm和gly表,设置属性。登陆的代码是:go toplocate for 管理员=alltrim(bo1.value)if 密码=alltrim(thisform.text1.value) messagebox("可以进入!") do form gnjm thisform.releaseelse i=i+1 if i<=3 messagebox("密码错,重新输入!") thisform.text1.value="" else messagebox("信息错,禁止进入!") quit endif endif 退出的代码是:thisform.releasen、建立普通用户登陆表单(ptyhdl)按上图建立两个标签,两个按钮,两个文本狂,设置属性。登陆的代码是: i=i+1 IF THISFORM.Text1.Value="黄丽丽" and THISFORM.Text2.Value="1111" MESSAGEBOX("密码正确!可以进入系统!") do form pmxx THISFORM.Release ELSE IF i<3 MESSAGEBOX("密码或帐户错!请重新输入!") THISFORM.Text1.value=""THISFORM.Text2.value=""THISFORM.Text1.Setfocus ELSE MESSAGEBOX("密码或帐户错!禁止进入系统!") quit ENDIF ENDIF退出的代码是:o、建立权限选择表单(qxxz)新建opiongroup1,buttoncount设置为2新建两个命令按钮,caption分别为“进入”“退出”设置picture,及命令按钮组的属性backstyle ,fontsize,对其进行单独属性设置。进入的代码是:do case case thisform.optiongroup1.value=1 do form glydl thisform.release case thisform.optiongroup1.value=2 do form ptyhdl thisform.releaseendcase 退出的代码是:Thisform.releasep、建立欢迎界面表单(hyjm)点击界面,设置picture,新建lable1,lable3 ,label2 caption为“现在是”“欢迎使用仓库管理系统”“”新建两个命令按钮,caption为“进入”“退出”进入代码是:do form qxxzThisform.release退出代码是:quit点击属性backstyle,fontsize,forecolor,fontbold等进行细节设置本界面的init代码是:thisform.label3.caption=alltrim(str(year(date()+"年"+alltrim(str(month(date()+"月"+alltrim(str(day(date()+"日"新建计时器。计时器代码是:thisform.label3.caption=alltrim(str(year(date()+"年"+alltrim(str(month(date()+"月"+alltrim(str(day(date()+"日"五、 效果及存在问题: 整体效果不错,使用挺方便。不过有些代码的意思不是太懂。六、 心得体会: 平时上课记笔记也认真听,感觉挺简单,但是到了做设计的时候才知道这都是纸上谈兵。实践很重要。做的时候,很多东西都记不起来了,然后就得查笔记,笔记有的地方记的还是不够详细,做的时候进度比较慢。值得庆幸的是同窗好友给予了极大的帮助,最后顺利完成了本次课程设计。七、 参考文献:课堂笔记 visual foxpro及其应用系统开发