1、图书进销存信息系统案例分析 作者: 日期:2 个人收集整理 勿做商业用途软 件 项 目 案 例 分 析 报 告题 目: 图书进销存信息系统 姓 名: 潘明利 班 级: 软件08-04班 学 号: 0820010413 辽宁工程技术大学软件学院目 录1. 引言21.1 开发背景21.2 国内外研究现状22系统相关技术简介32。1 .NET 框架32.2 XML技术33项目需求分析43。1 系统总体需求分析43.2 采购管理模块需求分析63。3 销售管理模块需求分析74总体设计84。1 设计思想84。2 总体设计85. 详细设计95。3 数据库设计106项目开发计划126.1公共界面的实现126.
2、2采购业务实现12参考文献141. 引言这一部分主要介绍基于组件化技术开发的图书进销存管理系统开发的背景,图书进销存系统国内外研究现状和发展趋势以及论文研究的主要内容和结构安排.1.1 开发背景在当今的现代社会中,信息的重要性越来越显现,谁能更好的获得、整理和分析信息,谁就能够在激烈的市场竞争中占得先机。信息化的推动既给企业带来了机会,也带来了很大的压力。在知识爆炸的年代,各个企业获得信息的途径趋同,发展的机遇越来越趋向于均等。企业面对大量的信息,如何在本企业中采用,如何构建自身的信息管理系统,把企业的资源管理范围扩展到整个生产环境已经成为了急需考虑的问题.1.2 国内外研究现状美国在计算机技
3、术领域一直处于世界领先地位,企业管理使用计算机的情况,已取得大量优异成果,其中包括许多非常优秀的库存管理方面的系统。例如早在1957年,美国的27位生产与库存控制工作者集合于Cleveland,建立了美国生产与库存控制协会(American Production and Inventory Control Association,简称APICS),在生产与库存控制方面,开创了新的研究领域MRP II。在美国MRP II已广泛应用于汽车、电子、化工、食品等行业.根据有关统计,在美国,80以上的大型企业安装了MRP II系统,50以上的中型企业安装了MRP II系统,30%以上的小型企业安装了MR
4、P II系统。在德国,95的大中型企业已应用了计算机系统。在英国,80的制造业实现了计算机管理。在法国,76%的机械制造企业已应用了计算机管理。自20 世纪90 年代以来进销存管理软件在国外许多行业都得到了广泛应用,并取得很大的社会效益和经济效益,针对图书行业的优秀进销存管理系统也不断涌现,其中杰出代表包括SAP、Intentia等公司的相关产品。2系统相关技术简介这一部分主要介绍图书进销存管理系统开发中所用到的相关技术和方法,包括XML技术、。NET开发时必不可少的。NET框架、系统的三层C/S软件架构、迭代式软件开发方法等,为以后几章的进一步分析设计做准备。2.1 。NET 框架.NET组
5、件是Microsoft 为开发应用程序而创建的一个富有革命性的新平台 7。它定义一种公共语言子集(Common Language Subset,CLS),这是一种为符合规范的语言与类库之间提供一种无缝集成的混合语。.NET统一了编程的类库,提供了对下一代的网络编程标准XML的支持,使应用程序的开发更方便、更便捷。.NET 框架就是。NET平台的基础架构8,相关强大的功能来自于通用语言运行时(CLR:Common Language Runtime)环境及类库。类库和CLR紧密结合在一起(包括ADO。NET,Windows Forms等)提供了可以在不同系统之间交叉而又综合的解决方案和服务,。NE
6、T 框架构建了一个完全可操控的、特性丰富的和安全的应用执行环境,这不但可以使应用程序的开发和发布变得更加简单,并且可以与众多种类语言间的无缝集成。通用语言运行时(Common Language Runtime,CLR)提供一个公共上下文来执行所有的.NET组件,而不考虑具体的编写语言。作为.NET框架执行引擎,它为多种语言都提供了一种一致的编程模型和托管代码的运行环境,通过加载应用程序,确认它们可以没有错误的运行,进行相应的安全许可验证,执行应用程序,然后在完成后将他们清除.CLR提供足够强大的语言互操作的能力,运行组件在开发以及运行的时候高度交互。2.2 XML技术XML 是Extensib
7、le Markup Language的缩写,中文含义为可扩展的标记语言。XML是一套定义语义标记的准则,这些标记将文档分成很多部件,同时对这些部件加以标识。被称为元标记语言,其定义了用于定义其他与特定领域有关的、语义的、结构化的标记语言。它最大的特点是将信息的阐述与信息的处理分离开来,使得数据具有自我描述的能力。XML在现在的程序开发中作用越来越显著,具体地表现为:(1) XML可以从HTML中实现数据独立存储。在传统开发模式中,用户的HTML文件中除了要包含数据显示格式及结构外,还需要包括要显示的数据;但如果用户使用XML,可以将数据存储在一个独立的XML文件中.采用这种方式的优点是,开发人
8、员可以集中精力关注HTML文件的布局和显示结构,数据修改只针对XML文件,而不用去改变HTML文件.同时,XML的数据可以作为一个单独的数据整体存储在HTML页面中.(2) XML可以进行数据交换。用XML可以有两个不兼容的系统间传递数据。在采用传统EDI标准的开发人员需要花费大量的时间在两个互不兼容的系统间交换数。而以XML格式存储的数据,可以在不同类型的应用程序读取它。(3) XML在数据库方面也有相应的优势。XML文档可以自行定义数据结构,可以代替数据字典,直接生成建库脚本.XML、网页、数据库及文档中的表格时可以互相转换的.(4) XML在电子商务领域也已经广泛应用。各种类型的单据,如
9、发票,信用证,订货单等都可以通过XML标记信息来表示.在Internet上,交换金融信息如果采用XML语言,可以实现数据加密.(5) 可以创建一种新的语言。XML可以用来创建新的语言,例如WAP和WML就是由XML创建的。本图书进销存系统采用组件描述语言Component Markup Language (CML)构造客户端的应用程序.组件描述语言是本系统技术开发的核心,是一种以XML格式表示对组件的描述和定义,系统对XML进行解释编译形成应用程序。3项目需求分析这一部分主要介绍基于组件化技术的图书进销存管理系统的需求分析方法,包括系统总体需求分析,以及采购、销售、库存三个模块的详细的需求分析
10、等,引出了对图书进销存的系统主要部分、工作方式以及组件化设计的分析和阐述,为以后几章的进一步分析设计做准备。3.1 系统总体需求分析图书进销存管理系统是图书销售企业的日常工作必备的系统,是整个企业经营生产工作的技术平台基础。图书销售企业的经营生产活动,从原料的采购环节、产品的生产环节、产品的销售环节到产品库存管理环节等各方面抽象出来,都是物料的交换和流通的过程。图书进销存管理系统的功能及执行效率直接对企业的经济效益产生影响。该系统有助于企业合理调整物流渠道,及时把握物流的变化,对经营生产活动的提供有效的支持,并且对库存和资金占用率降低,提高产品流通效率.通过以上手段,可以降低采购及销售成本,并
11、最终使企业经营状况的不断改善,持续有效的发展。图书进销存管理系统应该包括如图3-1所示的几个主要功能模块,每个功能模块都是若干相关联的子功能构成.各部分模块基本功能如下:(1) 基础资料模块是对日常业务开展要求使用的供应商、客户、员工、仓库等的基本信息进行处理。基础资料建立后,可以在整个系统中各管理模块充分复用,降低数据冗余,优化结构,提高系统性能。(2) 统计查询模块包括:经营概况信息、客户查询、供应商查询、产品查询等.在录入业务单据并入账后,系统会自动生成账本及经营报表数据。同时分报表提供格式定义、排序,打印机及Excel格式结果,以供数据进行二次操作和处理.(3) 系统管理模块,可以完成
12、系统日常关系需要的功能,包括权限设置、账套管理、数据库管理、用户管理等功能。(4) 采购管理模块,可以包括采购订货、采购产品入库、采购产品付款等部分,可以实现从采购下单、采购产品入库验收、采购单据结算处理付款等全部流程管理,同时系统提供采购订单,采购进货单、采购付款单、退货单等单据处理相关的业务。(5) 销售管理模块,可以包括客户订货管理、销售出货管理、销售收款管理等部分,可以实现从客户订货、出库等全部流程管理,同时系统提供销售订单、销售出货单、收款单、退货单来处理相关的业务。(6) 库存管理模块,可以包括产品调库、产品组装、库房盘点、产品拆分库存报损(溢)等,同时系统提供调库单、盘点单、报损
13、(溢)单、产品组装单、产品拆分单等单据来处理。图3-1 图书进销存管理系统功能模块图3.2 采购管理模块需求分析采购管理在企业经营生产中非常重要的组成部分.企业日常生产活动,都需要采购大量的原材料及消耗品.尤其在图书企业,物料及原材料成本占最终产品成本的比重很大。如何对采购环节严格管理,在时间,质量,数量等方面权衡考量完成采购工作,及时满足经营生产所需的物料的供应,降低采购成本并提高采购的有效性是每个企业追求的目标。因此采购管理事实上是与生产、财务管理、库存以及成本管理等方面紧密联系的。该模块主要包括以下几个方面:(1) 采购订货:通常是由采购订货单来完成。主要处理向供应商订购产品的涉及的订单
14、或者合同,同时记录订货产品的日期、经手人、订购产品、供应商、数量、交货日期、单价、总价等信息;另外,采购订单可以与采购进货单联动,企业可以跟踪订单的交货和付款情况.(2) 采购产品入库:主要处理产品采购、内转及赠与等业务,同时记录采购产品的日期、经手人、产品、供应商、数量、单价、总价等;另外,采购进货单可以与采购订单联动,调入采购订单数据,同时把已付货情况提交到订货,企业可以跟踪订单相关执行情况。(3) 采购产品退货:主要处理产品采购退回等业务,记录退货产品的日期、经手人、产品、供应商、数量、单价、总价等。(4) 采购产品付款:主要处理提供给供应商的货款,记录结算应付款和预付款等;付款单可以联
15、动采购订单和采购进货单,可以提交给订单的付款情况。3.3 销售管理模块需求分析销售管理是一个企业面向市场的窗口,也是企业更好生存的命脉.其职能是为客户提供产品及服务,从而使企业获取利润,体现企业的社会价值,是企业的生存乃至发展的重要保证.特别是图书企业,在当前市场经济日新月异的情况下,大大小小的图书企业,如雨后春笋一样,日益增多。这使得销售管理对于每个图书企业,特别是中小企业显得尤为重要。图书销售管理与采购管理、库存管理等有着密不可分的联系,一起共同构成一个完整的图书企业管理信息系统.该模块主要包括以下几个方面:(1) 客户订货管理:管理与客户签订的图书产品销售合同,记录客户订货的日期、客户名
16、称、操作人、预计交货日期、订购的图书产品、订购数量、产品单价等资料;产品销售订单可以与产品销售出货单关联,跟踪产品的交货和收款情况。(2) 产品出货管理:采用销售出货单处理图书产品的各种出库业务的方式,其中包括:产品销售、赠与、自销、委托代销等;记录图书产品的出货日期、客户名称、操作人、产品名称、出货数量、产品单价等资料;产品销售出货单可以与销售订单相关联,自动添加订货产品数据,以及反馈交货情况,最终跟踪订单执行。(3) 产品退货:用于处理销售图书产品的退回业务,记录产品退货的日期、客户名称、操作人、产品名称、退货数量、产品单价等。(4) 销售收款管理:结算产品客户应收款或预收款,记录收款的日
17、期、客户名称、操作人、收款账户、收款的方式、收款金额等;销售收款单可以和销售出货单和产品订单关联,了解每个销售出货单和产品订单的收款情况.在销售管理的模块中,相关的用户有系统管理员、销售人员、普通用户,系统管理员和销售人员拥有修改、删除、创建以及审核销售单据的权限,普通用户仅仅可以查询浏览销售产品数据的信息.4总体设计系统的总体任务是提供界面友好、易操作、安全性高、方便更新的,符合图书企业日常工作的基于组件化的进销存系统。本章主要介绍基于组件化技术的图书进销存管理系统的设计与实现方法,包括系统设计思想、系统总体设计、系统详细设计、数据库的设计等。4.1 设计思想根据需求分析,本系统的设计思想如
18、下:(1) 图书进销存管理系统应符合图书企业进销存工作实际,能够适应公司日常工作需要,同时具备界面直观,易操作,安全性高等特点。(2) 系统采用三层C/S架构,Client端负责用户界面信息显示、日常操作功能;Server端负责实现数据持久化功能。(3) 系统采用模块化程序设计方式,按照软件相关的需求,模块之间优先采用数据连接,其次使用特征连接,尽量弱化模块之间的聚合度,提高模块独立性。采用这种方式既有利于系统功能的变更,又方便未来系统的升级与维护.(4) 系统应具备数据库操作功能,及时根据用户需求进行数据的添加、查询、删除、修改等操作.系统同时提供数据库备份及恢复功能。4。2 总体设计4.2
19、。1 系统总体架构在图书进销存管理系统中采用C/S结构,程序主要分成三大部分:服务器程序(Server)、服务程序(Service)、客户端程序(Client)。(1) 服务器程序(Server):为了程序管理方便,本系统在服务器端提供了一个Server程序,该程序主要用来集中管理登入系统涉及用户,同时该程序可以实时监听网络情况,自动获取并显示当前所有网上操作的操作员、机器名、操作账套、登入时间等;同时包括一些系统的基本设置,例如:系统管理员口令维护、操作员权限变更、清除数据、结转汇总、数据备份恢复及建立账套等功能。(2) 服务程序(Service):Service服务是系统运行的核心。数据持
20、久层保存在Service服务里,而Service服务又保存在Windows服务中。如果Service服务没有启动,客户端程序就无法运行。(3) 客户端程序(Client):该程序在客户端运行,主要完成用户的采购、销售、库存管理等业务,在文中主要涉及客户端的设计.5。 详细设计5。1 单据状态图在图书进销存管理系统中,每种单据都有明确的状态转换,所以可以在系统中对单据建立状态图.这里仅对采购单据状态图进行介绍采购单据状态图介绍了采购单据在系统运行时的相应状态,如图51所示。图5-1 采购单据状态图状态图的说明:(1) 草稿:还没有入账的采购单据.(2) 生效:采购订货单已经结算并且支付预付款以后
21、,单据会改变为生效状态;采购进货单入账以后,如果尚未全额结算时单据状态为生效。这是可以使用采购付款单完成剩余余额。(3) 付讫:采购进货单完成全额结算,单据状态会自动显示付讫;如果使用采购付款单尾款入账结算后,单据状态显示为付讫.(4) 作废:创建后但没有最终执行的单据可以被删除,删除后单据的状态显示为作废。 5.2 数据库设计由于图书进销存管理系统的数据表很多,数据类型也较复杂,本文不能全部进行介绍.这里只能对采购模块中比较重要的数据库表以及部分关键数据字段完成分析。5。2.1采购模块数据表的设计采购模块涉及到的数据表有产品表、采购订货单主表、采购订货单明细表、采购进货单主表、采购进货单明细
22、表、采购付款单主表、采购付款单明细表、仓库表、员工表、供应商表、进货类型表、发票类型表、结算方式表等表组成,这里仅针对几个表的设计进行说明.如图5-3,这里仅包括与采购进货单相关的表。(1) 产品表(Product):存储产品的基本信息。主键是ProductID,外键是Class。见表5-1。表5-1 产品表Table 51 The table of Product字段类型/长度空值中文名称缺省值备注ProductIDNvarchar(50)N产品IDPKClassNvarchar(64)Y产品类别FKNamenvarchar(64)N产品名称Unitnvarchar(20)Y单位MaxRes
23、decimal(18, 8)N库存上限(2) 采购进货单主表(InSheet):存储采购进货以及采购退货的基本数据,主键是SheetID,外键 SupplierID、EmployeeID、StorehouseID等。见表52。表5-2 采购进货单主表Table 5-2 The table of InSheet字段类型/长度空值中文名称缺省值备注SheetIDnvarchar(25)N单据编号PKSupplierIDnvarchar(20)N供应商编号FKEmployeeIDnvarchar(20)N员工编号FKStorehouseIDnvarchar(20)N仓库编号FKSheetDateSm
24、alldatetimeN填写日期AccDateSmalldatetimeN入账日期AmountMoneyN合计金额PayAmountMoneyN付款金额Quantitydecimal(18, 4)N采购总数量OrderIDnvarchar(25)Y采购订单号IsRedBitN是否红色IsAccBitN是否入账Remarknvarchar(1000)Y备注(3) 采购进货单明细表(InSheetDetail):存储采购进货或者退货的详细数据。主键是SheetDetailID,外键SheetID和ProductID,见表5-3.表53 采购进货单明细表Table 53 The table of I
25、nSheetDetail字段类型/长度空值中文名称缺省值备注SheetDetailIDUnique identifierN明细表编号PKSheetIDnvarchar(25)N主表编号NullFKProductIDnvarchar(50)N产品编号FKQuantitydecimal(18, 8)N采购数量100PriceMoneyN不含税单价AmountMoneyN不含税金额TickSheetIDnvarchar(25)Y代销单号OrderIDnvarchar(25)Y订单号(4) 员工表(Employee):存储员工的相关信息.主键是EmployeeID,外键ProductID,Class。
26、见表54.表5-4 员工表Table 54 The table of Employee字段类型/长度空值中文名称缺省值备注EmployeeIDnvarchar(20)N员工编号NullPKClassnvarchar(64)Y部门编号NullFKNamenvarchar(8)N员工名称IsUsedBitN是否使用6项目开发计划系统的业务实现都是通过一系列单据来完成的。在本系统中的每一种单据都有“单据录入、“单据浏览”、“条件查询”几个界面。下面分别对这几个界面进行介绍。6。1公共界面的实现“单据录入”具有审核、删除、创建单据等功能;“单据浏览”可以显示某时期内用户对应的所有单据及明细信息。“条件
27、查询”实现综合查询功能,用户可根据自己的特定需求查询信息。另外,单据操作时部分方法是可以复用的,例如单据打开函数Open() 在本系统中所有的单据对应的界面都是通过它打开的.单据打开函数XMLForm Open(string strSheetName, XMLForm xfParent) 中的两个参数分别是表单的名称及相应表单对应的父窗体,返回类型是XMLForm。 6.2采购业务实现6.2.1采购订货功能实现采购订货单用来处理供应商采购产品涉及的订单或合同。该单据记录供应商和订货产品明细等相关信息;采购订货单入账后不可删除或者修改,但是可通过采购进货单处理到货数量。采购订货单入账过程如图6。
28、3所示。采购订货的的入账流程如下介绍:(1) 系统首先检查用户是否曾经添加了单据明细,或者单据明细的数量是否为零。如果无明细或者数量是零,系统将显示错误信息,所有操作终止。如果检查通过则打开“结算窗体,同时要求输入要结算的金额。(2) 如果结算金额不是零,系统将会自动生成对应采购付款单,并登入供应商往来账,如果是零则直接结束。所有单据的主表单据号都是通过方法GetDBSheetID(),并且使用数据库中的存储过程GetSheetID获取的;DatabaseName对应用户使用的数据库,SheetName对应要创建的单据,SheetDate对应当前的系统时间。本系统单据的规范是域名+年+月+日+
29、顺序号,例如,假设域名是:bj,2009年7月4日则单据号是:bj090704003、bj090704168等。单据号是自动生成,不允许修改。Delete方法先查找目前单据中IsAcc字段的值,以此判断是否已入账.如果还未入账,就在数据集中删除目前的条目,并会调用Save方法来进行数据保存,接着调用UndoDBSheetID方法来回退单据号.Delete方法实际上实现了删除所有未入账单据的操作。6。2。2采购进货功能实现采购进货单可用来处理产品采购、内转、赠与等相关入库的业务,相当于将采购的产品入库操作;采购进货单可以通过手工方式录入系统,也可以由采购订单自动转入数据。同时注意采购进货单入账后
30、不可被修改或删除,但是可通过采购付款单来完成修改付款金额和单据的状态。采购进货单的入账过程如图6。4所示.采购进货的的入账过程如下:(1) 系统首先检查用户是否已添加了单据明细,并且判断单据明细的数量是否是零。如果无明细或者数量是零,系统将显示错误信息,同时操作终止.否则将打开“结算窗体”,要求输入要结算的金额;(2) 付款金额要求不可超过采购进货单金额合计;可以针对特定的供应商进行限制无法进行部分结算;如果付款金额大于零,系统则会自动显示对应的采购付款单;(3) 对于有联动采购订货单,系统将自动修改订单到货数量;(4) 系统自动将信息登入供应商往来账、产品明细账、仓库保管账等。参考文献1.
31、张巨俭,甘初初. 管理信息系统的发展方向及实现技术J,计算机应用研究. 2003,20:8102. 曾祥锋. 基于Internet的库存控制信息系统的研制D,武汉:武汉理工大学, 2002,5-63. 黄骁俭。 SAP Business One 中文版7。0M,北京:中国人民大学出版社 20044. 李文化。 基于。Net的进销存系统和客户关系管理系统的开发与研究D,北京:北京工业大学。 20065. 吴继辉。 图书进销存管理软件设计与开发D,北京:北京工商大学,20056. (美) William E.Lewis, Gunasekaran Veerapillai. Software Testing and Continuous Quality Improvement Second EditionM,北京:人民邮电出版社,2008,63647. 武装. 。NET框架程序员参考手册.框架基础篇 第3版M,北京:北京大学出版社,2006,340-5058. 刘晓华. .NET核心技术原理与架构M,北京:电子工业出版社,20029. Powell R,Weeks R。C and .NET FrameworkM,北京:人民邮电出版社.13