第一篇:当前仓库管理系统存在的问题
当前仓库管理系统存在的问题.txt18拥有诚实,就舍弃了虚伪;拥有诚实,就舍弃了无聊;拥有踏实,就舍弃了浮躁,不论是有意的丢弃,还是意外的失去,只要曾经真实拥有,在一些时候,大度舍弃也是一种境界。当前仓库管理系统存在的问题
在一般的企业库存管理中普遍存在库存量过高以及整个供应链中需求变异放大的问题(即“牛鞭效应”)。为了保障企业的准时生产,很多企业都存在库存量过高的问题,造成这种现象的主要原因在于:
销售预测不准确是影响库存居高不下的主要原因。公众爱好具有易变性,很多因素都会引起不规则的购买倾向,从而导致一般用户和分销商需求也具有很大的不确定性。加之与下游企业的信息沟通不流畅等等,都增加了销售预测的难度。
货策略的失误和及时控制的能力较差。这种不确定来自订购部门本身。牵涉到是否有合理的订货策略,对上下游企业的供给及需求等信息是否了解准确及时等。
订货周期的不稳定。这主要取决于自己的供货渠道是否单一以及供应商的表现水平是否令人满意。
没有有效地与各个部门沟通,使得库存、在途货物以及需求等基本信息发生偏差。
在供应链中,每个企业都会向其上游订货,一般情况下,销售商并不会来一个订单就向上级供应商订货一次,而是在考虑库存和运输费用的基础上,在一个周期或者汇总到一定数量后再向供应商订货;为了减少订货频率,降低成本和规避断货风险,销售商往往按照最佳经济规模加量订货。同时频繁的订货也会增加供应商的工作量和成本,供应商也往往要求销售商在一定数量或一定周期订货,此时销售商为了尽早得到货物或全额得到货物,或者为备不时之需,往往会人为提高订货量。这样,定货量的层层放大,有可能导致最终的供应商所得到的订单需求是用户的实际需求的几倍甚至几十倍。这给各个企业在库存管理以及生产方面都带来了极大的负面效应。我们称这种现象为“牛鞭效应”。导致需求变异放大即“牛鞭效应”的原因比较复杂,涉及到库存管理方面的主要原因在于:企业之间的信息不对称、提前期的问题以及库存失衡的问题。
企业之间的信息不对称。由于缺少信息交流和共享,企业无法掌握下游的真正需求和上游的供货能力,只好自行多储货物。同时,供应链上无法实现存货互通有无和转运调拨,只能各自持有高额库存,这会导致并加剧牛鞭效应;
提前期。需求的变动随提前期的增长而增大,且提前期越长,需求变动引起的订货量就越大,企业由于对交货的准确时间心中无数,往往希望对交货日期留有一定的余地,因而持有较长的提前期,因此逐级的提前期拉长也造成了牛鞭效应;
库存失衡。传统的销售一般是由供应商将商品送交销售商,其库存责任仍然归供应商,待销售完成后再进行结算,但商品却由分销商掌握和调度。这就导致了销售商普遍倾向于加大订货量掌握库存控制权,因而加剧了订货需求加大,导致了牛鞭效应。
一、商品入库流程
1、采购部下定单时应该认真审核库存数量,做到以销定进。
2、采购部审核订单时,应根据公司实际情况,核定进货数,杜绝出现库存积压,滞销等情况。
3、订单录入后,采购部通知供货商送货时间,并及时通知仓库。
4、当商品从厂家运抵至仓库时,收货员必须严格认真检查商品外包装是否完好,若出现破损、是原装短少、邻近效期等情况。收货人必须拒绝收货,并及时上报采购部;若因收货员未及时对商品进行检查,出现的破损,原装短少、邻近效期,所造成的经济损失由该收货员承担。
5、确定商品外包装完好后,收货员必须依照相关单据:订单、随货同行联,对进货商品品名、等级、数量、规格、金额、单价、效期进行核实,核实正确后方可入库保管;若单据与商品实物不相符,应及时上报采购部;若进货商品未经核对入库,造成的货、单不相符,由该收货人承担因此造成的损失。
6、入库商品在搬运过程中,应按照商品外包装上的标识进行搬运;在堆码时,应按照仓库堆放距离要求、先进先出的原则进行。若未按规定进行操作,因此造成的商品损坏由收货人承担。
7、入库商品明细必须由收货员和仓库管理员核对签字认可,做到帐、货相符。商品验收无误后,仓库管理员依据验收单及时记账,详细记录商品的名称、数量、规格、入库时间、单证号码、验收情况、存货单位等,做到帐、货相符。若不按照该制度执行验收造成的经济损失由仓库管理员承担。
8、按收货流程进行单据流转时,每个环节不得超出一个工作日。
二、商品出库流程
1、业务部开具出库单或调拨单,或者采购部开具退货单。单据上应该注明产地、规格、数量等。
3、仓库收到以上单据后,在对出库商品进行实物明细点验时,必须认真清点核对准确、无误,方可签字认可出库,否则造成的经济损失,由当事人承担。
4、出库要分清实物负责人和承运者的责任,在商品出库时双方应认真清点核对出库商品的品名、数量、规格等以及外包装完好情况,办清交接手续。若出库后发生货损等情况责任由承运者承担。
5、商品出库后仓库管理员在当日根据正式出库凭证销账并清点货品结余数,做到账货相符。
6、按出货流程进行单据流转时,每个环节不得超出一个工作日。仓库管理分人员管理和物料管理:
物料管理须按照几点原则:先进先出,物以类聚,三账(实物,卡,电脑账)合一.物料按规定存放等。
仓库流程分为:进料流程,发放流程,库存品管理等。负责仓库的物料保管、验收、入库、出库等工作。
提出仓库管理意见及物资采购计划,在批准后贯彻执行。
严格执行公司仓库保管制度及其细则规定,防止收发货物差错出现。入库要及时登帐,手续检验不合要求不准入库;出库时手续不全不发货。
负责仓库区域内的治安、防盗、消防工作,发现事故隐患及时上报,对意外事件及时处置。合理安排物料在仓库内的存放次序,按物料种类、规格、等级分区堆码,不得混堆和乱堆,保持库区的整洁。
负责将物料的存贮环境调节到最适条件,防止鼠害、虫咬等,负责定期对仓库物料盘点清仓,做到帐、物、卡三相符,协助物料主管做好盘点、盘亏的处理及调帐工作。
负责仓库管理中的出入库单、验收单等原始资料、帐册的收集、整理和建档工作,及时编制和按时上交相关的材料收支存报表,及时准确地登记材料明细分类帐簿。以公司利益为重,爱护公司财产,不得监守自盗。完成采购业务部及财务部长临时交办的其他任务。
这个是基本的职责 仓管主要是仓库明细帐登记清楚 分类 分品种登记
摆放也分类 分品种的摆放 这样便于清理和领取 每月底盘存一次 制作每月的进 销 存 报表
确保仓库货物的安全 防火 防盗 做到这些就好了
你说的 配件用完 申报问题 应该是仓库和生产部门一起申报采购部门采购配件
目前存在的问题
一、现在账套的问题。目前的账套已沿用多年,其中已累积许多不规范的编码,且有相当部分都是重复的,而且价格也混乱无比,导致成本核算的不准确,这样的核算在一些方面已经没有意义。
二、毛坯与加工费的核算问题。现在账套对这两项的核算在同一仓库中进行,在对产成品的成本核算时现取其毛坯与加工费之和,这在理论上是对的,但弊端在于,对毛坯的库存数量与成本无法及时掌握,对出入库过程无法控制,对加工费的成本同样无法掌握。
三、盘库的问题。如果要想得到准确的库存数据,盘库是必须的,一般情况下,应每月盘库一次,若有困难,至少应该每个季度盘一次库,以及时掌握与控制库存的差异情况。
四、产成品的核算问题。
1、入库的不及时。一般是相关单据积压在生产那儿,没有及时整理,结果往往上个月的账这个月做,这个月的账又只能下个月做。这是我与生产方面的协调工作没有做好,以后我会与生产包括质检方面进行协调。
2、对产成品成本的核算。目前是采用将相关材料输入“材料出库单”然后再等到月底进行期末处理后才得出该产品的成本,那么有没有办法这样呢:一张订单出来后,直接先核算出其成本价格,在产品完工与发货时,即分别进行“产成品入库”与“销售出库”处理。这样我觉得更合乎规范,况且目前系统生成的成本并不十分准确。
针对以上问题认为可行的解决办法
一、鉴于目前账套编码混乱,价格混乱的情况,我觉得已没有再继续沿用下去的必要,最彻底的办法是再重新建立一个账套!考虑到 仓库物料过多(目前账套显示有9406种物料,包括产成品),且一些数据要靠盘库所得,建立新账套需要一段时间,因此,在这段时间里可让新老账套并存,待老账套慢慢过渡到新账套的时候,再正式启用新账套。也就是:在仍沿用原账套的同时,进行新账套相关数据的收集、整理、录入„„
关于新账套的结构,我的设想如下:
存货分类:
01-基本件——0101-ES泵 0102-ESC泵 0103-SES泵 0104-MVD泵 0105-HVS泵 0106-VL泵 0107-SP泵 0108-电机
0109-减震器——010901-顶盖 010902-底板 010903-橡胶件 010904-弹簧 010905-吊架 010906-焊接件 010907-其他 0199-其他 02-标准件——0201-螺丝类 0202-密封圈类 020-键销类 0204-机械密封 0205-轴承类
0206-其他 03-包装物——0301-栅栏木箱 0302-封闭木箱 0303-胶合板箱 0304-其他
04-产成品——大致同0101——0107 05-毛坯件——同01基本件
06-机加工——同01基本件
仓库分类:01——基本件 02——标准件 03——包装物 04——产成品 05——毛坯库 06——机加工
对所有存货均按编码规则采用纯数字编码,在存货代码中可对其他进行相关描述。
二、对毛坯与加工费的核算问题,在新账套中,将分别在05、06库中进行单独核算,并且对毛坯及其加工成品的出入库进行控制,这就要求对毛坯发外加工也要进行系统账务的处理。(这一点以前没有)
三、至于盘库,也许是个头疼的问题,但我觉得在时间不急促的情况下,并不需要投入太多人力,就我们仓库两人利用空闲时间,每天进行一定量的分类盘点,应该可以对付,只是因品种规格繁多,少不了要经常问刘厂,可能会对他有所干扰。
四、产成品的成本核算问题,我想到的有两个办法,第一,采用手工核算。这样如果订单太多,工作量太大,出错机率大。第二,改变仓库的计价方式。目前采用的全月平均法,要在月底期末处理后得出成本,如若改为先进先出或移动平均法,那么在单据记账后就可计算成本。
以上是我的个人意见及计划,可能还有一些不成熟,但我想还是应该尝试一下,因我觉得目前的所谓核算,除了入库成本相对准确外,其他成本真的很难保证,似乎核算的作用仅剩下为采购制单供其结帐了。而且提高仓库核算的准确性,对财务方面的一些工作也是一劳永逸的事情。
第二篇:仓库管理系统
·
用Visual C++设计的仓库管理系统
摘要 本文主要介绍了采用Visual Studio 2005的一个仓库管理系统。该系统基于MFC集成开发环境,利用ADO控件实现基本信息管理、商品信息管理、库存操作管理、库存警示管理的功能。详细介绍了开发本系统的步骤:系统分析、系统设计、系统实现。在系统分析中采用系统的功能结构图分析了系统所需的各种数据。在系统的设计中,详细的展现了系统的各个功能模块、所需的数据库表、菜单的设计等。在系统的实现中,给出了相应模块功能控件的事件及代码。
关键字:仓库管理 管理系统
ADO控件 面向对象
第一章
绪论
1.1系统的开发背景……………….…………………………………4 1.2当前仓库管理现状分析及设计仓库管理系统的意义………….4 1.2系统开发工具选择及介绍………………………….……………5 1.3 ADO数据访问技术………………………………………………7 第二章 系统设计
2.1系统需求分析„„„„„„„„„„„„„„„„„„„„„9 2.2系统开发目标……………………………………………… ………10 2.3系统功能分析
2.31系统功能描述…………………………………………………..10 2.32 系统功能模块的划分………………………………………… 11 2.33系统流程分析…………………………………………………..11 第三章 数据库设计
3.1数据库需求分析 ……………………………………………….12 3.2 数据库概念结构设计 ………………………………………….13 3.3 数据库逻辑结构设计及实现 ………………………………….15 第四章 系统各主要功能模块的实现
4.1主界面的设置…………………………………………………..18 4.2主要各功能模块所涉及的类的添加……………………… ……19 4.3登陆模块设计 …………………………………………………..19 4.4客户管理模块设计 4.41 设计客户信息管理对话框 ………………………………..21 4.42 设计客户信息编辑对话框 ……………………………..24 4.5仓库管理模块设计
4.51设计仓库信息管理对话框 …………………………………25 4.6用户管理模块设计
4.61设计用户信息管理对话框…………………………………...27 4.62 设计用户信息编辑对话框…………………………………..28 4.63设计修改用户密码的对话框…………………………………29 4.7商品管理模块设计
4.71设计商品类别管理对话框……………………………………30 4.72 设计商品类别编辑对话框…………………………………...31 4.73 设计商品信息管理对话框…………………………………...32 4.8 库存操作管理模块设计
4.81 设计入库操作管理对话框…………………………………34 4.82 设计入库单编辑对话框……………………………………..35 4.83 设计出库操作管理对话框…………………………………..37 4.84 设计出库操作编辑对话框 ………………………………..37 4.85 设计库存盘点管理对话框…………………………………39 4.86 设计库存盘点编辑对话框 …………………………………40 4.9 库存警示管理模块设计
4.91 设计商品数量报警管理模块………………………………...41 4.92 设计商品失效报警管理模块 ……………………………….42 第五章 结束语
5.1开发中的问题和解决办法………………………………………….44 5.2系统不足之处………………………………………………………44 第六章 致谢 …………………………………………………………..45 第七章 参考文献 ……………………………………………………..45
1.1系统开发的背景
20世纪,随着全球经济的蓬勃发展,众多经济学家纷纷提出了新的管理理论。20世纪50年代,西蒙提出管理依赖于信息和决策的思想。同时期的维纳发表了控制论,他认为管理是一个控制过程。1958年,盖尔写到:“管理将以较低的成本得到及时准确的信息,做到较好的控制。”这个时期,计算机开始用于会计工作,出现数据处理一词。
1970年,Walter T.Kennevan给刚刚出现的管理信息系统一词下了一个定义:“以口头或书面的形式,在合适的时间向经理、职员以及外界人员提供过去的、现在的、预测未来的有关企业内部及其环境的信息,以帮助他们进行决策。”在这个定义里强调了用信息支持决策,但并没有强调应用模型,没有提到计算机的应用。
1985年,管理信息系统的创始人,明尼苏达大学的管理学教授Gordon B.Davis给了管理信息系统一个较完整的定义,即“管理信息系统是一个利用计算机软硬件资源,手工作业,分析、计划、控制和决策模型以及数据库的人-机系统。它能提供信息支持企业或组织的运行、管理和决策功能。”这个定义全面地说明了管理信息系统的目标、功能和组成,而且反映了管理信息系统在当时达到的水平。1.2当前仓库管理现状分析及设计仓库管理系统的意义
一直以来人们使用传统的人工方式管理库存。这种管理方式存在着许多缺点,诸如效率低,保密性差等,而且时间一长,将产生大量的文件和数据,这对于查找、更新和维护都带来了不少的困难。对于企业来说为了管理好仓库,将付出大量的人力和物力。因此设计一款仓库管理系统是非常重要的。它带来的优点是:它可以全面的管理仓库中储存的商品和货物,缩短了库存信息流转时间,使企业的物料管理层次分明、井然有序,为采购、营销和生产提供了依据,从而提高企业的经营效率。因此,库存管理系统能够为用户提供充足的信息和快捷的查询手段。
随着科学技术的不断提高,计算机科学不断发展,其强大的功能已经被人们深刻认识,它已经进入了人类社会的各个领域并发挥着越来越重要的作用.1.3系统开发工具的选择及介绍 系统开发环境
操作系统:Windows XP Professional 简体中文版 开发平台: Visual Studio 2005简体中文版 系统开发工具的选择
实现该系统的方法有很多,之所以选择Visual C++作为开发工具,不仅仅因为曾经有过使用它的经验,看中的更是它的功能强大和使用方便。它本身不仅具有极其强大的编程能力,它允许选择和管理外接程序,并内含多种实用控件,这些对Visual C++的扩充又进一步增强了它的开发环境的能力。 开发平台介绍 Visual Studio 可以用来创建 Windows平台下的 Windows 应用程序和网络应用程序,也可以用来创建网络服务、智能设备应用程序和 Office 插件。
1998 年,微软公司发布了 Visual Studio 6.0。所有开发语言的开发环境版本均升至 6.0。这也是 Visual Basic 最后一次发布,从下一个版本(7.0)开始,Microsoft Basic 进化成了一种新的面向对象的语言:Microsoft Basic.NET。由于微软公司对于 Sun 公司 Java 语言扩充导致与 Java 虚拟机不兼容而 Sun 被告上法庭,微软在后续的 Visual Studio 中不再包括面向 Java 虚拟机的开发环境。
2002 年,随着.NET 口号的提出与 Windows XP / Office XP 的发布,微软发布了 Visual Studio.NET(内部版本号为 7.0)。在这个版本的 Visual Studio 中,微软剥离了 Visual FoxPro 作为一个单独的开发环境以 Visual FoxPro 7.0 单独销售,同时取消了 Visual InterDev。.NET 的通用语言框架机制(Common Language Runtime, CLR),其目的是在同一个项目中支持不同的语言所开发的组件。所有 CLR 支持的代码都会被解释成为 CLR 可执行的机器代码然后运行。
Visual Basic、Visual C++ 都被扩展为支持托管代码机制的开发环境,且 Visual Basic.NET更是从 Visual Basic 脱胎换骨,彻底支持面向对象的编程机制。而 Visual J++ 也变为 Visual J#。后者仅语法同 Java 相同,但是面向的不是 Java 虚拟机,而是.NET Framework。
2003 年,微软对 Visual Studio 2002 进行了部分修订,以 Visual Studio 2003 的名义发布(内部版本号为 7.1)。Visio 作为使用统一建模语言(UML)架构应用程序框架的程序被引入,同时被引入的还包括移动设备支持和企业模版。.NET 框架也升级到了 1.1。
2005 年,微软发布了 Visual Studio 2005。.NET 字眼从各种语言的名字中被抹去,但是这个版本的 Visual Studio 仍然还是面向.NET 框架的(版本2.0)。它同时也能开发跨平台的应用程序,如开发使用微软操作系统的手机的程序等。总体来说是一个非常庞大的软件,甚至包含代码测试功能。
这个版本的 Visual Studio 包含有众多版本,分别面向不同的开发角色。
Microsoft为单独工作或在小型团队中的专业开发人员提供了两种选择,Visual Studio 2005 Professional Edition和用于Microsoft Office系统的Visual Studio 2005工具。每种版本都在标准版的特性上进行了扩展,包括用于远程服务程序开发和调试、SQL Server2005开发的工具,以及完整的、没有限制的开发环境。
1.4 ADO数据访问技术
ADO(ActiveX Data Objects,ActiveX数据对象)是Microsoft提出的应用程序接口(API)用以实现访问关系或非关系数据库中的数据。象Microsoft的其它系统接口一样,ADO是面向对象的。它是Microsoft全局数据访问(UDA)的一部分,Microsoft认为与其自己创建一个数据,不如利用UDA访问已有的数据库。为达到这一目的,Microsoft和其它数据库公司在它们的数据库和Microsoft的OLE数据库之间提供了一个“桥”程序,OLE数据库已经在使用ADO技术。ADO的一个特征(称为远程数据服务)支持网页中的数据相关的ActiveX控件和有效的客户端缓冲。作为ActiveX的一部分,ADO也是Microsoft的组件对象模式(COM)的一部分,它的面向组件的框架用以将程序组装在一起。ADO从原来的Microsoft数据接口远程数据对象(RDO)而来。RDO与ODBC一起工作访问关系数据库,但不能访问如ISAM和VSAM的非关系数据库。
ADO 是对当前微软所支持的数据库进行操作的最有效和最简单直接的方法,它是一种功能强大的数据访问编程模式,从而使得大部分数据源可编程的属性得以直接扩展到你的Active Server 页面上。可以使用ADO 去编写紧凑简明的脚本以便连接到 Open Database Connectivity(ODBC)兼容的数据库和 OLE DB 兼容的数据源,这样 ASP 程序员就可以访问任何与 ODBC 兼容的数据库,包括 MS SQL SERVER、Access、Oracle 等等。
ADO是一种面向对象的编程接口,微软介绍说,与其同IBM和Oracle提倡的那样,创建一个统一数据库,不如提供一个能够访问不同数据库的统一接口,这样会更加实用一些。为实现这一目标,微软在数据库和微软的OLE DB中提供了一种“桥”程序,这种程序能够提供对数据库的连接。
开发人员在使用ADO时,其实就是在使用OLE DB,不过OLE DB更加接近底层。ADO的一项属性??远程数据服务,支持“数据仓库”ActiveX 组件以及高效的客户端缓存。作为ActiveX的一部分,ADO也是COM组件的一部分。ADO是由早期的微软数据接口?远程数据对象RDO演化而来的。RDO同微软的ODBC一同连接关系数据库,不过不能连接非关系数据库。
ADO向我们提供了一个熟悉的,高层的对OLE DB的Automation封装接口。对那些熟悉RDO的程序员来说,你可以把OLE DB比作是ODBC驱动程序。如同RDO对象是ODBC驱动程序接口一样,ADO对象是OLE DB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLE DB提供者(OLE DB provider)。目前,虽然OLE DB提供者比较少,但微软正积极推广该技术,并打算用OLE DB取代ODBC。
ADO向程序员提供了很多好处。包括易于使用,熟悉的界面,高速度以及较低的内存占用(已实现ADO2.0的Msado15.dll需要占用342K内存,比RDO的Msrdo20.dll的368K略小,大约是DAO3.5 的Dao350.dll所占内存的60%)。同传统的数据对象层次(DAO和RDO)不同,ADO可以独立创建。因此你可以只创建一个 “Connection”对象,但是可以有多个,独立的“Recordset”对象来使用它。ADO针对客户/服务器以及WEB应用程序作了优化。第二章 系统设计
2.1系统需求分析
随着科学技术的发展,越来越多的企业开始用计算机管理仓库。而现在的仓库管理系统多种多样,而仓库管理的特点是信息处理量比较大。所以管理的物资设备种类繁多,而且由于入库单,出库单,需求单等单据发生量特别大,关联信息多,查询和统计的方式各不相同。因此在管理上实现起来有一定的困难。在管理的过程中经常会出现信息的重复传递,单据,报表种类繁多,各个部门管理规格不统一等问题。
在本系统的设计过程中,为了克服以上困难,满足计算机管理的需要,我们采取了下面的一些原则。
●统一各种原始的单据的格式,统一帐目和报表的格式。●删除不必要的管理冗余,实现管理规范化、科学化。
●程序代码标准化,软件统一化,确认软件的可维护行和实用性。●界面尽量简单化,做到实用、方便,尽量满足企业中不同层次员工的需要。2.2系统开发目标
系统开发的总体任务是实现企业物资设备管理的系统化,规范化和自动化,从而达到提高企业物资管理的效率的目的。2.3系统功能分析 2.31系统功能描述(1)基本信息管理 基本信息管理包括对客户信息、仓库信息和用户信息信息的管理。(2)商品信息管理
对于商品各种信息的管理。(3)库存操作管理
库存操作管理可以实现入库管理、出库管理和库存盘点等功能。(4)库存警示管理
库存警示是指对库存中接近或超过临界值的商品进行报警。在商品信息中,包含商品的合理数量范围和有效期限。商品数量小于合理数量下限称为短线;商品数量大于合理数量的上限成为超储。商品出现短线、超储、接近或超过有效期限时都需要报警。(5)统计查询管理功能
统计查询管理可以对库存商品进行各种类型的统计和查询。从而使用户能够全面的了解库存状况。2.32 系统功能模块的划分
基于对系统的分析,可以得到如图所示的系统功能模块图:
本系统将用户划分为两种类型,即系统管理员用户和普通用户。系统管理员用户可以管理其他用户信息,而在其他方面与所有用户的权限相同。
2.33系统流程分析
所谓系统流程就是用户在使用系统时的工作过程。对于多类型用户的管理系统来说,每一类用户的工作流程都是不相同的。多用户系统的工作流程都是从用户登陆模块开始,对用户的身份进行认证。身份认证可以分为以下两个过程:
(1)确认用户是否是有效的系统用户。(2)确定用户的类型。
第一个过程决定用户能否进入系统。第二个过程根据用户的类型决定用户的操作权限,从而决定用户的工作界面。因此得到它的系统流程分析图如下:
第三章 数据库设计 3.1数据库需求分析
在本设计中,通过对企业仓库管理的内容和系统流程分析,设计的数据项和数据结构如下:
(1)客户信息。包括的数据项有客户编号、名称、类型等。(2)仓库信息。包括仓库编号、名称和说明等。(3)用户信息。包括用户名、密码、员工姓名等信息。(4)商品管理信息。包括商品类别,商品编号等信息。
(5)库存操作管理信息。包括入库和出库操作需要记录的商品信息、仓库信息、经办人、涉及金额和入库时间等信息。有了上面的数据结构、数据项,就能进行下面的数据库设计。3.2 数据库概念结构设计
这一设计阶段是在需求分析的基础上,设计出能够满足用户需求的各种实体,以及它们之间的关系,为后面的逻辑结构设计打下基础。本设计根据上面的设计规划出的实体有客户实体、仓库实体、用户实体、商品类别实体、商品实体、入库实体、出库实体、库存实体。各个实体的E-R图描述如下:
客户实体的E-R图
仓库实体E-R图
用户实体E-R图
商品类别E-R图
商品类别E-R图
入库实体E-R图
出库实体E-R图
库存实体 E-R图
3.3 数据库逻辑结构设计及实现
仓库管理系统数据库中的各个表格的设计结果如下面的几个表格所示。每个表格表示在数据库中的一个表。数据库的实现采用SQL Sever 2005。
(1)客户信息表(Client)
说明:Cid为客户编号、Cname为客户名称、Ctype为客户类型其中包括(1、供应商
2、供货商)、Ctype为联系人、Address为通信地址、Postcode为邮政编码、Phone为联系电话、Fax为传真电话、Memo为备注信息。
(2)仓库信息表(Storehouse)
说明:Sid为仓库编号、Sname为仓库名称、Memo为仓库说明。(3)用户信息表(Users)
说明:UserName为用户名、Pwd为密码、User_type为用户类型(1、系统管理员用户,2、普通用户)(4)商品类别表(ProType)
说明:TypeId为商品类别编号、TypeName为商品类别名称、UpperId为上级商品类别
(5)商品信息表(Product)
说明:Pid为商品编号、Pname 为商品名称、TypeId为商品类型编号、Pstyle商品规格、Punit为计量单位、Pprice为参考价格、Plow为商品数量下限、Phigh为商品数量上限、Valid为有效期、AlarmDay为在到达有效期前几天发出警告。(6)入库操作信息表(Storeln)
说明:SiType为入库操作类型,包括销售出库、退货出库、用料出库等。Pid为入库商品编号、MakeDate为生产日期、Pprice为入库商品单价、Pnum为入库商品数量、Cid为客户编号、Sid为仓库编号、EmpName为经办人、OptDate为入库日期(7)出库操作信息表(TakeOut)
说明:Ttype为入库操作类型,包括销售出库、退货出库、用料出库等。Pid为入库商品编号、MakeDate为生产日期、Pprice为入库商品单价、Pnum为入库商品数量、Cid为客户编号、Sid为仓库编号、EmpName为经办人、OptDate为入库日期(8)库存商品信息表(ProlnStore)
说明: SpId为商品存储编号、Pid为商品编号、Pprice为商品入库单价、Pnum为商品数量、MakeDate为生产日期、Sid为仓库编号 第四章 系统各主要功能模块的实现
4.1主界面的设置
根据对系统功能分析,主界面的菜单项包括基本信息管理、商品信息管理、库操作管理和库存警示管理。如图所示:
当用户单击基本信息管理时,显示客户信息管理、仓库信息管理、用户信息管理、修改用户密码、退出系统菜单项。添加这些菜单项如图所示:
当用户单击商品信息管理时,显示商品类别管理、商品信息管理。添加这些菜单项如图所示:
当用户单击库存操作管理时,显示入库操作、出库操作、库存盘点。添加这些菜单项如图所示:
当用户单击库存警示管理时,显示数量报警和实效报警。添加这些菜单项如图所示:
4.2主要各功能模块所涉及的类的添加
根据数据库逻辑设计,我们可以为这些表添加相应的类。
1、CClient类用来管理客户表的数据库操作。
2、CStorehouse类用来管理表Storehouse的数据库操作。
3、CUsers类用来管理表Users的数据库操作。
4、CProType类用来管理表ProType的数据库的操作。
5、CProductl类用来管理表Product的数据库操作。
6、CStoreln类用来管理表Storeln的数据库操作。
7、CTakeOut类用来管理表TakeOut的数据库操作。
8、CProInStore类用来管理表ProInStore的数据库操作。4.3登陆模块设计 登陆对话框布局如图:
其ID值设为IDD_USERNAME_DIALOG。
用户要使用系统,首先必须通过系统的身份认证,这个过程叫做登陆。此模块的功能就是要进行身份认证。
在登陆对话框用户首先输入用户名,然后输入密码。输入完毕时,点击确定将发送BN_CLICKED消息。在确认按钮处添加此消息响应函数CLoginDlg :OnOK()。此函数的主要功能是检查用户输入数据的有效性,如果输入的信息不符合要求会自动退出程序。主要代码如下: CLoginDlg::OnOK(){ ……
//检查数据有效性
if(m_UserName == “"){MessageBox(”请输入用户名“);
return;} if(m_Pwd == ”“){ MessageBox(”请输入密码“);
return;}
CUsers user;//定义CUsers对象
user.GetData(m_UserName);//用于从表Users中读取数据
//如果读取的数据与用户输入数据不同,则返回
if(user.GetPwd()!= m_Pwd){ MessageBox(”用户信息不正确,无法登录!“);
return;} }
当用户单击取消时,添加CLoginDlg::OnBnClickedCancel()函数来响应此消息。此函数的功能是退出程序。主要代码如下: void CLoginDlg::OnBnClickedCancel(){ OnCancel();} 4.4客户管理模块设计
客户管理模块可以实现以下功能:
1、添加客户。
2、修改客户信息。
3、删除客户。
4、查看客户信息。4.41 设计客户信息管理对话框 对话框布局如图:
其ID值设为IDD_CLENTMAN_DIALOG。对话框对应的类为CClientManDlg。它继承CDialog类。添加控件包括四个按钮控件,一个组合框、ADO Data和DataGrid控件。
该对话框的主要函数为Refresh_Data()、OnAddButtom()、OnModiButton()、OnDelButton()。1.Refresh_Data()函数
它的功能是为ADO Data控件设置数据源,从而决定在DataGrid控件中显示的数据内容。主要代码如下: Refresh_Data(){ CString cSource;
//设置SELECT语句,按客户单位排序 ……
m_adodc.SetRecordSource(cSource);m_adodc.Refresh();//设置表格列宽度
} 2.OnAddButtom()函数
当用户单击“添加”按钮时,执行此函数。其功能是打开编辑对话框。主要代码如下: OnAddButton(){ ……
//打开编辑对话框
CClientEditDlg dlg;……
if(dlg.DoModal()== IDOK)…… } 3.OnModiButton()函数
当用户单击“修改”按钮时,执行此函数。其功能是弹出编辑对话框进行修改记录操作。主要代码如下: OnModiButton(){ ……
CClientEditDlg dlg;dlg.cCid = m_datagrid.GetItem(0);//记录编号
……
if(dlg.DoModal()== IDOK)
Refresh_Data();} 4.OnDelButton()函数
当用户单击“删除”按钮时,执行此函数,其功能是删除所选择的记录。主要代码如下: OnDelButton(){ ……
CClient clt;
clt.sql_delete(m_datagrid.GetItem(0));删除记录
Refresh_Data();
} 4.42 设计客户信息编辑对话框
编辑客户信息的对话框可以用来添加和修改客户信息,对话框名称为IDD_CLIENTEDIT_DIALOG。对话框的布局如图:
为对话框创建CClientEditDlg类并继承与CDialog类。
当用户单击“确定”按钮,添加OnOK()函数,其功能是将输入的信息保存到数据库中。主要代码如下: OnOK(){ …..CClient clt;clt.SetCname(m_Cname);//客户单位
……
clt.sql_insert();插入进数据库
……
clt.sql_update(cCid);} 4.5 仓库管理模块设计
仓库管理模块可以实现以下功能:
1、添加仓库信息
2、修改仓库信息
3、删除仓库信息
4、查看仓库信息
4.51 设计仓库信息管理对话框
对话框布局如图:
对话框ID为IDD_STOREHOUSEMAN_DIALOG.对话框对应的类为CStoreHouseManDlg。该对话框的主要函数为Refresh_Data()、OnAddButtom()、OnModiButton()、OnDelButton()。其功能与客户信息管理对话框函数的功能一样。函数实现过程也非常类似。在此不再详细说明。
4.52 设计仓库信息编辑对话框
编辑仓库信息的对话框可以用来添加和修改仓库信息,其ID为IDD_STOREHOUSEEDIT_DIALOG。对话框的布局如图:
对话框对应的类为CStoreHouseEditDlg。当用户单击“确定”时,执行OnOK()函数用来把在对话框输入的信息添加或修改到数据库中。主要代码如下:
CStoreHouseEditDlg::OnOK(){ ……
CStorehouse sh;sh.SetSname(m_Sname);//仓库名称
sh.SetMemo(m_Memo);//仓库说明
…… //表示插入新记录
sh.sql_insert();
……
} 4.6用户管理模块设计
根据用户类型的不同,用户管理模块的功能也不相同。可以包含以下情形:
1、Admin用户可以创建系统管理员或普通用户、复位用户密码、删除系统管理员或普通用户,也可以修改自身的密码。
2、系统管理员用户可以创建普通用户、对普通用户的密码进行复位、删除普通用户,也可以修改自身密码。
3、普通用户只能修改自身密码。4.61设计用户信息管理对话框 用户信息管理对话框ID为IDD_USERMAN_DIALOG,对话框的布局如图:
对话框对应的类为CUserManDlg。对话框中使用DataList控件显示用户列表,使用ADO Data控件为其提供数据源。当用户单击“添加”按钮时,执行OnAddButtom()函数,其功能是显示用户信息编辑对话框。主要代码为: OnAddButton(){ CUserEditDlg dlg;dlg.iUserType = 2;if(dlg.DoModal()== IDOK)
m_adodc.Refresh();} 当用户单击“密码复位”按钮时,执行OnModiButton()函数,功能是对用户密码进行复位,复位密码默认值为888888。主要代码如下:OnModiButton(){ ……
CUsers usr;
usr.SetPwd(”888888“);//设置默认密码
usr.sql_updatePwd(m_datalist.GetText());
MessageBox(”密码已经复位“);} 当用户单击“删除”时,执行OnDelButton()函数,其功能删除用户。主要代码如下: OnDelButton(){ ……
CUsers usr;
usr.sql_delete(m_datalist.GetText());
m_adodc.Refresh();} 4.62 设计用户信息编辑对话框
用户信息编辑对话框的ID为IDD_USEREDIT_DIALOG,对话框布局如图:
对话框对应的类为CUserEditDlg。当用户单击“确定”按钮时,执行OnOK()函数,其功能是创建一个新用户,并将其加入到数据库中。主要代码如下: OnOK(){CUsers usr;……
//插入用户记录
usr.sql_insert();} 4.63设计修改用户密码的对话框 修改用户密码对话框的ID为IDD_CHANGEPWD_DIALOG,对话框的布局如图:
对话框对应的类为CChangePwdDlg。当用户单击“确定”按钮时,执行OnOK()函数,其功能是对用户密码进行修改。主要代码如下: CChangePwdDlg::OnOK(){ ……
user.SetPwd(m_NewPwd1);user.sql_updatePwd(m_UserName);//更新当前用户密码
…… } 4.7商品管理模块设计
商品管理模块可以实现以下功能:
1、商品类别的添加、修改、删除。
2、商品信息的添加、修改、删除。4.71设计商品类别管理对话框
商品类别管理对话框的ID为IDD_PROTYPEMAN_DIALOG,对话框布局入图:
对话框对应的类为CProtypeManDlg。当用户单击一级商品类别列表框时,执行OnClickDatalist()函数,其功能是选择一级商品列表的内容时,决定二级商品类别列表框显示的内容。主要代码如下:CProTypeManDlg::OnClickDatalist1(){ CString cUpper;cUpper = m_datalist1.GetBoundText();//读取选择类别的编号
//设置二级类别的记录源
m_adodc2.SetRecordSource(”SELECT * FROM ProType WHERE UpperId=“ + cUpper);m_adodc2.Refresh();} 当用户单击左侧的“添加”按钮时,执行OnAdd1Buttom()函数,其功能是显示商品类别编辑对话框。主要代码如下:CProTypeManDlg::OnAdd1Button(){ CProTypeEditDlg dlg;dlg.cTypeId = ”“;//表示添加记录
dlg.cTypeName = ”“;dlg.iUpperId = 0;//表示一级类别 //打开编辑对话框
if(dlg.DoModal()== IDOK)
m_adodc1.Refresh();} 当用户单击左侧“修改”按钮时,执行OnModilButton()函数,其功能与“添加”按钮功能类似。
当用户单击左侧的“删除”按钮时,执行OnDel1Button()函数,其功能删除商品类别。主要代码如下: CProTypeManDlg::OnDel1Button(){ pt.sql_delete(Tid);//删除
m_adodc1.Refresh();//刷新 } 剩下右侧的按钮与左侧的按钮功能类似,只不过删除的商品类别不一样。参照左侧功能函数即可。4.72 设计商品类别编辑对话框
编辑商品类别信息的对话框可以用来添加和修改商品类别信息。对话框ID为IDD_PROTYPEEDIT_DIALOG。其布局如图:
对话框对应的类为CProTypeEditDlg。当用户单击“确定”按钮时,执行OnOK()函数,其功能是添加商品类别到数据库中。主要代码如下: CProTypeEditDlg::OnOK(){ ……
CProType pt;pt.SetTypeName(m_TypeName);//类别名称
……
if(cTypeId == ”“)//表示插入数据
pt.sql_insert();
……
else
pt.sql_update(cTypeId);
……
} 4.73 设计商品信息管理对话框
商品信息管理对话框可以按照商品类别查询商品信息,也可以对商品信息进行添加,修改和删除等操作。对话框ID为IDD_PROMAN_DIALOG。对话框的布局如图:
为对话框添加CProManDlg类。在对话框中有3个ADO Data控件,它们分别为一级商品类别、二级商品类别和商品表格提供数据源。添加、修改、删除操作函数的功能与其他对话框功能类似在此不再详述。此对话框用的主要函数是当用户单击一级商品类别时,执行OnClickDatacombol()函数,其功能是根据用户选择的一级类别来设置要显示的二级商品类别。主要代码如下: CProManDlg::OnClickDatacombo1(short Area){ ……
cUpper = m_datacombo1.GetBoundText();//读取选择类别的编号
//设置二级类别的记录源
m_adodc2.SetRecordSource(”SELECT * FROM ProType WHERE UpperId=“ + cUpper);m_adodc2.Refresh();} 4.74 设计商品信息编辑对话框 编辑商品信息的对话框
当用户单击“确定”按钮时,执行OnOK()函数,功能将输入的数据保存到数据库中。其代码如下: CProEditDlg::OnOK(){ CProduct pr;……
pr.sql_insert();//插入数据库
pr.sql_update(cPid);CDialog::OnOK();} 4.8 库存操作管理模块设计
库存操作管理模块可以实现以下功能:
1、入库操作的添加、修改、删除、2、出库操作的添加、修改和删除。
3、库存盘点的添加、修改、删除。4.81 设计入库操作管理对话框
入库单管理对话框的ID为IDD_STOREINMAN_DIALOG。对话框的布局如图:对话框所对应的类为CStoreInManDlg。调用的主要函数是
Refresh_Data()、OnAddButton()函数。Refresh_Data()的功能是设置ADO Data控件的记录源与其他对话框的ADO控件的功能类似,OnAddButton()函数与其他对话框的添加函数类似。代码不再详细描述。
4.82 设计入库单编辑对话框
入库单编辑对话框的ID为IDD_STOREINDIT_DIALOG。对话框的布局如图:
对话框对应的类为CStoreInEditDlg。在此对话框中使用了5个ADO Data控件,功能与其他对话框的ADO Data控件相同。此对话框主要函数是OnSelchangeClttypeCombo()和OnChangePpriceEdit()函数。
1、OnSelchangeClttypeCombo()函数功能是当用户在客户类别组合框中选择不同类别时,根据用户所选择的客户类别设置查询条件。主要代码如下: OnSelchangeClttypeCombo(){ //设置查询客户的SELECT语句
CString cSource;cSource = ”SELECT * FROM Client“;//根据客户类别设置查询条件
if(m_CltType.GetCurSel()== 0)
cSource += ” WHERE Ctype = 1“;else
cSource += ” WHERE Ctype = 2“;m_Client.SetText(”“);//清除客户组合框的显示内容
m_adodc1.SetRecordSource(cSource);//设置数据源,重新客户列表
m_adodc1.Refresh();}
2、OnChangePpriceEdit()函数功能是当用户改变商品单价数据时,总价格也随着变化而变化。主要代码如下: CStoreInEditDlg::OnChangePpriceEdit(){ UpdateData(TRUE);//读取输入数据到成员变量 m_Price.Format(”%.2f“, m_Pprice * m_Pnum);//计算总价格
UpdateData(FALSE);
//显示成员变量值 } 当用户单击“确定“按钮时执行OnOK()函数,将输入的信息插入到数据库中。
4.83 设计出库操作管理对话框
出库操作管理对话框的ID为IDD_TAKEOUTMAN_DIALOG.对话框布局如图:
对话框所对应的类为CTakeOutManDlg。主要函数Refresh_Data()、OnAddButton()。功能与入库管理对话框相似。不再详述。4.84 设计出库操作编辑对话框
出库操作编辑对话框的ID为IDD_TAKEOUTEDIT_DIALOG。对应的类为CTakeOutEditDlg。布局如图:
对话框中的DataGrid控件用于根据用户选择的商品和仓库信息显示相关的库存商品,用户可以从其中选择需要出库的商品,然后输入出库数量。在显示库存商品时,需要查询默认商品的价格数量,并显示在表格下方。因此,需要调用OnClickDatagrid2()函数。程序将从DataGrid控件中读取商品价格和库存数量等信息,并显示在对话框的相关位置。主要代码如下:OnClickDatagrid2(){ ……
m_Pprice = m_datagrid.GetItem(1);//从表格中读取产品价格
m_Pnum1 = m_datagrid.GetItem(2);//从表格中读取产品库存数量
UpdateData(FALSE);……
} 当用户点击“确定“按钮时,执行OnOK()函数,将编辑的仓库出库单保存到数据库中。主要代码如下: { ……
CProInStore pi;CTakeOut to;CString cType;//插入出库数量
to.sql_insert();//@@@@@ 保存库存产品信息 @@@@@ ……
pi.sql_insert();} 4.85 设计库存盘点管理对话框
库存盘点管理对话框的ID为IDD_CHECKMAN_DIALOG。对话框的布局如图:对话框对应的类为CCheckManDlg。对话框主要函数是
Refresh_Data()。功能是设置数据源,查询相关库存盘点信息。主要代码如下:Refresh_Data(){CString cPid;//保存当前选择的产品编号 ……
CString cSid;//保存当前选择的仓库编号
…..//设置SELECT语句
CString cSource;cSource = ”SELECT SpId, Pprice As 产品入库单价, Pnum As 库存数量, MakeDate As 生产日期“;cSource += ” FROM ProInStore WHERE Pid=“ + cPid + ” AND Sid=" + cSid;//设置记录源
m_adodc6.SetRecordSource(cSource);m_adodc6.Refresh();……} 4.86 设计库存盘点编辑对话框
库存盘点编辑对话框用于编辑指定商品的库存数量,从而纠正库存数量可能存在的错误。对话框的ID为IDD_CHECKEDIT_DIALOG。对话框的布局如图: 对话框类为CCheckEditDlg。当用户单击“确定”按钮时,执行OnOK()函数。其功能是更新库存数量。代码如下: OnOK(){ UpdateData(TRUE);//将用户输入数据读取到成员变量中
//更新库存数量
CProInStore obj;obj.SetPnum(m_NewNum);obj.sql_updatePnum(cSpId);} 4.9 库存警示管理模块设计
库存警示管理模块可以实现以下功能:
1、实现数量报警管理。即当库存商品的数量低于下线或超过上线时报警。
2、实现失效报警管理,即当库存商品即将达到有效期时报警。4.91 设计商品数量报警管理模块
商品数量报警信息管理对话框用来显示所有需要进行数量报警的商品信息。为了更方便的统计商品数量报警信息,需要创建一个视图Total_Num,它的作用是统计每种库存商品数量。主要代码如下: USE [Stock] GO ALTER VIEW [dbo].[Total_Num] AS SELECT dbo.ProInStore.Pid, SUM(dbo.ProInStore.Pnum)AS Total FROM dbo.ProInStore INNER JOIN dbo.Product ON dbo.ProInStore.Pid = dbo.Product.Pid GROUP BY dbo.ProInStore.Pid GO 商品数量报警信息管理对话框的ID为IDD_NUMALARM_DIALOG。对话框布局如图:对话框对应的类为CNumAlarmDlg。主要函数是Refresh_Data()。功能与其他对话框的Refresh_Data()类似。在此不再详述。
警告类型分为短线和超储两种情况,程序将根据用户选择的类型进行统计。
4.92 设计商品失效报警管理模块
商品失效报警信息管理对话框用来显示所有需要进行失效报警的商品信息。为了更好方便的统计商品失效报警信息,需要创建一个视图Vaild,它的功能是统计库存商品价格、数量、生产日期、仓库名称和距离失效期的天数等信息。主要代码如下: USE [Stock] GO ALTER VIEW [dbo].[Valid] AS SELECT dbo.ProInStore.SpId AS 库存记录编号, dbo.Product.Pname AS 商品名称,dbo.ProInStore.Pprice AS 商品价格, dbo.ProInStore.Pnum AS 商品数量,dbo.ProInStore.MakeDate AS 生产日期, dbo.Storehouse.Sname AS 仓库名称,ROUND(DATEDIFF(day, DATEADD(day,dbo.Product.Valid, dbo.ProInStore.MakeDate),GETDATE()), 0)AS 距离失效期的天数 FROM dbo.ProInStore INNER JOIN dbo.Product ON dbo.ProInStore.Pid = dbo.Product.Pid AND DATEDIFF(day,GETDATE(), dbo.ProInStore.MakeDate)
>= dbo.Product.Valid-dbo.Product.AlarmDays INNER JOIN dbo.Storehouse ON dbo.ProInStore.Sid = dbo.Storehouse.Sid GO 在SELECT语句中,使用了如下的SQL Server函数:
1、DATEADD 在向指定日期加上一段时间的基础上,返回新的datatime值。
2、DATEDIFF 返回两个指定日期的时间差。
3、ROUND 根据指定的长度和精度对数字表达式进行四舍五入。
4、GETDATE 按datetime值的SQL Server标准内部格式返回当前系统日期和时间。
商品失效报警信息管理对话框ID为IDD_VALID_DIALOG。对应的类为CValidDlg。对话框的布局与商品数量报警信息管理对话框类似。因为功能已经在视图里实现了所以此对话框不用添加额外的函数。第五章 结束语
5.0 开发中的问题和解决办法
如何高效的在VC++中添加类与对话框及消息响应函数。为了解决这些问题,本设计中的所设计的类与对话框采用利用VC++向导生成,然后在自动生成的基础上修改,节省了相当一部分繁琐的时间加快了程序开发的速度,节省了开发的时间。
在设计中使用了大量的数据,设计了大量的表格。为了便于实现数据与表的连接、表与类的连接,采用了数据库软件。这样只要调用数据库本身的查询、插入、修改等语句就以轻松的操作这些数据。使理论上的知识很好的与实际问题相结合。5.1 系统不足之处
在本设计中,还有很多不足之处:界面的美观还可以进行更进一步的改善,还可以再增加一些功能,比如在状态栏增加时间显示,可以让使用人员很方便的看到当前时间。也可以增加实时的通讯功能,可以让管理员与普通用户之间进行实时通讯。本系统在处理大量的数据时能力还很欠缺,应该再设计时采用一些适当的算法对本系统进行优化。第六章 致谢
在论文完成之际,我要特别感谢我的指导老师吕知辛老师的热情关怀和悉心指导。在我撰写论文的过程中,吕知辛老师倾注了大量的心血和汗水,无论是在论文的选题、构思和资料的收集方面,还是在论文的研究方法以及成文定稿方面,我都得到了吕知辛老师悉心细致的教诲和无私的帮助,特别是他广博的学识、深厚的学术素养、严谨的治学精神和一丝不苟的工作作风使我终生受益,在此表示真诚地感谢和深深的谢意。
在论文的写作过程中,也得到了许多同学的宝贵建议,在此一并致以诚挚的谢意。感谢所有关心、支持、帮助过我的良师益友。
参考文献
【1】孙鑫.VC++深入详解.北京:电子工业出版社.2006
【2】屈磊 李媛媛.VisualC++开发入门与编程实践.北京:电子工业出版社2007
【3】(美)Sartaj Sahni.数据结构、算法与应用——C++语言描述.北京:机械工业出版社.2001 【4】王立副 麻志毅 张世琨.软件工程.北京:北京大学出版社.1999.【5】苗雪兰 刘瑞新 宋会群.数据库技术及应用.北京:机械工业出版社.2005 【6】李涛 刘凯奎 王永晈.数据库开发与实例.北京:清华大学出版社.2006 【7】启明工作室.SQL Server 2005 数据库应用系统开发.北京:人民邮电出版社.2007 【8】(美)Timothy A.Budd.面向对象编程导论.北京:机械工业出版社.2003 【9】郑阿奇.Visual C++教程[M].北京:机械工业出版社,2004 【10】东方人华等.Visual C++ 6.0范例入门与提高[M].北京:清华大学出版社.2003
【11】:刘诚方,曾昭荣.BorlandC++Windows初级程序设计.天津:天津科学技术出版社.1997.1
【12】陈慧南.数据结构:使用C++描述.南京:东南大学出版社.2001
第三篇:仓库管理存在的问题及改进对策
仓库管理存在的问题及改进对策
一、仓库管理中存在的问题:
1、仓库管理混乱,现有制度执行不到位
仓库目前没有配备专门的仓库管理员,是财务内勤徐非兼任仓管一职,目前现实情况是仓库管理混乱,账实不符,由此导致的直接后果就是公司资产的不确定以及成本核算的不准确,由此造成公司利润的不准确,影响公司具体制定税负率政策、所得税申报工作和全面预算工作。
2、物资采购不够合理,采购计划管理准确性预见性不强
物资采购把关不严,物资采购应有一定前瞻性,且应符合公司具体生产情况,此次盘点发现很多物资公司生产中较少用到或者已经确定不会再用到,却积压在仓库里,造成很大的资金浪费,大概有以下三种情况:(1)采购完成后发现型号不对等原因用不了,但是又不能退货,造成浪费。(2)研发和生产过程中采购物资过多,或公司生产工艺改进,导致物资不可用造成浪费。(3)采购工作计划性不强。一些用量小的物资采购过多,导致库存量很大,短时间内难以用完,占用了公司资金。
3、物资储备不够合理
库存控制是企业物资管理核心之一,目前公司在库存控制方面存在两种现象:一种是有的物资早已淘汰,超储积压,占用大量库存资金,也为盘点、清理、对账等工作带来不便。另一种是因为仓库管理的混乱,不能准确掌握库存情况,有的材料库存短缺,影响到企业的生产,增加急用料,使物流成本、采购成本上升。
4、缺乏退回物资处理机制
此次盘点发现仓库中有很多客户退回物资,且没有检验过性能好坏、能否再次使用,全部积压在仓库中,既无法入库,又不能处理,为物资再利用以及盘点、清理工作带来困难。
5、估价入账太多
估价入账是货到票未到时,为正确反映材料消耗的一种记账方法;但现在企业单位签订合同协议或新品种物资要归类编号,影响发票单据的及时开具,造成大量估价材料,给仓库保管员和财务部门造成大量的重复劳动。
6、人员业务水平有待提高
目前大多数企业库房已引进库存管理软件,但由于生产单位的材料员和一些保管员
学历和业务水平较低,缺乏专业的库房管理知识和计算机技能,导致计划批料领料还不能正常进行。
二、提高仓库管理水平的对策:
1、全面提高仓库管理水平,严格执行仓库管理制度,并纳入相关人员绩效考核
建议增设男仓管一名,现阶段归口财务直接管理,全面负责仓库管理工作,切实掌握库存情况以及公司资产状况,以便准确核算公司生产成本。严格执行仓库管理制度,如有相关责任人工作疏忽或制度执行不到位,应纳入其绩效考核进行惩戒。考虑到现阶段公司仓库管理工作的工作量还不大,可让其兼任工厂材料统计一职,因目前工厂领料情况、生产情况没有准确核算,造成公司生产成本不准确,此种情况亟待改善,以具体分析公司生产经营中存在的问题,确定公司开源节流政策,以便在各个细节上把成本压缩到最低,达到利润最大化。
2、提高物资采购计划的准确性
加强物资需求计划管理工作,提高采购效率。从物资供应部门的内外两方面着手,提高计划的准确性、及时性和规范性,并有一定的前瞻性。一是物资采购应定量采购,生产部门应编制具体的生产计划单供各职能部门审批,以此确定具体物资采购量,具体到几台机器具体用哪些材料,用量多少,以减少浪费。二是要求相关业务人员加强物资计划工作,明确职责,确定相应的程序。接到物资需求计划后,物资供应部门在了解需求特点的基础上,保证确定性需求的及时供货;并结合库存情况设定安全库存来应对储备需求,主动对接,及时落实货源,确保物资供应。
3、合理储备物资,调整库存结构
对于任何企业而言,保持一定的库存是非常必要的。合理库存可以使企业整体运作变得更为高效顺畅。若库存控制管理不当,将会给企业带来缺货率高,补货不及时,库存周转不灵,或者无效库存多,资金积压,增加企业生产经营成本,给企业的生存与发展带来影响。因此,对库存进行有效的控制管理,合理安排物资品种和储备比例尤为重要。
4、建立对于多方有效的管理机制
对于多报不领或以领代耗的情况,应由用料单位和物资供应部门的相关人员进行沟通,建立一个对于多方都有效的约束管理机制。对于出现的缺货、或者库存物资过多的问题,不仅仅追究某个部门的责任,其他部门相关的人员也应承担责任。否则用
料部门多报计划,物资供应部门全部采购,无法彻底解决库存居高不下、物资供应部门的仓库与用料单位的小库并存的问题。
5、供应与需求应更紧密的联系
物资供应单位与需求单位需要更紧密地联系起来。物资供应部门应多了解用料单位急用还是备用,具体什么地方用,用料单位应多了解库存有多少,有没有代用物资,有保障的供应时间长短等,减少供需过程中的脱节和超额采购问题。充分利用现有库存,发挥库存物资的作用,尽量提高库存周转率,减少报废。
6、及时处理仓库里的退回物资和积压呆废料,减少资金占用
退回物资应首先检验性能好坏以及能否再利用,可用物资重新入库,且有优先使用权,不可用物资做报废处理。物资供应部门应定期对库存需要进行调整,对于多年不动的物资、超过使用年限的物资和确定今后不会再使用的物资及时进行处理报废。报废时,可以根据当月的实际财务状况,调节报废数量与金额,这样可以调节当月利润,对公司有税收的好处。积压物资的处理应形成制度化和常态化,及时消化公司的不良资产,为公司减负。
7、充分发挥仓库在库存控制中的作用
不能以传统的认识认为仓库只是存储物资的场所,实现对物资收发料动态管理,对仓储物资动态、周转天数等进行统计,及时反映物资收发存动态、超储、积压和不合理库存物资信息,有利于库存资金分析,优化库存结构,加速资金周转,为决策提供依据。
8、做好估价工作
估价入账给仓库和财务部门都带来了不必要的存放劳动,而且会造成企业提供的会计和财务数据不真实,应该引起足够的重视。
供应部门接到物资申请计划后,组织货源签订合同,相关部门和分管领导及时审批,保证合同及时生效。对于没有物资编号的新型材料,及时申报及时编号。相关科室紧密配合,加快各个环节的运转,以保证物资到货时及时取得发票,减少估价物资。
9、提高人员素质和业务水平
随着库房步入电子化专业化管理,对库房管理人员也提出更高的要求。保管员除了具备必须的业务知识外,还要拥有现代管理知识,按照生产与运作的管理知识,通晓现代仓储物流理论并不断应用到工作实践,熟悉库存物资的属性,应用6S进行库房现
场管理,及时准确提供数据,充分发掘库管物资的经济潜力,实现仓库管理新的飞跃。因此,要定期对库房管理人员进行培训,并制定激励措施,调动员工的积极性。
三、总结
仓库是企业存储和保管物料的重要场所,仓库管理是企业物流管理的核心工作,是企业供应链管理中一个基础环节,与其它部门息息相关。库存控制水平代表了一个企业总体的管理水平,高效的库存控制管理是企业经营革新、降低成本的重要一步,如何改进与提高库房管理水平,对企业保证生产供应、节约成本、提升企业竞争力具有现实意义。要更好的实现企业仓库管理,需要加强企业各部门的协调沟通顺畅,生产才能正常有序的进行。仓库管理在企业物流环节和价值环节中均是不可或缺的关键环节,是企业顺利生产和高效运作的后勤保障。企业通过不断提高仓库管理水平,保证生产供应,节约物流成本,同时降低库存资金占用,从而为企业创造良好的经济效益。
附流程图:
生产部按批号做生产计划单---->采购部门按生产计划单做采购计划---->相关部门审批---->采购部门进行采购---->仓库按批号入库---->领用时生产部门按批号做领料单进行领用---->月末财务部进行盘点及对账
第四篇:海尔管理系统存在的问题
三、缺陷与隐患
(一)“信息孤岛”问题的可能性
由于生产计划和信息化程度的发展是处于永无休止的变化之中的,每个时期的研究和实施成果也将因此而具有不同的背景和效用,企业只能根据情势的未来变化一步步地推进物流信息化的进程。不同历史时期实施的信息化技术管理软件的开发平台和数据结构存在巨大差异,难免会造成不通信息系统、信息模块之间的孤立运行,形成了信息技术理论上所谓的“信息孤岛”现象。海尔目前的信息化程度在其应用层面上仍然存在一些滞后问题,就算目前海尔运用最先进的技术软件系统,也仍然存在着有制造新的“信息孤岛”的可能性。
(二)隐藏的巨大风险
在物流信息化模式中采用的业务流程改造措施以及能对企业物流资源有效管理的ERP系统都具有较大的风险。ERP系统是一项极其复杂的工程项目,产、供、销、人、财、物都是企业的资源,要想把它们有效地组织起来实行资源优化,无论是小企业还是大企业都不容易办到。国内目前的ERP软件商在素质水平方面都较国外逊色,缺乏有效的行业标准,造成软件市场的混乱,这些信息技术的应用都关乎企业生产流程合理化组建的问题,万一思路错误、设置不合理将直接导致企业的市场效益的下降。
(1)海尔选择了SAP/R3成熟的ERP系统,而不是请软件公司根据海尔物流的现状进行开发,主要目的是借助于成熟的先进流程提升自己的管理水平。
(2)实施“一把手”工程与全员参与,有效推进信息系统的执行。
海尔物流所有信息化的建设均是基于流程的优化,提高对客户的响应速度来进行的,所以应用面涉及海尔物流内部与外部很多部门,有时打破旧的管理办法,推行新流程的阻力非常巨大。海尔物流的信息化建设一直是部门一把手亲自抓的工作,亲自抓,亲自在现场发现问题,亲自推动,保证了信息化实施的效果。如在ERP上线初期,BOM与数据不准确是困扰系统正常运转的瓶颈,它牵扯到企业的基础管理工作与长期工作习惯的改变,物流推进本部部长发现问题后,亲自推动,制定出有效的管理模式,不但提高了系统的执行率,而且规范并提升了企业的基础管理(BOM的准确率、现场管理),保证了信息系统的作用的发挥。
(3)培训工作同步进行,保证信息系统的实施效果。
由于信息化工作的不断推进,原有的手工管理变为计算机操作,这对物流的基层工作者如保管员、司机、年纪较大的采购员均是挑战。在实施ERP信息系统时,海尔物流开展了全员培训,并对相关操作人员进行了严格的技能考试,考试通过后才能获得上岗证书。物流信息中心也开通了内部培训的网站,详细介绍系统的基础知识、业务操作指导书与对操作的问题进行答疑,这些均保证了信息化使用的效果。
第五篇:用电检查管理系统存在问题
1、导出的excel表文件名改为如下格式:“内容+(日期)”,如12月12日导出的用户总清
单命名为“用户总清单(12.12)”
2、系统名称改为“用电市场业务管理系统”
3、删除用户台账中“力调标准”一项,增加“固定电话”一项,“抄表员”一项
4、“我的用户”等选项卡应设置为不可重复打开
5、进行操作保存后2秒返回界面能否取消
6、“我的用户”导入数据时出线丢失用户现象,测试时倒入1050组统一格式的数据,只
有800个左右能导入、7、“重要用户”无导出按钮。重要用户的添加应从通过户号从总清单内查询得到,并添
加相关信息,并不是完全新建一个重要用户
8、检查计划中应有批量打印检查单和总表的功能
9、文件模版中建议将“下载”按钮超链接直接做到文件名上
10、总清单中每页显示的数目过少,能否改为每页显示数据数可调或固定在一页100
条左右
11、权限管理模块中,用户名修改等存在问题。默认密码是多少?
12、打印核定单中IE安全设置如何修改?
13、“检查客户”模块中,检查状态的语句判断有问题,判断的状态不对。
14、“检查客户”模块中,模糊查询应有“检查员”这一项,方便根据检查员生成检查
记录
15、变电站配置中无法新增线路,建议改为在树状图上右键添加的方式增加线路和变电
站