版仓库管理系统+论文毕业设计论文

发布时间:2017-08-17 22:36:07

优秀论文 审核通过

未经允许 切勿外传

前言

随着企业管理信息化的发展,网络及计算机的引入使管理跃上了一个新的发展平台。企业的各项管理都将向信息化方向扩展,仓库的管理对于企业来说尤为重要,也正是基于这个原因我把毕业设计的方向定在了企业仓库管理上。

仓库管理系统是一个企业不可缺少的部分,它的内容对于企业的决策者和管理者来说都至关重要,所以仓库管理系统应该能够为用户提供充足的信息和快捷的查询手段。但一直以来人们使用传统人工的方式管理产品,这种管理方式存在着许多缺点,:效率低、保密性差等。另外由于时间一长将产生大量的文件和数据这对于查找、更新和维护产品都带来了不少的困难。

作为计算机应用的一部分,使用计算机对仓库信息进行管理有着手工管理所无法比拟的优点例如:检索迅速、查找方便、可靠性高、存储量大、保密性好、寿命长、成本低等。这些优点能够极大地提高仓库管理的效率。

由于时间紧迫,加之水平有限,设计中的缺点和不足之处在所难免,敬请导师批评指正,不胜感激。

摘要

仓库管理系统是为了实现企业产品管理的系统化、规范化和自动化,从而提高企业管理效率而设计的它完全取代了原来一直用人工管理的工作方式,避免了由于管理人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成仓库管理提供了强有力的工具和管理手段。仓库管理系统是一个中小型数据库管理系统,它界面美观、操作简单、安全性高,基本满足了仓库管理的要求。整个系统由基本信息、单据中心、查询统计、报表打印、维护设置、帮助等模块组成。

本系统是在以ACCESS2000作为后台数据库,以Visual Basic为编程语言来开发的。仓库管理系统在运行阶段,效果好数据准确性高,提高了工作效率,同时也实现了仓库管理计算机化。

关键字 仓库,管理系统,数据库

Abstract

The administrative system of the warehouse is designed for realizing the systematization , standardization and automization of enterprise's products management and improving efficiency of enterprises management. It completely replaces the working way of artificial management originally , prevents from various kinds of mistakes because of administrative staff neglect and the quality problem of management and offeres powerful tool and management way to complet storehouse management for prompt , accurate , , and meet the demand for storehouse management basically. Whole system is made up by basic information, document in the center, inquire statistics , report form type ,set up to maintain and module of for storehouse management at the same time .

Key word: The Warehouse , Administrative System, The Database

前言 1

摘要 2

Abstract 3

目录 4

1 仓库管理系统开发环境简介 6

1.1 中文Visual Basic 6.0 简介 6

1.2 ACCESS2000简介 7

2 系统可行性分析 8

3 系统总体设计 10

3.1 系统目标设计 10

3.2 开发设计思想 10

3.3 系统功能需求分析 11

3.4 系统功能模块设计 11

4 数据库设计 12

4.1 数据库需求分析 12

4.2 数据库概念结构设计 14

4.3 数据库逻辑结构设计 18

5 系统主窗体设计 24

5.1 创建工程项目仓库管理系统 24

5.2 创建系统主窗体 24

5.3 创建主窗体菜单 25

5.4 创建主窗体工具栏 51

5.4.1 工具栏控件常用属性和事件 51

5.4.2 设置工具栏属性 52

5.5 设置主窗体状态栏 56

6 系统模块设计 57

6.1 基本信息模块设计 57

6.1.1 创建货物信息窗体 57

6.1.2 创建仓库信息窗体 58

6.1.3 创建库存状况信息窗体 59

6.2 单据中心模块设计 60

6.2.1 创建新增入库单窗体 61

6.2.2 创建入库单管理窗体 62

6.2.3 创建月盘点窗体 63

6.3 查询统计模块设计 63

6.3.1 创建单据查询窗体 64

6.3.2 创建库存查询窗体 64

6.3.3 创建货物出入统计窗体 65

6.3.4 创建职员操作统计窗体 66

6.4 报表打印模块设计 67

6.4.1创建打印入库单窗体 67

6.4.2 创建打印月盘点窗体 68

6.5 维护设置模块设计 69

6.5.1 公司和职员信息 70

6.5.2 查看日志 70

6.5.3 数据清除 71

6.5.4 系统初始化 71

6.5.5 备份数据库 71

6.5.6 还原数据库和还原到昨天数据库 72

6.5.7 用户管理 72

6.7 帮助模块设计 72

总结 74

致谢 75

参考文献 76

1 仓库管理系统开发环境简介

本仓库管理系统是在以Visual Basic为编程语言,以ACCESS2000作为后台数据库而开发的一个数据库管理系统。下面简要介绍一下中文Visual Basic 6.0Access 2000

1.1 中文Visual Basic 6.0 简介

Visual Basic提供了开发Windows应用程序最迅速、最简洁的方法,它提供了一整套工具,供用户开发应用程序。Visual 指的是开发图形用户界面(GUI)的方法,在图形用户界面下,不需要编写大量代码去描述界面元素的外观和位置,而只需要把预先建立的对象加到屏幕上的适当位置再进行简单设置即可;Basic指的是BASIC(Beginners All-Purpose Symbol Instruction Code)语言,是一种应用十分广泛的计算机语言。Visual Basic 在原有BASIC语言的基础上进一步发展,至今包含了数百条语句、函数和关键词,其中很多和Windows GUI有直接关系,专业人员可以用Visual Basic实现其他任何Windows编程语言的功能,而初学者只要掌握几个关键词就可以建立简单的应用程序。Visual Basic还是一个快速可视化程序开发工具,是极有特色和功能强大的软件。它使用了面向对象的程序设计方法,大大的增强了程序的可重用性,进而简化了程序设计。Visual Basic提供了众多的ActiveX控件,提高了软件开发人员的编程效率。它有其独特的特点,主要特点如下:

1 可视化设计VB具有所见即所得的功能,在程序设计时,头脑中所想象的应用程序界面,完全可以通过键盘和鼠标完成,而不用编制大量代码,如果需要修改也可利用键盘或鼠标完成,而底层的一些程序代码,可由VB自动生成或修改。VB为用户提供了大量“控件”,这些“控件”对于熟悉“Windows应用成序”的用户而言,也许是一点也不陌生,如“标签”,“组合框”,“命令按扭”“文本框”,“单选框”等等,用户只需要用鼠标或键盘把这些“控件”拖到所需的位置并设置他们的大小形状属性等,即可得到所需要的应用程序界面。

2 事件驱动编程VB中把“窗体”及“控件”称为对象。这些对象组成了与用户交互的图形界面(也称为用户接口用户界面)再设计应用程序时必须考虑到用户如何与程序进行交互,用户通过鼠标和键盘与应用程序进行交互是最直接最方便的,这时那些对象必须对鼠标键盘操作所引起的事件做出响应。响应是指执行一段应用程序,它不沿预定的路线执行而是在响应不同事件时执行不同的代码,因此VB编程重点是在编写事件驱动过程的代码。

3 面向对象的程序设计VB是面向对象的程序设计语言,他将代码和数据结合在一个对象中,用户只需要了解每个对象能完成何种任务而不需要知道对象是如何工做作的。软件开发人员主要编写事件驱动过程的代码,使对象对用户的操作做出反映。但因VB没有多态等面向对象的特性,所以也有人称VB是一种准面向对象的程序设计语言。

4 易学易用,开发周期短VB简单易学,界面友好,容易使用。VB提供了大量功能强大的“控件”,能帮助开发人员在较短的时间内用少量语句编写出应用程序,缩短了开发周期。

1.2 ACCESS2000简介

ASSESS是一个数据库管理系统,简单易学,一个普通的计算机用户可以很快的掌握它。ACCESS2000的功能也十分强大,利用它可以方便的实现对信息保存、维护、查询、统计等,而且它可以十分方便地与OFFICE其他组件交流数据,这些功能对一个普通用户来说已经足够了。

本系统就是在以ACCESS2000作为后台数据库,以Visual Basic为编程语言为中小型企业管理仓库而开发的一个数据库管理系统。

2 系统可行性分析

可行性分析的任务,并不是所有问题都有简单明显的解决办法,事实上,许多问题不可能在预定的系统规模之内解决。如果问题没有可行的解,那么花费这项开发工程上的任何时间、资源、人力和经费都是无谓的浪费。

可行性研究的目的就是用最小的代价在尽可能短的时间内确定问题是否能够解决。必须记住,可行性研究的目的不是解决问题,而是确定问题是否值得去解。怎样达到这个目的呢?当然不能靠主观猜想,而只能靠客观分析。必须分析几种主要的可能解法的利弊,从而判断原定的系统目标和规模是否现实,系统完成后所能带来的效益是否大到值得投资开发这个系统的程度。

因此,可行性研究实质上是要进行一次大大压缩简化了的系统分析和设计的过程,也就是在较高层次上以较抽象的方式进行的系统分析和设计的过程。所以从以上的分析原则来看,我所设计的仓库信息管理系统是一个规模不太大的系统,但是目标明确,清晰的描述了对目标系统的一切限制和约束。本系统几乎在所有的企业、公司使用,当然它需要进一步的完善和更新。在使用过程中,要看它能不能带来效益,毕竟在现今社会效率是第一位的。从现实看,这还是有一定的实用价值的,从另一个角度看,现实社会发展飞速,尊重科技势在必行,因此这也是开发本系统的一个非常重要的原因。21世纪是计算机的时代,它必然取代一部分人的工作,高科技的监控系统进入社会生活的方方面面是发展的趋势。

本设计从一下三个方面进行可行性研究:

1. 技术可行性本设计“仓库管理系统”是为企业仓库管理人员开发的。鉴于本人在上学期数据库课程设计中已用Visual Basic6.0Access2000开发过网上图书销售管理信息系统,而且通过三个月毕业实习中的学习和实践,对开发管理信息系统又有了新的认识和提高,使自己在开发管理信息系统方面的技术更加成熟。由于本设计最重要体现的是实用性,所以,通过大量的社会调查和分析,结合自己现有的技术水平加上导师的指导,还是能按期完成本毕业设计。

2. 经济可行性成本方面:由于本毕业设计属于计算机科学(本科)教学的最后一个环节,所以人力消耗免费,资源学校提供,指导老师义务指导。所以成本计算只需计算开发期间开发者的生活消费,学校资源的消耗,所以开发本软件的成本是非常低的。效益方面:为企业开发一个完整、合理的仓库管理系统,可大大节余人力,以前需要多人干的工作,使用本系统只需一个人或几个人就能完成,且工作量和劳动强度大大降低。所以开发本软件可以为社会带来很好的经济效益。

从以上分析看开发本软件在经济上是可行的。

3. 操作可行性本软件是为企业仓库的管理者开发的,所有本软件的用户对象是企业仓库的工作人员,由于本软件要设计成友好的界面,写出详细的使用说明,用户只需懂得简单的计算机操作知识,就能自由应用本软件。

所以从以上几个方面的分析来看,开发本软件是完全可行的。

3 系统总体设计

3.1 系统目标设计

系统开发的总体任务是实现企业产品管理的系统化、规范化和自动化,从而达到提高企业管理效率的目的。

3.2 开发设计思想

仓库管理主要是企业各种商品的管理。进货时经检查合同确认为有效托收后,进行验收入库,填写入库单,进行入库登记。企业各个部门根据需要提出产品请求,计划员根据整个企业的需求开出产品出库单,仓库管理人员根据出库单核对发放产品。根据需要按照月进行统计分析,产生相应报表。

仓库管理的特点是信息处理量比较大,所管理的产品种类繁多,而且由于入库单、出库单、盘点单等单据发生量特别大,关联信息多,查询和统计的方式各不相同。因此在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递;单据、报表种类繁多,各个部门管理规格不统一等问题。

在本系统的设计过程中,为了克服这些困难,满足计算机管理工作的需要,我们采取了下面的一些原则。

●统一各种原始单据的格式,统一报表的格式。

●删除不必要的管理冗余,实现管理规范化、科学化。

●程序代码标准化,软件统一化,确保软件的可维护性和实用性。

●界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。

●建立操作日志,系统自动记录所进行和各种操作。

3.3 系统功能需求分析

系统开发的总体任务是实现各种信息的系统化、规范化和自动化。系统功能分析是在系统开发的总体任务的基础上完成。本仓库管理系统需要完成功能主要有:

仓库管理各种信息的输入,包括货物、供应商、客户、仓库信息的输入等。

仓库管理各种信息的查询、统计、修改和维护,包括货物、单据查询,货物出入、职员操作统计,各种信息的修改和维护等。

打印报表的生成。

在货物管理中加入最高储备和最低储备字段,对仓库中的产品实现监控和报警。

操作日志的管理。

仓库管理系统的使用帮助。

3.4 系统功能模块设计

在系统功能分析的基础上,考虑到Visual Basic程序编制的特点,得到如图3-1所示的系统功能模块图。

3-1 系统功能模块图。

4 数据库设计

4.1 数据库需求分析

用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程,组成一份详尽的数据字典,为后面的具体设计打下基础。

仔细分析调查有关仓库管理信息需求的基础上,得到如图41所示的本系统所处理的数据流程。

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 数据库逻辑结构设计

现在需要将在上面的数据库概念结构转化为ACCESS 2000 数据库系统所支持的实际数据模型,也就是数据库的逻辑结构。

仓库管理信息系统数据库中各个表格的设计结果如下面表格所示。每个表格所示在数据库中的一个表。

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 创建工程项目仓库管理系统

打开Visual Basic 后,单击File -> New Project 菜单,在工程模板中选择Standard ExE,Visual Basic将自动产生一个Form窗体,属性都是缺省设置。这里我们删除这个窗体,单击File->Save Projiect菜单,将这个工程项目命名为仓库管理系统。

5.2 创建系统主窗体

Visual Basic 创建的应用程序可以是SDI(单文档界面)和MDI(多文档界面)。在SDI的程序中,每个窗体之间是独立的。而MDI的程序中,有一个窗体是主窗体,可以包含其他窗体,他的类型是MDI Form 。本设计采用多文档界面,这样可以使程序更加美观、整齐有序。单击工具栏中的ADD MDI Form 按钮,生成一个窗体。窗体的属性设置见表51

51 主窗体属性设置

属性

属性取值

Name

FrmMain

Caption

仓库管理系统

StartUpPosition

CenterScreen

WindowState

Maximized

主窗体界面设计如图5-1所示。

51 系统主窗体

5.3 创建主窗体菜单

熟悉Windows下应用程序的用户对菜单一定有比较深的印象。所谓菜单,即是指应用程序中为用户提供的一组命令,这些命令出现在应用程序界面的顶部。每项菜单有多项子菜单,具有一定的专门功能,用户容易通过主菜单来访问其下的子菜单。增加菜单可以增强应用程序的功能。下面将介绍菜单及菜单的编辑和使用。

1. 菜单简介

菜单栏在窗体栏的标题栏下面,包含一个或多个菜单标题。当单击一个菜单标题,包含菜单项目的列表就被拉下来。菜单项可以包含命令、分隔条和子菜单标题。用户看到的每个菜单项和在“Menu Editor”中定义的一个菜单控件相对应。

为了使应用程序简单好用,应该将菜单相按功能进行分组。菜单控件使一个对象,与其他对象一样,它具有定义它的外观与行为的属性。在设计或运行时可以设置Caption 属性、EnabledVisible属性、Checked属性以及其他属性。菜单控件只包含一个事件,即Click事件,当用鼠标或键盘选中该菜单控件时,将调用该事件。

2. Visual Basic菜单编辑器

菜单编辑器可以创建新的菜单和菜单栏,也可以向现存的菜单中增加新的命令、用自己的命令替代现存的菜单命令、产生新的菜单和菜单栏,改变和删除现存菜单和菜单栏。

要打开菜单编辑器,在“Tools”菜单中选择“Menu Editor”选项。或击鼠标右键,选择弹出式菜单中的“Menu Editor”。弹出菜单编辑器窗口如图52所示。

52 菜单编辑器

菜单编辑器的基本属性如下:

Caption—出现在控件上的文本。

Name代码中用来引用菜单控件的名字。

shortcut可以访问菜单的键盘按键组合。

以上介绍了菜单编辑器的基本情况和属性,接下来将来介绍利用菜单编辑器创建菜单的过程。

(1) 选取待创建菜单的窗体,激活该窗体。

(2) 从菜单栏的“Tools”菜单中,选取“Menu Editor”并单击(或在“工具栏”上单击“Menu Editor”按钮)。

(3) 在菜单编辑器的“Caption”文本框中,为第一个菜单标题键入希望在菜单栏上显示的文本。如果希望某一字符成为该菜单项的访问键,也可以在该字符前加上一个(&)字符。在菜单中,这一字符会自动加上一条下划线。

(4) 在菜单编辑器的“Name”文本框中,键入将用来在代码中引用该菜单控件的名字。命名菜单控件的规则如下:

(a) 菜单中项目名称应当唯一,但不同菜单中相似动作项目可以重名。

(b) 每一个项目名称应当有一个用键盘选取命令的唯一的记忆访问字符。访问字符通常是菜单标题的第一个字母;每个菜单标题不能用同一个字符。

(c) 如果命令在完成之前还需要附加信息,则在其名称后面应当有一个省略号()。

(5) 单击向左或向右箭头按钮,可以改变该控件的缩进级。

(6) 如果需要,还可以设置控件的其他属性。

(7) 创建新的菜单控件时,选取“Next”命令。

(8) 单击“Insert”可以在现有的控件之间增加一个菜单控件。

(9) 单击向上与向下的箭头按钮,可以在现有菜单控件之中移动控件。

(10) 菜单控件创建好后,选取“OK”可关闭菜单编辑器。

创建的菜单标题将显示在窗体上。在设计时,单击一个菜单标题可下拉其相应的菜项。

创建分隔符如果在设计的菜单中创建分隔符条,只需在想要分隔开来的菜单项之间插入一个菜单控件。单击左、右箭头按钮使新菜单项缩进到与它要隔开的菜单项同级。然后在“Caption”文本框中键入一个连字符(-)。设置“Name”属性。“OK,关闭菜单编辑器。

创建赋值访问键和快捷键

为了提高应用程序的性能,为用户提供最方便、快捷的操作,可以定义菜单的访问键和快捷键,改进键盘对菜单命令的访问。

访问键要在菜单编辑器中给菜单控件赋值访问键,先选取要赋值访问键的菜单项,在该菜单项“Caption”框中,要在作为访问键字符的前面键入一个(&)字符。

快捷键快捷键提供了一种键盘单步的访问方法,按下时会立刻运行一个菜单项。快捷键的赋值包括功能键与控制键的组合,如CTRL+F1键或CTRL+A键。他们出现在菜单中相应菜单项的右边。

根据以上介绍的方法创建本设计的菜单结构如图53所示

5-3 仓库管理系统菜单结构

系统初始化菜单的代码如下:

Private Declare Function GetWindow Lib "user32" (ByVal

权限类别(16 - i) = 0

Else

权限类别(16 - i) = 1

End If

Next

End Sub

Private Sub InitMenu() '根据用户权限来初始化菜单

If 权限类别(3) = 0 Then

M月盘点.Enabled = False

tbToolBar.Buttons(4).Enabled = False

End If

If 权限类别(4) = 0 Then

M供应商.Enabled = False

登记新供应商.MouseIcon = Picture1.MouseIcon

End If

If 权限类别(5) = 0 Then

M往来客户.Enabled = False

登记新客户.MouseIcon = Picture1.MouseIcon

End If

If 权限类别(6) = 0 Then

M单据查询.Enabled = False

M库存查询.Enabled = False

M货物出入统计.Enabled = False

M职员操作统计.Enabled = False

L货物出入统计.MouseIcon = Picture1.MouseIcon

L职员操作统计.MouseIcon = Picture1.MouseIcon

L单据查询.MouseIcon = Picture1.MouseIcon

L库存查询.MouseIcon = Picture1.MouseIcon

tbToolBar.Buttons(5).Enabled = False

tbToolBar.Buttons(8).Enabled = False

End If

If 权限类别(8) = 0 Then

M打印入库单.Enabled = False

M打印出库单.Enabled = False

M打印借入单.Enabled = False

M打印借出单.Enabled = False

M打印调拔单.Enabled = False

M打印报损单.Enabled = False

M打印月盘点.Enabled = False

tbToolBar.Buttons(10).Enabled = False

End If

If 权限类别(9) = 0 Then

M公司信息.Enabled = False

修改公司信息.MouseIcon = Picture1.MouseIcon

End If

If 权限类别(10) = 0 Then

M职员信息.Enabled = False

登记新职员.MouseIcon = Picture1.MouseIcon

End If

If 权限类别(11) = 0 Then

M仓库信息.Enabled = False

创建新仓库.MouseIcon = Picture1.MouseIcon

End If

If 权限类别(12) = 0 Then

M货物信息.Enabled = False

登记新货物.MouseIcon = Picture1.MouseIcon

End If

If 权限类别(13) = 0 Then

M数据清除.Enabled = False

M系统初始化.Enabled = False

End If

If 权限类别(14) = 0 Then

M备份数据库.Enabled = False

M还原数据库.Enabled = False

M还原到昨天数据库.Enabled = False

备份数据库.MouseIcon = Picture1.MouseIcon

还原数据库.MouseIcon = Picture1.MouseIcon

End If

If 权限类别(15) = 0 Then

M查看日志.Enabled = False

查看日志.MouseIcon = Picture1.MouseIcon

tbToolBar.Buttons(12).Enabled = False

End If

If 权限类别(16) = 0 Then

mnuUserManage.Enabled = False

L用户管理.MouseIcon = Picture1.MouseIcon

End If

End Sub

菜单中的各个“子菜单”的程序代码如下:

启动主窗体时的需要的代码

Private Sub Form_Load()

'初始化m_checkado

m_checkado.ConnectionString = DataConnectString

m_checkado.Visible = False

'每天首次运行自动备份数据库

fMainForm.m_checkado.RecordSource = "select 操作时间 from 系统日志 order by 操作时间 desc"

fMainForm.m_checkado.Refresh

If fMainForm.m_checkado.Recordset.RecordCount > 0 Then

fMainForm.m_checkado.Recordset.MoveFirst

Dim t As String

t = fMainForm.m_checkado.Recordset.Fields("操作时间").Value

'如果今天从未有人登陆,备份数据库

If InStr(1, t, Str(Date)) <> 1 Then

BackupData DataPath, App.Path + "\everyday.bkp"

End If

Else

BackupData DataPath, App.Path + "\everyday.bkp"

End If

fMainForm.WriteLog ("登陆系统") '写入系统日志

InitPurview '初始化各种权限类别

InitMenu '初始化菜单

'加载图片

Picture1.Picture = LoadPicture(App.Path + "\data\ground1.jpg")

End Sub

“基本信息”菜单下的“退出”子菜单的Click事件的程序代码如下。点击“退出”会退出系统,但在此之前系统首先会写入系统日志。

Private Sub Form_Unload(Cancel As Integer)

fMainForm.WriteLog ("退出系统") '写入系统日志

End Sub

Private Sub mnuFileExit_Click()

Unload Me

End Sub

“维护设置”菜单下的“修改密码”子菜单的Click事件的程序代码如下。点击“修改密码”会弹出修改当前用户密码窗口。

Private Sub mnuModifyPassword_Click()

PasModify.Show vbModal

End Sub

“维护设置”菜单下的“用户管理”子菜单的Click事件的程序代码,如下。点击“用户管理”会弹出用户管理窗口。

Private Sub mnuUserManage_Click()

用户管理.Show vbModal

End Sub

“帮助”菜单下的“关于仓库管理系统”子菜单的Click事件的程序代码如下。点击“关于仓库管理系统”会弹出系统帮助窗口。

Private Sub mnuHelpAbout_Click()

frmAbout.Show vbModal, Me

End Sub

“打印报表”菜单下的“页面设置”子菜单的Click事件的程序代码如下。点击“页面设置”会弹出页面设置对话框。

Private Sub mnuFilePageSetup_Click()

On Error Resume Next

With dlgCommonDialog

.DialogTitle = "页面设置"

.CancelError = True

.ShowPrinter

End With

End Sub

“视图”菜单下的“状态栏”子菜单的Click事件的程序代码如下。点击“状态栏”主窗体会隐藏状态栏。

Private Sub mnuViewStatusBar_Click()

sbStatusBar.Visible = True - sbStatusBar.Visible

mnuViewStatusBar.Checked = sbStatusBar.Visible

End Sub

“视图”菜单下的“工具栏”子菜单的Click事件的程序代码如下。点击“工具栏”主窗体会隐藏工具栏。

Private Sub mnuViewToolbar_Click()

tbToolBar.Visible = True - tbToolBar.Visible

mnuViewToolbar.Checked = tbToolBar.Visible

End Sub

“单据中心”菜单下的“报损单管理”子菜单的Click事件的程序代码如下。点击“报损单管理”会弹出报损单管理窗口。

Private Sub M报损单_Click()

报损单.Show vbModal

End Sub

“维护设置”菜单下的“备份数据库”子菜单的Click事件的程序代码如下。点击“备份数据库”系统会提示是否备份数据库,如果点击“是”,系统会备份数据库。

Private Sub M备份数据库_Click()

On Error GoTo failure

With dlgCommonDialog

.DialogTitle = "数据库备份为.."

.ShowSave

If Len(.filename) = 0 Then Exit Sub

If BackupData(DataPath, .filename) = 1 Then

MsgBox "备份成功!"

fMainForm.WriteLog ("备份数据") '写入系统日志

Else

failure:

MsgBox "备份失败!"

End If

End With

End Sub

“维护设置”菜单下的“查看日志”子菜单的Click事件的程序代码如下。点击“查看日志”会弹出查看日志窗口。

Private Sub M查看日志_Click()

系统日志.Show vbModal

End Sub

“打印报表”菜单下的“打印报损单”子菜单的Click事件的程序代码如下。点击“打印报损单”会弹出打印报损单窗口。

Private Sub M打印报损单_Click()

Dim f As New 报损单

f.打印报损单.left = f.B新增报损单.left

f.打印报损单.Top = f.B新增报损单.Top

f.B新增报损单.Visible = False

f.删除报损单.Visible = False

f.Show vbModal

Unload f

End Sub

“打印报表”菜单下的“打印出库”子菜单的Click事件的程序代码如下。点击“打印出库”会弹出打印出库窗口。

Private Sub M打印出库单_Click()

Dim f As New 出库单

f.打印出库单.left = f.B新增出库单.left

f.打印出库单.Top = f.B新增出库单.Top

f.B新增出库单.Visible = False

f.删除出库单.Visible = False

f.退出出库单.Visible = False

f.Show vbModal

Unload f

End Sub

“打印报表”菜单下的“打印调拔单”子菜单的Click事件的程序代码如下。点击“打印调拔单”会弹出打印调拔单窗口。

Private Sub M打印调拔单_Click()

Dim f As New 调拔单

f.打印调拔单.left = f.B新增调拔单.left

f.打印调拔单.Top = f.B新增调拔单.Top

f.B新增调拔单.Visible = False

f.删除调拔单.Visible = False

f.Show vbModal

Unload f

End Sub

“打印报表”菜单下的“打印借出单”子菜单的Click事件的程序代码如下。点击“打印借出单”会弹出打印借出单窗口。

Private Sub M打印借出单_Click()

Dim f As New 借出单

f.打印借出单.left = f.B新增借出单.left

f.打印借出单.Top = f.B新增借出单.Top

f.B新增借出单.Visible = False

f.删除借出单.Visible = False

f.退出借出单.Visible = False

f.Show vbModal

Unload f

End Sub

“打印报表”菜单下的“打印借入单”子菜单的Click事件的程序代码如下。点击“打印借入单”会弹出打印借入单窗口。

Private Sub M打印借入单_Click()

Dim f As New 借入单

f.打印借入单.left = f.B新增借入单.left

f.打印借入单.Top = f.B新增借入单.Top

f.B新增借入单.Visible = False

f.删除借入单.Visible = False

f.退出借入单.Visible = False

f.Show vbModal

Unload f

End Sub

“打印报表”菜单下的“打印入库单”子菜单的Click事件的程序代码如下。点击“打印入库单”会弹出打印入库单窗口。

Private Sub M打印入库单_Click()

Dim f As New 入库单

f.打印入库单.left = f.B新增入库单.left

f.打印入库单.Top = f.B新增入库单.Top

f.B新增入库单.Visible = False

f.删除入库单.Visible = False

f.退出入库单.Visible = False

f.Show vbModal

Unload f

End Sub

“打印报表”菜单下的“打印月盘点”子菜单的Click事件的程序代码如下。点击“打印月盘点”会弹出打印月盘点窗口。

Private Sub M打印月盘点_Click()

打印月盘点.Show vbModal

End Sub

“维护设置”菜单下的“还原到昨天数据库”子菜单的Click事件的程序代码如下。点击“还原到昨天数据库”会还原到昨天用户使用的数据库。

Private Sub M还原到昨天数据库_Click()

On Error GoTo failure

If MsgBox("还原数据库将导致现在数据库数据丢失,您确信要还原数据库吗?", vbYesNo Or vbQuestion) = vbNo Then Exit Sub

If ResumeData(DataPath, App.Path + "\everyday.bkp") = 1 Then

InitAfterResume '初始化还原后的信息

MsgBox "还原成功!"

Else

failure:

MsgBox "还原失败!"

End If

End Sub

“维护设置”菜单下的“还原数据”子菜单的Click事件的程序代码如下。点击“还原数据”系统会还原你想还原的数据库。

Private Sub M还原数据库_Click()

On Error GoTo failure

With dlgCommonDialog

.DialogTitle = "数据库还原于..."

.ShowOpen

If Len(.filename) = 0 Then Exit Sub

If MsgBox("还原数据库将导致现在数据库数据丢失,您确信要还原数据库吗?", vbYesNo Or vbQuestion) = vbNo Then Exit Sub

If ResumeData(DataPath, .filename) = 1 Then

InitAfterResume '初始化还原后的信息

MsgBox "还原成功!"

Else

failure:

MsgBox "还原失败!"

End If

End With

End Sub

“基本信息”菜单下的“仓库信息”子菜单的Click事件的程序代码如下。点击“仓库信息”会弹出仓库信息窗口。

Private Sub M仓库信息_Click()

仓库.Show vbModal

End Sub

“单据中心”菜单下的“出库单管理”子菜单的Click事件的程序代码如下。点击“出库单管理”会弹出出库单管理窗口。

Private Sub M出库单_Click()

出库单.Show vbModal

End Sub

“查询统计”菜单下的“单据查询”子菜单的Click事件的程序代码如下。点击“单据查询”会弹出单据查询窗口。

Private Sub M单据查询_Click()

单据查询.Show vbModal

End Sub

“单据中心”菜单下的“调拨单管理”子菜单的Click事件的程序代码如下。点击“调拨单管理”会弹出调拨单管理窗口。

Private Sub M调拔单_Click()

调拔单.Show vbModal

End Sub

“维护设置”菜单下的“公司信息”子菜单的Click事件的程序代码发如下。点击会弹出公司信息窗口。

Private Sub M公司信息_Click()

公司信息.Show vbModal

End Sub

“基本信息”菜单下的“供应商信息”子菜单的Click事件的程序代码如下。点击“供应商信息”会弹出供应商信息窗口。

Private Sub M供应商_Click()

供应商.Show vbModal

End Sub

“维护设置”菜单下的“换用户登录”子菜单的Click事件的程序代码如下。点击“换用户登录”会弹出换用户登录窗口。

Private Sub M换用户登陆_Click() '启动登陆对话框

Dim fLogin As New frmLogin

fLogin.HelpContextID = 2411

fLogin.Show vbModal

If Not fLogin.OK Then

Exit Sub '登录失败,退出应用程序

End If

Unload fLogin

Unload Me '启动主窗口

Set fMainForm = New frmMain

fMainForm.Show

End Sub

“查询统计”菜单下的“货物出入统计”子菜单的Click事件的程序代码如下。点击“货物出入统计”会弹货物出入统计窗口

Private Sub M货物出入统计_Click()

货物出入统计.Show vbModal

End Sub

“基本信息”菜单下的“货物信息”子菜单的Click事件的程序代码如下。点击“货物信息”会弹出货物信息窗口

Private Sub M货物信息_Click()

货物信息.Show vbModal

End Sub

“单据中心”菜单下的“借出单管理”子菜单的Click事件的程序代码如下。点击“借出单管理”会弹出借出单管理窗口

Private Sub M借出单_Click()

借出单.Show vbModal

End Sub

“单据中心”菜单下的“借入单管理”子菜单的Click事件的程序代码如下。点击“借入单管理”会弹出借入单管理窗口。

Private Sub M借入单_Click()

借入单.Show vbModal

End Sub

“查询统计”菜单下的“库存查询”子菜单的Click事件的程序代码如下。点击“库存查询”会弹出库存查询窗口。

Private Sub M库存查询_Click()

库存查询.Show vbModal

End Sub

“基本信息”菜单下的“库存状况信息”子菜单的Click事件的程序代码如下。点击“库存状况信息”会弹出库存状况窗口。

Private Sub M库存状况_Click()

库存状况.Show vbModal

End Sub

“单据中心”菜单下的“入库单管理”子菜单的Click事件的程序代码如下。点击“入库单管理”会弹出入库单管理窗口。

Private Sub M入库单_Click()

入库单.Show vbModal

End Sub

“维护设置”菜单下的“数据清除”子菜单的Click事件的程序代码如下。点击“数据清除”会弹数据清除窗口。

Private Sub M数据清除_Click()

数据清除.Show vbModal

End Sub

“基本信息”菜单下的“往来客户信息”子菜单的Click事件的程序代码如下。点击“往来客户信息”会弹出往来客户窗口。

Private Sub M往来客户_Click()

客户.Show vbModal

End Sub

“维护设置”菜单下的“系统初始化”子菜单的Click事件的程序代码如下。点击“系统初始化”会弹出系统初始化对话框,如果用户想系统初始化,就点击“是”。

Private Sub M系统初始化_Click()

If MsgBox("这将删除您所有的数据信息,整个数据库将全部清空,您确信要系统初始化吗?", vbYesNo Or vbExclamation) = vbNo Then Exit Sub

On Error Resume Next

'删除入库单

fMainForm.m_checkado.RecordSource = "select * from 入库单"

fMainForm.m_checkado.Refresh

DeleteRecordData fMainForm.m_checkado.Recordset

'删除出库单

fMainForm.m_checkado.RecordSource = "select * from 出库单"

fMainForm.m_checkado.Refresh

DeleteRecordData fMainForm.m_checkado.Recordset

'删除借入单

fMainForm.m_checkado.RecordSource = "select * from 借入单"

fMainForm.m_checkado.Refresh

DeleteRecordData fMainForm.m_checkado.Recordset

'删除借出单

fMainForm.m_checkado.RecordSource = "select * from 借出单"

fMainForm.m_checkado.Refresh

DeleteRecordData fMainForm.m_checkado.Recordset

'删除调拔单

fMainForm.m_checkado.RecordSource = "select * from 调拔单"

fMainForm.m_checkado.Refresh

DeleteRecordData fMainForm.m_checkado.Recordset

'删除报损单

fMainForm.m_checkado.RecordSource = "select * from 报损单"

fMainForm.m_checkado.Refresh

DeleteRecordData fMainForm.m_checkado.Recordset

'删除库存状况

fMainForm.m_checkado.RecordSource = "select * from 库存状况"

fMainForm.m_checkado.Refresh

DeleteRecordData fMainForm.m_checkado.Recordset

'删除盘点单

fMainForm.m_checkado.RecordSource = "select * from 盘点单"

fMainForm.m_checkado.Refresh

DeleteRecordData fMainForm.m_checkado.Recordset

'删除客户

fMainForm.m_checkado.RecordSource = "select * from 客户"

fMainForm.m_checkado.Refresh

DeleteRecordData fMainForm.m_checkado.Recordset

'删除供应商

fMainForm.m_checkado.RecordSource = "select * from 供应商"

fMainForm.m_checkado.Refresh

DeleteRecordData fMainForm.m_checkado.Recordset

'删除货物信息

fMainForm.m_checkado.RecordSource = "select * from 货物信息"

fMainForm.m_checkado.Refresh

DeleteRecordData fMainForm.m_checkado.Recordset

'删除货物类别

fMainForm.m_checkado.RecordSource = "select * from 货物类别"

fMainForm.m_checkado.Refresh

DeleteRecordData fMainForm.m_checkado.Recordset

'删除仓库

fMainForm.m_checkado.RecordSource = "select * from 仓库"

fMainForm.m_checkado.Refresh

DeleteRecordData fMainForm.m_checkado.Recordset

'删除职员信息

fMainForm.m_checkado.RecordSource = "select * from 职员信息"

fMainForm.m_checkado.Refresh

DeleteRecordData fMainForm.m_checkado.Recordset

'删除公司信息

fMainForm.m_checkado.RecordSource = "select * from 公司信息"

fMainForm.m_checkado.Refresh

DeleteRecordData fMainForm.m_checkado.Recordset

'删除系统日志

fMainForm.m_checkado.RecordSource = "select * from 系统日志"

fMainForm.m_checkado.Refresh

DeleteRecordData fMainForm.m_checkado.Recordset

'删除用户管理

fMainForm.m_checkado.RecordSource = "select * from 用户管理"

fMainForm.m_checkado.Refresh

DeleteRecordData fMainForm.m_checkado.Recordset

'增加一个管理员admin

fMainForm.m_checkado.RecordSource = "select * from 用户管理"

fMainForm.m_checkado.Recordset.AddNew

fMainForm.m_checkado.Recordset.Fields("用户名") = "admin"

fMainForm.m_checkado.Recordset.Fields("用户密码") = ""

fMainForm.m_checkado.Recordset.Fields("用户权限") = 131071

fMainForm.m_checkado.Recordset.update

fMainForm.m_checkado.Refresh

'更改当前登陆用户信息

UserName = "admin": UserPas = "": Purview = 131071

Dim i As Integer

For i = 0 To 16

权限类别(i) = 1

Next

MsgBox "系统初始化成功!"

End Sub

“单据中心”菜单下的“新增报损单”子菜单的Click事件的程序代码如下。点击“新增报损单”会弹出新增报损单窗口。

Private Sub M新增报损单_Click()

新增报损单.Show vbModal

End Sub

“单据中心”菜单下的“新增出库单单”子菜单的Click事件的程序代码如下。点击“新增出库单”会弹出新增报损单窗口。

Private Sub M新增出库单_Click()

新增出库单.Show vbModal

End Sub

“单据中心”菜单下的“新增调拨单”子菜单的Click事件的程序代码如下。点击“新增调拨单”会弹出新增调拨单窗口。

Private Sub M新增调拔单_Click()

新增调拔单.Show vbModal

End Sub

“单据中心”菜单下的“新增借出单”子菜单的Click事件的程序代码如下。点击“新增借出单”会弹出新增借出单窗口。

Private Sub M新增借出单_Click()

新增借出单.Show vbModal

End Sub

“单据中心”菜单下的“新增借入单”子菜单的Click事件的程序代码如下。点击“新增借入单”会弹出新增借入单窗口。

Private Sub M新增借入单_Click()

新增借入单.Show vbModal

End Sub

“单据中心”菜单下的“新增入库单”子菜单的Click事件的程序代码如下。点击“新增入库单”会弹出新增入库单窗口。

Private Sub M新增入库单_Click()

新增入库单.Show vbModal

End Sub

“单据中心”菜单下的“进行月盘点”子菜单的Click事件的程序代码如下。点击“进行月盘点”会弹出月盘点窗口。

Private Sub M月盘点_Click()

月盘点.Show vbModal

End Sub

“查询统计”菜单下的“职员操作统计”子菜单的Click事件的程序代码如下。点击“职员操作统计”会弹出职员操作统计窗口。

Private Sub M职员操作统计_Click()

职员操作统计.Show vbModal

End Sub

“维护设置”菜单下“职员信息”子菜单的Click事件程序代码,点击会进入“职员信息”窗口。

Private Sub M职员信息_Click()

职员信息.Show vbModal

End Sub

5.4 创建主窗体工具栏

同样,熟悉Windows下应用程序的用户对工具栏也一定有比较深的印象。在本系统中,它是用工具栏控件产生的,工具栏控件在主窗体上产生了很多按钮对象,按钮上显示了文字、图形。下面首先简要介绍工具栏控件的常用属性和事件。

5.4.1 工具栏控件常用属性和事件

1 工具栏控件的常用属性,

工具栏控件常用的属性有如下几个,同时也是本系统中用到的几个属性,主要有AlignImageListIndexToolTipTextShowTipsWrappable

Image等。

Align:读出或设置对象在窗体中的显示位置,它有5个值可供选择,用来设置工具栏放置在窗体的上部、下部、左边或右边等。

ImageList:读出和设置与本控件相关联的ImageList控件。该属性被设置后,可以向工具栏按钮中添加图形。

Index:控件名相同时,用来产生一个数组标识号。

ToolTipText:设置鼠标指针在工具栏某一按钮暂停时所显示的提示文本。

ShowTips:设置是否显示工具栏按钮上的提示文本。

Wrappable:设置如果窗口尺寸发生变化,是否自动包括本控件按钮。

Image:用来设置按钮中显示的图形,以012等来标识,ImageList控件中的图形将按顺序赋给不同的按钮。

2 工具栏控件常用事件

工具栏控件常用事件主要有ButtonClickClick两个。对于ButtonClick事件,当单击本控件之上的一个按钮时,该事件过程被执行;对于Click,当单击本控件时进行检测。

5.4.2 设置工具栏属性

向窗体添加工具栏控件后,然后按下列步骤操作:

1)设置Align属性值为1,即工具拦放在窗体的顶部。

2)用鼠标右键单击工具栏对象,从弹出的菜单中选择“属性”菜单项。弹出如图5-4所示的“属性页”对话框。

5-4 工具栏属性对话框

3)单击如图5-4所示的“图象列表”列表框右边的下拉箭头,从下拉的列表中选择ImageList。这样ImageList控件就和“工具栏”控件发生了联系。

注意:“工具栏”控件按钮使用图形,所以要求必须已引入了ImageList控件,否则,图5-4中的“图像列表”框将不能设置成ImageList。另外选定了图形列表控件后,ButtonHeightButtonWidth属性值,由图形的大小决定,用户不要改变其设置。

4)单击图5-4中“按钮”选项卡,“属性页”对话框如图5-5所示。单击,单击“插入”按钮后,“索引”文本框中出现数字1,其它输入框也变为可用。这样就可以设置其上的属性。若“图像”输入框设为1,即ImageList控件的第一个图形作为按钮1的图形。重复上述步骤,添加其它按钮到工具栏上,并设置相应属性。

5-4 工具栏属性对话框

通过以上步骤,创建的主窗体工具栏如图5-5所示。

5-5主窗体工具栏

在主窗体中为工具栏所加的代码如下:

Private Sub tbToolBar_ButtonClick(ByVal Button As MSComctlLib.Button)

Select Case Button.index

Case 1:

M库存状况_Click

Case 4:

M月盘点_Click

Case 9:

M打印月盘点_Click

Case 11:

M查看日志_Click

Case 13:

mnuHelpAbout_Click

End Select

End Sub

Private Sub tbToolBar_ButtonMenuClick(ByVal ButtonMenu As MSComctlLib.ButtonMenu)

Select Case ButtonMenu.Key

Case "入库单"

M新增入库单_Click

Case "出库单"

M新增出库单_Click

Case "借入单"

M新增借入单_Click

Case "借出单"

M新增借出单_Click

Case "调拔单"

M新增调拔单_Click

Case "报损单"

M新增报损单_Click

Case "单据"

M单据查询_Click

Case "库存"

M库存查询_Click

Case "货物出入"

M货物出入统计_Click

Case "职员操作"

M职员操作统计_Click

Case "月盘点"

M打印月盘点_Click

End Select

End Sub

5.5 设置主窗体状态栏

状态栏一般位于窗体的底部,用于向用户显示系统的一些状态,比如系统信息、当前用户、时间、日期等。

状态栏的添加比较简单,这里不再详细说明。但本窗体的状态栏如图5-6所示。

5-6主窗体的状态栏

在主窗体中为状态栏添加的代码如下:

Private Sub Timer1_Timer()

If Len(sbStatusBar.Panels(1).Text) < sbStatusBar.Panels(1).width 80 Then

sbStatusBar.Panels(1).Text = " " + sbStatusBar.Panels(1).Text

Else

sbStatusBar.Panels(1).Text = LTrim(sbStatusBar.Panels(1).Text)

End If

End Sub

6 系统模块设计

6.1 基本信息模块设计

基本信息模块主要包括:

●货物信息

●仓库信息

●供应商信息

●往来客户信息

●库存状况信息

6.1.1 创建货物信息窗体

货物信息窗体可以进行货物管理,如:增加货物类别货物种类对货物基本信息可以进行编辑除了"货物编号"对货物删除会进行智能判断,如果其它表单用了该货物信息将不能被删除。它的界面设计如图6-1所示。

6-1 货物信息窗体

6.1.2 创建仓库信息窗体

通过仓库信息窗体可以对仓库信息进行管理。它同时规定:新增仓库不能同名通过"更换保管员"按钮来更换保管员不能直接进行编辑仓库名称、地点,备注可以直接编。它的界面设计成如图6-2所示。

6-2 仓库信息窗体

6.1.3 创建库存状况信息窗体

限定仓库查看仓库库存状况,可以清楚地知道企业各个仓库的库存情况。库存状况信息窗体的界面如图6-3所示。

6-3库存状况信息窗体

由于篇幅有限,供应商信息窗体和窗客户信息窗体这里丛略。

6.2 单据中心模块设计

单据中心模块主要完成的功能有:

●新增单据(包括入库单、出库单、借入单、借出单、调拨单、报损单)

●单据管理(包括入库单、出库单、借入单、借出单、调拨单、报损单)

●进行月盘点

6.2.1 创建新增入库单窗体

入库单是采购人员购买货物时所填写的单子,是为了完成货物的正确入库才用到的。在新增入库单窗体中货物编号供应商仓库经办人均可通过单击相关的数据框来选择数据选择框会进行动态智能化统计信息使选择更方便"金额"在单击该数据框时会自动计算"其它金额""备注"由用户选择单击"保存"按钮即可保存该入库单保存完后可以打印当然也可以以后再打印入库货物数量要按库存最高限量确定。它的界面设计如图6-4所示。

6-4 新增入库单窗体

6.2.2 创建入库单管理窗体

入库单的管理对于企业仓库管理尤为重要,它的界面设计如图6-5所示。

6-5 入库单管理窗体

注意:"退出入库单"是取消入库,但不一定能成功,因为要看入库的仓库剩余的库存量虽然退出但入库所有的"其它金额"依然存在"删除入库单"则是删除没有其它金额“,一般是盘点后的操作或入库单的误操作

另外,还有出库单、借入单、借出单、调拨单、报损单的新增和管理,由于它们和入库类似,这里不再一一列出。

6.2.3 创建月盘点窗体

仓库进行月盘点会将本月该仓库的货物出入信息金额出入信息进行统计。它对于企业的管理者和决策者非常重要。月盘点窗体设计成如图6-6所示。

6-6月盘点窗体

6.3 查询统计模块设计

查询统计模块主要完成的功能有:

●单据查询

●库存查询

●货物出入统计

●职员操作统计

6.3.1 创建单据查询窗体

单据的查询支持模糊查询。它的界面设计如图6-7所示。

6-7 单据查询

6.3.2 创建库存查询窗体

 库存的查询,支持模糊查询对仓库货物状况也能进行统计。它的界面设计如图6-8所示。

6-8 库存查询窗体

6.3.3 创建货物出入统计窗体

货物的出入统计,可以限定仓库,出入时间它的界面设计如图6-9所示

6-9 货物出入统计

6.3.4 创建职员操作统计窗体

职员的操作统计,可以限定仓库,操作时间。界面设计如图6-10所示。

6-10 职员操作统计

6.4 报表打印模块设计

报表打印完成的功能主要有:

●单据打印(包括入库单、出库单、借入单、借出单、调拨单、报损单)

月盘点打印

6.4.1创建打印入库单窗体

它的界面设计如图6-11所示。在图6-11中选择了某一入库单之后,点击“打印入库单”按钮,会进入入库单打印界面,它和新增入库单是同一界面,也即图6-4。在图6-4中点击“打印”就可以打印入库单,同时用户也可以根据需要选择自己喜欢的背景颜色。

6-11打印入库单窗体

6.4.2 创建打印月盘点窗体

它的界面设计如图6-12所示。

在图6-12中选择了某一盘点单之后,点击“打印”按钮,会进入月盘点单打印界面,它和进行月盘点是同一界面,也即图6-6,点击图6-6的打印月盘点就可以打印了。

6-12 打印月盘点窗体

6.5 维护设置模块设计

维护设置模块是为了仓库管理系统的稳定性和安全性而设计的,它完成的主要功能有:

●公司和职员信息

●查看日志

●数据清除

●系统初始化

●备份数据库

●还原数据库(包括还原到昨天数据库)

●用户管理

6.5.1 公司和职员信息

    可以修改公司的信息。可以进行职员的信息管理,增加,删除,修改等。由于篇幅有限,其窗体略。

6.5.2 查看日志

查看职员的操作日志,可以清楚地知道职员在工作中对仓库进行了哪些管理。这对于查找职员的误操作从而恢复系统提供了帮助,同时也保证了安全性,防止某些人的非法操作。它的界面设计如图6-13

6-13 查看日志

6.5.3 数据清除

可以选择性删除数据表单。对于系统产生的无用数据可以删除。数据清除窗体界面设计如图6-14所示。

6-14数据清除窗体界面

6.5.4 系统初始化

将数据库置空,只保留一个拥有所有操作权限,密码为空的用户"admin"

系统初始化的代码可以查看“菜单”代码中“系统初始化”菜单项

6.5.5 备份数据库

    备份数据库至文件(加密)。备份数据库的代码可以查看“菜单”代码中的“备份数据库”菜单项。

6.5.6 还原数据库和还原到昨天数据库

    从备份的数据还原这将会使原来的数据库信息丢失

每天首次运行会自动备份这个功能可以还原到自动备份的数据库,这样就可以还原到昨天数据库。

代码可以分别查看“菜单”代码中的“还原数据库”和“还原到昨天数据库”菜单项。

6.5.7 用户管理

    对登陆用户的管理,可以修改用户名操作权限,新增,删除用户等。也可以修改当前登陆用户的密码。同时也可以换用户登录,但此时会重新启动数据。由于篇幅有限,其窗体略。

6.7 帮助模块设计

用户随时可以按"F1"获得当前动态帮助也可通过电子邮件和登录仓库管理系统主页获得所有帮助。帮助界面设计如图6-12所示。

6-12 仓库管理系统帮助

这个界面设计较简单,所加代码如下:

Private Sub cmdOK_Click() 退出帮助

Unload Me

End Sub

登录仓库管理系统主页

Private Sub Label1_Click()

ShellExecute 0, "", "", "", "", 5

End Sub

给作者写电子邮件。

Private Sub Label2_Click()

End Sub

总结

经过两个多月的毕业设计,一个完整的仓库管理系统终于设计完成了,但也正在这时我真正意识到所学知识的不足,可以说关于这方面的接触才刚刚开始,深有感触,无以言表。

关于本系统,虽然对仓库管理进行了系统的创建,但我们不可忽略的是这个系统并不完美,我们也不能高枕无忧。我们要在以后的实践中去检验它的可用性,特别要考虑它的实时性和安全性,这才是我们最值得考虑的问题。一个系统好不好,要经过反复的使用才能知道,不光光是理论中分析和设计得出来的。由此我就想到了在做这个系统时,有的同学用了ACCESS ,有的同学用了SQL 来建不同的数据库,这样就导致有的是系统自带的代码,而有的则是我们写进去的纯代码,当然也就出现了各种各样的问题。特别是关于系统的可移植性,有许多不足之处,这样我们应该多查阅相关资料,反复地熟练应用,才能把系统设计的巧,设计的好。同学们之间的交流也十分重要,交流就是进步,有进会带你走入一种柳暗花明的欣喜境界。

经过这次毕业设计,引发了我的很多思考和兴趣,首先是做程序要勤,手勤,眼勤,心勤;其次要有韧性,不怕麻烦,不怕失败,反复调试,反复练习,这样才能找到最佳的程序设计。

致谢

非常感谢我的导师杨波给我的悉心关怀,让我顺利地完成了毕业论文,当然,也感谢母校辛勤培育之恩,各位领导、老师和同学的大力帮助之情,使我学到了许多新的知识,同是也更懂得了一些做学问的道理,这是一笔宝贵的财富。

选择毕业设计题目,到毕业设计规划,查找相关资料,设计模型,具体实施,结束论文,整个大致的流程中,我的导师都给予了我耐心的指导和默默的关心,设计为期之长,其间遇到了不少问题,也承蒙了老师的照顾,真的想对老师说一声:老师,辛苦了,谢谢您。除此之外,我还要致谢我的几位同学的得力相助,我希望我能向他们学习,发扬那种百折不挠、孜孜不倦的对知识求索精神,那种至高无上的敬业精神,马上我就要走向工作单位了,我相信我会时刻用他们的平凡而不简单来鞭策自已。

最后,祝愿我的老师和学友们永远幸福,快乐

参考文献

[1] 学用Visual Basic 6.0(美)Greg Perry编著 戴红,陈喆,姚娜译。清华大学出版社,2003

[2] Visual Basic 6.0程序设计教程龚沛曾,陆慰民,杨志强编。高等教育出版社,2001.7

[3] Visual Basic 6.0入门与提高张树兵,戴红,陈哲著。 清华大学出版社, 2000.11

[4] Visual Basic灵感编程飞思科技产品研发中心编著。 电子工业出版社,2002.6

[5] Visual Basic 6.0与可视化编程汪远征,刘瑞新著。上海科学技术出版社, 2002.5

[6] 数据库概论王珊等编著。高等教育出版社, 2003.2

[7] Visual Basic 6.0程序设计工程师网冠科技编著。 机械工业出版社 2001.2

前言 1

摘要 2

Abstract 3

目录 4

1 仓库管理系统开发环境简介 6

1.1 中文Visual Basic 6.0 简介 6

1.2 ACCESS2000简介 7

2 系统可行性分析 8

3 系统总体设计 10

3.1 系统目标设计 10

3.2 开发设计思想 10

3.3 系统功能需求分析 11

3.4 系统功能模块设计 11

4 数据库设计 12

4.1 数据库需求分析 12

4.2 数据库概念结构设计 14

4.3 数据库逻辑结构设计 18

5 系统主窗体设计 24

5.1 创建工程项目仓库管理系统 24

5.2 创建系统主窗体 24

5.3 创建主窗体菜单 25

5.4 创建主窗体工具栏 51

5.4.1 工具栏控件常用属性和事件 51

5.4.2 设置工具栏属性 52

5.5 设置主窗体状态栏。 56

6 系统模块设计 57

6.1 基本信息模块设计 57

6.1.1 创建货物信息窗体 57

6.1.2 创建仓库信息窗体 58

6.1.3 创建库存状况信息窗体 59

6.2 单据中心模块设计 60

6.2.1 创建新增入库单窗体 61

6.2.2 创建入库单管理窗体 62

6.2.3 创建月盘点窗体 63

6.3 查询统计模块设计 63

6.3.1 创建单据查询窗体 64

6.3.2 创建库存查询窗体 64

6.3.3 创建货物出入统计窗体 65

6.3.4 创建职员操作统计窗体 66

6.4 报表打印模块设计 67

6.4.1创建打印入库单窗体 67

6.4.2 创建打印月盘点窗体 68

6.5 维护设置模块设计 69

6.5.1 公司和职员信息 70

6.5.2 查看日志 70

6.5.3 数据清除 71

6.5.4 系统初始化 71

6.5.5 备份数据库 71

6.5.6 还原数据库和还原到昨天数据库 72

6.5.7 用户管理 72

6.7 帮助模块设计 72

总结 74

致谢 75

参考文献 76

版仓库管理系统+论文毕业设计论文

相关推荐