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所示。 E1采F1商品购员入库单F3P0E3报表数据仓库管理主管系统E2销售员F2销售出库单 图4.1 0层数据流程图 第1层数据流程图: 根据分析,整个仓库管理系统可分为三部分:采购入库管理、销售出库管理及报表中心。如图4.2所示。 F1商品P1入库单E1采采购购员入库管理P3E
6、3S1库存台帐制作报表主管F2销售P2出库单E2销销售售员出库管理S2报表 图4.2 第1层数据流程图 第2层数据流程图,如图4.3(1),4.3(2)所示: 采购入库管理可分为登记购入流水帐、登记库存台帐两个环节: S3购入流水帐F1商品P1.1P1.2入库单E1采S1库存台帐登记购入登记购员流水帐库存台帐 图4.3(1) 采购入库管理 销售出库管理可分为登记销售流水帐、登记库存台帐两个环节: F2销售 P2.1P2.2出库单E2销S1库存台帐登记销售登记售员流水帐库存台帐S4销售流水帐 图4.3(2) 销售出库管理 (5)主要的数据字典 a.数据项的定义 数据项编号: I10 数据项名称:
7、 库存量 别名: 实际库存量 概述: 某种商品的实际库存 类型; 数值型 长度: 4位整数 取值范围: 09999 b.数据流的定义 数据流编号: F1 数据流名称: 商品入库单 简 述: 采购人员填写的商品入库凭单 数据流来源: 采购人员 数据流去向: 登记商品购入流水帐处理功能 数据流组成: 日期+入库单编号+商品号+单位+购入数量 数据流量: 30份/天 高峰流量: 50份/天 数据流编号: F2 数据流名称: 销售出库单 简 述: 销售人员填写的商品销售出库单 数据流来源: 销售人员 数据流去向: 登记商品销售流水帐处理功能 数据流组成: 日期+出库单编号+商品号+单位+数量 数据流量
8、: 500份/天 高峰流量: 800份/天 c.数据存储的定义 数据存储编号: S1 数据存储名称: 库存台帐 简 述: 记录商品的编号、名称单价与库存数量等信息 数据存储组成: 商品号+商品名称+购入单价+销售单价+库存数量 相关联的处理: 登记库存台帐、制作报表 d.处理逻辑的定义 处理逻辑编号: P1.1 处理逻辑名称: 登记购入流水帐 简 述: 采购员根据入库单信息登记流水帐 输入的数据流: F 1商品入库单 处 理 : 读入商品入库单 读取商品入库单中的商品编号 打开购入流水帐 按商品号查找入库单、商品编号、入库数量 如果存在 库存数量库存数量+入库数量 否则 在流水帐中添加一条新记
9、录 将商品入库单上的商品编号、入库数量等写入购入流水帐 显示“入库完成!”信息 返回 输出的数据流: 如果入库单数据检验不合格,拒绝登记,并给出出错的原因和可能的改正方法;如果登记过程完成,除将数据写入购入流水帐中,还要在屏幕上给出登记操作完成的提示。 处理频率: 30份/天 e.实体的定义 外部实体编号: E1 外部实体名称: 采购人员 简 述: 负责商品的购入、与库房的商品交接 外部实体组成: 编码+姓名+性别+年龄+所属部门 输出的数据流: F1商品入库单 三、系统设计 (1)概要设计 根据需求分析,该库存管理系统可划分为数据维护、数据查询、报表、统计分析、系统维护五个子系统: 数据维护
10、子系统:主要完成三类文件数据的录入工作,一是商品库存文件数据的录入。库存文件录入工作在系统投入运行之前,把原有库存数据装入到商品库存文件中,并在系统运行过程中,录入商品出库信息。二是商品购入文件的数据录入。三是商品销售文件数据的录入。根据出入库商品更新相应的文件:库存文件、销售文件、购入文件。 数据查询子系统:主要是完成库存管理过程的查询工作,如查询实际库存数量,查询某一笔购入或是销售出库情况,某一商品在某一时期内的进销情况等。 报表子系统:能根据计算机所存数据生成各种所需形式的表格、报表。 统计分析子系统:能根据指定商品生产阶段的销售量的直方图,分析商品的销售量的走势等。 系统维护子系统:主
11、要完成系统操作员的密码维护、操作权限的设定、系统数据的备份与恢复和其他的系统设置。 (2)系统功能结构设计 根据需求分析和总体设计结果,对系统的功能继续进行细化。最终得到系统经过改进的功能结构图,如图4所示。 库存管理子系统数据录入数据查询报表统计系统维护出入出入出库操入库库库库存密作库日月年数数单单数码权其数报报报据据据据据维限他据表表表录录查查查护设查入入询询询定询综日月合数数数据据据查查查询询询 图4 系统功能结构图 (3)代码设计 本系统的编码设计依据唯一性、合理性、可扩充性和稳定性的原则,根据这些原则,系统主要的编码如下: 1、 员工工作证编码: 第一、二位 第三位 第四、五位 部门
12、代码 职称 编号 具体如下: 第一、二位(部门代码) XS销售部 SC生产部 CW财务部 XZ行政部 RS人事部 ZJ质检部 JS技术部 CG采购部 CK仓库 第三位(职称) 0总经理 1副总经理 2副总经理 3副经理 4班、组、仓库负责人 5一般员工 第四、五位(编号):表示员工在其所在部门中的序号,由于公司目前每个部门的员工数量非常有限,且预计在未来多年内都很难出现超过100员工的部门。因此只用两位来表示其序号。 另外,对于总经理和副总经理不属于具体部门时,则工作证以“XH”开头。如:“CW206”表示财务部经理,同时他是财务部的第六号员工。 如:“CK401”表示仓库主管;“CK504”
13、表示仓库普通员工,同时他是仓库的第4号员工。 2、采用分组码对采购入库单进行编码: 如:IBC-040316-06表示2004年3月16日入库的第6份入库单。 IBC 表示商品入库单单号:表示商品入库单(in bill code)01表示当日第一单02表示当日第二单表示入库单年份:040212表示2004年2月12日入库 3、销售出库单编码与入库单编码类似。 如:编码OBC-040325-10表示2004年3月25日出库,且为当日第12份出库单。 (4)数据库设计 概念结构设计 概念模型见图5所示。 商品代码名称最大数量名称库存量1N商品库存库房M1数量供应管理日期NN供应商库管员职务供应商地
14、址职工号代码名称联系方式姓名部门性别 图5 概念模型 利用数据库建模工具S_Designer5.0建立的CDM概念模型 库房商品仓库名称商品代码仓库面积姓名最大库存量规格供应商供应商代码姓名联系方式库管员地址职工号姓名性别部门职务 利用数据库建模工具生成物理模型 DEVICECODEchar(6)ROOMNAME = ROOMNAMEROOMNAMEchar(10)EMP_NAMEchar(20)SPECIFICATIONchar(10)STOREROOMROOMNAMEchar(10)AREARfloatMAX_NUMintegerROOMNAME = ROOMNAME CODE = COD
15、EEMPLOYEEPROV_DEVICEEMP_CODEchar(2)CODEchar(6)ROOMNAMEchar(10)PROVIDER_CODEchar(3)EMP_NAMEchar(20)SEXchar(2)DEPARTMENTchar(10)PROVIDER_CODE = PROVIDER_CODEDUTYchar(10)PROVIDERPROVIDER_CODEchar(3)EMP_NAMEchar(20)TELENOchar(15)ADDRESSchar(20) 四、系统实施 (1)系统运行环境: 硬件要求: CPU:80586以上(最好Pentium以上); 内存:64M以上;
16、 硬盘空间:至少100M剩余空间以上; 打印机及其他。 软件要求: 操作系统:采用MS Windows 2000简体中文版 数据库: SQL Server2000或Adaptive Server AnyWhere6.0 数据库前端开发工具:Power Builder7.0(或以上版本) (2)主要的界面及脚本介绍 1系统的总体结构(主菜单m_main) 2应用脚本的open()事件: open(win_logon) / get id & password structure_logon upp upp = message.PowerObjectParm if upp.id = then hal
17、t end if /出现 splash窗口 open(win_splash) environment env / 保存环境信息 string startupfile / 定义初始化文件名 /* 获取环境信息 */ IF ( GetEnvironment(env) 1 ) THEN MessageBox( Application: Open, Unable to get environment information.nHalting . ) HALT /终止应用程序的执行 END IF /* 根据当前使用的操作系统选择初始化文件*/ CHOOSE CASE env.OSType CASE Wi
18、ndows!, WindowsNT! startupfile = pb.ini CASE Sol2!, AIX!, OSF1!, HPUX! startupfile = .pb.ini CASE Macintosh! startupfile = PowerBuilder Preferences CASE ELSE MessageBox( Application: Open, Unrecognized operating system.nHalting . ) HALT END CHOOSE /* 根据当前 PB.INI 的设置值设置事务对象SQLCA属性 */ sqlca.DBMS = Pro
19、fileString (startupfile, database, dbms, ) sqlca.database = ProfileString (startupfile, database, database, ) sqlca.userid = ProfileString (startupfile, database, userid, ) sqlca.dbpass = ProfileString (startupfile, database, dbpass, ) sqlca.logid = ProfileString (startupfile, database, logid, ) sql
20、ca.logpass = ProfileString (startupfile, database, LogPassWord, ) sqlca.servername = ProfileString (startupfile, database, servername, ) sqlca.dbparm = ProfileString (startupfile, database, dbparm, ) connect; /与数据库进行连接using sqlca /检查连接是否成功 if sqlca.sqlcode 0 then MessageBox (数据库连接错误, sqlca.sqlerrtex
21、t) return end if close(win_splash) Open (win_Main) 3系统登陆界面(win_logon) 添加脚本: (1)登陆窗口的close()事件: /声明一个结构变量 structure_logon my_logon /变量赋值 my_logon.id = sle_user.text my_logon.password = sle_password.text /返回输入的帐号和口令到应用程序对象 CloseWithReturn(win_logon, my_logon) (2)cb_ok的click()事件: /触发窗口的close事件 parent.t
22、rigger event close() (3)cb_cancel的click()事件: /将输入的帐号和口令变成空,触发窗口close事件 sle_user.text= sle_password.text= parent.trigger event close() 4入库数据录入: 5出库数据录入: 6.商品入库信息查询: (1)按日期查询的cb_ok的click()事件: string ls_start,ls_end date ld_start,ld_end if IsDate(sle_datestart.text)then if IsDate(sle_dateend.text)then
23、ld_start=date(sle_datestart.text) ld_end=date(sle_dateend.text) dw_indate.retrieve(ld_start,ld_end) else MessageBox(数据错误,请重新输入结束日期。) end if else MessageBox(数据错误,请重新输入开始日期。) end if sle_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. 商品出库信息查询:
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1