仓储物流管理系统
第一章 引言
企业的物资供应管理往往是很复杂的,烦琐的。由于所掌握的物资种类众多,订货,管理,发放的渠道各有差异,各个企业之间的管理体制不尽相同,各类统计计划报表繁多,因此物资管理必须实现计算机化,而且必须根据企业的具体情况制定相应的方案。 根据当前的企业管理体制,一般物资供应管理系统,总是根据所掌握的物资类别,相应分成几个科室来进行物资的计划,订货,核销托收,验收入库,根据企业各个部门的需要来发放物资设备,并随时按期进行库存盘点,作台帐,根据企业领导和自身管理的需要按月,季度,年来进行统计分析,产生相应报表。为了加强关键物资,设备的管理,要定期掌握其储备,消耗情况,根据计划定额和实际消耗定额的比较,进行定额的管理,使得资金使用合理,物资设备的储备最佳。
所以一个完整的企业物资供应管理系统应该包括计划管理,合同托收管理,仓储管理,定额管理,统计管理,财务管理等模块。其中仓储管理是整个物资供应管理系统的核心。
鉴于Visual Foxpro6.0有强大的数据库管理功能,我选用Visual Foxpro6.0来完成这个仓储管理系统。
第二章 管理信息系统概要
管理信息系统就是我们常说的MIS (Management Information System),在强调管理,强调信息的现代社会中它越来越得到普及。MIS 是一门新的学科,它跨越了若干个领域,比如管理科学、系统科学,运筹学、统计学以及计算机科学。在这些学科的基础上,形成信息收集和加工的方法,从而形成一个纵横交织的系统。
2.1管理信息系统概述
信息已是现代社会中普遍使用的概念,信息对于自然界和人类具有普遍的意义。信息化就是指人们的信息活动与规模不断增长以至在国民经济中占主导地位的过程。这是工业化之后生产力发展的新阶段,将对社会经济发展以至整个人类文明产生巨大而深远的影响,信息化涉及到社会生活的各个领域,将引起产业结构,就业结构,社会组织,和个人行为方式的重大变化。信息技术是当代世界范围内新技术革命的核心,信息科学和技术是现代科学技术的先导,它与生命科学,材料科学一起构成了当代三种前沿科学,而信息、物质、能源一起成为人类赖以生存与发展的战略资源。信息的处理技术和信息的利用能力成为衡量一个单位及国家社会经济发展和科学技术的主要标志。
一个企业实力,不单看拥有多少物质资源,还要看是否拥有足够的信息资源。对广大中国企业来说,技术落后固然普遍存在,但管理滞后于技术的问题更为严重。管理信息系统(MIS )是先进的科学技术和现代管理相结合的产物,建立以计算机为主要手段的管理信息系统已经成为现代企业、政府部门等各类组织提高自身素质,实现组织目标的战略措施。
2.2管理信息系统的特点
2.2.1 MIS 的基本概念
60年代中期发展起来的管理信息系统(MIS)就是为实现组织的整体目标,对管理信息进 行系统的综合的处理,辅助各级管理决策的硬,软件,通讯设备, 规章制度及有关人员的统 一体。70年代以来,发达国家企业管理中广泛使用计算机处理等信息,各级管理部门以至企业的最高层决策都利用管理信息系统提供的经过加工的信息,并依靠计算机使用各种经济管理模型和现代管理方法辅助决策。计算机远程网络,局域网络和数
据库技术的发展以及微型计算机的广泛应用,大大提高了管理信息处理信息和辅助决策的能力。大型的管理信息扩充已经克服了地域的限制,甚至跨越国界,为在世界各地设有分公司成营业处的大公司服务。管理信息系统的建立,为各级管理决策者提供了信息支持,从根本上上改善了人员的劳动条件和工作性质,是管理手段现代化的重要标志。
2.2.2 MIS 的物理组成
我们这里讨论的管理信息系统,是一个实体系统,现将其物理组成简述如下:
(1) 计算机硬件系统;
(2) 计算机软件系统,包括系统软件和应用软件;
(3) 数据及其存储介质,有组织数据是系统的重要资源;
(4) 通信系统;
(5) 非计算机系统的信息收集处理设备;
(6) 规章制度;
(7) 工作人员;
2.2.3管理信息系统的界面特点
在计算机软件技术中,人机界面已经发展成为一个重要的分支。MIS 人机界面设计一般遵循以下一些基本原则:
1. 以通信功能作为界面设计的核心。人机界面设计的关键是使人与计算机之间能够准确地交流信息。不要把内部的处理、加工与人机界面混在一起,以免互相干扰,影响速度。
2. 界面必须始终一致。统一的人机界面不致于会增加用户的负担,让用户始终用同一种方式思考与操作。
3. 界面必须使用户随时掌握任务的进展情况。
4. 界面必须能够提供帮助。
5. 界面友好、使用方便。
6. 输入画面尽可能接近实际。
7. 要具有较强的容错功能。
总之,所开发的MIS 在使用过程中,应使用户的数据输入量降至最低限度,同时也要减少用户的干预。实践证明,用户干预愈少,MIS 系统的满意程度愈高。
2.3 管理信息系统的开发
2.3.1管理信息系统开发方法:结构化生命周期开发方法、原型法、面向对象的开发
方法等。
1. 结构化生命周期开发方法
系统开发是管理信息系统建设中最主要的一个阶段, 整个管理信息系统是分在若干项目分期分批进行的每个项目一般是整个系统的一个或几个子系统的建立因而一个项目的开发也是复杂的系统工程,从项目开发开始到结束的整个过程称为系统开发的生命周期(SDLC —Structured Design Life Cycle)
系统开发的生命周期一般分为以下阶段:
(1) 系统规划:主要任务是明确系统开发的请求,并进行初步的调查, 通过可行性研究确定下一阶段的实施。
(2) 系统分析,这一阶段的主要任务是明确用户的信息需求,提出新系统的逻
辑方案。需要进行的工作有系统的初步调查,可行性研究,现行系统的详细调查及系统逻辑模型的提出等。
(3) 系统设计,这一阶段的主要任务是根据新系统的逻辑方案进行软、硬件系统的设计,其中包括总体结构设计,输出设计,输入设计,处理过程设计,数据存储设计和计算机系统方案的选择等。
(4) 系统实施,这一阶段将设计的系统付诸实施,主要工作有软件的程序编制与软件包的购置,计算机与通讯设备的购置,系统的安装,调试与测试、新旧系统的转换等。
(5) 系统运行:主要任务是进行系统的日常运行管理,评价系统的运行率, 运行费用和效果进行监理审计,如出现问题则对系统进行修改、调整。
在生命周期的基础上,应用结构化方法,使管理信息系统的过程逐渐形成一 套比较严格的标准、规范、方法与技术,系统建设的组织管理与实施有章可循,成功率和有效率提高了。结构化生命周期法长期以来 一直是管理信息系统,特别是大型系统的主流方法,现在管理信息系统建设方法有了很大的发展,新的方法与技术不断涌现,但结构化生命周期法中的一些主要原则和规范仍然为许多新方法所继承,继续指导着系统建设的实践活动。
2.3.2 管理信息系统的开发过程
管理信息系统的开发过程一般包括系统开发准备、系统调查、系统分析、系统设计、系统实现、系统转换、系统运行与维护、系统评价等步骤。根据开发系统的大小、复杂、
投入、方式、方法等因素的不同,各步骤的要求和内容也不同,用户需要根据实际情况进行取舍和计划。
1. 系统开发准备
系统开发准备工作主要包括提出系统开发要求、成立系统开发小组、制订系统开发计划等工作。
2. 系统调查
新系统的系统分析与系统设计工作都要建立在对现行系统调查的基础上。
调查的主要内容有:
(1)现行系统概况:该组织的发展历史、目前组织的规模、工作状况、管理水平、与外界的主要联系等。调查该项内容的目的主要是为了划分系统界限、系统与外界的输入输出接口等。
(2)组织机构:画出组织的组织结构图,弄清组织的行政关系、人员编制、工作范围、地理位置等,发现不合理问题及新系统启动后可能对现有组织的影响。
(3)业务流程:按照业务种类的不同和处理时间的先后不同,深入了解现行系统的业务流程,画出现行系统业务流程图,并与业务人员反复讨论,得到认可。调查中要注意定性与定量相结合,注意人、财、物、信息的流向、规格、频率、要求以及需要解决的问题等。
(4)报表、数据处理:了解各种统计报表、数据的格式、内容、处理时间及上报时间、频率、规律,存在的问题,对新系统的要求、希望等并收集各种报表。
(5)问题:现行系统中存在的主要问题和薄弱环节,可以按照严重程度分成不同的等级。新系统的建立应能解决大部分问题,并改善薄弱环节。
(6)新系统的功能和目标:了解各级领导和各类业务工作人员对新系统功能的要求,为进一步完善新系统的目标做准备。
(7)其他:如对新系统的各种约束条件,需要说明的其他问题等。
3. 系统分析
系统分析(又称逻辑设计)是管理信息系统开发的关键环节,要求在系统调查的基础上,对新系统的功能进行细致的分析,并建立一个新系统的逻辑模型。
新系统的逻辑模型由系统数据流程图、概况表、数据字典、数据逻辑表达式及有关说明组成。最后要完成系统分析报告(也称为系统逻辑设计说明书)。系统逻辑模型在
系统设计阶段要做认真、细致的分析、研究工作,避免新系统在功能上存在先天不足或缺陷。
4. 系统设计
系统设计又称系统物理设计。系统设计要根据系统分析报告中的系统逻辑模型综合考虑各种约束,利用一切可用的技术手段和方法进行各种具体设计,确定新系统的实施方案,解决“系统怎么做”的问题。这一阶段的重点是设计好系统的总体结构,选择最经济合理的技术手段。系统设计阶段的文件是系统设计报告(又称系统物理设计说明书)。
管理信息系统的开发是一项系统工程,为了保证系统的质量,设计人员必须遵守共同的设计原则,尽可能地提高系统的各项指标(系统可变性、可靠性、工作质量、工作效率、经济性等)。
5. 系统实施与转换
系统实施阶段的主要工作包括:系统硬件的购置与安装、程序的编写(购买)与调试、系统操作人员的培训、系统有关数据的准备和录入、系统调试和转换。
6. 系统维护和评价
管理信息系统是一个复杂的人机系统。系统外部环境与内部因素的变化,不断影响系统的运行,这时就需要不断地完善系统,以提高系统运行的效率与服务水平,这就需要从始至终地进行系统的维护工作。
系统评价主要是指系统建成后,经一段时间的运行后,要对系统目标与功能的实现情况进行检查,并与系统开发中设立的系统预期目标进行对比,及时写出系统评价报告。
第三章 系统设计
3. 1 系统目标设计
系统开发的总体任务是实现企业物资设备管理的系统化,规范化和自动化, 从而达到提高企业物资管理的效率的目的。
3. 2 开发设计思想
仓储管理的物资在本文中主要假定都是企业生产所需要的各种设备。进货时经检查合同确认认为有效托收以后,进行验货入库,填写入库单,进行入库登记。企业各个部分根据所需要的物资设备总额和部门生产活动需要提出物资需求申请。计划员根据整个企业的需求开出物资设备出库单,仓储管理员根据出库单核对发放设备。设备使用完毕需要及时归还入库,填写入库单。根据需要按照月,季,年进行统计分析,产生相应报表。
仓储管理的特点是信息处理量比较大。所管理的物资设备种类繁多,而且由于入库单,出库单,需求单等单据发生量特别大,关联信息多,查询和统计的方式各不相同。因此在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递,单据,报表种类繁多,各个部门管理规格不统一等问题。
在本系统的设计过程中,为了克服以上困难,满足计算机管理的需要,我们采取了下面的一些原则。
●统一各种原始的单据的格式,统一帐目和报表的格式。
●删除不必要的管理冗余,实现管理规范化、科学化。
●程序代码标准化,软件统一化,确认软件的可维护行和实用性。
●界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。 ●建立操作日志,系统自动记录所进行的各种操作。
3·3 开发和运行环境选择
1、软件环境:
操作系统选用目前较稳定的Windows98中文版;数据库系统采用关系型数据库系统Microsoft Visual FoxPro6.0中文版;由Windows98和Microsoft Visual FoxPro6.0共同组成系统的开发环境。
(1)中文操作系统Windows98的特点:
首先,操作系统采用完全图形化的用户界面。将使软件用户的培训大大简化,提
高了工作效率。
其次,Windows98的设备无关性使本系统软件开发时无须固定使用设备,有利于软件的移植和硬件设备的更新换代。
再次,Windows98系统中文版支持信息交换用汉字编码字符集,完善的中文支持使二者紧密结合,构成一个功能完备的软件开发环境。
(2)VFP6.0中文版概述
A:概述
VFP6.0中文版,它是运行于Windows95和Windows NT 平台的32位数据库系统,充分发挥了32位微处理器强大的32位数据处理性能。它功能强大,直观易用,支持客户/服务器结构和面向对象编程,提供多种可视化编程工具,支持最新Internet 技术, WWW数据库的设计,最新流行的ActiveX 等。
VFP6.0中文版完全支持OOP (面向对象)的应用程序设计方法,VFP 使用了真正的类,包括继承性,封装性和多态性。用可视方式创建类、查看类及类代码;利用表单向导进行专业级界面设计;对表关系进行可视化查看;可利用OLE 自动化来包含其他软件(如Excel 、Word )中的对象并使用这些软件。通过Visual FoxPro 对象和事件模型,用户可以快速创建和实现无模式(modeless )的应用程序;利用生成器和工具栏,开发人员可以快速开发应用程序,而省去编写大量的代码、定义繁多的属性。总之,VFP6.0中文版是一种适用于专业人员的开发工具。
B:概念的发展
在FoxPro 2.X中一个表就是数据库,实际上是真正的数据库中表的概念,在Visual FoxPro 中,数据库指的是可以存储一个或者多个表(.DBF )及视图的关系数据库,这才是真正的关系型数据库的概念。
对于一个大型的信息管理系统,它很可能需要对不同的用户各自创建一个大型的文件系统,它包括许多表,而属于一个用户的一套表与属于另一个用户的一套表实际上是相同的,只是名称有所不同,而在FoxPro2.x 中,需要建立大量的代码来区别和维护属于不同用户的一套表,这套表的数量可能是非常庞大的,维护编码也是非常庞大的。然而Visual FoxPro中引入的真正的数据库的概念,使这一问题的解决变得非常的容易,设计人员只要为不同的用户创建不同的数据库,然后在这些数据库下建立用户自己的表就可以很容易对每个用户进行区别和维护了。而且,这样的数据库的关系能力更加强大,更加稳定可靠。
C:Visual FoxPro 的高效性、可扩展性
面向对象程序设计减少了开发时间。Visual FoxPro 通过使用面向对象的开发技术简化了开发。它可以通过创建代码类和接口单元类来创建功能强大的、使用灵活的可重用对象库。 利用内置工具管理类和类库管理类库资源,在应用程序中用类浏览器和组件集定位、查看、使用类。
表面显示器会帮助我们建立更为稳定、更为高效的应用程序。下面的窗口显示代码的每一行,指示其是否执行、执行次数、首次执行时间、平均执行时间。这些数据可以帮助我们快速定位代码中的运行瓶颈,也可验证测试计划。
用功能强大的可视化的RAD 工具减少开发时间、减少开发工作。用有颜色的代码编辑器和直接跟踪调试器使得写代码的工作比从前简单得多,这一改进来自Microsoft Visual C++开发系统。
使用Microsoft Visual SourceSafe?简化了开发小组的开发工作。Microsoft Visual SourceSafe 版本控制系统与Visual FoxPro 6.0紧密关联,因此可以更好地管理源代码,不论是个人独立编写程序,还是作为开发小组的其中一员编写程序。 组件集使得查找和使用诸如类库、表格、报表、代码的组件变得特别简单。仅需要拖动鼠标就可以快速将类从组件集中移出,放置到表格和报表中。
D:新特性
※ Visual FoxPro基本类库
Visual FoxPro 6.0 提供了100多个未编译、可重用的类,开
发人员可以利用这些类实现应用程序的基本功能。直接使用这些类,或者用这些类的继承来实现一定的扩展功能。
※ 应用程序向导和构建器
Visual FoxPro 6.0 包括一个完全的面向对象的应用程序框架,
它是由一组为应用程序提供基本功能的类组成的。新的应用程序向导就是基于这个框架创建项目的,新的应用程序构建器可以用来添加表格和报表。
※ 访问和赋值方法
访问方法是当访问属性值时运行的代码,赋值方法是当改变属性值时运行的代码。访问控制方法和访问权限指定方法使属性可用,并使那些内嵌属性容易使用。
※ 项目挂钩
项目挂钩是一个新的基类,当与一个项目相连时,可以通过它看到项目级事
件。开发人员可以写一些当项目打开、关闭、构建、添加文件时运行的代码。
※ 在应用程序之间进行拖放
从记忆字段拖出文本,把它放置到Microsoft Word 中,然后可以对文本进行拼写检查。或者从Windows Explorer 中拖出一个文件,把它放置到项目管理器中。文件将被添加到项目中去。
※ 活动文档
活动文档是一个Visual FoxPro应用程序,挂接在Internet Explorer上。它提供了把Visual FoxPro的强大功能用在浏览器上的一种途径。活动文档同样也提供了一种在分布式应用程序中使用Web 的方法。
※ 微软传输服务器支持
由Visual FoxPro 创建的COM 组件,这些组件可以由微软传输服务器管理和调整。开发人员可以构建基于数据的组件,充分利用微软传输服务器提供的调整组件的便利条件。
※企业应用程序开发
Visual FoxPro 6.0 与其它Visual Studio 工具可以很好的配合,例如,运用Visual InterDev 创建Web 应用程序的开发人员可以很容易地使用Visual FoxPro 来创建组件。用Visual Basic创建的 ActiveX 控件可以在Visual FoxPro 应用程序中使用,以实现一些附加功能。购买Visual Studio 企业版的Visual FoxPro 开发人员可以得到开发工具所提供的全部好处。
2、硬件平台:
本系统主要采用单机操作,投入少,效率高,易于管理和维护,系统升级简单,适合企业信息化管理的需要。
基本要求如下:
CPU 为Intel Pentium Ⅲ以上;
内存为128MB 以上;
硬盘至少为20G 以上;
配有光驱和软盘。
3. 4 系统功能分析
本设计中的仓储管理系统需要完成功能主要有一下几点。
●仓储管理各种信息的输入,包括入库、出库、还库、需求信息的输入等。
●仓储管理各种信息的查询、修改和维护。 ●设备采购报表的生成。
●在库存管理中加入最高储备和最低储备字段,对仓储中的物资设备实现监控和报警。
●企业各个部门的物资需求的管理。 ●操作日志的管理。 ● 仓储管理的使用帮助。
3. 5 系统功能模块设计
在系统功能分析的基础上,考虑VFP 程序编制的特点,得到如图所示的系统功能模块图:
第四章 数据库设计
4.1 数据库需求分析
在仔细调查企业仓储物资设备管理过程的基础上,得到本系统所处理的时间流程如图所示:
图4-1 数据流程图
在本设计中,通过对企业仓储管理的内容和数据流程分析,设计的数据项和数据结构如下:
● 设备代码信息。包括的数据项有设备号、设备名称。
● 现有库存信息。包括的数据项有现有设备、现有数目、总数目、最大库存、最小库存等。
● 设备使用信息。包括的数据项有使用的设备、使用部门、数目、使用时间、出库时状态。
● 设备采购信息。包括的数据项有采购的设备、采购员、供应商、采购数目、采购时间等。
● 设备归还信息。包括的数据项有归还设备、归还部门、归还数目、归还时间、经手人等。
● 设备需求信息。包括的数据项有需求的部门、需求设备、需求数目、需求时间等。 有了上面的数据结构、数据项和数据流程,就能进行下面的数据库设计。
4.2 数据库概念结构设计
这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。
本设计根据上面的设计规划出的实体有库存实体、入库实体、出库实体、采购实体、还库实体、需求实体。各个实体的E-R 图及其关系描述如下: 1)库存实体E-R 图:
图4-2 库存实体图
2)入库实体E-R 图:
图4-3 入库实体图
3)出库实体E-R 图:
图4-4 出库实体图
4)部门需求实体E-R 图:
图4-5 部门需求实体图
5)还库实体E-R 图:
图4-6 还库实体图
6)计划采购实体E-R 图:
图4-7 计划采购实体图
7)实体和实体之间的关系E-R 图:
图4-8 实体间的关系图
4.3 数据库逻辑结构设计
在上面的实体以及实体之间的关系的基础上,形成数据库中的表格以及各个表格之间的关系。仓储管理系统数据库中的各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。
(1)设备代码表: 表4-1
(2)设备入库表: 表4-2
(3)设备出库表: 表4-3
(4)现有库存表: 表4-4
(5)部门需求表: 表4-5
(6)设备还库表: 表4-6
(7)操作日志表:
表4-7 (8)设备采购计划表: 表4-8
4.4 数据库结构的实现
在需求分析、概念结构设计的基础上得到数据库的逻辑结构设计之后,我们就可以在Visual FoxPro6.0数据库系统中实现该逻辑结构。
图4-9 项目管理器界面
打开如图4-9所示的“仓库管理”项目后,在项目管理器中展开数据文本夹,用鼠标选中数据库,单击右侧的“新建”按钮,在弹出的对话框中将该数据库文件存储为c:\仓库管理\仓库管理.dbc 。
在弹出的如图所示的数据库设计器中单击鼠标右键,选择“新建表”,为数据库添加数据表(内容见上节)。下面以表设备代码表为例来介绍表的建立过程。
选择“新建表”,在弹出的对话框中将表存储为c:\仓库管理\设备代码.dbf 。在弹出的
如图所示的表设计器中填写表的内容。
图4-10 “设备代码”创建界面
字段设置完成后,单击“确定”按钮后为表输入数据,如不想现在输入,可以先“取消”,以后再输入。具体方法如下:
图4-11 项目管理器界面
(1) 如图所示,选中要输入数据的表,单击“浏览”按钮。
(2) 此时弹出无数据的表,在Visual FoxPro6.0的主窗口中选择“表”,选择“追加新
记录”后,就 可以在表中输入数据了。如图所示。不过这种方法只能一次输入一条记录,如果要输入第二条记录时,需再次选择追加新记录。如果有一个已有的
数据表,就可以使用“使用追加记录”将这个有数据的表追加到当前表中,不过执行该操作要求这二个表的结构完全相同。
图4-12 添加字段界面
第五章 系统主要功能模块的创建
按照前面的分析,我们将管理系统的逻辑模块统一到6个实际功能模块中,如图所示。切换面板用于切换不同的操作,每项具体操作结束后,都会返回到切换面板。
图5-1 系统功能模块图
下面对各模块的作用进行说明:
(1) 设备入库模块:添加设备到库存中。 (2) 设备出库模块:将设备从库存取出并记录。 (3) 设备还库模块:将归并到库存的设备保存到数据库。 (4) 设备需求模块:记录各部门的设备需求。 (5) 设备采购模块:记录要采购的设备。
(6) 切换面板:用于切换到不同的操作,如设备入库、设备出库等。 (7) 显示报表:显示库存过多、库存不足等信息。
下面就按照功能模块图来设计该仓储管理系统。首先在Visual FoxPro6.0中建立一个项目管理器,以便管理本系统中所有的数据,命名为“仓储管理”。一下操作均在该项目管理器中进行。以下所有表单的“desktop ”属性全部设为“.T.-真”。
5.1 功能选择界面的设计
这一模块的主要功能是作为系统主界面为进入本系统不同功能界面选择提供一个接口,使用一个窗口来实现这一功能。
首先建立一个表单,设取“caption ”属性为“仓储管理”。在该表单上添加6个“按
钮”控件,它们的“caption ”属性分别为“设备入库”,“设备出库”,“设备还库”,“部门需求”,“设备采购”,“显示报表”。然后在表单上添加“图象控件”,并设其“stretch ”属性为“2-strech (扩展)”,“pictrue ”属性为图片所在的位置,本例中为“c:\仓储管理\001.jpg”。
※ 在“comm.and1”(“caption ”属性为“设备入库”) 控件的“click ”事件中添加如下代码:
do form 设备入库表 thisform.release
※ 在“comm.and2”(“caption ”属性为“设备出库”) 控件的“click ”事件中添加如下代码:
do form 设备出库表 thisform.release
※ 在“comm.and3”(“caption ”属性为“设备还库”) 控件的“click ”事件中添加如下代码:
do form 设备还库表 thisform.release
※ 在“comm.and4”(“caption ”属性为“部门需求”) 控件的“click ”事件中添加如下代码:
do form 部门需求表 thisform.release
※ 在“comm.and5”(“caption ”属性为“设备采购”) 控件的“click ”事件中添加如下代码:
do form 设备采购表 thisform.release
※ 在“comm.and6”(“caption ”属性为“显示报表”) 控件的“click ”事件中添加如下代码:
do form 显示报表 thisform.release
※ 在“form1”的属性里选择“autocenter ”设置为“.T.-真”,同时将“backcolor ” 设置为“255,255,255”,“windowstate ”设置为“0-普通”。
添加“form1”的“init ”事件的代码如下: set directory to c:\仓储管理\
*将程序的默认的路径指向资源所在的文件夹 该表单设计结果如图所示:
图5-2 表单设计结果图
5.2 设备入库模块的设计
在设备入库模块中将实现设备数据的添加和入库等功能。本模块设计采用先用向导生成表单,然后修改的方法实现。
首先在项目管理器的文档视图下单击“新建”按钮,
图5-3 项目管理器
图5-4
图5-5
在接下来的向导中,“数据库和表”选择“仓储管理”以及“设备入库表”,这是前面定义好的数据库和表。
由于设备入库需要显示所有的字段,因此我们将可用字段全部移至选定字段,如图所示,单击“下一步”按钮,
图5-6
在表单样式中,选择“阴影式”以及“图片按钮”,如图所示。左上角的窗口提供了表单样式的预览功能,图片按钮和文本按钮的区别在于显示的时候是以图片来表达功能还是文字来表达,实现功能的函数没有区别。选择“上一步”按钮可以跳回上一个界面对表单中显示的字段进行修改。
图5-7
单击“下一步”按钮后,向导进行到“步骤3-排序次序”,如图所示,选择“设备号”为索引,并选择升序排列。最后预览表单,核对每项的设置,完成表单向导,如图所示。
图5-8
图5-9
值得注意的是,在结束表单向导前,可选择“保存表单以备将来使用”,“保存并运行表单”,或者“保存表单并用表单设计器修改表单”。由于Visual FoxPro6.0向导生成的表单只具有普遍性,对于当前设计的仓储管理系统还需要一定的改变,因此以我们选择“保存表单并用表设计器修改表单”。
单击“完成”按钮系统提示保存表单,将表单保存为“设备入库表.scx ”,存于c:\仓储管理目录下。然后打开表单修改器生成的表单,如图所示。
在修改BUTTONSET 时,可以通过属性窗口的下拉列表选定单个按钮,调整其位置和其它属性。如图所示。
图 5-10
图 5-11
根据功能需求,把“cmdprint ”、“”cmdexit 、“cmdDelete ”和“cmdedit ”的Visible 属性都设为“.F.-假”。添加2个命令按钮,Caption 属性分别设为“修改库存”和“回主界面”。
※ 在“回主界面”命令按钮的click 事件中添加代码如下: thisform.release do form 仓储管理
※ 在修改库存命令按钮的click 事件中添加代码如下: select 现有库存表
getid=thisform.设备号1.text1.value set order to 设备号 seek getid if found()
getnum=thisform.入库数量1.text1.value
update 现有库存表 set 现有库存=(现有库存+getnum) where (设备号=getid) else
insert into 现有库存表 (设备号, 现有库存, 最大库存, 最小库存);
value (thisform.设备号1.text1.value,thisform. 入库数量1.text1.value,1000,10) endif
insert into 操作日志表(操作员, 操作内容, 操作时间);
values (thisform.采购员1.text1.value,' 设备入库',date()) 保存后运行表单,界面如图所示:
图
5-12
图5-13
5.3 设备出库模块的设计:
在设备出库模块中将实现设备出库数据的添加和修改库存等功能。该模块的功能和设备入库的功能相似。具体操作可以参考设备入库模块的设计,设计最终的界面如图所示。
图 5-14
在表单的左上角加上了显示当前时间的功能,添加标签label2的caption 属性设为“当前时间”;添加label3的caption 属性设为空;为当前表单的label3init 事件添加如下代码:
this.caption=dtoc(date())
该模块具体实现过程不再一一详细说明。下面列出了表单中所用到控件的属性值。 (1) Form1控件的主要属性: 表5-1
(2) ButtonSet1控件的主要属性: 表5-2
下面是设备出库表单中“修改库存”命令按钮的click 事件的代码: select 现有库存表
*先在该表单的数据环境中添加现有库存表 getid=thisform.设备号1.text1.value set order to 设备号 seek getid
*在现有库存表中查找设备号等于getid 的纪录 if found()
getnum=thisform.出库数量1.text1.value update 现有库存表;
set 现有库存=(现有库存-getnum) where (设备号=getid) *如果库存表中有该项设备,则更新库存表 insert into 操作日志表(操作员, 操作内容, 操作时间); values (thisform.领取人1.text1.value,' 设备出库',date()) else
messagebox("出错",1," 错误的设备号") endif
5.4 设备还库模块的设计
在设备还库模块中将实现设备还库数据的添加和修改库存等功能,按照前面介绍的步骤设计设备还库表。
设备还库表所可能用到的控件的属性如表所示:
(1)Form1控件的主要属性: 表5-3
(2)ButtonSet1控件的主要属性: 表5-4
下面是设备还库表中“修改库存”命令按钮的click 事件的代码: select 现有库存表
*先在该表单的数据环境中添加现有库存表 getid=thisform.设备号1.text1.value set order to 设备号 seek getid
*在现有库存表中查找设备号等于getid 的纪录 if found()
getnum=thisform.归还数量1.text1.value update 现有库存表;
set 现有库存=(现有库存-getnum) where (设备号=getid) insert into 操作日志表(操作员, 操作内容, 操作时间); values (thisform.归还人1.text1.value,' 设备还库',date()) *如果库存表中有该项设备,则更新库存表, 同时更新操作日志 else
messagebox("出错",1," 错误的设备号") *如果没有该设备号则报告出错信息 endif
保存后运行表单,可得到如图所示的设备还库表。
图 5-15
5.5 设备需求模块的设计
在设备需求模块中将实现设备需求数据的添加和保存日志等功能。首先通过Visual Foxpro 的表单向导生成所需的设备需求表单,选择部门需求表的所有可用字段,然后为保持程序风格的一致,继续采用表单的阴影式和图片按钮的风格。在“步骤3-排序次序”时。选择设备号的升序排列。最后单击“完成”按钮,把表单保存在“c:\仓储管理\”目录下,名为“设备需求.scx ”。
通过表单向导生成的表单如图所示,我们可以调节控件的位置,修改表单中控件的属性,最后结果所下图所示:
图5-16 相关的属性设置如下图所示:
(1)Form1控件的主要属性: 表5-5
(2)ButtonSet1控件的主要属性: 表5-6
在表单设计器中,双击“保存日志”命令按钮。添加click 事件代码如下: insert into 操作日志表 (操作员, 操作内容, 操作时间) values (username,'设备需求',date())
双击回主界面命令按钮,添加click 事件代码如下: thisform.release do form 仓储管理 保存对表单所作的修改。
5.6 设备采购模块的设计
在设备采购模块中将实现设备采购数据的添加和保存日志等功能。 (1)由数据表生成表单
通过Visual Foxpro的表单向导,生成设备采购计划表单。在选择数据库和表时,选择仓储管理数据库和设备采购计划表。在选择字段时,选择所有可用字段,选择阴影式和图片按钮作为设备采购计划表的样式。选择计划采购时间的升序排列作为设备采购计划表的索引。
(2)为窗体修改和添加命令按钮
添加2个命令按钮“保存日志”和“回主界面”。设置表单中控件的属性。下面的表列出了需要修改的控件的名称以及属性值。
(1)Form1控件的主要属性: 表5-7
(2)ButtonSet1控件的主要属性: 表5-8
(3)为按钮添加click 事件代码:
在表单设计器中,双击保存日志命令按钮。添加click 事件代码如下:
insert into 操作日志表 (操作员, 操作内容, 操作时间) values (username,"设备需求",date())
*把设备需求写入操作日志表中
双击回主界面按钮,添加click 事件代码如下: thisform.release *释放本表单 do form 仓储管理 *运行仓储管理界面
保存对表单所作的修改,表单运行效果如图所示:
图 5-17
5.7 显示报表模块的设计
在该模块中,一共要显示3个报表,分别提供库存不足,库存过多和操作日志等信息。
1. 设计显示报表表单
在项目管理器的文档视图下选择“新建”,然后选择新建表单,如图所示。
图5-18
图5-19
在如图所示的空白表单中添加一个页框控件,并按照下表设置页框的属性,同时在数据环境里添加现有库存表和操作日志表
。 表5-9
分别为每个page 添加一个表格grid1,如图所示:
图 5-20 库存过多表
图5-21 库存不足表
图5-22 操作日志表
设置表格控件的属性,如表所示: grid1控件的主要属性表:
表5-10
2. 代码设计
定义Pageframe1.Page1.grid1的init 事件 运行“显示报表”表单,界面所图所示: local Custs1
select 设备号, 最大库存, 现有库存 from 现有库存表 where (现有库存>最大库存) into cursor Custs1
thisform. 页框. 库存过多. 库存过多表.recordsource="Custs1" 定义Pageframe1.Page2.grid1的init 事件 local Custs2
select 设备号, 最小库存, 现有库存
from 现有库存表 where (现有库存
thisform. 页框. 库存不足. 库存不足表.recordsource="Custs2" 定义Pageframe1.Page3.grid1的init 事件 local Custs3
select * from 操作日志表 into cursor Custs3
thisform. 页框. 操作日志. 操作日志表1.recordsource="Custs3" 运行“显示报表”表单,界面如图所示。
图5-23
5.8 开发中的难点和解决技巧
Visual FoxPro6.0中的向导包括表向导、数据库向导、表单向导、查询向导、报表向导、标签向导、邮件合并向导、数据透视表向导、导入向导、文档向导、安装向导、升迁向导、应用程序向导、WEB 发表向导等、我们合理应用向导可以在编程中提高效率。
为了快速开发高效的软件,本设计中的多数表单的设计采用利用表单设计向导生成,然后在生成的表单的基础上修改。
数据库软件用来管理数据的优势在于可以迅速从成千上万的数据中找到我们需要的数据,而查询功能的设计也是数据库应用软件设计过程中的重点也是难点。本设计过程中利用表单向导强大的功能,轻松完成了数据的查询功能。而且表单向导生成的查询功能非常强大,完全可以满足数据库应用软件的需要。
第六章 性能测试与分析
软件开发过程是一个自顶向下,逐步细化的过程,首先在软件计划阶段定义了软件的作用域,然后进行软件需求分析,建立软件的数据域、功能和性能需求、约束和一些有效性准则。接着进入软件开发,首先是软件设计,然后在把设计用某种程序设计语言转换成程序代码。而测试过程则是依向反的顺序安排的自顶向上,逐步集成的过程。低一级测试为上一级测试准备条件。
任何工程产品都可以使用以下两种方法之一进行测试(黑盒、白盒):
1.已知产品的功能设计规格,可以进行测试证明每个实现了的功能是否符合要求。 2.已知产品的内部工作过程,可以通过测试证明每种内部操作是否符合设计规格要求,所有内部成分是否已通过检查。
程序经连编项目和连编可执性文件,系统未发生报错信息,系统工作正常。运行本仓储管理系统的各个功能摸块,各模块的编、查、删、改功能都具备,界面显示正常。输入一组数据在入库模块,出库模块,还库模块,需求模块,采购模块。检查各个模块间的关联状况,看是否在相应模块的数据表中有所体现。
由于在编写程序时,或者在数据库的逐步更新扩大中,难免会有一些手误,这都在以后的系统运行中才能体现出来。所以在后期的系统测试中才能不断的发现问题所在,而且要不断的测试,才能发现该系统是否稳定可靠,而且在今后的运行中逐步的进行系统的维护以及测试,才能不断的发现隐藏的新问题,才能将使这个仓储管理系统成功。