还剩49页未读,继续阅读
本资源只提供10页预览,全部文档请下载后查看!喜欢就下载吧,查找使用更方便
文本内容:
分类号TP31编号201125502218库存管理系统StorageManagementSystem申请烟台大学学士学位论文申请学位工学学士学位院系计算机学院专业自动化学生姓名学号指导老师2011年6月7日申请学士学位论文库存管理系统申请人导师:2011年6月7日烟台大学附
3.烟台大学毕业论文(设计)任务书院(系)计算机学院姓名学号毕业届别2007专业自动化毕业论文(设计)题目库存管理系统指导教师学历硕士职称讲师所学专业自动化具体要求主要内容、基本要求、主要参考资料等该库存管理系统能够实现入库出库信息的录入、查看、查询,并能够实现存货分析,销售分析的功能对入库出库的基本信息能够生成报表进度安排2011年1月—3月市场需求调查,初步设计系统的基本功能2011年4月学习VB编程,学习Access数据库的使用2011年5月设计编程实现系统的各个界面,并链接Access数据库2011年6月根据完成情况,查缺补漏完善系统,写毕业设计论文指导教师签字年月日院(系)意见教学院长(主任)签字年月日附注[摘要]库存管理系统是物资管理系统的核心,是一个企业不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要—直以来人们使用传统人工的方式管理仓库,效率低,查找、更新和维护比较困难尤其在我国由于劳动力相对充足,库存信息管理仍以人工管理为主该库存管理系统以VisualBasic
6.0集成开发环境为平台,外接Access数据库,拥有采购入库、存货查看、销售出库、查询、权限设置等模块,操作简单界面友好利用该库存管理系统不仅可以轻松管理查看元件、成品、订单等的相关信息而且可以对产品销售、仓库存货进行分析对产品销售、仓库存货进行分析是本库存管理系统的特色所在元件入库、元件消耗、成品入库、发货、订单等信息不仅可以列表查看而且可以生成报表另外还可以生成柱状图查看存货信息客户能够在查询模块对任意信息进行查询查询信息的输入通过组合框和文本框完成的,界面简单明了系统的采购入库、存货查看、销售出库、权限设置各对应一个权限权限设置简单快捷[关键词]库存管理;存货分析;VisualBasic
6.0;Access数据库;Abstract:StorageManagementSystemwhichisanindispensableparttoanenterpriseplaysanimportantroleingoodsandmaterialsmanagementsystem.Thecontentofitisofvitalimportancetodecisionmakersandmanagersinvariousenterprises.Weusedtomanagestoragesmanually.Ofcourseitislowefficientandverydifficulttosearchupdateandmaintaindata.InChinamanualmanagementhasbeenthemainmethodtomanagestoragesbecauseofourabundantlaborforce.ConnectingwithAccessdatabasethisstoragemanagementsystemwhichconsistsofPurchaseinventorymarketingsearchandsetmodulesarebasedonVisualBasic
6.
0.Withafriendlyinterfaceitiseasilyoperated.Byusingthissystemnotonlyinformationaboutcomponentsproductsandorderscanbeeasilycheckedbutalsomarketingandinventorycanbeanalyzedeasily.Thissystemischaracterizedbyanalysestomarketingandinventory.Informationcannotonlybelistedbutalsobepictured.Insearchmoduleanyrecordcanbesearched.Theinterfaceofsearchmoduleiseasytounderstandandoperate.PurchaseinventorymarketingandsetmoduleseachhasanidentificationforPermissions.Permissionsofuserscanbeseteasilyandquickly.Keywords:StorageManagementSystem;marketinganalyses;VisualBasic
6.0;Accessdatabase目录TOC\o1-3\h\u1绪论
11.1本课题的研究意义及必要性
11.2相关领域国内外应用的现状及发展趋势12系统分析
22.1系统可行性分析
22.2系统功能介绍23总体设计
33.1功能模块划分
33.2系统流程
43.3系统开发工具介绍
43.
3.1VisualBasic介绍
43.
3.2Access数据库介绍54详细设计
64.1各模块的功能与实现
64.
1.1注册与登录模块
64.
1.2采购入库模块
84.
1.3存货查看模块
94.
1.4销售出库模块
124.
1.5查询模块
194.
1.6权限设置模块
254.2系统数据库的设计
264.
2.1数据库选择及理由
264.
2.2数据库表的结构275综合测试
315.1系统注册与登录模块测试
315.2采购入库模块测试
325.3存货分析测试
335.4销售出库模块测试
345.5查询模块测试
355.6权限设置模块测试36结束语37致谢38参考文献39附录A部分代码401绪论
1.1本课题的研究意义及必要性库存管理系统是物资管理系统的核心,是一个企业不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要—直以来人们使用传统人工的方式管理仓库,效率低,查找、更新和维护比较困难现在,仓库作业和库存管理作业已多样化、复杂化,靠人工去处理已十分困难如果不能保证正确的进货、验收及发货,就会导致产生过量的库存,延迟交货时间,增加经营成本,以致失去客户随着科学技术的不断提高,计算机科学日渐成熟,库存管理系统应运而生,其检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等优点极大地提高人事劳资管理的效率,其能够有效地组织人员、空间和设备进行收货、存储、拣货和运输,组织运送原材料和部件到生产企业,运送成品到批发商、分销商和最终客户手中等强大的功能已为人们所熟知仓库管理系统是为企业的采购、制造计划、制造执行、客户服务系统与仓库或配送中心提供的管理手段,满足企业对低成本和快速处理的要求,帮助不同行业的企业解决复杂的配送问题并且降低订单履行成本,它已越来越广泛的应用到各大仓库,并随着不断的完善发挥着越来越重要的作用为此,有必要开发一个信息添加快捷、查找方便、稳定性高的库存管理系统该库存管理系统以VisualBasic
6.0集成开发环境为平台,拥有采购入库、存货查看、销售出库、查询、权限设置等模块,操作简单易学
1.2相关领域国内外应用的现状及发展趋势库存管理系统已经在发达国家广泛应用,而且应用范围越来越广功能越来越全面,操作越来越简便,成本越来越低廉目前主要应用于大中小型企业,工厂,物流公司,超市以及一些科研单位在我国由于劳动力相对充足,企业对库存管理系统不够重视现在我国的库存信息管理仍以人工管理为主2系统分析
2.1系统可行性分析首先,系统采用了完全模块化的总体结构设计,自上而下,逐层求精,将大量过程组合在一个过程文件中,使整个系统程序只包括两个部分:总控模块和过程文件系统结构清晰并且大大减少了磁盘访问的频繁程度使运行速度加快并且使程序的维护和保存更加简便第二,本系统将采用VB制作友好的人机交互页面人机交互界面启动时将要求用户输入密码,保证了库存信息的保密性用户可以在界面上选择查看各个模块对于各原料库存、原料需求、销售情况等数据将尽量以图形的形式给出,方便用户对比分析第三,采用数据库存储用到的各种数据用户可以在人机交互界面上实现对数据库的操作,方便快捷通过使用数据库减少了人力劳动,降低了仓库管理成本第四,为方便信息对比、保存,系统设置了信息查看、报表等功能
2.2系统功能介绍库存管理系统作为一种信息管理系统,其基本功能还是信息的录入和查询该库存管理系统以VisualBasic
6.0集成开发环境为平台设计各种操作界面由于VisualBasic
6.0只能支持Access97及其以下的版本,本库存管理系统选择使用Access97作为后台数据库数据库分为用户管理、入库成品管理、入库元件管理、订单管理、发货管理、产品所需元件、元件消耗管理七个表VisualBasic
6.0新增了数据环境设计器,它与数据报表设计器一起使用能够实现在VB中轻松创建报表的功能3总体设计
3.1功能模块划分本库存管理系统由注册与登录、采购入库、存货查看、销售出库、查询、权限设置等六个功能模块组成,如图
3.1所示图
3.1库存管理系统模块本库存管理系统由注册与登录、采购入库、存货查看、销售出库、查询、权限设置等六个功能模块组成系统注册与登录模块为用户提供简洁的注册、登录界面注册之后方可登录到主界面采购入库模块主要完成成品和元件入库信息的添加、删除、编辑等工作,分为成品入库管理、成品入库信息查看、元件入库管理、元件入库信息查看四个子模块存货查看模块分为成品存货查看、元件存货查看、存货分析三个子模块成品存货查看和元件存货查看的功能是显示元件和成品的当前存货量,有图表和柱状图两种显示方式供用户选择存货分析部分是该模块的特色部分存货分析可以根据尚未发货的订单数分析当前的成品存货、元件存货是否充裕存货分析部分的存在使得本库存管理系统不再是简单的信息记录系统销售出库模块由发货信息、订单信息、元件消耗、产品所需元件、销销售分析五个子模块组成其中,发货管理子模块又分为发货管理和发货信息查看两个子模块,订单信息子模块又分为订单信息管理、订单信息查看两个子模块,元件消耗子模块又分为元件消耗管理、元件消耗信息查看两个子模块发货信息、订单信息、元件消耗主要用于对发货、订单、元件消耗信息的录入、查看产品所需元件子模块的功能是记录每一种产品需要的元件及数量,该子模块既可以供用户编辑、查看又可以为存货查看模块中的存货分析部分提供支持销售分析子模块有总体销售分析和按产品分析两个部分每个部分都以不同颜色的折线显示过去三年每月的销售总额并绘制今年过去月份的销售折线,从而为用户提供直观的销售分析依据查询模块可以对发货、订单、入库元件、入库成品、产品所需元件、元件消耗、元件存货、成品存货进行查询权限设置模块仅对具有管理员权限的用户开放在该模块中管理员可以删除用户或编辑用户的访问权限
3.2系统流程本库存管理系统的使用流程是用户首先在注册界面上注册,只有注册成功的用户才可以在登陆界面凭用户名和密码登录登录之后系统根据用户具有的权限确定用户可以使用哪些模块对于用户没有权限的模块,系统将以灰色显示并禁止用户访问具体流程如图
3.2所示图
3.2系统流程图
3.3系统开发工具介绍
3.
3.1VisualBasic介绍VisualBasic简称VB是美国微软公司推出的Windows环境下的软件开发工具,它采用面向对象的编程技术,巧妙的把开发Windows环境下应用程序的复杂性“封装”起来,可以既快捷又简单得开发Windows应用软件,并使用事件驱动的编程思想,提高了编写应用程序时的灵活性和方便性VisualBasic
6.0的联机帮助文档使用MicrosoftVisualStudio
6.0统一的MSDNMicrosoftDeveloperNetwork帮助方式VB
6.0是微软公司MicrosoftVisualStudio开发工具套件中的成员之一,包括三个版本学习版(Learning)、专业版(Professional)和企业版(Enterprise)本库存管理系统使用的是VisualBasic
6.0专业版专业版为编程人员提供了一整套功能完备的软件开发工具包括学习班的全部功能,还包括ActiveX控件、InternetInformationServerApplicationDesigner、集成的VisualDatabaseTools和DataEnvironment、ActiveDataObjects和DynamicHTMLPageDesigner
3.
3.2Access数据库介绍MicrosoftOfficeAccess是由微软发布的关联式数据库管理系统,它结合了MicrosoftJetDatabaseEngine和图形用户界面两项特点,是MicrosoftOffice的成员之一Access作为一种数据库管理软件,是小型企业的专业化数据库设计和开发工具,它可以完成保存信息、数据计算处理、数据分析处理等功能,与Excel等工具可实现协同工作4详细设计
4.1各模块的功能与实现
4.
1.1注册与登录模块该模块的功能是自动记录用户申请的用户名和密码,并在用户登录时进行验证当用户申请的用户名已经存在时,系统将给出提示“该用户名已存在”并自动清空申请用户名的输入框在申请密码部分,系统要求用户两次输入密码,只有两次输入一致才可以成为用户的密码在用户成功申请用户名和密码之后,系统将用户名和密码保存在后台数据库中的用户管理表中用户凭用户名和密码登录,当密码错误或用户名不存在时系统将给出提示“输入密码错误或该用户名不存在!请重新输入!”当连续三次输入错误时,系统将停止运行强行退出登录部分在验证用户名和密码之后,如果用户名和密码一致还要继续分析用户的权限用户权限可以看成是一个四位数,每一位代表一个权限这个四位数从高位到低位依次代表采购入库模块、存货查看模块、销售出库模块、权限设置模块的权限“1”表示有权使用该模块,“0”表示无权使用该模块在分析用户权限之后系统将设置各个模块的Enable属性,使之允许访问或是不允许访问系统登录部分主要代码如下Adodc
1.Recordset.MoveFirsti=0WhileNotAdodc
1.Recordset.EOFIfstr=Adodc
1.Recordset.Fields用户名Andmima=Adodc
1.Recordset.Fields密码Theni=1quan=Adodc
1.Recordset.Fields权限EndIfAdodc
1.Recordset.MoveNextWendIfi=0ThenLabel
4.Caption=输入密码错误或该用户名不存在!请重新输入!cishu=cishu+1Ifcishu=3ThenLabel
4.Caption=您已三次输入错误!MsgBox您已三次输入错误!EndUnloadMeEndIfEndIfIfi=1ThenMDIForm
1.Showa=quan/1000采购入库b=quan/100Mod10销售出库c=quan/10Mod10存货查看d=quanMod10系统设置IfaThenMDIForm
1.mnu采购入库.Enabled=TrueElseMDIForm
1.mnu采购入库.Enabled=FalseEndIfIfbThenMDIForm
1.mnu销售出库.Enabled=TrueElseMDIForm
1.mnu销售出库.Enabled=FalseEndIfIfcThenMDIForm
1.mnu存货查看.Enabled=TrueElseMDIForm
1.mnu存货查看.Enabled=FalseEndIfIfdThenMDIForm
1.mnuSet.Enabled=TrueElseMDIForm
1.mnuSet.Enabled=FalseEndIfUnloadMeMDIForm
1.ShowEndIf用户注册界面如图
4.1所示,登录界面如图
4.2所示图
4.1用户注册界面图
4.2登录界面
4.
1.2采购入库模块该模块的主要功能是完成成品和元件入库信息的添加、删除、编辑等工作,分为成品入库管理、成品入库信息查看、元件入库管理、元件入库信息查看四个子模块该模块的入库元件管理界面和入库成品管理界面是在用VB
6.0中的数据窗体设计器自动生成窗体的基础上调整美化而成入库元件信息查看和入库成品信息查看子模块使用了ADO数据控件和MSFlexGrid控件ADO数据访问方式是现在和未来VB
6.0乃至Microsoft的各种应用软件进行数据访问的主流ADO是通过OLEDB所提供的方法对各种数据源进行操作和访问ADO是VB数据访问技术的发展方向MSFlexGrid控件能够显示包含若干行和列的表格数据MSFlexGrid控件的优点在于它的灵活性,它可以显示任意列任意行为了方便用户查看、保存和打印信息,在次模块设置了数据报表数据报表(DataReport)设计器是VB
6.0新增加的功能,与数据环境(DataEnvironment)设计器配套使用可以完成数据报表的设计和打印功能入库元件管理界面、入库元件信息查看界面、入库元件数据报表分别如图
4.
3、图
4.4和图
4.5所示图
4.3入库元件管理界面图
4.4入库元件信息查看界面图
4.5入库元件数据报表
4.
1.3存货查看模块存货查看模块分为成品存货查看、元件存货查看、存货分析三个子模块成品存货查看和元件存货查看的功能是显示元件和成品的当前存货量,有图表和柱状图两种显示方式成品存货查看中的数据由入库成品管理和发货管理两个表的数据运算得到例如,要显示温升报警器的存货数量首先在入库成品管理中搜索所有温升报警器的入库记录,把每条记录的数量累加存在一个变量中然后在发货管理中搜索所有温升报警器的发货记录,从刚才的变量中逐一减去各个发货记录中的数量最后,变量的值就是库中温升报警器的存有量系统逐一计算出每种成品的库存量,在MSFlexGrid表格中显示出来并生成柱状图以给用户更直观的印象元件存货查看是根据入库元件管理和元件消耗管理两个表计算元件存货量的计算过程与成品存货量的计算过程类似该部分的代码见附录A成品存货查看界面如图
4.6所示图
4.6(a)成品存货表格界面图
4.6(b)成品存货柱状图界面存货分析子模块是该模块的特色部分存货分析可以根据尚未发货的订单数分析当前的成品存货、元件存货是否充裕该子模块分成订单分析、成品存货分析、元件存货分析三个部分订单分析部分首先从订单管理表中搜索出尚未发货的订单并显示出来然后系统将根据产品所需元件表中的信息列出每个订单产品所需的元件及数量,并统计以上订单一共需要多少元件成品存货分析部分搜索订单中的产品在仓库中存有多少,如果某种产品的存货量低于订货量系统将给出提示并列出所缺产品需要哪些元件及元件的数量最后成品存货分析部分将计算出所缺少的成品一共需要多少元件元件存货分析部分将根据成品存货分析部分最后列出的元件信息搜索这些元件在仓库中的存货量,如果某元件的存货量低于生产订单所需要的数量系统将给出进货提示存货分析子模块中最核心的部分是计算库中不能满足订单需求的产品需要哪些元件及其元件的数量其程序如下所示Adodc
5.ConnectionString=Provider=Microsoft.Jet.OLEDB.
3.51;PersistSecurityInfo=False;DataSource=App.Path\db
1.mdbAdodc
5.RecordSource=产品所需元件Adodc
5.RefreshOpenF:\VB文件\ziduan.datForInputAs#2Input#2zmaxClose2zuidayuanjianshu=0Fork=1Tomaximaxi用来表示最大缺货数biaozhi=0Adodc
5.Recordset.MoveFirstWhileNotAdodc
5.Recordset.EOFIfquehuok=Adodc
5.Recordset.Fields产品名称Thenbiaozhi=1biaozhi做为是否找到某产品元件信息的标志Forj=0Tozmaxstr2=元件jstr3=数量jIfIsNumericAdodc
5.Recordset.Fieldsstr3Then///////////////////////////////////////////////////////////////////////////////////////////////Ifzuidayuanjianshu=0Thenqyjj=Adodc
5.Recordset.Fieldsstr2qyjsj=Adodc
5.Recordset.Fieldsstr3*queshukzuidayuanjianshu=1Elsembz=0从第二条记录开始默认没有跟前一条一样的元件,mbz是一个标志Forn=0TozuidayuanjianshuIfqyjn=Adodc
5.Recordset.Fieldsstr2Thenqyjsn=qyjsn+Adodc
5.Recordset.Fieldsstr3*queshukzuidayuanjianshu=zuidayuanjianshu+1mbz=1EndIfNextnIfmbz=0Thenqyjzuidayuanjianshu=Adodc
5.Recordset.Fieldsstr2qyjszuidayuanjianshu=Adodc
5.Recordset.Fieldsstr3*queshukzuidayuanjianshu=zuidayuanjianshu+1EndIfEndIf///////////////////////////////////////////////////////////////////////////////////////////////Picture
5.PrintAdodc
5.Recordset.Fieldsstr2Adodc
5.Recordset.Fieldsstr3个EndIfNextjEndIfAdodc
5.Recordset.MoveNextWendIfbiaozhi=0ThenPicture
5.Printk、暂时还没有quehuok的元件信息EndIfNextkPicture
6.Print以上产品一共需要一下元件Fork=0Tozuidayuanjianshu-1Picture
6.Printqyjk qyjsk个这里求出了所有需要的元件!(除去了成品存货)Nextk存货分析子模块的界面如图
4.7所示图
4.7存货分析界面
4.
1.4销售出库模块销售出库模块由发货信息、订单信息、元件消耗、产品所需元件、销销售分析五个子模块组成其中,发货信息子模块又分为发货管理和发货信息查看两个子模块,订单信息子模块又分为订单信息管理、订单信息查看两个子模块,元件消耗子模块又分为元件消耗管理、元件消耗信息查看两个子模块发货信息、订单信息、元件消耗主要用于对发货、订单、元件消耗信息的录入、查看产品所需元件子模块的功能是记录每一种产品需要的元件及数量,该子模块既可以供用户编辑、产看又可以为存货查看模块中的存货分析部分提供支持销售分析子模块有总体销售分析和按产品分析两个部分每个部分都以不同颜色的折线显示过去三年每月的销售总额并绘制今年过去月份的销售折线,从而为用户提供直观的销售分析依据销售出库模块中的发货管理、发货信息查看、订单管理和订单信息查看与前面采购入库中入库成品管理和入库成品信息查看的功能、实现方法类似,不再赘述产品所需元件子模块利用数据表存储产品所需的元件信息,该子模块可以动态增加字段动态增加字段是该子模块的核心部分该表中第一个字段是“产品名称”,第二个字段是“元件0”,第三个字段是“元件1”,以此类推程序中把当前最大字段数写入一个二进制文件中录入第一条记录时把第一条记录的字段数当做当前最大字段数,以后每记入一个记录都会从“元件0”开始填写元件,当元件种类超过最大字段数时,系统就会自动增加一个字段,并把当前的字段数赋给最大字段数该部分的核心程序如下DimzmaxAsInteger用来表示最大字段数DimjAsInteger用来表示当前记录数Str=元件str2=数量j=Adodc
1.Recordset.RecordCountAdodc
1.Recordset.DeleteIfj=1Thensql=altertable产品所需元件addStrivarchar10Adodc
1.Recordset.ActiveConnection.ExecutesqlAdodc
1.Recordset.UpdateAdodc
1.Recordset.Savesql=altertable产品所需元件addstr2ivarchar10Adodc
1.Recordset.ActiveConnection.ExecutesqlAdodc
1.Recordset.UpdateAdodc
1.Recordset.SaveAdodc
1.RefreshAdodc
1.Recordset.MoveLastStr=元件istr2=数量iAdodc
1.Recordset.FieldsStr=Text
2.TextAdodc
1.Recordset.Fieldsstr2=Text
3.TextOpenF:\VB文件\ziduan.datForOutputAs#2用文件来保存最大字段数Write#2iClose2Print文件已建立!i=i+1EndIfIfj1ThenOpenF:\VB文件\ziduan.datForInputAs#2Input#2zmaxClose2Ifk=zmaxThenStr=元件kstr2=数量kAdodc
1.Recordset.FieldsStr=Text
2.TextAdodc
1.Recordset.Fieldsstr2=Text
3.Textk=k+1ElseStr=元件kstr2=数量ksql=altertable产品所需元件addStrvarchar10Adodc
1.Recordset.ActiveConnection.ExecutesqlAdodc
1.Recordset.UpdateAdodc
1.Recordset.Savesql=altertable产品所需元件addstr2varchar10Adodc
1.Recordset.ActiveConnection.ExecutesqlAdodc
1.Recordset.UpdateAdodc
1.Recordset.SaveAdodc
1.RefreshAdodc
1.Recordset.MoveLastAdodc
1.Recordset.FieldsStr=Text
2.TextAdodc
1.Recordset.Fieldsstr2=Text
3.TextOpenF:\VB文件\ziduan.datForOutputAs#2用文件来保存最大字段数Write#2kClose2k=k+1EndIf在产品所需元件子模块中设计了删除按钮,供客户删除过时的或错误的记录该子模块的界面如图
4.8所示图
4.8产品所需元件界面销售分析子模块利用VB的绘图功能以不同颜色绘制过去三年的历史销售折线以及今年过去月份的销售折线另外还可以根据用户输入的产品名称绘制该产品在过去三年的销售折线以及今年过去月份的销售折线该子模块的重点在于按月求出销售总额并绘制折线图由于每个月的销售总额是不定的,无法预知其最大值所以在绘制销售折线时把每个月销售总额中的最大值作为折线图的最高点,其他月份的销售额对应的点按照与最大值的比例绘制,然后把相邻的两个点用直线连接起来就是销售折线在按照用户输入的产品名称绘制折线图之后,系统还会求出该种产品每个月的历史销售最大值和历史销售最小值供用户参考该部分的核心程序如下DimstrSQLAsStringDimjAsIntegerDimiAsIntegerDimmaxshuAsIntegerDimshu0To31To12AsIntegerDimnianAsIntegerDimyueAsIntegerDimmaxyu1To12AsIntegerDimminyu1To12AsIntegerPicture
3.ClsPicture
4.ClsstrSQL=Select*From发货管理Where产品名称=strAdodc
2.ConnectionString=Provider=Microsoft.Jet.OLEDB.
3.51;PersistSecurityInfo=False;DataSource=App.Path\db
1.mdbAdodc
2.RecordSource=strSQLAdodc
2.RefreshIfAdodc
2.Recordset.RecordCount0ThenAdodc
2.Recordset.MoveFirstLabel
5.Caption=nian=YearDateForj=0To3IfAdodc
2.Recordset.RecordCount0ThenAdodc
2.Recordset.MoveFirstEndIfWhileNotAdodc
2.Recordset.EOFIfYearAdodc
2.Recordset.Fields出库时间=nian-jThenSelectCaseMonthAdodc
2.Recordset.Fields出库时间Case1shuj1=shuj1+Adodc
2.Recordset.Fields数量Case2shuj2=shuj2+Adodc
2.Recordset.Fields数量Case3shuj3=shuj3+Adodc
2.Recordset.Fields数量Case4shuj4=shuj4+Adodc
2.Recordset.Fields数量Case5shuj5=shuj5+Adodc
2.Recordset.Fields数量Case6shuj6=shuj6+Adodc
2.Recordset.Fields数量Case7shuj7=shuj7+Adodc
2.Recordset.Fields数量Case8shuj8=shuj8+Adodc
2.Recordset.Fields数量Case9shuj9=shuj9+Adodc
2.Recordset.Fields数量Case10shuj10=shuj10+Adodc
2.Recordset.Fields数量Case11shuj11=shuj11+Adodc
2.Recordset.Fields数量Case12shuj12=shuj12+Adodc
2.Recordset.Fields数量EndSelectEndIfAdodc
2.Recordset.MoveNextWendNextjForj=0To3Fori=1To12IfshujimaxshuThenmaxshu=shujiEndIfNextiNextjPrintmaxshu//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////绘出每年的走势图Picture
3.Line2004500-200100竖轴的长度是4400Picture
3.Print数量件Picture
3.Line2004500-135004500横轴的长度是11500Picture
3.Print月份Fori=1To12Picture
3.CurrentX=200+1000*iPicture
3.CurrentY=4500Picture
3.Printi月NextiForj=0To3Fori=1To12Ifj=0ThenPicture
3.Circle200+1000*i4500-shu0i/maxshu*400040RGB25500IfiMonthDateThenPicture
3.Line200+1000*i4500-shu0i/maxshu*4000-200+1000*i+14500-shu0i+1/maxshu*4000RGB25500EndIfEndIfIfj=1ThenPicture
3.Circle200+1000*i4500-shu1i/maxshu*400040RGB02550Ifi12ThenPicture
3.Line200+1000*i4500-shu1i/maxshu*4000-200+1000*i+14500-shu1i+1/maxshu*4000RGB02550EndIfEndIfIfj=2ThenPicture
3.Circle200+1000*i4500-shu2i/maxshu*400040RGB00255Ifi12ThenPicture
3.Line200+1000*i4500-shu2i/maxshu*4000-200+1000*i+14500-shu2i+1/maxshu*4000RGB00255EndIfEndIfIfj=3ThenPicture
3.Circle200+1000*i4500-shu3i/maxshu*400040RGB000Ifi12ThenPicture
3.Line200+1000*i4500-shu3i/maxshu*4000-200+1000*i+14500-shu3i+1/maxshu*4000RGB000EndIfEndIfPicture
3.CurrentX=200+1000*iPicture
3.CurrentY=4500-shuji/maxshu*4000-150Ifshuji0ThenPicture
3.PrintshujiEndIfNextiNextj///////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////yue=MonthDateLabel
4.Caption=nian年yue月以后销售分析Picture
4.CurrentX=0Picture
4.CurrentY=500Fori=yueTo12Forj=1To3Ifj=1Thenmaxyui=shu1iminyui=shu1iEndIfIfshujimaxyuiThenmaxyui=shujiEndIfIfshujiminyuiThenminyui=shujiEndIfNextjPicture
4.Printi月份历史最大值为maxyuiPicture
4.CurrentX=450Picture
4.Print历史最小值为minyuiNextiElseLabel
5.Caption=没有相关记录!EndIf该子模块的界面如图
4.9所示图
4.9销售分析界面
4.
1.5查询模块查询模块可以对发货、订单、入库元件、入库成品、产品所需元件、元件消耗、元件存货、成品存货进行查询由于对发货、订单、入库元件、入库成品、产品所需元件、元件消耗的查询是基于某一个数据表的,比较简单,因此把这六个查询分为一类单独处理查询的结果用DataGrid控件显示用DataGrid控件显示记录可以不用关心要显示的记录具体有多少字段因为这六个查询的字段数不同,所以用DataGrid控件正好可以解决查询过程中字段数不断变化的问题查询条件的输入是利用两个ComboBox组合框控件和一个TextBox文本框控件完成的第一个ComboBox控件用于选择要查询的模块,第二个ComboBox控件用于选择要查询的字段,即按什么查询第二个ComboBox控件的项目随第一个ComboBox的内容变化而变化TextBox文本框控件用于输入查询条件由于ADO控件的RecordSource属性可以使用SQL语句,系统的查询是利用SQL语句的查询功能实现的结构化查询语言SQL(StructuredQueryLanguage)是一种通用的关系型数据库的编程语言,是一组命令的集合,包括关系型数据库的建立、维护和查询等操作,已成为关系数据库普遍使用的标准该查询模块主要使用SQL语句中的数据检索语句SELECT语句其格式为SELECT[DISTINCT]字段名表FROM表名[表名][WHERE条件表达式][GROUPBY字段名[HAVING条件表达式]][ORDERBY字段名[ASC/DESC]]各个SQL子句的作用如表
4.1所示表
4.1SQL子句的作用子句作用FROM指定要从中检索的表WHERE指定选择的标准GROUPBY把所选择的记录分组HAVING分组的提取条件ORDERBY指定查询所得记录的排序方式进出库相关查询的核心代码如下其中datasheet是选择的数据表,strField是选择的查询字段,Text
1.Text是输入的查询条件DimfhAsBooleanIfstrField=出库时间OrstrField=入库时间OrstrField=订货日期OrstrField=预订交货日期OrstrField=实际交货日期Thensql=Select*FromdatasheetwherestrField=#Text
1.Text#Adodc
1.ConnectionString=Provider=Microsoft.Jet.OLEDB.
3.51;PersistSecurityInfo=False;DataSource=App.Path\db
1.mdbAdodc
1.RecordSource=sqlAdodc
1.RefreshElseIfstrField=是否已发货ThenIfText
1.Text=0Thenfh=FalseElsefh=TrueEndIfsql=Select*FromdatasheetwherestrField=fhAdodc
1.ConnectionString=Provider=Microsoft.Jet.OLEDB.
3.51;PersistSecurityInfo=False;DataSource=App.Path\db
1.mdbAdodc
1.RecordSource=sqlAdodc
1.RefreshElsesql=Select*FromdatasheetwherestrField=Text
1.TextAdodc
1.ConnectionString=Provider=Microsoft.Jet.OLEDB.
3.51;PersistSecurityInfo=False;DataSource=App.Path\db
1.mdbAdodc
1.RecordSource=sqlAdodc
1.RefreshEndIf发货、订单、入库元件等的查询界面如图
4.10所示图
4.10发货、订单、入库元件等的查询界面元件存货查询和成品存货查询都是基于两个表的查询,过程比较繁琐,故将这两个查询作为一类单独处理存货量的查询结果只显示货物编号、货物名称和数量,这三个字段是固定的由于DataGrid控件必须与一个ADO控件绑定操作,而此处要显示的数据是两个表运算的结果,为了显示方便此处选用MSFlexGrid控件其查询条件的输入与发货、订单、入库元件等查询的输入方式一样在对元件存货、成品存货的查询模块中可以按照名称查询也可以按照编号查询查询功能的实现也是借助于SQL语句的数据检索语句SELECT例如要按名称查询产品“秒表”的存货量,首先把入库产品数据表中的指针指向第一条记录,然后逐一对比每条记录的名称是不是“秒表”直到结束如果是,则把该条记录的数量加到变量cps中把发货管理数据表中的指针指向第一条记录,然后逐一对比每条记录的名称是不是“秒表”直到结束如果你就在变量cps中减去这条记录的数量最后存在变量cps中的数就是“秒表”的库存数量该部分的核心代码如下其中Combo3是选择的存货类型即使成品存货还是元件存货Combo4是选择的字段名Text
2.Text是输入的查询条件成品存货查询!/////////////////////////////////////////////////////////////////////////////////////////////////////////////IfCombo3=成品存货ThenAdodc
2.Refresh入库成品管理Adodc
3.Refresh发货管理cps=0IfCombo4=名称Then按名称查询Adodc
2.Recordset.MoveFirstWhileNotAdodc
2.Recordset.EOFIfText
2.Text=Adodc
2.Recordset.Fields产品名称Thencps=cps+Adodc
2.Recordset.Fields数量cps表示库中某成品的数量EndIfAdodc
2.Recordset.MoveNextWendAdodc
3.Recordset.MoveFirstWhileNotAdodc
3.Recordset.EOFIfText
2.Text=Adodc
3.Recordset.Fields产品名称Thencps=cps-Adodc
3.Recordset.Fields数量EndIfAdodc
3.Recordset.MoveNextWendMSFlexGrid
1.Rows=2MSFlexGrid
1.Cols=2MSFlexGrid
1.Row=0MSFlexGrid
1.Col=0MSFlexGrid
1.Text=成品名称MSFlexGrid
1.Col=1MSFlexGrid
1.Text=数量MSFlexGrid
1.Row=1MSFlexGrid
1.Col=0MSFlexGrid
1.Text=Text
2.TextMSFlexGrid
1.Col=1MSFlexGrid
1.Text=cpsEndIfIfCombo4=编号Then按编号查询Adodc
2.Recordset.MoveFirstWhileNotAdodc
2.Recordset.EOFIfText
2.Text=Adodc
2.Recordset.Fields产品编号Thencps=cps+Adodc
2.Recordset.Fields数量EndIfAdodc
2.Recordset.MoveNextWendAdodc
3.Recordset.MoveFirstWhileNotAdodc
3.Recordset.EOFIfText
2.Text=Adodc
3.Recordset.Fields产品编号Thencps=cps-Adodc
3.Recordset.Fields数量EndIfAdodc
3.Recordset.MoveNextWendMSFlexGrid
1.Rows=2MSFlexGrid
1.Cols=2MSFlexGrid
1.Row=0MSFlexGrid
1.Col=0MSFlexGrid
1.Text=成品编号MSFlexGrid
1.Col=1MSFlexGrid
1.Text=数量MSFlexGrid
1.Row=1MSFlexGrid
1.Col=0MSFlexGrid
1.Text=Text
2.TextMSFlexGrid
1.Col=1MSFlexGrid
1.Text=cpsEndIfPrintcps元件查询///////////////////////////////////////////////////////////////////////////////////////////////////////////////////ElseAdodc
4.Refresh入库元件管理Adodc
5.Refresh元件消耗管理yjs=0IfCombo4=名称Then按名称查询Adodc
4.Recordset.MoveFirstWhileNotAdodc
4.Recordset.EOFIfText
2.Text=Adodc
4.Recordset.Fields名称Thenyjs=yjs+Adodc
4.Recordset.Fields数量yjs表示库中某成品的数量EndIfAdodc
4.Recordset.MoveNextWendAdodc
5.Recordset.MoveFirstWhileNotAdodc
5.Recordset.EOFIfText
2.Text=Adodc
5.Recordset.Fields元件名称Thenyjs=yjs-Adodc
5.Recordset.Fields数量EndIfAdodc
5.Recordset.MoveNextWendMSFlexGrid
1.Rows=2MSFlexGrid
1.Cols=2MSFlexGrid
1.Row=0MSFlexGrid
1.Col=0MSFlexGrid
1.Text=元件名称MSFlexGrid
1.Col=1MSFlexGrid
1.Text=数量MSFlexGrid
1.Row=1MSFlexGrid
1.Col=0MSFlexGrid
1.Text=Text
2.TextMSFlexGrid
1.Col=1MSFlexGrid
1.Text=yjsEndIfIfCombo4=编号Then按编号查询Adodc
4.Recordset.MoveFirstWhileNotAdodc
4.Recordset.EOFIfText
2.Text=Adodc
4.Recordset.Fields编号Thenyjs=yjs+Adodc
4.Recordset.Fields数量EndIfAdodc
4.Recordset.MoveNextWendAdodc
5.Recordset.MoveFirstWhileNotAdodc
5.Recordset.EOFIfText
2.Text=Adodc
5.Recordset.Fields元件编号Thenyjs=yjs-Adodc
5.Recordset.Fields数量EndIfAdodc
5.Recordset.MoveNextWendMSFlexGrid
1.Rows=2MSFlexGrid
1.Cols=2MSFlexGrid
1.Row=0MSFlexGrid
1.Col=0MSFlexGrid
1.Text=元件名称MSFlexGrid
1.Col=1MSFlexGrid
1.Text=数量MSFlexGrid
1.Row=1MSFlexGrid
1.Col=0MSFlexGrid
1.Text=Text
2.TextMSFlexGrid
1.Col=1MSFlexGrid
1.Text=yjsEndIfPrintyjsEndIf元件存货和成品存货的查询界面如图
4.11所示图
4.11元件存货和成品存货的查询界面
4.
1.6权限设置模块权限设置模块仅对具有管理员权限的用户开放在该模块中管理员可以删除用户、编辑用户的访问权限用户申请的用户名和密码存放在“用户管理”表中,其默认的权限是0即只有查询的权限用户申请到用户名和密码之后,管理员可以重新设置用户的权限一共设置了四种权限采购入库、销售出库、存货查看、管理员这四个权限的设置利用四个复选框完成,即这四个权限是任选的,可以拥有一个也可以拥有四个在复选框中选择权限之后会生成一个不多于4位的数字,每位只可能是0或1该数从最高位到最低位依次代表采购入库、销售出库、存货查看、管理员的权限“0”代表没有权限,“1”代表有权限该模块中还设置了一个删除按钮供管理员删除用户使用另外,为方便管理员查看用户信息,该模块设有生成报表的功能在界面中使用DataGrid控件显示用户信息,使用DataGrid控件主要是因为它跟ADO绑定使用直接与数据库中的用户管理表相连,可以实时的显示管理员的操作权限设置部分的代码如下所示Dimquan1AsIntegerDimquan2AsIntegerDimquan3AsIntegerDimquan4AsIntegerDimquanAsIntegerIfCheck
1.Value=1Thenquan1=1000拥有采购入库模块的权限Elsequan1=0没有采购入库模块的权限EndIfIfCheck
2.Value=1Thenquan2=100拥有销售出库模块的权限Elsequan2=0没有销售出库模块的权限EndIfIfCheck
3.Value=1Thenquan3=10拥有存货查看模块的权限Elsequan3=0没有存货查看模块的权限EndIfIfCheck
4.Value=1Thenquan4=1拥有权限设置模块的权限Elsequan4=0没有权限设置模块的权限EndIfquan=quan1+quan2+quan3+quan4生成总的权限Adodc
1.Recordset.Fields权限=quanAdodc
1.Recordset.Update该模块的界面如图
4.12所示图
4.12权限设置界面
4.2系统数据库的设计
4.
2.1数据库选择及理由本库存管理系统以VisualBasic
6.0集成开发环境为设计平台用VisualBasic
6.0作为数据库开发平台有以下优点
(1)简单VisualBasic提供了数据控件,利用该控件,用户只要编写少量的代码甚至不用编写任何代码就可以访问数据库,对数据库进行浏览
(2)灵活VisualBasic不像一般的数据库那样局限于特定的应用程序结构,也不需要用某些指令对当前打开的数据库进行操作,因而比较灵活
(3)可扩充VisualBasic是一种可以扩充的语言,其中包括在数据库应用方面的扩充在VisualBasic中,可以使用由Microsoft告诉提供的ActiveX控件,也可以由第三方开发者提供VisualBasic中使用的数据库是关系数据库(RelationalDatabase)关系数据库是若干个关系的集合也可以说,关系数据库是由若干张二维表组成的在关系数据库中,将一个关系视为一张二维表,又称其为数据表数据表又由若干条记录组成,而每一条记录时由若干个以字段属性加以分类的数据项组成的在数据表中,某一字段或几个字段的组合能够标识一条记录,则成其为关键字(或键),当一个数据表中有多个键时,可以从中选出一个座位主关键字(或主键)VB可以通过数据库引擎访问以下3类数据库
(1)Jet数据库数据库由Jet引擎直接生成和操作不仅灵活而且快速MicrosoftAccess与VB使用相同的Jet引擎
(2)ISAN数据库索引顺序访问方法(ISAN)数据库有几种不同的形式,如DBASE、MicrosoftFoxPro和Paradox在VB中可以生成和操做这些数据库
(3)ODBC数据库开放式数据库连接(ODBC)这些数据库包括遵守ODBC标准的客户/服务器数据库,如MicrosoftSQLserver、Sybase以及Oracle等VB可以使用任何支持ODBC标准的数据库本库存管理系统才用Access数据库主要基于以下考虑
(1)Access能满足一般小型企业和个人的数据管理,功能相当强大不仅可以构建、管理数据,而且具有窗体、报表和网页功能不用其他软件就可以构建一个相当完整的信息管理系统由于本库存管理系统是面向中小企业设计的,故Access数据库能满足客户要求
(2)Access完全采用图形界面,提供了大量的向导功能,对于没有太多数据库编程经验的初学者,尤其是对于熟悉Excel、Word等办公软件操作的用户学习起来非常简单
(3)Access是与微软的Office软件一起销售,不需要另外购买,大大降低了应用成本,而且由于Office的普及程度,一旦学会了Access的应用,就会有广泛的应用范围
(4)Access数据库存储简单易于维护管理,资料较多简单易学学会了Access的使用,会帮助理解数据库中的很多概念,如果需要进一步学习其他更复杂的数据库,也就具有了较好的基础
4.
2.2数据库表的结构在该库存管理系统的数据库中设计了7个表,分别是用户管理、入库成品管理、入库元件管理、订单管理、发货管理、产品所需元件、元件消耗管理用户管理表中有三个字段用户名、密码和权限,主键是用户名其数据结构如表
4.2所示这个表用来存放用户信息,在系统登录和管理员设置权限时会被用到表
4.2用户管理表字段名称数据类型字段长度用户名Text255密码Text255权限Integer2入库成品管理有七个字段记录号、产品名称、产品编号、产品类别、数量、入库时间和负责人,主键是产品编号其数据结构如表
4.3所示这个表主要用来记录入库的成品信息表
4.3入库成品管理表字段名称数据类型字段长度记录号Long4产品名称Text255产品编号Text255产品类别Text255数量Long4入库时间Date/Time8负责人Text255入库元件管理有九个字段记录号、名称、编号、单价、数量、经手人、入库时间、类别和备注,主键是编号其数据结构如表
4.4所示这个表主要用来记录元件的入库信息表
4.4入库元件管理表字段名称数据类型字段长度记录号Long4名称Text255编号Text255单价Currency8数量Integer2经手人Text255入库时间Date/Time8类别Text255备注Text255订单管理有十四个字段订单编号、订货客户、订货名称、货物编号、类别、单价、数量、订货日期、预订交货日期、实际交货日期、是否已生产、是否已发货、负责人和备注,主键是订单编号其数据结构如表
4.5所示这个表不仅要记录客户的订货信息而且要记录该订单的目前状态即是否已生产是否已发货表
4.5订单管理表字段名称数据类型字段长度订单编号Long4订货客户Text255订货名称Text255货物编号Text255类别Text255单价Currency8数量Integer2订货日期Date/Time8预订交货日期Date/Time8实际交货日期Date/Time8是否已生产Boolean1是否已发货Boolean1负责人Text255备注Text255发货管理有九个字段记录号、产品名称、产品编号、类别、单价、数量、发往对象、出库时间和负责人,主键是产品编号其数据结构如表
4.6所示这个表主要用来记录货物的发送情况表
4.6发货管理表字段名称数据类型字段长度记录号Long4产品名称Text255产品编号Text255类别Text255单价Currency8数量Integer2发往对象Text255出库时间Tate/Time8负责人Text255元件消耗管理有六个字段元件名称、元件编号、数量、使用时间、负责人和备注,主键是元件编号其数据结构如表
4.7所示该表主要用来记录元件的使用情况表
4.7元件消耗表字段名称数据类型字段长度元件名称Text255元件编号Text255数量Integer2使用时间Date/Time8负责人Text255备注Text255产品所需元件表的字段数是不确定的,该表可以动态的增加字段,但是产品名称和产品编号这两个字段是必须有的在增加字段的时候,表中会同时增加“元件n”和“数量n”这两个字段,其中n是从0开始一次递增的数字其数据结构如表
4.8所示这个表的作用是记录每个产品需要哪些元件,为存货查看模块中的存货分析子模块提供支持表
4.8产品所需元件表字段名称数据类型字段长度产品名称Text255产品编号Text255元件nText255数量nLong45综合测试
5.1系统注册与登录模块测试
(1)注册界面当用户申请的用户名已经存在时系统会给出提示要求用户重新输入用户名如图
5.1所示图
5.1a注册用户名图
5.1b用户名重复提示当两次输入密码不一致时系统会自动提示如图
5.2所示图
5.2两次输入密码不一致时系统会自动提示
(2)登录界面当用户名与密码不一致或用户名不存在时,系统会给出提示如图
5.3所示图
5.3用户名与密码不一致或用户名不存在
5.2采购入库模块测试
(1)以入库元件的信息录入为代表说明测试结果信息录入如图
5.4所示图
5.4入库元件的信息录入元件信息录入后在入库元件信息查看界面中就会显示相应的元件信息,如图
5.5所示同时也可以生成报表,如图
5.6所示图
5.5元件信息录入后在入库元件信息查看界面中就会显示相应的元件信息图
5.6元件信息录入后在数据报表中就会显示刚刚录入的记录
5.3存货分析测试存货分析子模块根据订单信息、入库成品信息、入库元件信息、产片所需元件信息计算出当前仓库中的成品存货、元件存货是否能够满足订单需求,如果不能满足则给出相应提示现在订单中有四个订单尚未发货,分别是秒表100件、百鸟鸣20件、温升报警器50件、声光电子警卫30件由于仓库成品存货中有秒表30件、百鸟鸣10件、温升报警器30件、声光电子警卫30件,所以缺少秒表70件、百鸟鸣10件、温升报警器20件每个秒表需要1个单片机和1个LCD,每个百鸟鸣需要1个单片机、1个蜂鸣器和1个电源,每个温升报警器需要1个蜂鸣器、1个DS18B20和20个10K电阻所以共需80个单片机、70个LCD、30个蜂鸣器、10个电源、20个DS18B
20、400个10K电阻由于仓库元件中没有单片机、LCD、电源和DS18B20,所以至少应当购进80个单片机、70个LCD、10个电源和20个DS18B20仓库元件中存有蜂鸣器10件不够生产需要,所以还应当购进蜂鸣器20个仓库元件中存有10K电阻4000个,能满足生产需求测试结果正确,如图
5.7所示图
5.7存货分析测试
5.4销售出库模块测试该模块的订单信息、发货信息、产品所需元件等子模块的与前面入库元件子模块的测试类似,不在赘述下面着重介绍销售分析子模块的测试根据发货管理表中的信息可以计算出2008年每个月的销售总额分别是
7000、
28000、
21000、
14000、
26000、
42000、
28000、
7000、
48000、
28000、
14000、21000元2009年每个月的销售总额是
14000、
21000、
21000、
28000、
28000、
14000、
21000、
28000、
14000、
14000、
7000、14000元2010年每个月的销售额是
14000、
14000、
21000、
21000、
10000、
69000、
21000、
7000、
21000、
28000、
7000、21000元2011年1月至5月的销售额为
24000、
14000、
61000、
31000、51023元测试结果正确,如图
5.8所示图
5.8总体销售分析测试按产品分析以键盘为例2008年每个月的售出数量为
100、
400、
300、
200、
400、
600、
400、
100、
400、
400、
200、300件2009年每个月的售出量为
200、
200、
300、
300、
100、
700、
300、
100、
300、
400、
100、300件2010年每个月的售出量为
200、
300、
200、
400、
400、
200、
300、
400、
200、
200、
100、200件2011年1月至5月的销售量为
0、
200、
300、
300、300件根据以上数据,6月份的历史最大值为700件,历史最小值为200件7月份的历史最大值为400件,历史最小值为300件8月份的历史最大值为400件,历史最小值为100件9月份的历史最大值为400件,历史最小值为200件10月份的历史最大值为400件,历史最小值为200件11月份的历史最大值为200件,历史最小值为100件12月份的历史最大值为300件,历史最小值为200件测试结果正确,如图
5.9所示图
5.9键盘的销售分析
5.5查询模块测试本模块的测试以进出库相关查询测试为例在发货管理表中只有一次发货是发往惠民一中的在查询模块中选择发货管理,在查询字段中选择发往对象,在查询条件中输入惠民一中,测试结果正确,如图
5.10所示图
5.10进出库相关测试
5.6权限设置模块测试在权限设置模块中设置小张没有管理员的权限,对其他模块均有权限由此生成的权限对应的四位数是1110然后用用户名小张登录系统会看到权限设置菜单成灰色,不能选择测试结果正确,如图
5.11和
5.12所示图
5.11设置小张的权限图
5.12小张登录后的界面结束语经过两个多月的努力终于完成了库存管理系统的设计,感到很自豪在毕业设计的过程中巩固了很多以前学过的专业知识,学到了更多新的知识由于时间并不充足加上我的愚钝使得本次设计存在很多不合理的地方我从以下几个方面对自己在此次毕业设计过程中的感想做一下总结收获首先,为了做毕业设计从头开始学习了VisualBasic语言,学会了怎样用VB设计窗体,怎样的VB中调用SQL语句,怎样外接Access数据库,怎样生成报表等等在设计窗体的时候不一定要记住每个属性的名称,只要知道有没有这个属性这个属性的作用是什么就可以了在VB中连接Access数据库时,ADO数据控件和Data数据控件是最常用的,可以根据具体情况自由选择良好的数据库结构是做好库存管理系统的基础,在设计数据库的时候应当尽量减小冗余对于一堆复杂的数据,图表无疑是一个绝佳的选择用图表可以使复杂的数据一目了然一直以来我很喜欢软件编程,这次的毕业设计让我对软件编程有了新的认识其次,在编写程序过程中模块化的编程思想给我留下了深刻印象一个功能很复杂的整体,完全可以把它划分成几个小的模块分别编程这样既使编程变得简单又减少了出错的几率第三,这是我第一次在没有老师授课的情况下学习编程语言学习过程中有山重水复疑无路的困惑,也有柳暗花明又一村的快乐!对VB的学习使我进一步认识到要想把事情做好就要发挥自己的主观能动性诚然老师同学的指点、帮助很重要,但是把希望寄托在老师或同学身上是不可能把毕业设计做好的在学习过程中要充分利用一切可以利用的资源,可以去图书馆可以去百度,只要有恒心问题总会解决的第四,我一直坚信设计是自己才智的体现设计本身就是一种艺术,不一定要遵循前人的做法,完全可以按照自己的想法大胆尝试不足首先,在本次设计中我对VB语言投入的经历远远大于对Access数据库的精力Access数据库中的很多概念并没有理解清楚,对于关系数据库也缺乏本质上的认识这直接影响到了对库存管理系统数据库的设计,本次设计的数据库冗余较大没有充分体现出关系数据库的优点其次,本次设计的模块划分不是很合理,导致对用户权限控制的不够严格最后,虽然基本功能都已实现但是界面不美观,有待改进致谢转眼间,我的四年的大学就要结束了再过20几天我将来开这个待了四年的地方去继续我的人生旅途本文可以作为我四年大学生活的一个代表在这里,我拥有过梦想并为之努力过!因此,我要感谢我的烟台大学,我的计算机学院,我的自动化专业的老师们、同学们!谢谢你们给了我一个良好的学习环境,给了我一个提高修养的平台关于本次毕业设计,首先要感谢的是胡凤燕老师自这学期开始胡老师就一直监督指导着我的设计由于我在考研复试上花费了很多时间,致使毕业设计迟迟没有开始谢谢胡老师对我的理解与支持!同时我还要感谢研究生实验室的同学们,虽然咱们不是一个组的但是我们共同营造了一个良好的学习氛围每次看到你们在认真的调试程序、焊接电路板我就很来动力谢谢大家对我的支持与帮助!参考文献
[1]陈艳峰,高文姬,邵蕴秋VisualBasic数据库项目案例导航[M].清华大学出版社.20041-60
[2]郑海春,谢维成VisualBasic编程及实例分析教程[M].清华大学出版社.2007257-272
[3]周霭如,林伟健,官士鸿VisualBasic程序设计[M].北京电子工业出版社.2007:325-355
[4]高春艳,刘彬彬VisualBasic开发实战宝典[M].清华大学出版社.2010:527-541
[5]李长江,张丽华,王红VisualBasic数据库应用系统开发从基础到实践[M].北京.电子工业出版社.2005:50-79
[6]祁大鹏,黄先玲Access2007实用教程[M].北京电子工业出版社.2010:294-309
[7]施华峰http://s.g.wanfangdata.com.cn/Paper.aspxf=detailq=%e4%bd%9c%e8%80%85%3a%22%e6%96%bd%e5%8d%8e%e5%b3%b0%22+DBID%3aWF_HY,杨建国http://s.g.wanfangdata.com.cn/Paper.aspxf=detailq=%e4%bd%9c%e8%80%85%3a%22%e6%9d%a8%e5%bb%ba%e5%9b%bd%22+DBID%3aWF_HY,陈晓川http://s.g.wanfangdata.com.cn/Paper.aspxf=detailq=%e4%bd%9c%e8%80%85%3a%22%e9%99%88%e6%99%93%e5%b7%9d%22+DBID%3aWF_HY基于Web的库存管理系统的设计与实现[C]2004
[8]刘永祥http://s.g.wanfangdata.com.cn/Paper.aspxf=detailq=%e4%bd%9c%e8%80%85%3a%22%e5%88%98%e6%b0%b8%e7%a5%a5%22+DBID%3aWF_XW库存管理系统(IMS)软件工程角度的分析与研究[D]2004
[9]刘志坚中小制造企业库存管理系统的开发与设计[D]2009
[10]吴定刚对中小型企业信息管理系统的开发与研究[D]2005附录A部分代码
1、成品存货查看中的代码PrivateSubForm_LoadDimchangAsIntegerDimiAsIntegerDimbzAsIntegerAdodc
1.Refreshchang=Adodc
1.Recordset.RecordCountReDimstr1TochangAsStringReDimshu1TochangAsIntegerAdodc
1.Recordset.MoveFirststr1=Adodc
1.Recordset.Fields产品名称shu1=Adodc
1.Recordset.Fields数量m=1m表示最大记录数Adodc
1.Recordset.MoveNextWhileNotAdodc
1.Recordset.EOFbz=0Fori=1TomIfstri=Adodc
1.Recordset.Fields产品名称Thenshui=shui+Adodc
1.Recordset.Fields数量bz=1EndIfNextiIfbz=0Thenstrm+1=Adodc
1.Recordset.Fields产品名称shum+1=Adodc
1.Recordset.Fields数量m=m+1EndIfAdodc
1.Recordset.MoveNextWendFori=1TomPrintstrishui这就求出了元件的所有入库信息,并且没有重复的名称Nexti////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////Fori=1Tomsql=Select*From发货管理where产品名称=striAdodc
2.ConnectionString=Provider=Microsoft.Jet.OLEDB.
3.51;PersistSecurityInfo=False;DataSource=App.Path\db
1.mdbAdodc
2.RecordSource=sqlAdodc
2.RefreshIfAdodc
2.Recordset.RecordCount0ThenAdodc
2.Recordset.MoveFirstWhileNotAdodc
2.Recordset.EOFIfstri=Adodc
2.Recordset.Fields产品名称Thenshui=shui-Adodc
2.Recordset.Fields数量Adodc
2.Recordset.MoveNextWendEndIfNexti/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////MSFlexGrid
1.Rows=m+1MSFlexGrid
1.Cols=3MSFlexGrid
1.Row=0MSFlexGrid
1.Col=0MSFlexGrid
1.Text=名称MSFlexGrid
1.Col=1MSFlexGrid
1.Text=编号MSFlexGrid
1.Col=2MSFlexGrid
1.Text=数量Fori=1TomMSFlexGrid
1.Row=iMSFlexGrid
1.Col=0MSFlexGrid
1.Text=striMSFlexGrid
1.Col=2MSFlexGrid
1.Text=shuiNextiEndSubPrivateSubSSTab1_GotFocusDimmaxsAsIntegerDimiAsIntegerPicture
1.Line5008000-500500竖轴长度是7500Picture
1.Print数量Picture
1.Line5008000-150008000横轴长度是14500Picture
1.Print名称maxs=0Fori=1TomIfshuimaxsThenmaxs=shuiEndIfNextiFori=1TomPrintbiPicture
1.Line500+500*i-18000-Step100-shui/maxs*7000RGB00255BFPicture
1.CurrentX=500+500*i-1-100Picture
1.CurrentY=8000-shui/maxs*7000-150Picture
1.PrintshuiPicture
1.CurrentX=500+500*i-1Picture
1.CurrentY=8000Picture
1.PrintstriNextiEndSub附
4.指导教师毕业论文设计评审表题目学生姓名学号专业指导教师姓名职称所学专业是否同意参加答辩得分评语指导教师(签字)年月日附
5.烟台大学毕业论文评审表评阅人用题目学生姓名学号专业指导教师姓名职称所学专业是否同意参加答辩得分评语评阅人(签字)年月日附
6.烟台大学毕业论文设计答辩评审表题目学生姓名学号指导教师姓名职称得分评语答辩委员会(小组)(全体成员签字)、、、、年月日毕业论文设计综合评定成绩指导教师评分评阅人评分答辩评分综合评定成绩按
22.
55.5答辩委员会负责人(签字)年月日销售分析产品所需元件订单管理元件消耗管理订单信息查看发货信息查看发货管理销售出库存货分析成品存货查看元件存货查看入库成品信息查看入库成品管理入库元件信息查看入库元件管理登录权限设置查询存货查看采购入库库存管理系统元件消耗信息查看注册注册与登录NNNNYYYY开始结束权限设置模块销售出库模块存货查看模块采购入库模块权限设置权限?销售出库权限?存货查看权限?采购入库权限?登录注册PAGE。