库存管理信息系统的分析kucunanli.doc
【精品文档】如有侵权,请联系网站删除,仅供学习与交流库存管理信息系统的分析kucunanli.精品文档.附件:库存管理信息系统的分析、设计和实施说明:本例时间较早,开发工具选用FoxPro2.5。在学习过程中,可以现有的硬件和软件环境进行系统再开发实现,学习重点放在在系统分析、系统设计实际过程、方法及内容。这里给出一个库存管理信息系统开发的实例,目的是使大家进一步深入了解开发任何一个管理信息系统必须经历的主要过程,以及在开发过程的各个阶段上开发者应当完成的各项工作内容和应当提交的书面成果。一、 某厂产品库存管理系统简介 某厂是我国东北地区一家生产照明灯的老企业,每年工业产值在四千万元左右。该厂目前生产的产品如表l所示。 表1 某厂产品品种规格、单价及定额储备产品名称单位规格不变价(元)现行价(元)最高储备额最低储备额备注灯泡只220V15W0.801.0060000600灯泡只220V45W1.001.2060000600灯泡只220V60W1.201.4060000600灯泡只220V100W1.501.8040000500灯泡只220V150W1.802.0040000400灯泡只220V200W2.002.2030000300灯泡只220V300W2.803.0020000200节能灯只220V4W6.008.00100001000节能灯只220V8W8.0010.00100001000节能灯只220V16W12.0015.00100001000日光灯只220V8W6.007.00100001000日光灯只220V20W7.008.00100001000日光灯只220V30W8.009.00100001000日光灯只220V40W10.0011.00100001000工厂的产品仓库管理组隶属于销售科领导,由七名职工组成,主要负责产品的出入库管理、库存帐务管理和统计报表,并且应当随时向上级部门和领导提供库存查询信息。为了防止超储造成产品库存积压,同时也为了避免产品库存数量不足而影响市场需求,库存管理组还应该经常提供库存报警数据(与储备定额相比较的超储数量或不足数量)。产品入库管理的过程是,各生产车间随时将制造出来的产品连同填写好的入库单(入库小票)一起送至仓库。仓库人员首先进行检验,一是抽检产品的质量是否合格,二是核对产品的实物数量和规格等是否与入库单上的数据相符,当然还要校核入库单上的产品代码。检验合格的产品立即进行产品入库处理,同时登记产品入库流水帐。检验不合格的产品要及时退回车间。产品出库管理的过程是,仓库保管员根据销售科开出的有效产品出库单(出库小票)及时付货,并判明是零售出库还是成批销售出库,以便及时登记相应的产品出库流水帐。平均看来,仓库每天要核收三十笔入库处理,而各种出库处理约五十笔。每天出入库处理结束后,记帐员就根据入库流水帐和出库流水帐按产品及规格分别进行累计,以便将本日内发生的累计数填入库存台帐。产品入库单如表2所示,出库单如表3所示,入库流水帐如表4所示,出库流水帐如表5和表6所示,而库存台帐帐页如表7所示。产品库存的收发存月报表是根据库存台帐制作出来的。产品库存查询是通过翻阅几本帐之后实现的。目前库存报警功能尚未实现。表2 产品入库单 第 册 号日期产品代码产品名称单位规格入库数量备注生产车间填制人表3产品出库单 第 册 号日期产品名称规格入库数量备注批发 零售 填制人注:批发出库时在备注栏的批发 处划“”,否则在零售 处划“”表4 产品入库流水帐 页日期产品代码产品名称单位规格入库数量备注表5产品零售出库流水帐 页日期产品代码产品名称单位规格零售出库数量备注表6产品批发出库流水帐 页日期产品代码产品名称单位规格批发出库数量备注表7某厂产品库存台帐(当日合计数) No.产品代码:规格:不变价(元):产品名称:单位:现行价(元):日期入库数量零售出库量批发出库量结余二、系统分析根据收集到的各种系统输入单、帐页和输出报表等凭证,又通过亲身实践以及向有关业务管理人员的访问调查,系统分析结果如下:l组织机构该厂产品库存管理的组织机构如图l所示。经营副厂长销售科仓库出入库管理组统计分析组图l 组织机构设置图 2管理职能分析 库长全面负责仓库的行政与业务管理; 出入库管理组负责产品的入库检验、产品的出入库管理、登记出入库帐;统计分析组每天根据出入库管理组的出入库帐,统计出各种规格产品当日出入库累计数字,然后登库存台帐。此外,负责生成产品收发存月报表,经库长签字后呈上级主管部门。有时还要尽量满足各方面的各种查询要求。库存管理出入库管理统计报表入库管理出库管理月报报警查询图2 管理职能3业务流程分析现行产品库存管理系统的业务流程图如图3所示。销售科车 间入库单检验合格入库单入库记账入库帐合格入库单批发出库单零售出库单付货记账付货记账批发出库帐零售出库帐记库存台 帐统计报表月报表库存台帐图3 业务流程图4数据流程分析1)现行系统的顶层数据流程图如图4所示。对顶层图中的数据流“l,2,3,4”说明如下:1库存管理234图4 顶层DFD“1”:车间产品入库单。 “2”:销售科开出的有效零售产品出库单。 “3”:销售科开出的有效批发产品出库单。“4”:仓库制作的产品库存收发存月报表。2)第一层数据流程图如图5所示。图5中的数据流“1,2,3,4”与图4中的数据流“1,2,3,4”相同。4库存帐1出入库管理23出入库管理图5 第一层DFD3)第二层数据流程图如图6所示。710D2零售出库帐 P1登记入库帐P2登记零售出账P4登记库存台帐P5制作收发存月报表P3登批发出库帐D4库存台帐F2112F315698D1入库帐D3批发出库帐统计报表月报表1图6 第二层DFD现对图6中的数据流说明如下:“l,2,3,4”:其意义与图4中的相同。“5”:产品入库单上的数据。“6”:零售出库单上的数据。“7”:批发出库单上的数据。“8”:入库流水帐上的当日按产品名称、规格分别累计的数据。“9”:零售出库流水帐上的当日按产品名称、规格分别累计的数据。“10”:批发出库流水帐上的当日按产品名称、规格分别累计的数据。“11”:获得的“8,9,10”数据。“12”:库存台帐上的当月按产品名称、规格分别累计的数据和其它加工处理后的数据。5数据字典(1)数据流字典 数据流名称:产品入库单 标识符:F1数据结构: 01产品入库单 02日期(RQ) PIC X(8) 02产品代码(CPDM) PIC X(3) 02产品名称(CPMC) PIC X(18) 02单位代码(DWDM) PIC X 02单位(DW) PIC X(4) 02规格代码(GGDM) PIC XX 02规格(GG) PIC X(10) 02入库数量(RKSL) PIC 9(6) 排列方式:按(入库日期+产品代码)升序排列 流量:最大 50张日 平均30张日 来源:生产车间 去向:产品入库处理 数据流名称:产品出库单 标识符:F2数据结构: 01产品出库单 02日期(RQ) PIC X(8) 02产品代码(CPDM) PIC X(3) 02产品名称(CPMC) PIC X(18) 02单位代码(DWDM) PIC X. 02单位(DW) PIC X(4) 02规格代码(GGDM) PIC XX 02规格(GG) PIC X(10) 02备注 03零售出库数量(LSSL) PIC 9(6) 03批发出库数量(PFSL) PIC 9(6) 排列方式:按(日期十产品代码)升序排列 流量:最大:70张日 平均:50张日 来源:销售科 去向:产品出库处理 数据流名称:仓库产品收发存月报表标 标识符:F3数据结构: 01收发存月报表 02日期(BBRQ) PIC X(8) 02产品代码(CPDM) PIC X(3) 02产品名称(CPMC) PIC X(18) 02单位(DW) P1CX(4) 02本月累计入库数量(RKSL) PIC 9(8) 02本月累计零售数量(LSSL) PIC 9(8) 02本月累计批发数量(PFSL) PIC 9(8) 02库存数量(KCSL) PIC 9(8) 排列方式:按日期排列 流量:最大:1份月 平均:1份月 来源:仓库统计分析 去向:主管部门其它中间过程的数据流描述省略。(2)数据存储字典 存储文件名:产品入库流水帐 标识符:D1数据结构: 01本品入库帐 02日期(RQ) PIC X(8) 02产品代码(CPDM) PIC X(3) 02产品名称(CPMC) PIC X(18) 02单位(DW) PIC X(4) 02规格(GG) PIC X(10) 02入库数量(RKSL) PIC 9(6) 流入的数据流:产品入库单(F1) 流出的数据流; 涉及的处理名:入库处理、记库存台帐 排列方式:按入库日期计序 存储文件名:库存台帐 标识符:D4数据结构: 01库存台帐 02日期(KCRQ) PIC X(8) 02产品代码(CPDM) PIC X(3) 02产品名称(CPMC) PIC X(18) 02本日累计入库量(RKSL) PIC 9(8) 02本日累计零售出库量(LSSL) PIC 9(8) 02本日累计批发出库量(PFSL) PIC 9(8) 流入的数据流:11 流出的数据流:收发存月报表 涉及的处理名:登记库存台帐、制月报表 排列方式:按(日期+产品代码)升序排列 其它存储文件的描述省略。6处理描述 处理名:登记入库帐 标识符:P1 输入:数据流F1 输出:数据流 F5 处理定义: 当一张入库单上的数据检验合格,并且产品实物入库后,立即将这张入库单上的数据登入产品入库流水帐。 激发条件:产品入库发生 处理名:登记库存台帐 标识符:P4 输入:出入库流水帐上的当日数据 输出:登记入库存台帐上的数据 处理定义: 对出入库流水帐上当日发生的数据,按产品代码分别进行入库累计、零售出库累计和批发出库累计计算。然后将当天的日期、产品代码和累计结果等填入库存台帐的相应栏内。 激发条件:每日过帐处理 处理名:制作收发存月报表 标识符:P5 输入:取自库存台帐的数据 输出:填入输出报表中的统计数据 处理定义: 对库存台帐本月发生的出入库数据,分别按产品代码进行累计,一种代码代表的产品累计值即为输出报表中的一行。 计算公式: 工业产值(不变价)=Si*Ji 工业产值(现行价)= Si*Ji1 其中:Si产品代码为i的产品本月入库量计量 Ji产品代码为i的产品不变价 Ji1产品代码为i的产品现行价 激发条件:每月制作库存报表系统中的另外几个加工处理描述省略。7现行系统评价 通过对现行系统的需求分析,本系统数据流向是合理的,但为了便于计算机化管理,也为了使系统能够提供更多的辅助决策信息,本系统应做如下改进设想: 1)将各种帐本暂合为一本库存帐考虑。 2)增加库存报警功能。 3)增强各种灵活的查询分析功能。 8新系统逻辑模型的提出 根据前面的分析与评价结果,提出的新系统逻辑模型如图7和图8所示。查询条件出库处理收发存月报库存报警查 询库存台帐入库处理月报表入库单报警表出库单响应结果图7 系统逻辑模型I产品出入库单录 入库存台帐统计分析查 询收发存月报报警数据查询条件显示结果图8 系统逻辑模型 II9系统边界和处理方式(l)系统边界 输入边界产品出入库单、查询条件。 输出边界各种报表和查询响应输出。 (2)处理方式新系统采用实时处理方式。三 系统设计 1系统目标设计 1)方便的数据输入性能,良好的人机界面,尽量避免汉字和长字符串的人工重复输入(采用代码词组)。 2)灵活地查询性能,能快速实现多项产品输入数据和库存数据的查询。 3)考虑到工厂生产的发展,对新产品数据也能给予处理。 4)把目前基本上是“静态”库存管理变为“动态”管理,能随时提供库存现状信息(包括库存报警信息)。 2新系统功能结构图 综合考虑改进后的系统逻辑模型(见图7)和设计的新系统目标的要求。设计新系统功能结构如图9所示。入库数据录入出库数据录入库存数据查询出入库数据查询每笔入库查询每笔出库查询报表数据计算打印收发存表打印报警信息增加产品品种修改产品目录退至FOX退至DOS数据录入数据查询报表输出产品目录维护结束退出每日数据查询每月数据查询累计数据查询库存管理图9 系统功能结构图3. 新系统计算机信息系统流程设计 计算机化的信息系统流程如图10所示。图10中的处理框内标出了相应的程序名,其功能说明见程序模块设计说明书。出入库单ACp11.prgcpsjsrcpxscprkcpdzbcpdmcpkckcjccprdatscpbbjsCp21.prgX XX XCp31.prg收发存汇总表报警表新产品数据产品修改数据Cp41.prgCp42.prgAA X X X XAAAXXCp32.prgA X X X XCp33.prgCp24.prgCp23.prg图10 新系统信息处理系统流程图4代码设计 (1)产品规格代码设计 由于该厂在未来的几年内生产的产品品种不会超过十种,并且每种产品的规格也不会超过十种,因此,产品规格代码采用层次码,并用两位整数表示,设计方案如图11所示,全部规格编码列于表8中。规格顺序号品种顺序号图11 代码设计方案表8 规格代码规格代码规格01220V15W02220V45W03220V60W04220V100W05220V150W06220V200W07220V300W11220V4W12220V8W13220V16W21220V8W22220V20W23220V30W24220V40W(2)产品代码设计产品代码用三位整数表示,设计方案如图12所示。表9列出了全部产品的代码。校验位规格码图11 代码设计方案表9 产品代码表产品代码产品名称规格代码规格012灯泡01220V15W024灯泡02220V45W036灯泡03220V60W048灯泡04220V100W050灯泡05220V150W061灯泡06220V200W073灯泡07220V300W115节能灯11220V4W127节能灯12220V8W139节能灯13220V16W218日光灯21220V8W220日光灯22220V20W231日光灯23220V30W243日光灯24220V40W产品代码中的校验位a3值的确定方法如下: a3=取(3a12a2)/11的余数 例如: a1 a2 a3 2 4 3 X) 3 2 6 8=14 则a3(14/11)的余数=3 当余数为10时,则按a3=0处理。5系统物理配置方案设计本系统采用单机单用户操作方式,基本配置如下;机型: COMPAQ48640软驱:双软驱动器硬盘:540MB内存:8MB显示器:VGA打印机:Star CR3240软件:Foxpro 2.5 for Windows 3.1(汉化)。机器安装在仓库办公室。6输出设计 本系统的报表输出格式设计成表10表12的形式(表中的数据为试运行结果数据) 表10产品名称单位规格上月结存本月入库本月出库本月结存不变价金额(元) 214700.00 64400.00 150300.00现行价金额(元) 250400.00 75160.00 175240.00数量合计 44500 19300 25200灯泡只220V15w200010001000灯泡只220V45w15001000500灯泡只220V60w30003000灯泡只220V200w1200011800200节能灯只220V4w30002500500节能灯只220V8w30003000日光灯只220V8w20002000日光灯只220V20w1400014000日光灯只220V30w400030001000表11 超储产品产品代码产品名称库存量最高储备超储量220日光灯14000100004000表12 不足产品产品代码产品名称库存量最低储备不足储备024灯泡500600100048灯泡0400400050灯泡0400400061灯泡200300100073灯泡5001000500115节能灯5001000500139节能灯01000100024日光灯0100010007存储文件(数据库)结构设计 由于本系统的应用程序全部用Foxpro2.5编写,因此,存储文件的结构设计就是指 .DBF文件的结构设计。 (1)设计规范库文件名称和库字段变量名称规范分别如表13和表14所示。表13 库文件名称序号文件名称标识符备注1产品目录库文件CPDM.DBF2产品单位及规格代码表CPDZB. DBF事先建好3出入库数据输入暂存文件CPSJSR.DBF4各种产品每日库存累计文件CPKC.DBF5各种产品每日每笔人享文件CPRK.DBF6各种产品每日每笔出库文件CPXS.DBF7各种产品每日入出存累计文件CPRDATA.DBF8报表计算辅助文件CPBBJS.DBF9备品报表文件CPBB.DBF10库存报表数据文件KCJC.DBF表14 库文件字段变量名规范 序号字述名义标识符备注1产品不变价格BBJ2日期BBRQ3产品代码CPDM4产品名称CPMC5代码为ijk的产品库存量CPIJKi=0,1,2,3,4,5,6,7,8,9j=0,1,2,3,4,5,6,7,8,9k=0,1,2,3,4,5,6,7,8,96产品单位代码DWDM7产品组位DW8产品规格代码GGDM9产品规格GG10产品库存超储或不足JC取值“超储”或“不足”11产品库存数量KCSL12日期KCRQ13累计入库量LJRK14累计总出库量LJXS15产品零售数量LSSL16产品批发出库数量PFSL17产品入库数量RKSL18日期RQ19产品现行价格XXJ20产品最大储备量ZGCB21产品最小储备量ZDCB(2)各个库文件结构设计本系统中建立的10个数据库(.DBF)文件结构如表1524所示。表15 产品单位及规格代码库(CPDZB.DBF)结构序号字段名称字段类型长度备注1DWDM Character12DWCharacter43GCDMCharacter24GGCharacter10表16 产品目录库(CPDM.DBF)结构序号字段名称字段类型长度备注1CPDM Character32CPMCCharacter183DWDMCharacter14DWCharacter45GGDMCharacter26GGCharacter107BBJNumeric78XXJNumeric79ZGCBNumeric710ZDCBNumeric4表17 产品出入库数据暂存文件(CPSJSR.DBF)结构序号字段名称字段类型长度备注1RQDate82CPDMCharacter33RKSLNumeric64LSSLNumeric65PFSLNumeric6表18 各种产品每日入库累计文件(CPRK.DBF)结构序号字段名称字段类型长度备注1RQDate82CPDMCharacter33RKSLNumeric6表19 各种产品每日销售出库累计文件(CPXS.DBF)结构序号字段名称字段类型长度备注1RQDate82CPDMCharacter33LSSLNumeric64PFSLNumeric6表20 各种产品每日库存量累计文件(CPKC.DBF)序号字段名称字段类型长度备注1KCRQ Date82CP012Numeric83CP024Numeric84CP036Numeric85CP048Numeric86CP050Numeric87CP061Numeric88CP073Numeric89CP115Numeric810CP127Numeric811CP139Numeric812CP218Numeric813CP220Numeric814CP231Numeric815CP243Numeric8表21 各种产品每日出入存累计文件(CPRDATA.DBF)结构序号字段名称字段类型长度备注1RQDate82CPDMCharacter33CPMCNumeric64DWNumeric65PFSLNumeric66KCSLNumeric6表22 报表计算辅助文件(CPBBJS.DBF)结构序号字段名称字段类型长度备注1BBRQ Date82CPDMCharacter33CPMCCharacter184DWCharacter45RKSLNumeric86LSSL Numeric87PFSLNumeric88KCSLNumeric89LJRKNumeric810LJXSNumeric8表23 各月收发存报表文件(CPBB.DBF)结构序号字段名称字段类型长度备注1BBRQ Date82CPDMCharacter33CPMCCharacter184DWCharacter45RKSLNumeric86LSSL Numeric87PFSLNumeric88KCSLNumeric89LJRKNumeric810LJXSNumeric8表24 库存报警数据文件(KCJC.DBF)结构序号字段名称字段类型长度备注1CPDM Character32JCCharacter48输入设计 (1)出入库数据录入卡设计 本系统中的产品出入库数据录入卡沿用现行系统的产品出入库单格式,参见表2和表3。 (2)输入屏幕格式设计 基础(原始)数据分为产品入库数据和产品出库数据两大类,因此输入屏幕分开设计。入库日期 年 月 日产品入库数据录入窗口显示窗口保存放弃继续产品代码产品名称产品代码产品名称入库数量图13 产品入库数据输入屏幕格式l)图13是产品入库数据输入时的屏幕格式。当输入入库日期之后,便在屏幕上出现此画面。数据录入方式有两种:·光标在右边的提示窗口内上下移动,选择正确的入库产品代码后,则产品代码、名称等信息自动进入左边窗口当前显示行的相应栏目内。然后;光标停在“入库数量”栏上,打入入库数量即可。如此重复即可将本日内各张入库单上的数据输入机内暂存文件内。然后,选择提示“存盘”、“放弃”或“继续”。·调整光标至左边窗口的“代码”栏,接着打入要入库的产品代码,此时对应的产品名称便由系统自动填入,然后打入入库数量即可,最后选择“存盘”、“放弃”或“继续”。2)产品出库数据输入的屏幕格式设计与产品入库数据输入的屏幕格式基本相同,只是将图13中的“入库数量”栏辟为“零售数量”和“批发数量”两栏。9程序模块设计说明 (1)总控模块1)程序名:CPMIN.PRG。 2)功能·定义本系统的数据录入、数据查询等功能菜单及各项功能的下拉式菜单。·选取功能菜单及其下拉菜单中的操作项,进入相应的操作。3)实现·调用程序CP11.PRG实现产品出入库数据的录入。·调用过程MPROC2实现数据查询功能。·调用过程MPROC3实现统计报表功能。·调用过程MPRCO4实现产品目录维护功能。·调用过程MPRCO5实现本系统运行结束退出功能。4)程序、过程、自定义函数间的关系见图14。CPMAIN.PRGCP11.PRGFCPDM()FRET()FAPPE()CP11X(过程)MPROC2CP21.PRGCP23.PRGCP24.PRGMPROC3CP31.PRGCP32.PRGCP33.PRGMPROC4CP41.PRGCP42.PRGCP43.PRGCPDM()PRET()CPDM()FAPPE()MPROC5图14 程序、过程、函数间关系(2)产品出入库数据录入模块 1)程序名: CP11.PRG 2)功能:实现每笔产品出入库数据的录入。3)处理流程(见图15)。出入库单CPDMCP11.PRGCPSJSRCPRKCPXSCPKCCPRDATA图15 处理流程4)实现 ·打开CPDM.DBF并索引之。 ·打开CPRDATA.DBF及其索引。 ·打开 CPRK.DBF。 ·若录入入库数据,则打开CPKC.DBF;若录入出库数据,则打开CPXS.DBF。 ·输入日期。 ·打开CPSJSR.DBF,并与CPDM.DBF建立关联,然后清空CIJSJSR.DBF。 ·用BROW将出入库数据录入 CPPJSR.DBF中。·若数据不保存,则退出返回;若数据保存,则首先将CPSJSR.DBF的RQ字段值全部用输入日期替代,然后通过调用过程CP11X把CPSJSR.DBF中的数据转录到CPRK.DBF(入库)或 CPXS.DBF(出库数据)中,并更新CPKC.DBF和CPRDATD.DBF。(3)每笔出入库数据查询模块1)程序名:CP 21.PRG 2)功能:实现对三个月以内的任何一天的每笔入库数据查询显示。 3)处理流程(见图16)。CPDMCPRKCPXSCP21.PRG 图16 处理流程 4)实现 ·打开 CPDM.DBF。 ·若查询任何一天的每笔入库数据,则打开CPRK.DBF。 ·若查询任何一天的每笔出库数据,则打开