1、案 例仓库管理信息系统的开发一、项目开发背景某公司是专营家电的中型企业,该公司经营 10 大类几十个品种的家电产品。管理工作主要是进货商品的入库管理和销售商品的出库管理及库存商品的保管管理。现有的管理工作主要依靠手工完成,工作量大,且效率不高。为了能更好地利用现代信息技术的成果,提高管理工作的效率和水平,以适应企业发展的需要,决定开发库存管理系统。二、系统分析(1)可行性分析根据调查,商品入库的过程是当购入商品到货后,负责进货的人员首先填写入库单,然后经仓库管理人员对商品的质量及数量进行核查后方可入库,并更新商品入库流水帐,另外如果是新产品,则还要在库存台帐中建立新帐页。商品出库管理过程是管理
2、人员根据销售人员提供的商品出库单,经核查后付货,同时登记商品的销售流水帐。按照要求,每天下班之前统计分析人员要根据商品购入流水帐和商品销售流水帐,累计汇总出各种商品当日的累计购入入库量、累计销售出库量和库存结余量等数据,并将这些数据填入库存台帐。原有的手工方式存在的问题有: 手工模式下的劳动强度高、效率低、错误多、处理速度慢,不适应企业发展的需要。 在具体工作中,存在大量数据的保存、汇总、查询等工作,手工模式速度慢而且不利于数据的分析,已不适应现代管理模式。本系统开发的目的,就是通过系统开发,实现库存管理工作计算机化,提高业务的处理速度和规范化程度,并对有关的工作进行继承和重组,进一步通过计算
3、机网络系统实现整个企业管理信息化。该系统可以提高管理工作的质量和效率,主要表现在以下几个方面: 实现库存管理的“动态”化,能及时地提供库存商品动态信息,配以库存报警功能,在库存过高或过低时,都给予提示。 强大的统计分析功能,利用计算机工具以各种方式统计出销售等情况,以便于整体营销策略的调整。 方便的查询功能,能快速实现对各种商品的入库、销售及库存情况的查询。从技术上讲,现行的网络技术和计算机技术完全能完成本系统的功能要求。经济方面,该企业用于系统开发的预算基本可满足设备的投入和人力投入。就收益而言,系统投入使用后能加快资金的周转,提高资金的利用率,而且可以提高管理效率,减少人力资源的浪费。在社
4、会可行性方面,系统的开发于使用与现行的管理制度没有冲突,而且现在员工通过培训可以很容易掌握和使用系统。综上所述,该系统具备可开发的条件,项目可行,建议开始开发。(2)组织结构调查,管理功能分析商品库存管理主要完成商品出入库管理和提供库存信息,如:库存清单、报表、统计信息等。向管理者提供决策支持信息,库存管理的组织结构图如图 1 所示。库 房 主 管入库管理组 出库管理组 商品管理组图 1 组织结构图商品库存管理的管理功能分析,如图 2 所示库 存 管 理仓 库 管 理 统 计 分 析入库管理 出库管理 月报表 库存台帐 查询 图 2 库存管理功能图(3)管理工作的业务流程分析库存管理的业务流程
5、图,如图 3 所示。入 库 单采 购员 检 验员 合 格入 库 单 保 管员购 入流 水 帐 销 售员出 库 单销 售流 水 帐统 计员库 存 台 帐 月 报 表统 计直 方 图 主 管部 门图 3 业务流程图(4)数据流程分析数据流程图,如图 4.1,4.2,4.3 所示。第 0 层数据流程图:基本的输入为有关部门送来的商品入库单和销售出库单,输出为报表数据,如图 4.1所示。 P0仓 库 管 理系 统 E3主 管F3报 表 数 据F2销 售出 库 单E2销售 员E1采购 员 F1商 品入 库 单图 4.1 0 层数据流程图第 1 层数据流程图:根据分析,整个仓库管理系统可分为三部分:采购入
6、库管理、销售出库管理及报表中心。如图 4.2 所示。E1采购 员E2销售 员 P1采 购入 库 管 理P2销 售出 库 管 理 S1库 存 台 帐 P3制 作 报 表S2报 表F1商 品入 库 单F2销 售出 库 单 E3主 管图 4.2 第 1 层数据流程图第 2 层数据流程图,如图 4.3(1) ,4.3(2)所示:采购入库管理可分为登记购入流水帐、登记库存台帐两个环节:E1采购 员 P1.登 记 购 入流 水 帐 S3购 入 流 水 帐 P1.2登 记库 存 台 帐 S1库 存 台 帐F1商 品入 库 单图 4.3(1) 采购入库管理销售出库管理可分为登记销售流水帐、登记库存台帐两个环节
7、:E2销售 员 P2.1登 记 销 售流 水 帐 S4销 售 流 水 帐F2销 售出 库 单 P2.登 记库 存 台 帐 S1库 存 台 帐图 4.3(2) 销售出库管理(5)主要的数据字典a.数据项的定义数据项编号: I10数据项名称: 库存量别名: 实际库存量概述: 某种商品的实际库存类型; 数值型长度: 4 位整数取值范围: 09999b.数据流的定义数据流编号: F1数据流名称: 商品入库单简 述: 采购人员填写的商品入库凭单数据流来源: 采购人员数据流去向: 登记商品购入流水帐处理功能数据流组成: 日期+入库单编号+商品号+ 单位+购入数量数据流量: 30 份/天高峰流量: 50 份
8、/天数据流编号: F2数据流名称: 销售出库单简 述: 销售人员填写的商品销售出库单数据流来源: 销售人员数据流去向: 登记商品销售流水帐处理功能数据流组成: 日期+出库单编号+商品号+ 单位+数量数据流量: 500 份/天高峰流量: 800 份/天c.数据存储的定义数据存储编号: S1数据存储名称: 库存台帐简 述: 记录商品的编号、名称单价与库存数量等信息数据存储组成: 商品号+商品名称+购入单价+销售单价+库存数量相关联的处理: 登记库存台帐、制作报表d.处理逻辑的定义处理逻辑编号: P1.1处理逻辑名称: 登记购入流水帐简 述: 采购员根据入库单信息登记流水帐输入的数据流: F 1 商
9、品入库单处 理 : 读入商品入库单读取商品入库单中的商品编号打开购入流水帐按商品号查找入库单、商品编号、入库数量如果存在库存数量库存数量+入库数量否则在流水帐中添加一条新记录将商品入库单上的商品编号、入库数量等写入购入流水帐显示“入库完成!”信息返回输出的数据流: 如果入库单数据检验不合格,拒绝登记,并给出出错的原因和可能的改正方法;如果登记过程完成,除将数据写入购入流水帐中,还要在屏幕上给出登记操作完成的提示。处理频率: 30 份/天e.实体的定义外部实体编号: E1外部实体名称: 采购人员简 述: 负责商品的购入、与库房的商品交接外部实体组成: 编码+姓名+性别+ 年龄+所属部门输出的数据
10、流: F1 商品入库单三、系统设计(1)概要设计根据需求分析,该库存管理系统可划分为数据维护、数据查询、报表、统计分析、系统维护五个子系统:数据维护子系统:主要完成三类文件数据的录入工作,一是商品库存文件数据的录入。库存文件录入工作在系统投入运行之前,把原有库存数据装入到商品库存文件中,并在系统运行过程中,录入商品出库信息。二十商品购入文件的数据录入。三是商品销售文件数据的录入。根据出入库商品更新相应的文件:库存文件、销售文件、购入文件。数据查询子系统:主要是完成库存管理过程的查询工作,如查询实际库存数量,查询某一笔购入或是销售出库情况,某一商品在某一时期内的进销情况等。报表子系统:能根据计算
11、机所存数据生成各种所需形式的表格、报表。统计分析子系统:能根据指定商品生产阶段的销售量的直方图,分析商品的销售量的走势等。系统维护子系统:主要完成系统操作员的密码维护、操作权限的设定、系统数据的备份与恢复和其他的系统设置。(2)系统功能结构设计根据需求分析和总体设计结果,对系统的功能继续进行细化。最终得到系统经过改进的功能结构图,如图 4 所示。库 存 管 理 子 系 统数 据 录 入 数 据 查 询 报 表 统 计 系 统 维 护入库数据录入 出库数据录入 出入库数据查询 入库单据查询 出库单据查询 库存数据查询日数据查询 月数据查询 综合数据查询 日报表 月报表 年报表密码维护 操作权限设
12、定 其他图 4 系统功能结构图(3)代码设计本系统的编码设计依据唯一性、合理性、可扩充性和稳定性的原则,根据这些原则,系统主要的编码如下:1、 员工工作证编码:第一、二位 第三位 第四、五位部门代码 职称 编号具体如下:第一、二位(部门代码)XS销售部SC生产部CW财务部XZ行政部RS人事部ZJ质检部JS技术部CG采购部CK仓库第三位(职称)0总经理1副总经理2副总经理3副经理4班、组、仓库负责人5一般员工第四、五位(编号):表示员工在其所在部门中的序号,由于公司目前每个部门的员工数量非常有限,且预计在未来多年内都很难出现超过 100 员工的部门。因此只用两位来表示其序号。 另外,对于总经理和
13、副总经理不属于具体部门时,则工作证以“XH ”开头。如:“CW206”表示财务部经理,同时他是财务部的第六号员工。如:“CK401”表示仓库主管;“CK504”表示仓库普通员工,同时他是仓库的第 4 号员工。 2、采用分组码对采购入库单进行编码:如:IBC-040316-06 表示 2004 年 3 月 16 日入库的第 6 份入库单。IBC 表 示 商 品 入 库 单( in bil code) 表 示 商 品 入 库 单 单 号 :01表 示 当 日 第 一 单2表 示 当 日 第 二 单表 示 入 库 单 年 份 :0421表 示 204年 2月 12日 入 库3、销售出库单编码与入库单
14、编码类似。如:编码 OBC-040325-10 表示 2004 年 3 月 25 日出库,且为当日第 12 份出库单。(4)数据库设计概念结构设计概念模型见图 5 所示。库 存商 品 库 房供 应 商商 品 代 码 名 称 数 量 最 大库 存 量 名 称库 管 员供 应 日 期数 量 管 理供 应 商代 码 名 称 联 系 方 式 地 址 职 工 号 姓 名 性 别 部 门 职 务1N1NNM图 5 概念模型利用数据库建模工具 S_Designer5.0 建立的 CDM 概念模型 利用数据库建模工具生成物理模型ROOMNAME = ROOMNAMEROOMNAME = ROOMNAMEPRO
15、VIDER_CODE = PROVIDER_CODECODE = CODEDEVICECODE char(6)ROOMNAME char(10)EMP_NAME char(20)SPECIFICATION char(10)PROVIDERPROVIDER_CODE char(3)EMP_NAME char(20)TELENO char(15)ADDRESS char(20)EMPLOYEEEMP_CODE char(2)ROOMNAME char(10)EMP_NAME char(20)SEX char(2)DEPARTMENT char(10)DUTY char(10)STOREROOMRO
16、OMNAME char(10)AREAR floatMAX_NUM integerPROV_DEVICECODE char(6)PROVIDER_CODE char(3)四、系统实施(1)系统运行环境:硬件要求: CPU:80586 以上( 最好 Pentium以上);内存:64M 以上;硬盘空间:至少 100M 剩余空间以上;打印机及其他。软件要求: 操作系统:采用 MS Windows 2000 简体中文版 数据库: SQL Server2000 或 Adaptive Server AnyWhere6.0数据库前端开发工具:Power Builder7.0 (或以上版本)(2)主要的界面及
17、脚本介绍1系统的总体结构(主菜单 m_main)2应用脚本的 open()事件:open(win_logon)/ get id /与数据库进行连接 using sqlca /检查连接是否成功if sqlca.sqlcode 0 thenMessageBox (“数据库连接错误“, sqlca.sqlerrtext)returnend ifclose(win_splash)Open (win_Main)3系统登陆界面(win_logon )添加脚本:(1)登陆窗口的 close()事件:/声明一个结构变量structure_logon my_logon/变量赋值my_logon.id = sle
18、_user.textmy_logon.password = sle_password.text/返回输入的帐号和口令到应用程序对象CloseWithReturn(win_logon, my_logon)(2)cb_ok 的 click()事件:/触发窗口的 close 事件parent.trigger event close()(3)cb_cancel 的 click()事件:/将输入的帐号和口令变成空,触发窗口 close 事件sle_user.text=“sle_password.text=“parent.trigger event close()4入库数据录入:5出库数据录入:6.商品入
19、库信息查询:(1)按日期查询的 cb_ok 的 click()事件:string ls_start,ls_enddate ld_start,ld_endif IsDate(sle_datestart.text)thenif IsDate(sle_dateend.text)thenld_start=date(sle_datestart.text)ld_end=date(sle_dateend.text)dw_indate.retrieve(ld_start,ld_end)elseMessageBox(“数据错误“,“请重新输入结束日期。“)end ifelseMessageBox(“数据错误“,
20、“请重新输入开始日期。 “)end ifsle_datestart.Setfocus()(2)该窗口的 open()事件:tab_1.tabpage_date.dw_indate.SetTransObject(SQLCA)tab_1.tabpage_bill.dw_billcode.SetTransObject(SQLCA)tab_1.tabpage_code.dw_code.SetTransObject(SQLCA)tab_1.tabpage_provider.dw_provider.SetTransObject(SQLCA)(3)cb_exit 的 click()事件:close(parent)以下是按单据号码查询:以下是按商品代码查询:7. 商品出库信息查询: