• 723.50 KB
  • 2022-05-16 18:35:01 发布

仓库管理系统本科毕业设计论文

  • 88页
  • 当前文档由用户上传发布,收益归属用户
  1. 1、本文档共5页,可阅读全部内容。
  2. 2、本文档内容版权归属内容提供方,所产生的收益全部归内容提供方所有。如果您对本文有版权争议,可选择认领,认领后既往收益都归您。
  3. 3、本文档由用户上传,本站不保证质量和数量令人满意,可能有诸多瑕疵,付费之前,请仔细先通过免费阅读内容等途径辨别内容交易风险。如存在严重挂羊头卖狗肉之情形,可联系本站下载客服投诉处理。
  4. 文档侵权举报电话:19940600175。
仓库管理系统毕业设计(论文)前言随着企业管理信息化的发展,网络及计算机的引入使管理跃上了一个新的发展平台。企业的各项管理都将向信息化方向扩展,仓库的管理对于企业来说尤为重要,也正是基于这个原因我把毕业设计的方向定在了企业的仓库管理上。仓库管理系统是一个企业不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以仓库管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理产品,这种管理方式存在着许多缺点,如:效率低、保密性差等。另外,由于时间一长,将产生大量的文件和数据,这对于查找、更新和维护产品都带来了不少的困难。作为计算机应用的一部分,使用计算机对仓库信息进行管理,有着手工管理所无法比拟的优点。例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高仓库管理的效率。由于时间紧迫,加之水平有限,设计中的缺点和不足之处在所难免,敬请导师批评指正,不胜感激。摘要仓库管理系统是为了实现企业产品管理的系统化、规范化和自动化,从而提高企业管理效率而设计的。它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成仓库管理提供了强有力的工具和管理手段。仓库管理系统是一个中小 型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了仓库管理的要求。整个系统由基本信息、单据中心、查询统计、报表打印、维护设置、帮助等模块组成。本系统是在以ACCESS2000作为后台数据库,以VisualBasic为编程语言来开发的。仓库管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同时也实现了仓库管理计算机化。关键字:仓库,管理系统,数据库VB.net目录前言1摘要2Abstract3目录41仓库管理系统开发环境简介61.1中文VisualBasic6.0简介61.2ACCESS2000简介72系统可行性分析83系统总体设计103.1系统目标设计103.2开发设计思想103.3系统功能需求分析113.4系统功能模块设计114数据库设计124.1数据库需求分析124.2数据库概念结构设计144.3数据库逻辑结构设计185系统主窗体设计245.1创建工程项目—仓库管理系统245.2创建系统主窗体245.3创建主窗体菜单255.4创建主窗体工具栏515.4.1工具栏控件常用属性和事件515.4.2设置工具栏属性525.5设置主窗体状态栏56 6系统模块设计576.1基本信息模块设计576.1.1创建货物信息窗体576.1.2创建仓库信息窗体586.1.3创建库存状况信息窗体596.2单据中心模块设计606.2.1创建新增入库单窗体616.2.2创建入库单管理窗体626.2.3创建月盘点窗体636.3查询统计模块设计636.3.1创建单据查询窗体646.3.2创建库存查询窗体646.3.3创建货物出入统计窗体656.3.4创建职员操作统计窗体666.4报表打印模块设计676.4.1创建打印入库单窗体676.4.2创建打印月盘点窗体686.5维护设置模块设计696.5.1公司和职员信息706.5.2查看日志706.5.3数据清除716.5.4系统初始化716.5.5备份数据库716.5.6还原数据库和还原到昨天数据库726.5.7用户管理726.7帮助模块设计72总结74致谢75参考文献76 1仓库管理系统开发环境简介本仓库管理系统是在以VisualBasic为编程语言,以ACCESS2000作为后台数据库而开发的一个数据库管理系统。下面简要介绍一下中文VisualBasic6.0和Access2000。1.1中文VisualBasic6.0简介VisualBasic提供了开发Windows应用程序最迅速、最简洁的方法,它提供了一整套工具,供用户开发应用程序。Visual指的是开发图形用户界面(GUI)的方法,在图形用户界面下,不需要编写大量代码去描述界面元素的外观和位置,而只需要把预先建立的对象加到屏幕上的适当位置再进行简单设置即可;Basic指的是BASIC(BeginnersAll-PurposeSymbolInstructionCode)语言,是一种应用十分广泛的计算机语言。VisualBasic在原有BASIC语言的基础上进一步发展,至今包含了数百条语句、函数和关键词,其中很多和WindowsGUI有直接关系,专业人员可以用VisualBasic实现其他任何Windows编程语言的功能,而初学者只要掌握几个关键词就可以建立简单的应用程序。VisualBasic还是一个快速可视化程序开发工具,是极有特色和功能强大的软件。它使用了面向对象的程序设计方法,大大的增强了程序的可重用性,进而简化了程序设计。VisualBasic提供了众多的ActiveX控件,提高了软件开发人员的编程效率。它有其独特的特点,主要特点如下:1可视化设计。VB具有所见即所得的功能,在程序设计时,头脑中所想象的应用程序界面,完全可以通过键盘和鼠标完成,而不用编制大量代码,如果需要修改也可利用键盘或鼠标完成,而底层的一些程序代码,可由VB自动生成或修改。VB为用户提供了大量“控件”,这些“控件”对于熟悉“Windows应用成序”的用户而言,也许是一点也不陌生,如“标签”,“组合框”,“命令按扭”“文本框”,“单选框”等等,用户只需要用鼠标或键盘把这些“控件”拖到所需的位置并设置他们的大小形状属性等,即可得到所需要的应用程序界面。2事件驱动编程,在VB中把“窗体”及“控件” 称为对象。这些对象组成了与用户交互的图形界面(也称为用户接口用户界面)再设计应用程序时必须考虑到用户如何与程序进行交互,用户通过鼠标和键盘与应用程序进行交互是最直接最方便的,这时那些对象必须对鼠标键盘操作所引起的事件做出响应。响应是指执行一段应用程序,它不沿预定的路线执行而是在响应不同事件时执行不同的代码,因此VB编程重点是在编写事件驱动过程的代码。3面向对象的程序设计,VB是面向对象的程序设计语言,他将代码和数据结合在一个对象中,用户只需要了解每个对象能完成何种任务而不需要知道对象是如何工做作的。软件开发人员主要编写事件驱动过程的代码,使对象对用户的操作做出反映。但因VB没有多态等面向对象的特性,所以也有人称VB是一种准面向对象的程序设计语言。4易学易用,开发周期短。VB简单易学,界面友好,容易使用。VB提供了大量功能强大的“控件”,能帮助开发人员在较短的时间内用少量语句编写出应用程序,缩短了开发周期。1.2ACCESS2000简介ASSESS是一个数据库管理系统,它简单易学,一个普通的计算机用户可以很快的掌握它。ACCESS2000的功能也十分强大,利用它可以方便的实现对信息保存、维护、查询、统计等,而且它可以十分方便地与OFFICE其他组件交流数据,这些功能对一个普通用户来说已经足够了。本系统就是在以ACCESS2000作为后台数据库,以VisualBasic为编程语言为中小型企业管理仓库而开发的一个数据库管理系统。2系统可行性分析可行性分析的任务,并不是所有问题都有简单明显的解决办法,事实上,许多问题不可能在预定的系统规模之内解决。如果问题没有可行的解,那么花费这项开发工程上的任何时间、资源、人力和经费都是无谓的浪费。 可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。必须记住,可行性研究的目的不是解决问题,而是确定问题是否值得去解。怎样达到这个目的呢?当然不能靠主观猜想,而只能靠客观分析。必须分析几种主要的可能解法的利弊,从而判断原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。所以从以上的分析原则来看,我所设计的仓库信息管理系统是一个规模不太大的系统,但是目标明确,清晰的描述了对目标系统的一切限制和约束。本系统几乎在所有的企业、公司使用,当然它需要进一步的完善和更新。在使用过程中,要看它能不能带来效益,毕竟在现今社会效率是第一位的。从现实看,这还是有一定的实用价值的,从另一个角度看,现实社会发展飞速,尊重科技势在必行,因此这也是开发本系统的一个非常重要的原因。21世纪是计算机的时代,它必然取代一部分人的工作,高科技的监控系统进入社会生活的方方面面是发展的趋势。本设计从一下三个方面进行可行性研究:1.技术可行性。本设计“仓库管理系统”是为企业仓库管理人员开发的。鉴于本人在上学期数据库课程设计中已用VisualBasic6.0+Access2000开发过网上图书销售管理信息系统,而且通过三个月毕业实习中的学习和实践,对开发管理信息系统又有了新的认识和提高,使自己在开发管理信息系统方面的技术更加成熟。由于本设计最重要体现的是实用性,所以,通过大量的社会调查和分析,结合自己现有的技术水平加上导师的指导,还是能按期完成本毕业设计。2.经济可行性。成本方面:由于本毕业设计属于计算机科学(本科)教学的最后一个环节,所以人力消耗免费,资源学校提供,指导老师义务指导。所以成本计算只需计算开发期间开发者的生活消费,学校资源的消耗,所以开发本软件的成本是非常低的。效益方面:为企业开发一个完整、合理的仓库管理系统,可大大节余人力,以前需要多人干的工作,使用本系统只需一个人或几个人就能完成,且工作量和劳动强度大大降低。所以开发本软件可以为社会带来很好的经济效益。从以上分析看开发本软件在经济上是可行的。3.操作可行性。本软件是为企业仓库的管理者开发的,所有本软件的用户对象是企业仓库的工作人员,由于本软件要设计成友好的界面,写出详细的使用说明,用户只需懂得简单的计算机操作知识,就能自由应用本软件。 所以从以上几个方面的分析来看,开发本软件是完全可行的。3系统总体设计3.1系统目标设计系统开发的总体任务是实现企业产品管理的系统化、规范化和自动化,从而达到提高企业管理效率的目的。3.2开发设计思想仓库管理主要是企业各种商品的管理。进货时经检查合同确认为有效托收后,进行验收入库,填写入库单,进行入库登记。企业各个部门根据需要提出产品请求,计划员根据整个企业的需求开出产品出库单,仓库管理人员根据出库单核对发放产品。根据需要按照月进行统计分析,产生相应报表。仓库管理的特点是信息处理量比较大,所管理的产品种类繁多,而且由于入库单、出库单、盘点单等单据发生量特别大,关联信息多,查询和统计的方式各不相同。因此在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递;单据、报表种类繁多,各个部门管理规格不统一等问题。在本系统的设计过程中,为了克服这些困难,满足计算机管理工作的需要,我们采取了下面的一些原则。●统一各种原始单据的格式,统一报表的格式。●删除不必要的管理冗余,实现管理规范化、科学化。●程序代码标准化,软件统一化,确保软件的可维护性和实用性。●界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。●建立操作日志,系统自动记录所进行和各种操作。3.3系统功能需求分析系统开发的总体任务是实现各种信息的系统化、规范化和自动化。系统功能分析是在系统开发的总体任务的基础上完成。本仓库管理 系统需要完成功能主要有:●仓库管理各种信息的输入,包括货物、供应商、客户、仓库信息的输入等。●仓库管理各种信息的查询、统计、修改和维护,包括货物、单据查询,货物出入、职员操作统计,各种信息的修改和维护等。●打印报表的生成。●在货物管理中加入最高储备和最低储备字段,对仓库中的产品实现监控和报警。●操作日志的管理。●仓库管理系统的使用帮助。3.4系统功能模块设计在系统功能分析的基础上,考虑到VisualBasic程序编制的特点,得到如图3-1所示的系统功能模块图。仓库管理系统基本信息单据中心查询统计报表打印维护设置系统帮助新增单据单据管理查询模块统计模块图3-1系统功能模块图。 4数据库设计4.1数据库需求分析用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。仔细分析调查有关仓库管理信息需求的基础上,得到如图4-1所示的本系统所处理的数据流程。仓库现有库存汇总、处理各种单据产品入库产品出库报表打印图4-1仓库管理系统数据流程图通过对企业仓库管理的内容和数据流程分析,设计数据项和数据结构如下:●货物信息,包括的数据项有编号、货物名称、货物类别、货物规格、计量单位、最高限量、最低限量、备注等。●仓库信息,包括的数据项有编号、仓库名称、仓库地点、保管员编号、备注等。●库存状况信息,包括的数据项有编号、货物编号、库存数量、仓库编号等。●入库单信息,包括的数据项有编号、货物编号、经办人编号、入库时间、入库单价、入库数量、供应商编号、仓库编号、定单状况、其它金额、备注等。●出库单信息,包括的数据项有编号、货物编号、经办人编号、出库时间、出库单价、出库数量、客户编号、仓库编号、定单状况、其它金额、备注等。●进行月盘点信息,包括的数据项有编号 、仓库编号、盘点时间、经办人编号、盘点数据等。●系统日志信息,包括的数据项有用户名、操作时间、操作内容等。●用户管理信息,包括的数据项有用户名、用户密码、用户权限等。另外,还有借入单、借出单、报损单、调拨单信息等。它们与入库单、出库单信息基本类似,这里不再一一例举。4.2数据库概念结构设计得到上面的数据项和数据结构以后,就可以设计出能够满足用户需求的各种实体结构,以及他们之间的关系,为以后的逻辑结构设计打下基础。根据上面的设计规划出的实体有:现有库存信息实体、入库信息实体、出库信息实体、借入信息实体、借出信息实体、调拨信息实体图和报损信息实体图。各个实体具体的描述E-R图如下:现有库存信息实体E-R图如图4-2所示。现有库存信息实体编号货物名称最低限量最高限量图4-2现有库存信息实体E-R图入库单信息实体E-R图如图4-3所示。 入库信息实体编号经办人编号入库时间、单价、数量供应商编号图4-3入库单信息实体E-R图出库单信息实体E-R图如图4-4所示。出库信息实体编号经办人编号入库时间、单价、数量客户编号图4-4出库信息实体E-R图借入信息实体E-R图如图4-3所示。 借入信息实体编号经办人编号借入时间、单价、数量货物编号图4-5借入信息实体E-R图借出信息实体E-R图如图4-6所示。借出信息实体编号经办人编号借出时间、数量货物编号图4-6借出信息实体E-R调拨信息实体E-R图如图4-7所示。 调拨信息实体编号经办人编号目标仓库编号原仓库编号图4-7调拨信息实体E-R报损信息实体E-R图如图4-4所示。报损信息实体编号经办人编号报损时间、单价、数量仓库编号图4-8报损信息实体E-R实体和实体之间的关系E-R图如图4-9所示。 现有库存入库出库借入借出调拨报损图4-9实体之间关系E-R图4.3数据库逻辑结构设计现在需要将在上面的数据库概念结构转化为ACCESS2000数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。仓库管理信息系统数据库中各个表格的设计结果如下面表格所示。每个表格所示在数据库中的一个表。表4-1为货物基本信息表。表4-1货物基本信息表字段名称数据类型字段大小可否为空编号数字长整型不可货物名称文本64不可货物类别文本50可货物规格文本50可计量单位文本50可最高限量数字长整型不可最低限量数字长整型不可备注备注可表4-2为仓库信息表 表4-2仓库信息表字段名称数据类型字段大小可否为空编号数字长整型不可仓库名称文本50不可仓库地点文本255可保管理员编号数字长整型可备注备注可表4-3为库存状况信息表表4-3库存状况信息表字段名称数据类型字段大小可否为空编号数字长整型不可货物编号数字长整型不可库存数量数字长整型不可仓库编号数字长整型不可表4-4为入库单信息表表4-4入库单信息表字段名称数据类型字段大小可否为空编号数字长整型不可货物编号数字长整型不可经办人编号数字长整型不可入库时间日期/时间不可入库单价货币不可入库数量数字长整型不可供应商编号数字长整型可仓库编号数字长整型不可订单状况文本50不可其它金额货币可备注备注可表4-5为出库单信息表 表4-5出库单信息表字段名称数据类型字段大小可否为空编号数字长整型不可货物编号数字长整型不可经办人编号数字长整型不可出库时间日期/时间不可出库单价货币不可出库数量数字长整型不可客户编号数字长整型可仓库编号数字长整型不可订单状况文本50不可其它金额货币可备注备注可表4-6为借入单信息表表4-6借入单信息表字段名称数据类型字段大小可否为空编号数字长整型不可货物编号数字长整型不可经办人编号数字长整型不可借入时间日期/时间不可借入数量数字长整型不可供应商编号数字长整型可仓库编号数字长整型不可订单状况文本50不可其它金额货币可备注备注可表4-7为借出单信息表表4-6借出单信息表字段名称数据类型字段大小可否为空 编号数字长整型不可货物编号数字长整型不可经办人编号数字长整型不可借出时间日期/时间不可借出数量数字长整型不可供应商编号数字长整型可仓库编号数字长整型不可订单状况文本50不可其它金额货币可备注备注可表4-8为调拨单信息表表4-8调拨单信息表字段名称数据类型字段大小可否为空编号数字长整型不可货物编号数字长整型不可经办人编号数字长整型不可调拨时间日期/时间不可调拨数量数字长整型不可原仓库编号数字长整型不可目标仓库编号数字长整型不可其它金额货币可备注备注可表4-9为报损单信息表表4-9报损单信息表字段名称数据类型字段大小可否为空编号数字长整型不可货物编号数字长整型不可经办人编号数字长整型不可报损时间日期/时间不可 报损单价货币不可报损数量数字长整型不可仓库编号数字长整型不可其它金额货币可备注备注可表4-10为盘点单信息表表4-10盘点单信息表字段名称数据类型字段大小可否为空编号数字长整型不可仓库编号数字长整型不可盘点时间日期/时间不可经办人编号数字长整型不可盘点数据备注不可表4-11为系统日志信息表表4-11系统日志信息表字段名称数据类型字段大小可否为空用户名文本50不可操作时间日期/时间不可操作内容备注不可表4-12为用户管理信息表表4-11用户管理信息表字段名称数据类型字段大小可否为空用户名文本64不可用户密码文本50不可用户权限数字长整型不可 5系统主窗体设计5.1创建工程项目—仓库管理系统打开VisualBasic后,单击File->NewProject菜单,在工程模板中选择StandardExE,VisualBasic将自动产生一个Form窗体,属性都是缺省设置。这里我们删除这个窗体,单击File->SaveProjiect菜单,将这个工程项目命名为仓库管理系统。5.2创建系统主窗体VisualBasic创建的应用程序可以是SDI(单文档界面)和MDI(多文档界面)。在SDI的程序中,每个窗体之间是独立的。而MDI的程序中,有一个窗体是主窗体,可以包含其他窗体,他的类型是MDIForm。本设计采用多文档界面,这样可以使程序更加美观、整齐有序。单击工具栏中的ADDMDIForm按钮,生成一个窗体。窗体的属性设置见表5-1。表5-1主窗体属性设置属性属性取值NameFrmMainCaption仓库管理系统StartUpPositionCenterScreenWindowStateMaximized主窗体界面设计如图5-1所示。 图5-1系统主窗体5.3创建主窗体菜单熟悉Windows下应用程序的用户对菜单一定有比较深的印象。所谓菜单,即是指应用程序中为用户提供的一组命令,这些命令出现在应用程序界面的顶部。每项菜单有多项子菜单,具有一定的专门功能,用户容易通过主菜单来访问其下的子菜单。增加菜单可以增强应用程序的功能。下面将介绍菜单及菜单的编辑和使用。1.菜单简介菜单栏在窗体栏的标题栏下面,包含一个或多个菜单标题。当单击一个菜单标题,包含菜单项目的列表就被拉下来。菜单项可以包含命令、分隔条和子菜单标题。用户看到的每个菜单项和在“MenuEditor”中定义的一个菜单控件相对应。为了使应用程序简单好用,应该将菜单相按功能进行分组。菜单控件使一个对象,与其他对象一样,它具有定义它的外观与行为的属性。在设计或运行时可以设置Caption属性、Enabled和Visible属性、Checked属性以及其他属性。菜单控件只包含一个事件,即Click事件,当用鼠标或键盘选中该菜单控件时,将调用该事件。2.VisualBasic菜单编辑器 菜单编辑器可以创建新的菜单和菜单栏,也可以向现存的菜单中增加新的命令、用自己的命令替代现存的菜单命令、产生新的菜单和菜单栏,改变和删除现存菜单和菜单栏。要打开菜单编辑器,在“Tools”菜单中选择“MenuEditor”选项。或击鼠标右键,选择弹出式菜单中的“MenuEditor”。弹出菜单编辑器窗口如图5-2所示。5-2菜单编辑器菜单编辑器的基本属性如下:Caption—出现在控件上的文本。Name—代码中用来引用菜单控件的名字。shortcut—可以访问菜单的键盘按键组合。以上介绍了菜单编辑器的基本情况和属性,接下来将来介绍利用菜单编辑器创建菜单的过程。(1)选取待创建菜单的窗体,激活该窗体。(2)从菜单栏的“Tools”菜单中,选取“MenuEditor”并单击(或在“工具栏”上单击“MenuEditor”按钮)。(3)在菜单编辑器的“Caption”文本框中,为第一个菜单标题键入希望在菜单栏上显示的文本。如果希望某一字符成为该菜单项的访问键,也可以在该字符前加上一个(&)字符。在菜单中,这一字符会自动加上一条下划线。 (1)在菜单编辑器的“Name”文本框中,键入将用来在代码中引用该菜单控件的名字。命名菜单控件的规则如下:(a)菜单中项目名称应当唯一,但不同菜单中相似动作项目可以重名。(b)每一个项目名称应当有一个用键盘选取命令的唯一的记忆访问字符。访问字符通常是菜单标题的第一个字母;每个菜单标题不能用同一个字符。(c)如果命令在完成之前还需要附加信息,则在其名称后面应当有一个省略号(…)。(2)单击向左或向右箭头按钮,可以改变该控件的缩进级。(3)如果需要,还可以设置控件的其他属性。(4)创建新的菜单控件时,选取“Next”命令。(5)单击“Insert”可以在现有的控件之间增加一个菜单控件。(6)单击向上与向下的箭头按钮,可以在现有菜单控件之中移动控件。(7)菜单控件创建好后,选取“OK”可关闭菜单编辑器。创建的菜单标题将显示在窗体上。在设计时,单击一个菜单标题可下拉其相应的菜项。创建分隔符,如果在设计的菜单中创建分隔符条,只需在想要分隔开来的菜单项之间插入一个菜单控件。单击左、右箭头按钮使新菜单项缩进到与它要隔开的菜单项同级。然后在“Caption”文本框中键入一个连字符(-)。设置“Name”属性。“OK”,关闭菜单编辑器。创建赋值访问键和快捷键为了提高应用程序的性能,为用户提供最方便、快捷的操作,可以定义菜单的访问键和快捷键,改进键盘对菜单命令的访问。访问键,要在菜单编辑器中给菜单控件赋值访问键,先选取要赋值访问键的菜单项,在该菜单项“Caption”框中,要在作为访问键字符的前面键入一个(&)字符。快捷键,快捷键提供了一种键盘单步的访问方法,按下时会立刻运行一个菜单项。快捷键的赋值包括功能键与控制键的组合,如CTRL+F1键或CTRL+A键。他们出现在菜单中相应菜单项的右边。根据以上介绍的方法创建本设计的菜单结构如图5-3所示 基本信息(&A)….货物信息Ctrl+A….仓库信息Ctrl+B….供应商信息Ctrl+C….往来客户Ctrl+D….库存状况信息Ctrl+E….—….退出Ctrl+F单据中心(&B)….新增入库单Ctrl+G….新增出库单Ctrl+H….新增借入单Ctrl+I….新增借出单Ctrl+J….新增调拨单Ctrl+K….新增报损单Ctrl+L….—….入库单管理Ctrl+M….出库单管理Ctrl+N….借入单管理Ctrl+O….借出单管理Ctrl+P….调拨单管理Ctrl+Q….报损单管理Ctrl+R….—….进行月盘点Ctrl+S查询统计(&C)….单据查询Ctrl+T….库存查询Ctrl+U….—….货物出入统计Ctrl+V….职员操作统计Ctrl+W打印报表….打印入库单Ctrl+X….打印出库单Ctrl+Y….打印借入单Ctrl+Z….打印借出单Ctrl+F1….打印调拨单Ctrl+F2….打印报损单Ctrl+F3….—….打印月盘点Ctrl+F4….—….页面设置Ctrl+F5视图(&D)….工具栏Ctrl+F6….状态栏Ctrl+F7维护设置(&E)….公司信息Ctrl+F8….职员信息Ctrl+F9….—….查看日志Ctrl+F11….数据清除Ctrl+F12….系统初始化Shift+F1….—….备份数据库Shift+F2….还原数据库Shift+F3….—….修改密码Shift+F5….用户管理Shift+F6帮助(&H)….关于仓库管理系统F1图5-3仓库管理系统菜单结构系统初始化菜单的代码如下:PrivateDeclareFunctionGetWindowLib"user32"(ByValhwndAsLong,ByVal wCmdAsLong)AsLongPublicSubInitPurview()"初始化17种权限状态DimiAsIntegerFori=16To0Step-1IfGetBit(Purview,i+1)=0Then权限类别(16-i)=0Else权限类别(16-i)=1EndIfNextEndSubPrivateSubInitMenu()"根据用户权限来初始化菜单If权限类别(3)=0ThenM月盘点.Enabled=FalsetbToolBar.Buttons(4).Enabled=FalseEndIfIf权限类别(4)=0ThenM供应商.Enabled=False登记新供应商.MouseIcon=Picture1.MouseIconEndIfIf权限类别(5)=0ThenM往来客户.Enabled=False登记新客户.MouseIcon=Picture1.MouseIconEndIfIf权限类别(6)=0ThenM单据查询.Enabled=FalseM库存查询.Enabled=FalseM货物出入统计.Enabled=FalseM职员操作统计.Enabled=False L货物出入统计.MouseIcon=Picture1.MouseIconL职员操作统计.MouseIcon=Picture1.MouseIconL单据查询.MouseIcon=Picture1.MouseIconL库存查询.MouseIcon=Picture1.MouseIcontbToolBar.Buttons(5).Enabled=FalsetbToolBar.Buttons(8).Enabled=FalseEndIfIf权限类别(8)=0ThenM打印入库单.Enabled=FalseM打印出库单.Enabled=FalseM打印借入单.Enabled=FalseM打印借出单.Enabled=FalseM打印调拔单.Enabled=FalseM打印报损单.Enabled=FalseM打印月盘点.Enabled=FalsetbToolBar.Buttons(10).Enabled=FalseEndIfIf权限类别(9)=0ThenM公司信息.Enabled=False修改公司信息.MouseIcon=Picture1.MouseIconEndIfIf权限类别(10)=0ThenM职员信息.Enabled=False登记新职员.MouseIcon=Picture1.MouseIconEndIfIf权限类别(11)=0ThenM仓库信息.Enabled=False创建新仓库.MouseIcon=Picture1.MouseIconEndIf If权限类别(12)=0ThenM货物信息.Enabled=False登记新货物.MouseIcon=Picture1.MouseIconEndIfIf权限类别(13)=0ThenM数据清除.Enabled=FalseM系统初始化.Enabled=FalseEndIfIf权限类别(14)=0ThenM备份数据库.Enabled=FalseM还原数据库.Enabled=FalseM还原到昨天数据库.Enabled=False备份数据库.MouseIcon=Picture1.MouseIcon还原数据库.MouseIcon=Picture1.MouseIconEndIfIf权限类别(15)=0ThenM查看日志.Enabled=False查看日志.MouseIcon=Picture1.MouseIcontbToolBar.Buttons(12).Enabled=FalseEndIfIf权限类别(16)=0ThenmnuUserManage.Enabled=FalseL用户管理.MouseIcon=Picture1.MouseIconEndIfEndSub“菜单”中的各个“子菜单”的程序代码如下:启动主窗体时的需要的代码PrivateSubForm_Load()"初始化m_checkado m_checkado.ConnectionString=DataConnectStringm_checkado.Visible=False"每天首次运行自动备份数据库fMainForm.m_checkado.RecordSource="select操作时间from系统日志orderby操作时间desc"fMainForm.m_checkado.RefreshIffMainForm.m_checkado.Recordset.RecordCount>0ThenfMainForm.m_checkado.Recordset.MoveFirstDimtAsStringt=fMainForm.m_checkado.Recordset.Fields("操作时间").Value"如果今天从未有人登陆,备份数据库IfInStr(1,t,Str(Date))<>1ThenBackupDataDataPath,App.Path+"everyday.bkp"EndIfElseBackupDataDataPath,App.Path+"everyday.bkp"EndIffMainForm.WriteLog("登陆系统")"写入系统日志InitPurview"初始化各种权限类别InitMenu"初始化菜单"加载图片Picture1.Picture=LoadPicture(App.Path+"dataground1.jpg")EndSub“基本信息”菜单下的“退出”子菜单的Click事件的程序代码如下。点击“退出”会退出系统,但在此之前系统首先会写入系统日志。PrivateSubForm_Unload(CancelAsInteger)fMainForm.WriteLog("退出系统")"写入系统日志EndSubPrivateSubmnuFileExit_Click() UnloadMeEndSub“维护设置”菜单下的“修改密码”子菜单的Click事件的程序代码如下。点击“修改密码”会弹出修改当前用户密码窗口。PrivateSubmnuModifyPassword_Click()PasModify.ShowvbModalEndSub“维护设置”菜单下的“用户管理”子菜单的Click事件的程序代码,如下。点击“用户管理”会弹出用户管理窗口。PrivateSubmnuUserManage_Click()用户管理.ShowvbModalEndSub“帮助”菜单下的“关于仓库管理系统”子菜单的Click事件的程序代码如下。点击“关于仓库管理系统”会弹出系统帮助窗口。PrivateSubmnuHelpAbout_Click()frmAbout.ShowvbModal,MeEndSub“打印报表”菜单下的“页面设置”子菜单的Click事件的程序代码如下。点击“页面设置”会弹出页面设置对话框。PrivateSubmnuFilePageSetup_Click()OnErrorResumeNextWithdlgCommonDialog.DialogTitle="页面设置".CancelError=True.ShowPrinterEndWithEndSub“视图”菜单下的“状态栏”子菜单的Click事件的程序代码如下。点击“状态栏”主窗体会隐藏状态栏。 PrivateSubmnuViewStatusBar_Click()sbStatusBar.Visible=True-sbStatusBar.VisiblemnuViewStatusBar.Checked=sbStatusBar.VisibleEndSub“视图”菜单下的“工具栏”子菜单的Click事件的程序代码如下。点击“工具栏”主窗体会隐藏工具栏。PrivateSubmnuViewToolbar_Click()tbToolBar.Visible=True-tbToolBar.VisiblemnuViewToolbar.Checked=tbToolBar.VisibleEndSub“单据中心”菜单下的“报损单管理”子菜单的Click事件的程序代码如下。点击“报损单管理”会弹出报损单管理窗口。PrivateSubM报损单_Click()报损单.ShowvbModalEndSub“维护设置”菜单下的“备份数据库”子菜单的Click事件的程序代码如下。点击“备份数据库”系统会提示是否备份数据库,如果点击“是”,系统会备份数据库。PrivateSubM备份数据库_Click()OnErrorGoTofailureWithdlgCommonDialog.DialogTitle="数据库备份为..".ShowSaveIfLen(.filename)=0ThenExitSubIfBackupData(DataPath,.filename)=1ThenMsgBox"备份成功!"fMainForm.WriteLog("备份数据")"写入系统日志Elsefailure: MsgBox"备份失败!"EndIfEndWithEndSub“维护设置”菜单下的“查看日志”子菜单的Click事件的程序代码如下。点击“查看日志”会弹出查看日志窗口。PrivateSubM查看日志_Click()系统日志.ShowvbModalEndSub“打印报表”菜单下的“打印报损单”子菜单的Click事件的程序代码如下。点击“打印报损单”会弹出打印报损单窗口。PrivateSubM打印报损单_Click()DimfAsNew报损单f.打印报损单.left=f.B新增报损单.leftf.打印报损单.Top=f.B新增报损单.Topf.B新增报损单.Visible=Falsef.删除报损单.Visible=Falsef.ShowvbModalUnloadfEndSub“打印报表”菜单下的“打印出库单”子菜单的Click事件的程序代码如下。点击“打印出库单”会弹出打印出库单窗口。PrivateSubM打印出库单_Click()DimfAsNew出库单f.打印出库单.left=f.B新增出库单.leftf.打印出库单.Top=f.B新增出库单.Topf.B新增出库单.Visible=Falsef.删除出库单.Visible=Falsef.退出出库单.Visible=False f.ShowvbModalUnloadfEndSub“打印报表”菜单下的“打印调拔单”子菜单的Click事件的程序代码如下。点击“打印调拔单”会弹出打印调拔单窗口。PrivateSubM打印调拔单_Click()DimfAsNew调拔单f.打印调拔单.left=f.B新增调拔单.leftf.打印调拔单.Top=f.B新增调拔单.Topf.B新增调拔单.Visible=Falsef.删除调拔单.Visible=Falsef.ShowvbModalUnloadfEndSub“打印报表”菜单下的“打印借出单”子菜单的Click事件的程序代码如下。点击“打印借出单”会弹出打印借出单窗口。PrivateSubM打印借出单_Click()DimfAsNew借出单f.打印借出单.left=f.B新增借出单.leftf.打印借出单.Top=f.B新增借出单.Topf.B新增借出单.Visible=Falsef.删除借出单.Visible=Falsef.退出借出单.Visible=Falsef.ShowvbModalUnloadfEndSub“打印报表”菜单下的“打印借入单”子菜单的Click事件的程序代码如下。点击“打印借入单”会弹出打印借入单窗口。PrivateSubM打印借入单_Click() DimfAsNew借入单f.打印借入单.left=f.B新增借入单.leftf.打印借入单.Top=f.B新增借入单.Topf.B新增借入单.Visible=Falsef.删除借入单.Visible=Falsef.退出借入单.Visible=Falsef.ShowvbModalUnloadfEndSub“打印报表”菜单下的“打印入库单”子菜单的Click事件的程序代码如下。点击“打印入库单”会弹出打印入库单窗口。PrivateSubM打印入库单_Click()DimfAsNew入库单f.打印入库单.left=f.B新增入库单.leftf.打印入库单.Top=f.B新增入库单.Topf.B新增入库单.Visible=Falsef.删除入库单.Visible=Falsef.退出入库单.Visible=Falsef.ShowvbModalUnloadfEndSub“打印报表”菜单下的“打印月盘点”子菜单的Click事件的程序代码如下。点击“打印月盘点”会弹出打印月盘点窗口。PrivateSubM打印月盘点_Click()打印月盘点.ShowvbModalEndSub“维护设置”菜单下的“还原到昨天数据库”子菜单的Click事件的程序代码如下。点击“还原到昨天数据库”会还原到昨天用户使用的数据库。PrivateSubM还原到昨天数据库_Click() OnErrorGoTofailureIfMsgBox("还原数据库将导致现在数据库数据丢失,您确信要还原数据库吗?",vbYesNoOrvbQuestion)=vbNoThenExitSubIfResumeData(DataPath,App.Path+"everyday.bkp")=1ThenInitAfterResume"初始化还原后的信息MsgBox"还原成功!"Elsefailure:MsgBox"还原失败!"EndIfEndSub“维护设置”菜单下的“还原数据”子菜单的Click事件的程序代码如下。点击“还原数据”系统会还原你想还原的数据库。PrivateSubM还原数据库_Click()OnErrorGoTofailureWithdlgCommonDialog.DialogTitle="数据库还原于...".ShowOpenIfLen(.filename)=0ThenExitSubIfMsgBox("还原数据库将导致现在数据库数据丢失,您确信要还原数据库吗?",vbYesNoOrvbQuestion)=vbNoThenExitSubIfResumeData(DataPath,.filename)=1ThenInitAfterResume"初始化还原后的信息MsgBox"还原成功!"Elsefailure:MsgBox"还原失败!"EndIfEndWith EndSub“基本信息”菜单下的“仓库信息”子菜单的Click事件的程序代码如下。点击“仓库信息”会弹出仓库信息窗口。PrivateSubM仓库信息_Click()仓库.ShowvbModalEndSub“单据中心”菜单下的“出库单管理”子菜单的Click事件的程序代码如下。点击“出库单管理”会弹出出库单管理窗口。PrivateSubM出库单_Click()出库单.ShowvbModalEndSub“查询统计”菜单下的“单据查询”子菜单的Click事件的程序代码如下。点击“单据查询”会弹出单据查询窗口。PrivateSubM单据查询_Click()单据查询.ShowvbModalEndSub“单据中心”菜单下的“调拨单管理”子菜单的Click事件的程序代码如下。点击“调拨单管理”会弹出调拨单管理窗口。PrivateSubM调拔单_Click()调拔单.ShowvbModalEndSub“维护设置”菜单下的“公司信息”子菜单的Click事件的程序代码发如下。点击会弹出公司信息窗口。PrivateSubM公司信息_Click()公司信息.ShowvbModalEndSub“基本信息”菜单下的“供应商信息”子菜单的Click事件的程序代码如下。点击“供应商信息”会弹出供应商信息窗口。PrivateSubM供应商_Click() 供应商.ShowvbModalEndSub“维护设置”菜单下的“换用户登录”子菜单的Click事件的程序代码如下。点击“换用户登录”会弹出换用户登录窗口。PrivateSubM换用户登陆_Click()"启动登陆对话框DimfLoginAsNewfrmLoginfLogin.HelpContextID=2411fLogin.ShowvbModalIfNotfLogin.OKThenExitSub"登录失败,退出应用程序EndIfUnloadfLoginUnloadMe"启动主窗口SetfMainForm=NewfrmMainfMainForm.ShowEndSub“查询统计”菜单下的“货物出入统计”子菜单的Click事件的程序代码如下。点击“货物出入统计”会弹货物出入统计窗口PrivateSubM货物出入统计_Click()货物出入统计.ShowvbModalEndSub“基本信息”菜单下的“货物信息”子菜单的Click事件的程序代码如下。点击“货物信息”会弹出货物信息窗口PrivateSubM货物信息_Click()货物信息.ShowvbModalEndSub“单据中心”菜单下的“借出单管理”子菜单的Click事件的程序代码如下。点击“借出单管理”会弹出借出单管理窗口PrivateSubM借出单_Click() 借出单.ShowvbModalEndSub“单据中心”菜单下的“借入单管理”子菜单的Click事件的程序代码如下。点击“借入单管理”会弹出借入单管理窗口。PrivateSubM借入单_Click()借入单.ShowvbModalEndSub“查询统计”菜单下的“库存查询”子菜单的Click事件的程序代码如下。点击“库存查询”会弹出库存查询窗口。PrivateSubM库存查询_Click()库存查询.ShowvbModalEndSub“基本信息”菜单下的“库存状况信息”子菜单的Click事件的程序代码如下。点击“库存状况信息”会弹出库存状况窗口。PrivateSubM库存状况_Click()库存状况.ShowvbModalEndSub“单据中心”菜单下的“入库单管理”子菜单的Click事件的程序代码如下。点击“入库单管理”会弹出入库单管理窗口。PrivateSubM入库单_Click()入库单.ShowvbModalEndSub“维护设置”菜单下的“数据清除”子菜单的Click事件的程序代码如下。点击“数据清除”会弹数据清除窗口。PrivateSubM数据清除_Click()数据清除.ShowvbModalEndSub“基本信息”菜单下的“往来客户信息”子菜单的Click事件的程序代码如下。点击“往来客户信息”会弹出往来客户窗口。 PrivateSubM往来客户_Click()客户.ShowvbModalEndSub“维护设置”菜单下的“系统初始化”子菜单的Click事件的程序代码如下。点击“系统初始化”会弹出系统初始化对话框,如果用户想系统初始化,就点击“是”。PrivateSubM系统初始化_Click()IfMsgBox("这将删除您所有的数据信息,整个数据库将全部清空,您确信要系统初始化吗?",vbYesNoOrvbExclamation)=vbNoThenExitSubOnErrorResumeNext"删除入库单fMainForm.m_checkado.RecordSource="select*from入库单"fMainForm.m_checkado.RefreshDeleteRecordDatafMainForm.m_checkado.Recordset"删除出库单fMainForm.m_checkado.RecordSource="select*from出库单"fMainForm.m_checkado.RefreshDeleteRecordDatafMainForm.m_checkado.Recordset"删除借入单fMainForm.m_checkado.RecordSource="select*from借入单"fMainForm.m_checkado.RefreshDeleteRecordDatafMainForm.m_checkado.Recordset"删除借出单fMainForm.m_checkado.RecordSource="select*from借出单"fMainForm.m_checkado.RefreshDeleteRecordDatafMainForm.m_checkado.Recordset"删除调拔单fMainForm.m_checkado.RecordSource="select*from调拔单"fMainForm.m_checkado.Refresh DeleteRecordDatafMainForm.m_checkado.Recordset"删除报损单fMainForm.m_checkado.RecordSource="select*from报损单"fMainForm.m_checkado.RefreshDeleteRecordDatafMainForm.m_checkado.Recordset"删除库存状况fMainForm.m_checkado.RecordSource="select*from库存状况"fMainForm.m_checkado.RefreshDeleteRecordDatafMainForm.m_checkado.Recordset"删除盘点单fMainForm.m_checkado.RecordSource="select*from盘点单"fMainForm.m_checkado.RefreshDeleteRecordDatafMainForm.m_checkado.Recordset"删除客户fMainForm.m_checkado.RecordSource="select*from客户"fMainForm.m_checkado.RefreshDeleteRecordDatafMainForm.m_checkado.Recordset"删除供应商fMainForm.m_checkado.RecordSource="select*from供应商"fMainForm.m_checkado.RefreshDeleteRecordDatafMainForm.m_checkado.Recordset"删除货物信息fMainForm.m_checkado.RecordSource="select*from货物信息"fMainForm.m_checkado.RefreshDeleteRecordDatafMainForm.m_checkado.Recordset"删除货物类别fMainForm.m_checkado.RecordSource="select*from货物类别"fMainForm.m_checkado.RefreshDeleteRecordDatafMainForm.m_checkado.Recordset "删除仓库fMainForm.m_checkado.RecordSource="select*from仓库"fMainForm.m_checkado.RefreshDeleteRecordDatafMainForm.m_checkado.Recordset"删除职员信息fMainForm.m_checkado.RecordSource="select*from职员信息"fMainForm.m_checkado.RefreshDeleteRecordDatafMainForm.m_checkado.Recordset"删除公司信息fMainForm.m_checkado.RecordSource="select*from公司信息"fMainForm.m_checkado.RefreshDeleteRecordDatafMainForm.m_checkado.Recordset"删除系统日志fMainForm.m_checkado.RecordSource="select*from系统日志"fMainForm.m_checkado.RefreshDeleteRecordDatafMainForm.m_checkado.Recordset"删除用户管理fMainForm.m_checkado.RecordSource="select*from用户管理"fMainForm.m_checkado.RefreshDeleteRecordDatafMainForm.m_checkado.Recordset"增加一个管理员adminfMainForm.m_checkado.RecordSource="select*from用户管理"fMainForm.m_checkado.Recordset.AddNewfMainForm.m_checkado.Recordset.Fields("用户名")="admin"fMainForm.m_checkado.Recordset.Fields("用户密码")=""fMainForm.m_checkado.Recordset.Fields("用户权限")=131071fMainForm.m_checkado.Recordset.updatefMainForm.m_checkado.Refresh"更改当前登陆用户信息 UserName="admin":UserPas="":Purview=131071DimiAsIntegerFori=0To16权限类别(i)=1NextMsgBox"系统初始化成功!"EndSub“单据中心”菜单下的“新增报损单”子菜单的Click事件的程序代码如下。点击“新增报损单”会弹出新增报损单窗口。PrivateSubM新增报损单_Click()新增报损单.ShowvbModalEndSub“单据中心”菜单下的“新增出库单单”子菜单的Click事件的程序代码如下。点击“新增出库单”会弹出新增报损单窗口。PrivateSubM新增出库单_Click()新增出库单.ShowvbModalEndSub“单据中心”菜单下的“新增调拨单”子菜单的Click事件的程序代码如下。点击“新增调拨单”会弹出新增调拨单窗口。PrivateSubM新增调拔单_Click()新增调拔单.ShowvbModalEndSub“单据中心”菜单下的“新增借出单”子菜单的Click事件的程序代码如下。点击“新增借出单”会弹出新增借出单窗口。PrivateSubM新增借出单_Click()新增借出单.ShowvbModalEndSub“单据中心”菜单下的“新增借入单”子菜单的Click事件的程序代码如下。点击“新增借入单”会弹出新增借入单窗口。 PrivateSubM新增借入单_Click()新增借入单.ShowvbModalEndSub“单据中心”菜单下的“新增入库单”子菜单的Click事件的程序代码如下。点击“新增入库单”会弹出新增入库单窗口。PrivateSubM新增入库单_Click()新增入库单.ShowvbModalEndSub“单据中心”菜单下的“进行月盘点”子菜单的Click事件的程序代码如下。点击“进行月盘点”会弹出月盘点窗口。PrivateSubM月盘点_Click()月盘点.ShowvbModalEndSub“查询统计”菜单下的“职员操作统计”子菜单的Click事件的程序代码如下。点击“职员操作统计”会弹出职员操作统计窗口。PrivateSubM职员操作统计_Click()职员操作统计.ShowvbModalEndSub“维护设置”菜单下“职员信息”子菜单的Click事件程序代码,点击会进入“职员信息”窗口。PrivateSubM职员信息_Click()职员信息.ShowvbModalEndSub5.4创建主窗体工具栏同样,熟悉Windows下应用程序的用户对工具栏也一定有比较深的印象。在本系统中,它是用工具栏控件产生的,工具栏控件在主窗体上产生了很多按钮对象,按钮上显示了文字、图形。下面首先简要介绍工具栏控件的常用属性和事件。 5.4.1工具栏控件常用属性和事件1工具栏控件的常用属性,工具栏控件常用的属性有如下几个,同时也是本系统中用到的几个属性,主要有Align、ImageList、Index、ToolTipText、ShowTips、Wrappable、Image等。Align:读出或设置对象在窗体中的显示位置,它有5个值可供选择,用来设置工具栏放置在窗体的上部、下部、左边或右边等。ImageList:读出和设置与本控件相关联的ImageList控件。该属性被设置后,可以向工具栏按钮中添加图形。Index:控件名相同时,用来产生一个数组标识号。ToolTipText:设置鼠标指针在工具栏某一按钮暂停时所显示的提示文本。ShowTips:设置是否显示工具栏按钮上的提示文本。Wrappable:设置如果窗口尺寸发生变化,是否自动包括本控件按钮。Image:用来设置按钮中显示的图形,以0,1,2等来标识,ImageList控件中的图形将按顺序赋给不同的按钮。2工具栏控件常用事件工具栏控件常用事件主要有ButtonClick和Click两个。对于ButtonClick事件,当单击本控件之上的一个按钮时,该事件过程被执行;对于Click,当单击本控件时进行检测。5.4.2设置工具栏属性向窗体添加工具栏控件后,然后按下列步骤操作:(1)设置Align属性值为1,即工具拦放在窗体的顶部。(2)用鼠标右键单击工具栏对象,从弹出的菜单中选择“属性”菜单项。弹出如图5-4所示的“属性页”对话框。 图5-4工具栏属性对话框(3)单击如图5-4所示的“图象列表”列表框右边的下拉箭头,从下拉的列表中选择ImageList。这样ImageList控件就和“工具栏”控件发生了联系。注意:“工具栏”控件按钮使用图形,所以要求必须已引入了ImageList控件,否则,图5-4中的“图像列表”框将不能设置成ImageList。另外选定了图形列表控件后,ButtonHeight和ButtonWidth属性值,由图形的大小决定,用户不要改变其设置。(4)单击图5-4中“按钮”选项卡,“属性页”对话框如图5-5所示。单击,单击“插入”按钮后,“索引”文本框中出现数字1,其它输入框也变为可用。这样就可以设置其上的属性。若“图像”输入框设为1,即ImageList控件的第一个图形作为按钮1的图形。重复上述步骤,添加其它按钮到工具栏上,并设置相应属性。 图5-4工具栏属性对话框通过以上步骤,创建的主窗体工具栏如图5-5所示。图5-5主窗体工具栏在主窗体中为工具栏所加的代码如下:PrivateSubtbToolBar_ButtonClick(ByValButtonAsMSComctlLib.Button)SelectCaseButton.indexCase1:M库存状况_ClickCase4:M月盘点_ClickCase9:M打印月盘点_ClickCase11:M查看日志_ClickCase13:mnuHelpAbout_ClickEndSelect EndSubPrivateSubtbToolBar_ButtonMenuClick(ByValButtonMenuAsMSComctlLib.ButtonMenu)SelectCaseButtonMenu.KeyCase"入库单"M新增入库单_ClickCase"出库单"M新增出库单_ClickCase"借入单"M新增借入单_ClickCase"借出单"M新增借出单_ClickCase"调拔单"M新增调拔单_ClickCase"报损单"M新增报损单_ClickCase"单据"M单据查询_ClickCase"库存"M库存查询_ClickCase"货物出入"M货物出入统计_ClickCase"职员操作"M职员操作统计_ClickCase"月盘点"M打印月盘点_ClickEndSelectEndSub 5.5设置主窗体状态栏状态栏一般位于窗体的底部,用于向用户显示系统的一些状态,比如系统信息、当前用户、时间、日期等。状态栏的添加比较简单,这里不再详细说明。但本窗体的状态栏如图5-6所示。图5-6主窗体的状态栏在主窗体中为状态栏添加的代码如下:PrivateSubTimer1_Timer()IfLen(sbStatusBar.Panels(1).Text)