《仓库管理系统毕业论文.doc》由会员分享,可在线阅读,更多相关《仓库管理系统毕业论文.doc(35页珍藏版)》请在三一文库上搜索。
1、 仓库管理系统的设计与实现仓库管理系统的设计与实现-(-(数据库设计和信数据库设计和信 息息, ,入库管理部分入库管理部分) ) 摘要摘要 仓库管理系统是为了实现企业产品管理的系统化、规范化和自动化,从而提高企业 管理效率而设计的。它完全取代了原来一直用人工管理的工作方式,避免了由于管理 人员的工作疏忽以及管理质量问题所造成的各种错误,为及时、准确、高效的完成仓 库管理提供了强有力的工具和管理手段。仓库管理系统是一个中小型数据库管理系统, 它界面美观、操作简单、安全性高,基本满足了仓库管理的要求。整个系统由基本信 息管理、入库管理、库存管理、查询管理等模块组成。 本系统是在以 SQL SERV
2、ER 2000 作为后台数据库,以 Visual C+ 6.0 为编程语言 来开发的。仓库管理系统在运行阶段,效果好,数据准确性高,提高了工作效率,同 时也实现了仓库管理计算机化。本文重点讨论数据库的设计,应用和基本信息管理模 块,入库管理模块的设计与实现。 关键字关键字:仓库;管理系统;数据库 The design and realization of the Administrative System Of The Warehouse (The design of the database and information management and entering warehouse
3、management ) Abstract The administrative system of the warehouse is designed for realizing the systematization , standardization and automization of enterprises products management and improving efficiency of enterprises management. It completely replaces the working way of artificial management ori
4、ginally , 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 , high-efficient . The administrative system of the warehouse is a mediu
5、m and small-scale database management system,it has not only beautiful interface, but also the high security and the simply operation , and meet the demand for storehouse management basically. the whole system is consist of molds of basic information management, entering warehouse, storage managemen
6、t and inquiry management,etc. The Warehouse administrative system is designed with regarding SQL SERVER 2000 as the backstage database and regarding Visual C+ 6.0 as programming language . The administrative system is effectual, the high data accuracy during the course of operating , improves workin
7、g efficiency and realizes computerization for storehouse management at the same time . This thesis focuses on the research of data bases design, application, management of basic information as well as the design and realize of the entering warehouse management. KeyKey word:word: The Warehouse ;Admin
8、istrative System; The Database 目目 录录 第一章 仓库管理系统概述 .1 第二章 系统可行性分析 .2 2.1 课题研究现状.2 2.2 需求分析 2 2.2.1 可行性需求分析.2 2.2.2 业务需求分析.3 2.2.3 功能需求分析.4 第三章 系统设计 .5 第四章 数据库设计方案 .6 4.1 数据库需求分析.6 4.2 数据库概念模型设计.6 4.3 数据库逻辑模型设计.8 4.4 具体逻辑模型设计10 4.5 物理结构设计11 4.6 数据库连接实现 .15 第五章 系统主窗体设计 17 第六章 基本信息管理模块设计 19 第七章 入库管理模块设计
9、 23 7.1 商品入库 .23 7.2 商品退货 .26 第八章 设计总结 29 参考文献 .30 致 谢 .31 0 第一章第一章 仓库管理系统概述仓库管理系统概述 在市场竞争的微利时代,建立科学,规范,高效管理制度成为了企业管理的当务之急.一 个企业在市场中是否具有强有力的竞争力,除了要看企业的人才,资金,技术,产品之外, 更重要的一项,就是要看企业是否有一个良好的管理体制.在企业管理工作中,仓库管理 工作更是管理中的重中之重.通过对企业仓库信息的管理与统计,为企业积累真实,有效 的数据,通过对这些数据的分析与研究,对企业各方面做出相应的调整,以提高企业的管 理工作效率,使企业走上良性发
10、展道路.进一步促进仓管部门规范化管理,提高管理效 率和水平;能够方便快捷地将原来分散的货物信息进行有机地组织和管理,及时提供 可靠信息,为企业的科学化决策提供重要依据. 本系统专为企业仓库管理而设计的系统,可以直接把它运作在企业的内部服务器上, 帮助管理企业和实现真正的库存管理无纸化和自动化。仓库管理系统柔合了基本信息 管理,入库管理,库存管理,库存查询的功能,同时还具备了不同用户权限设定的功 能,该系统一般都是操作简单,功能强大,易于安装维护和升级,同时加上人性化的 设计,能为库存管理带来极大的方便和效率的提高。 这里来讨论一下管理信息系统的相关介绍,管理信息系统是一个利用计算机软硬件 资源
11、,手工作业,分析、计划、控制和决策模型以及数据库的人-机系统。它能提供信 息支持企业或组织的运行、管理和决策功能。 管理信息系统在企业中的应用存在三个要素,这就是人、计算机和数据。在计算 机软件技术中,人机界面已经发展成为一个重要的分支。 MIS 人机界面设计一般遵循以下一些基本原则:以通信功能作为界面设计的核心, 界面必须始终一致,界面必须使用户随时掌握任务的进展情况,界面必须能够提供帮 助,界面友好、使用方便,输入画面尽可能接近实际,具有较强的容错功能 管理信息系统的开发过程一般包括系统开发准备、系统调查、系统分析、系统设 计、系统实现、系统转换、系统运行与维护、系统评价等步骤。根据开发系
12、统的大小、 复杂、投入、方式、方法等因素的不同,各步骤的要求和内容也不同,用户需要根据 实际情况进行取舍和计划。在这里,系统维护与评价阶段是系统生命周期中的最后一 个阶段,也是时间最长的一个重要阶段,就像汽车的维护工作好可以延长汽车的使用 寿命和提高其使用效率一样,系统维护工作的好坏可以决定系统的生命周期的长短和 仓库管理系统的设计与实现-(数据库设计和信息,入库管理部分) 1 使用效果。 第二章第二章 系统可行性分析系统可行性分析 2.1 课题研究现状 库存管理对企业来说是一项繁琐复杂的工作,每天要处理大量的单据数据。为及 时结清每笔业务,盘点库存和货物流动情况,保证企业生产用料以及货物安全
13、,库管 人员要花费大量人力物力和时间来作数据记录统计工作。 在世界发达国家,库存管理的计算机化水平已经很高了,尽管我国的生产企业在 这方面也有了很强的意识和长足的进步,但仍存在这样、那样的一些问题。 表现之一:有的企业单位的库存管理部分目前仍为手工、半手工操作。 表现之二:有的单位的库存管理部已上了微机,但对微机的利用效率极低,有的 在用它打游戏,有的仅把它当计算器或打字机来用。 表现之三:有的企业单位既有了微机同时也有了库存管理软件,但硬件上去了, 软件上不去。 国内其他相似的仓库管理系统例如用友 U8 的进销存管理系统,基本的功能都已经 可以实现了,但是使用上也有点复杂,本系统是把主要的功
14、能都实现出来。本系统是 实现了,结合了手动加自动的方式实现数据录入与处理的方便和智能化,界面采用自 定义工具栏和菜单方式使得程序界面更加美观和个性化。融合先进的管理理念,创新 的关联技术:使得模块关联、更好的交换信息;强大的工作流引擎应用于各个模块。 模块本身就运用目前比较流行的 SQL2000 server 和 Visual C+ 6.0 技术,紧跟 潮流又不拘于现状。在模块开发过程中大量使用集合的思想,实现代码的简洁和易读 性,能为以后的代码调试和修改升级带来方便。 2.2 需求分析 2.2.12.2.1 可行性需求分析可行性需求分析 本设计从一下三个方面进行可行性研究: 1. 技术可行性
15、。本设计“仓库管理系统”是为企业仓库管理人员开发的。鉴于本人已 经有了 Visual C+ 6.0 和 Sql Server 2000 开发基础,而且通过 2 年的学习和实践, 对开发管理信息系统又有了新的认识和提高,使自己在开发管理信息系统方面的技术 2 更加成熟。由于本设计最重要体现的是实用性,所以,通过大量的社会调查和分析, 结合自己现有的技术水平加上导师的指导,还是能按期完成本毕业设计。 2. 经济可行性。成本方面:由于本毕业设计属于计算机科学(本科)教学的最后一个环 节,所以人力消耗免费,资源学校提供,指导老师义务指导。所以成本计算只需计算 开发期间开发者的生活消费,学校资源的消耗,
16、所以开发本软件的成本是非常低的。 3. 操作可行性。本软件是为企业仓库的管理者开发的,所有本软件的用户对象是企业 仓库的工作人员,由于本软件要设计成友好的界面,写出详细的使用说明,用户只需 懂得简单的计算机操作知识,就能自由应用本软件。 2.2.22.2.2 业务需求分析业务需求分析 操作员进入登录界面,填入用户名和密码,如果都正确就自动转到主界面。操作员可 以通过如下方式进入相应的功能界面:工具栏;菜单栏和左边的树型导航条。进入基 本信息管理模块,可以对操作员信息,商品信息,库存信息和供应商信息进行添加, 修改,查询,删除操作。进入入库管理模块,可以增加入库信息和退货信息,加上智 能窗口弹出
17、,操作方便,可以逼真得模仿真实操作流程。 在此值得一提的是,由于本系统是分权限的,一般用户只能使用本系统的一部分 功能,所以在一般用户里,系统所给出的功能也相当有限,以下图 2.1 也恰恰说明了这 一点: 仓库管理系统的设计与实现-(数据库设计和信息,入库管理部分) 3 2.2.32.2.3 功能需求分析功能需求分析 系统开发的总体任务是实现各种信息的系统化、规范化和自动化。系统功能分析 是在系统开发的总体任务的基础上完成。本仓库管理系统需要完成功能主要有: 基本信息管理:包括操作员管理,商品信息管理,库存信息管理,供应商信息管理 入库管理:包括商品入库,入库退货 库存管理:包括库存商品打印,
18、库存盘点,库存调拨,库存上下限管理 查询管理:包括商品入库查询,入库退货查询,报损|报益查询 这 4 大功能已经可以完成了企业的仓库管理的业务流程了,具有很强的易操作性和易 维护性。 图 2.1 仓库管理系统业务流程图 4 第三章第三章 系统设计系统设计 仓库管理主要是企业各种商品的管理。进货时经检查合同确认为有效托收后,进 行验收入库,填写入库单,进行入库登记。企业各个部门根据需要提出产品请求,计 划员根据整个企业的需求开出产品出库单,仓库管理人员根据出库单核对发放产品。 仓库管理的特点是信息处理量比较大,所管理的产品种类繁多,而且由于入库单、出 库单、盘点单等单据发生量特别大,关联信息多,
19、查询和统计的方式各不相同。因此 在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递;单据、 报表种类繁多,各个部门管理规格不统一等问题。 在本系统的设计过程中,为了克服这些困难,满足计算机管理工作的需要,我们 采取了下面的一些原则。 统一各种原始单据的格式,统一报表的格式。 删除不必要的管理冗余,实现管理规范化、科学化。 程序代码标准化,软件统一化,确保软件的可维护性和实用性。 界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。 建立操作日志,系统自动记录所进行和各种操作 图 3.1 显示了本系统的主要功能结构 仓库 管理 系统 基本 信息 管 理 库存 管理
20、 查询 管理 入库 管理 操作 员管 理 商品 信息 管理 库存 信息 管理 供应 商信 息管 理 商品 入库 入库 退货 商品 入库 查询 入库 退货 查询 报损| 报益 查询 库存 商品 打印 库存 盘点 库存 调拨 库存 上下 限管 理 图 3.1 系统功能模块图 仓库管理系统的设计与实现-(数据库设计和信息,入库管理部分) 5 第四章第四章 数据库设计数据库设计方案方案 4.14.1 数据库需求分析数据库需求分析 用户的需求具体体现在各种信息的提供、保存、更新和查询,这就要求数据库结 构能充分满足各种信息的输出和输入。收集基本数据、数据结构以及数据处理的流程, 组成一份详尽的数据字典,
21、为后面的具体设计打下基础。 仔细分析调查有关仓库管理信息需求的基础上,得到图 4.1 所示的本系统所处理 的数据流程。 仓库现有库 存 汇总、处理 各种单据 产品入库产品调拨报表打印 图 4.1 系统数据流程图 4.24.2 数据库概念模型设计数据库概念模型设计 根据上面的设计规划出以下 E-R 图,如图 4.2,4.3 以及图 4.4 的实体间联系图: tb_cancelinstock_main cancelIDprovider operater tb_providerinfo providername 提供 tb_cancelinstock_sub cancelIDmerchandiseI
22、Dstockname tb_merchandiseinfo IDstockname tb_storageinfo storagename tb_operator name Level E_mail 1 n 存放 1 1 n n n n 1 1 1 n 1 n 图 4.2 出库管理相关 E-R 图 6 tb_instock_sub instockidmerchandiseIDstockname tb_instock_main IDprovider operator tb_merchandisestorage merchandiseID storagename lowerlimit tb_stor
23、ageinfo storagename 保存 tb_merchandiseinfo IDmemo 存储 n nn n n n n 11 1 1 1 1 1 图 4.3 入库管理相关 E-R 图 现有库存 入库 调拨 报损|报 益 盘点 退货 图 4.4 实体与实体间的关系 把 E-R 图转换为关系模型如下(黑色字体为主键,下划线为外键): tb_operator(name,password,level) tb_providerinfo(providername,artificialperson,principal,phone,addr,web,e_mail) tb_check_sub(chec
24、ked,merchandiseid,sum) tb_check_main(checked,storage,principal,checktime,checkspec,memo) tb_storageinfo(storagename) tb_instock_sub(instockid,merchandiseID,unitPrice,numbers,rebate,paymoney,stockname) 仓库管理系统的设计与实现-(数据库设计和信息,入库管理部分) 7 tb_cancelinstock_sub(CancelID,merchandiseID,unitPrice,numbers,reba
25、te,paymoney,stockname) tb_cancelinstock_main(CancelID,provider,operator,rebate,sumtotal,paymoney,factmoney,intime) tb_merchandisestorage(merchandiseID,storagename,Storagenum,upperlimit,lowerlimit) tb_instore_main(ID,provider,operator,rebate,sumtotal,paymoney,factmoney,intime) tb_merchandiseinfo(ID,n
26、ame,spec,shortname,defaultprice,manufacturer,memo) 然后根据关系模型,在 SQL 2000 中设计出表间的关系图,如图 4.5 所示: 图 4.5 系统数据库关系图 4.34.3 数据库逻辑模型设计数据库逻辑模型设计 在介绍本系统的逻辑模型设计过程之前,我们先来看看下面图 4.6 和图 4.7 所示: 8 应用 1应用 2应用 3应用 4 子模式 1子模式 2子模式 3 213 (全局逻辑) 模式 物理模式 OS 数据库 DBMS 用户 外模式 外模式/模式映象 模式 模式/内模式映象 内模式 图 4.6 数据库的三级模式和二级映象 用户 1
27、视图 1视图 2视图 3视图 4 基表 2基表 1基表 3基表 4基表 5基表 6 外模式 模式 存储文件 2存储文件 3存储文件 4存储文件 5 存储分区 1存储分区 2存储分区 3外模式 图 4.7 SQL 数据库对 3 级模式的支持 存储文件 6存储文件 1 仔细对上面两图分析可以得出从基本项构思实体联系模型四条原则:(如下:) 原则 1:(确定实体):能独立存在的事物,例如人、物、事、地、团体、机构、活动、 事项等等,在其有多个由基本项描述的特性需要关注时,就应把它作为实体; 原则 2:(确定联系):两个或多个实体间的关联与结合,如主管,从属,组成,占有, 作用,配合,协同等等,当需要
28、予以关注时,应作为联系。联系通常是某类行为动作, ERD 中关注的是其状态与结果而非其过程; 原则 3:(确定属性):实体的属性是实体的本质特征。实体应有标识属性(能把不同 个体区分开来的属性组) ,并指定其中一个作为主标识; 原则 4:(一事一地):信息分析中得到的基本项要在且仅在实体联系图中的一个地方 用户 2 用户 3 仓库管理系统的设计与实现-(数据库设计和信息,入库管理部分) 9 作为属性出现。 4.44.4 具体逻辑模型设计具体逻辑模型设计 具体逻辑模型设计就是把一般关系模型转换成具体 DBMS 支持的逻辑结构。随着业 务由人工处理转变到以计算机系统及其网络为主要工具的人机结合处理
29、,特别是数据 从人工资料转变到以计算机系统中的数据库存储为主,计算机与人的互补性必然带来 业务流程的质的变化。例如,计算机不能自动地象人那样发现并更正输入数据中的错 误,所以要把好入口关,加强数据的输入校验;但只要输入数据是正确的,程序没有 错误,计算机处理数据时就不会象人那样因为疏忽、疲劳、大意而出现错误,所以不 需要象人工处理那样对中间结果不断地进行核对;等等。在数据库具体逻辑结构设计 基本完成后,就必须考虑以数据库为中心的人机结合的新的业务流程及其所带来的影 响 现在需要将在上面的数据库概念结构转化为 Sql Server 2000 数据库系统所支持 的实际数据模型,也就是数据库的逻辑结
30、构。 仓库管理信息系统数据库中各个表的设计结果如下面表格所示。每个表所示在数 据库中的一个表。我根据上面所说的四条原则,按照如下方法设计数据库。 本系统使用了 11 张数据表,分别为操作员信息表(tb_operator),供应商信息表 (tb_providerinfo),库存盘点明细表(tb_check_sub),库存盘点主表(tb_check_main), 库存信息表(tb_storageinfo),入库明细表(tb_instock_sub),入库退货明细表 (tb_cancelinstrock_sub),入库退货主表(tb_cancelinstock_main),商品库存表 (tb_mer
31、chandisestoage),商品入库主表(tb_instore_main),商品信息表 (tb_merchandiseinfo)。 表一表一 库存信息表库存信息表(tb_storageinfo) 表二表二 操作员信息表操作员信息表(tb_operator) 10 表三表三 供应商信息表供应商信息表(tb_providerinfo) 表四表四 商品信息表商品信息表(tb_merchandiseinfo) 表五表五 商品库存表商品库存表(tb_merchandisestoage) 表六表六 商品入库主表商品入库主表(tb_instore_main) 表七表七 入库明细表入库明细表(tb_ins
32、tock_sub) 表八表八 库存盘点主表库存盘点主表(tb_check_main) 表九表九 入库退货明细表入库退货明细表(tb_cancelinstrock_sub) 表十表十 入库退货主表入库退货主表(tb_cancelinstock_main) 表十一表十一 库存盘点明细表库存盘点明细表(tb_check_sub) 4.5 物理结构设计 仓库管理系统的设计与实现-(数据库设计和信息,入库管理部分) 11 要实现物理结构设计,首先要了解物理结构设计的大体情况和一般方法,下面的两 段文字详细介绍了数据库的物理结构设计。 数据库实际是存储在物理设备上的 DB 在物理设备上的存储结构与存取方法
33、称为 DB 的物理结构,它依赖于给定的计算机系统。为一个给定的逻辑数据模型选取一个最适 合应用要求的物理结构的过程,就是 DB 的物理设计。关系数据库中,一个关系通常就 对应一个操作系统的数据文件存储,一般不必太多考虑其存储结构。 存取方法是快速存取 DB 中数据的技术。DBMS 一般都提供多种存取方法。常用的存 取方法有三类:第一类是索引方法,目前主要是 B+树索引方法;第二类是聚簇 (Cluster)方法;第三类是 HASH 方法。B+树索引是 DB 中的经典存取方法,使用最普 遍。在关系数据模型中,特别强调索引存取方法的选择:根据应用要求确定对关系的 哪些属性建立索引、哪些属性建立组合索
34、引、哪些索引要设计为唯一索引等。在 VFP 中,主索引是通过数据库表结构定义或修改中指定主码来建立与维护的;候选索引、 唯一索引、普通索引可以通过索引命令建立与管理的。在物理设计中,通过在逻辑设 计中得到的关系框架下增加索引行来指明:主码行中指定的一个字段为简单主码,或 指定多个字段组成复合主码,要由其组成主索引表达式在数据库表结构定义中建立主 索引;外码行中的单外码字段上直接建立外码普通索引,用同号数字标注的多个字段 组成复合外码,这些字段组成索引表达式建立外码普通索引;索引行中,单字段索引 可直接在其中标明索引类型,多字段复合索引则用同一数字标注,然后在说明中的索 引类中用同一编号来说明该
35、复合索引的类型与索引表达式。 必须考虑数据库的安全性与完整性设计;为了进行本系统数据库的安全性与完整性 设计,下面先分别给出数据库的安全性与完整性设计的一般方法: 1DB 安全性设计 DB 安全性设计主要在应用程序模块设计中结合完成。应包括如下几方面: (1)用户标识与鉴别(Identification GetPrivateProfileString(“OPTION“, “DataBase“, “, m_pzDataBase, sizeof(m_pzDataBase), “./Login.ini“) ; GetPrivateProfileString(“OPTION“, “UserId“, “
36、, m_pzUser, sizeof(m_pzUser), “./Login.ini“) ; GetPrivateProfileString(“OPTION“, “PassWord“, “, m_pzPassWord, sizeof(m_pzPassWord), “./Login.ini“) ; strAdoConn.Format(“driver=SQL Server;SERVER=%s;UID=%s;PWD=%s;DATABASE=%s“,m_pzServer, m_pzUser, m_pzPassWord, m_pzDataBase); 记录集的连接是通过在 CMainFrame 的 On
37、Timer 函数加上如下代码: m_pCon.CreateInstance(“ADODB.Connection“); m_pCon-ConnectionString = (_bstr_t)pApp-strAdoConn; m_pCon-Open(“,“,“,-1); m_pRs.CreateInstance(“ADODB.Connection“); 该连接方式使得每隔一秒系统就调用连接数据库记录集一次,实现每时每刻都处于准 备状态,并设置 m_pCon,m_pRs 和 m_pRs1 为全局变量,使得其他窗口都可以方便得调 用这几个变量,不用每次都重新加载数据库连接。 16 第五章第五章 系统主
38、窗体设计系统主窗体设计 该系统主窗体采用分隔条 CSplitter 类把 CMainFrame 主框架分割成 2 列,实现分割条 分割主框架的方法为: 修改 CMainFrame 类的 OnCreateClient 函数为如下代码 if (!m_wndSplitter.CreateStatic(this, 1, 2) /分为一行两列 return FALSE; if (!m_wndSplitter.CreateView(0, 0, RUNTIME_CLASS(CLeftView), CSize(200, 100), pContext) |!m_wndSplitter.CreateView(0,
39、 1, RUNTIME_CLASS(CAaaView), CSize(100, 100), pContext) 左边列为重载 CTreeViewl 类的 CLeftView 类,在里面加入了各个功能快捷项为树型图 的各个子项,右边列为 View 视图,在里面加入背景图片。 树型各个子项的实现方法为: m_img.Add(AfxGetApp()-LoadIcon(IDI_ICON6);/0 ctr.SetImageList( root=ctr.InsertItem(“仓库管理“,0,0); /根节点 CString name4=“基本信息管理“, “入库管理“, “库存管理“, “查询管理“;
40、/二级节点 CString strThree45 = “操作员管理“, “商品信息管理“, “库存信息管理“, “供应商信息管理“, “商 品入库“, “入库退货“, “库存商品打印“, “库存盘点“, “库存调拨“, “库存上下限管理“,“商品入库查询“, “ 入库退货查询“, “报损|报益查询“; for(int i=0;iGetDC(); memdc.CreateCompatibleDC(pDC); memdc.SelectObject( pDC-BitBlt(0,0,rc.Width(),rc.Height(), 改系统主窗体采用自定义菜单和自定义工具栏方式,使得整个程序界面变得美观。
41、使 用 CMyCoolMenu 类重载 CMenu 类,在里面重新定义了很多种漂亮的菜单背景效果。工 具栏使用 CReBar 类为底层,在 CReBar 类上面加载 CToolBar 类,再在 CToolBar 类加 载冷,热图标和资源 ID 号,这样可以做出带有背景图片的工具栏效果。 根据以上的方法,我们可以设计出如图 5.1 的系统主窗口,该界面符合用户的要求, 仓库管理系统的设计与实现-(数据库设计和信息,入库管理部分) 17 即能够方便,快捷地找到需要进行的操作,而且界面又简单,漂亮。 图 5.1 系统主界面 18 第六章第六章 基本信息管理模块设计基本信息管理模块设计 基本信息模块包
42、括操作员管理,商品信息管理,库存信息管理和供应商信息管理几个 部分。 这几个功能的主窗口都是使用了重载 CTabCtrl 类的 CTabSheet 类来加载这四个功能的 窗口,CTabSheet 类可以实现点击主界面的树型视图的图标可以显示相应的选项框。因 为这四个功能的实现差不多,所以介绍其中操作员管理功能就行了。 基本信息管理模块采用了动态数组 vector 变量来实现数组的动态输入,然后把数据库 的信息放到动态数组变量里面,到时引用数据库信息只要读入动态数组变量就可以了, 这样可以加快系统的运行速度。基本信息管理模块的各个操作数据流程图如图 6.1,6.2, 6.4, 6.6 所示,操作
43、截图以下给出了。 查询记录: 主要 SQL 代码为:strsql.Format(“select name as userid, password,level as lev from tb_operator “); 读取数据库 信息 遍历数据库,存 入动态数组 完成 操操作作名名名名称称, 密密码码,级级别别动动态态数数组组的的第第一一条条记记录录 tb_operator 显示信息 图 6.1 查询记录数据流图 增加记录: 主要 SQL 语句为:strsql.Format(“insert into tb_operator(name, password, level) values(%s, %s,
44、 %d)“, strName, strPass, iflag) 输入信息 判断信息有 效性 判断用户名是 否存在 插入信息到数 据库 完成 操操作作名名名名称称, 密密码码,级级别别 操操作作名名名名称称, 密密码码,级级别别 操操作作名名名名称称, 密密码码,级级别别 tb_operator 图 6.2 增加记录数据流图 仓库管理系统的设计与实现-(数据库设计和信息,入库管理部分) 19 图 6.3 基本信息管理界面 修改记录: 主要 SQL 语句为:strsql.Format(“update tb_operator set Level = %d, PassWord = %s where n
45、ame = %s “,iflag, strPass, strDataiDataIndex- 1.strOperName) 输入信息 判断信息有 效性 更新信息到数 据库 完成 操操作作名名名名称称, 密密码码,级级别别 操操作作名名名名称称, 密密码码,级级别别 级级别别 tb_operator 图 6.4 修改记录数据流图 图 6.5 修改操作员截图 删除记录: 主要 SQL 语句为:strsql.Format(“delete tb_operator where name = %s “, strName); 点击删除按 钮 判断信息有 效性 判断用户名是 否存在 删除数据库记 录 完成 操操
46、作作名名名名称称, 密密码码,级级别别 操操作作名名名名称称, 密密码码,级级别别 操操作作名名名名称称, 密密码码,级级别别 tb_operator 图 6.6 删除记录数据流图 20 图 6.7 删除操作员截图 其他功能截图如下: 图 6.8 商品信息管理页面 图 6.9 库存信息管理页面 仓库管理系统的设计与实现-(数据库设计和信息,入库管理部分) 21 图 6.10 供应商信息管理页面 其他操作都跟操作员管理类似,这里不一一举例了。 22 第七章第七章 入库管理入库管理模块设计设计 该系统入库管理模块使用了重载 CListCtrl 类的新类 CCustomGrid 类来把用户的入 库和
47、退货信息显示到列表里面。实现思路如下:在列表中单击鼠标左键,自动获取鼠 标在列表里面的行号和列号,然后把编辑框移动并显示到鼠标指向列表所在的该行该 列上,输入完信息后,把编辑框里面的数据显示到鼠标指向列表所在的该行该列中。 其中要利用到很多捕获鼠标,键盘的动作,并引用指定的函数完成相应的功能。该 捕获功能是在 PreTranslateMessage 函数中定义的。 在列表控件上显示编辑框函数如下: void CCustomGrid:ShowEdit() CRect rect; /记录当前单元格的坐标 GetSubItemRect(row,col,LVIR_LABEL,rect); CStrin
48、g str; str = GetItemText(row,col); edit.MoveWindow(rect); edit.SetWindowText(str); edit.ShowWindow(SW_SHOW); edit.SetSel(0,100); edit.SetFocus(); edit.SetReadOnly(!showedit); UpdateWindow(); 把编辑框数据显示到列表格中函数为: void CCustomGrid:DisposeEdit(bool drawed) if (drawed) CString str; edit.GetWindowText(str);
49、 SetItemText(row,col,str); edit.ShowWindow(SW_HIDE); Invalidate(); 7.1 商品入库 商品入库管理主要实现商品入库信息的登记,生成入库票号,修改(增加)商品库存 的功能。在录入入库信息时,为了方便用户录入数据,还提供了一些辅助功能。例如: 在录入供应商信息时,按 PageDown 键,会以表格的形式显示所有供应商信息供原来用 户选择;在录入商品信息时,可以按商品编号,商品名称,助记码进行匹配查询,以 列表形式显示商品信息。 在截获了编辑框改变时的事件后,接下来的任务是设置查询语句。首先需要确定表 仓库管理系统的设计与实现-(数据库设计和信息,入库管理部分) 23 格中当前单元格是否处于商品编号列或商品名称列,如果不是,不会进行查询,也不 会显示联想录入表格,如果是,进一步判断是商品编号列还是商品名称列方法很简单, 因为 CCustomGrid 类中包含了两个成员变量 col 和 row,根据 col 便可以确定表格当前 列。其主
链接地址:https://www.31doc.com/p-3908580.html