企业进销存管理信息系统_第1页
企业进销存管理信息系统_第2页
企业进销存管理信息系统_第3页
企业进销存管理信息系统_第4页
企业进销存管理信息系统_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

目录目录 内容摘要内容摘要 2 2 一、前言一、前言 1 1 二、系统分析二、系统分析 5 5 2.12.1 问题的提出问题的提出 2 2 2.22.2 分析问题分析问题 3 3 2.32.3 系统设计目标系统设计目标 3 3 2.3.1 系统设计的长远目标:实现 ERP 系统 3 2.3.2 系统设计近期 4 三、系统总体设计三、系统总体设计 3.13.1 数据流图数据流图 4 4 3.23.2 部分数据字典部分数据字典 9 9 3.33.3 E-RE-R 图图 9 9 3.43.4 功能模块功能模块 1111 3.4.1 程序层次 11 3.4.2 模块功能说明 11 3.4.3 系统数据表 21 四、系统详细设计四、系统详细设计 1313 五、编码实现与测试五、编码实现与测试不不 5.15.1 编码摘要编码摘要 1717 5.25.2 程序界面程序界面 2727 六、总结与展望六、总结与展望 6.16.1 总结总结 3131 6.26.2 心得体会心得体会 3232 致致 谢谢 3232 参考文献参考文献 3333 内容摘要内容摘要 企业的物资供应管理复杂,繁琐的,物资种类众多,订货,管理,发放的渠 道各有差异,因此物资管理必须实现计算机化,而且必须根据企业的具体情况制 定便提高工作效率。 利用 ERP 的部分功能,使用 Microsoft Visual Basic 6.0 及 Microsoft Office Access 2003 作为开发工具,利用面向对象的结构和自上而下的程序设 计方法,联系实际情况设计实现了一个以控制物流为主的管理软件,基本实现了 仓库的日常管理和进货出货的查询。充分提高数据的准确性和指导性,提高生产 效率和企业效益。 关键字关键字:企业资源计划 存货 数据库 面向对象 进销存管理系统的设计和制作进销存管理系统的设计和制作 一、前言一、前言 本次毕业设计的题目是进销存管理系统,要求利用 Visual Basic 完成管理平台设计, 构造所用的类库。 根据当前的企业一般物资供应管理系统,相应分成几个科室进行物资的计划,订货,核 对入库,根据各个部门的需要来发送物资设备,并随时近期进行库存盘点、作台帐,按月、 季、年进行统计分析,产生相应报表,以进行有效的生产管理。 从根本上说,企业就是一个利用资源(人、财、物、时间) ,为客户创造价值的组织, ERP 就是对这些资源进行计划、调度、控制、衡量、改进的管理技术和信息系统。现今的企 业并不只是人力资源、资金和产品的组合,它还应该包括供应、销售、市场营销、客户服务、 需求预测,以及其他更多的东西。 针对目前公司存在的问题,本文设计一个以物料流处理为主,具有一定智能特性和网络 特性的管理系统。该系统不仅能智能的控制企业的物流情况,而且还具有操作方便、便于纠 错的特点。概括起来系统的优点如下: : (1)用户基本资料一次性建立,便于规范控制。 (2)物料控制半自动化,加强了各个部门之间的联系。 (3)提高库存管理的服务水平,最大限度地降低库存量,包括中间库存和在制品的库 存,以减少在库存上的资金积压。 (4)最大限度的保证订货任务的按期完成。 (5)提高计划的可能性,实现均衡生产。 (6)集成管理职能,提高管理效率。 本文主要阐述了进销存管理系统的设计目标,系统要求、总体设计、详细设计、测试等。 二、系统分析二、系统分析 2.1 问题的提出问题的提出 本公司目前存在的问题是:信息化不足,计算机使用率低,大量的日常工作皆是手工处 理,因此工作效率低落,企业内部沟通不良等等问题很难克服,仓库不能及时为采购和生产 提供准确的指导性数据。 公司希望解决的问题是:解决企业内部统一的物料编码管理,物流管理中的信息流通, 库存积压与物料的配套问题,完善质量检验,对生产过程中的质量信息进行全面管理。包括 原材料、外购外协件、半成品、成品各道工序的质量控制,并对各种数据进行统计分析。对 公司的各种资源与信息进行查询,包括销售、采购、生产、质量、人事、财务等信息数据进 行查询、统计与分析,对根据信息作出快速合理的经营决策。 2.2 分析问题分析问题 本公司的主要流程是:接到一张销售订单,由销售部门转化为内部订单,转给生产部门, 生产部门根据订单上的产品、数量,技术部已经配好的物料清单,及各车间半成品储存量, 汇总材料需求,然后根据库存情况决定请购及预约情况,采购部门根据请购单下采购单,然 后材料入库,这一切都是本管理系统所力求实现的功能。 2.3 系统设计目标系统设计目标 .1 系统设计的长远目标:实现系统设计的长远目标:实现 ERPERP 系统系统 1系统运行集成化: 这是 ERP 应用成功在技术解决方案方面最基本的表现。只有集成一体化运行起来,才有 可能达到:降低库存,提高资金利用率和控制经营风险;控制产品生产成本,缩短产品生产 周期;提高产品质量和合格率;减少财务坏帐、呆帐金额等。 2业务流程合理化: 这是 ERP 应用成功在改善管理效率方面的体现。ERP 应用成功的前提是必须对企业实施 业务流程重组,因此,ERP 应用成功也即意味着企业业务处理流程趋于合理化,并实现了 ERP 应用的以下几个最终目标:企业竞争力得到大幅度提升;企业面对市场的响应速度大大 加快;客户满意度显著改善。 3绩效监控动态化: ERP 的应用,将为企业提供丰富的管理信息。如何用好这些信息并在企业管理和决策过 程中真正起到作用,是衡量 ERP 应用成功的另一个标志。在 ERP 系统完全投入实际运行后, 企业应根据管理需要,利用 ERP 系统提供的信息资源设计出一套动态监控管理绩效变化的报 表体系,以期即时反馈和纠正管理中存在的问题。 .2 系统设计近期系统设计近期 (1)建立基本资料信息库,规范所有资料信息。 (2)物料控制半自动化,加强了各个部门之间的联系。 (3)高库存管理的服务水平,最大限度地降低库存量,以减少在库存上的资金积压。 (4)最大限度的保证订货任务的按期完成。 (5)提高计划的可能性,实现均衡生产: (6)集成管理职能,提高管理效率。 三、系统总体设计三、系统总体设计 3.1 数据流图数据流图 顶层数据流图如图 3.1 所示: 图 3.1 进销存管理系统顶层数据流图 0 层数据流图如图 3.2 所示: 图 3.2 进销存管理系统 0 层数据流图 1 层数据流图如图 3.3 所示: 图 3.3 进销存管理系统 1 层数据流图 图 3.3 进销存管理系统 1 层数据流图(续) 3.2 部分数据字典部分数据字典 数据流图描述了系统的分解,但没有对图中各成分进行说明,数据字典就是为了数据流 图的每个数据流、文件、加工,以及组成数据流或文件的数据项作出说明。 数据流条目: 出库单 = 出库单号+日期+客户名称+ 物资类别+制单人员+ 记帐人员+发货人+状态+销 售订单号+品名 + 单位 + 数量 + 规格 + 备注 + 单价 各类财务统计报表 = 仓库材料消耗汇总(成本项目) + 仓库材料消耗汇总(按车间) + 材料收发存明细 A + 材料收发存明细 B +材料收发存明细 C + 材料收发存分类汇总表 + 木材消耗汇总表。 文件条目: 文件名称:原材料库存文件。 简述:保存原材料的基本资料。 组成:材料编号+品名型号+规格尺寸+单位+采购计量单位+参数+数量+最低数量+最高数量+ 单价+备注+大大分类+大分类+分类+小分类。 文件名称:销售文件。 简述:保存所有销售订单的文件。 组成内部定单号+订货日期+客户编号+总金额+预收率NEWCASTLE 号+PO 单号包装办法+品 质要求+内装箱+外装箱+MADE IN CHINA+特别指示+箱正侧内+状态+型号+色号+木材尺寸+光 泽度+内绒+表面处理+数量+出货日期+单价。 数据项条目: 名称:材料编号 简述:材料编号分四个字段(大大分类+大分类+分类+小分类) ,可以将材料分门别。 类,因为许多地方用到编号,因此将四项和为一项保存一个冗余字段。为了便于查找。 3.3 E-R 图图 程序总体 E-R 图如图 3.4 所示: 图 3.4 程序总体 E-R 图 人员管理模块如图 3.5 所示: 图 3.5 人员管理模块 材料管理模块如图 3.6 所示: 图 3.6 材料管理模块 3.4 功能模块功能模块 .1 程序层次程序层次 程序层次如图 3.7 所示: 登陆界面 管理系统界面 进 库 管 理 出 库 管 理 修 改 密 码 按 日 期 查 询 按 物 品 查 询 基本管理 查 询 按 人 员 查 询 系统设置 人 员 设 置 操 作 员 设 置 数 据 整 理 打 印 统 计 帮 助 等 图 3.7 程序层次图 .2 模块功能说明模块功能说明 篇幅所限,仅挑选部分功能说明。 不登陆验证功能:主要功能为身份验证,防止非法用户进入系统。实现方法如图 3.8 所 示: 图 3.8 登陆验证实现方法 .3 系统数据表系统数据表 仓库物资信息表(材料表),如表 3.1 所示: 表 3.1 仓库物资信息表 编号字段名称数据类型说明 1 自动编号Long 数值Primary key 主键 2 规格Text 文本必填,字段不允许空串 3 型号Text 文本必填,字段不允许空串 4 数量Long 数值必填字段 5 价格Long 数值必填字段 6 名称Text 文本必填字段 进货人员信息表,如表 3.2 所示: 表 3.2 进货人员信息表 编号字段名称数据类型说明 1 自动编号Long 数值Primary key 主键 2 姓名Text 文本必填,字段不允许空串 3 联系方式Text 文本必填,字段不允许空串 入库、出库单信息表,如表 3.3 所示: 表 3.3 入库、出库单信息表 编号字段名称数据类型说明 1 自动编号Long 数值Primary key 主键 2 姓名Text 文本必填,字段不允许空串 3 联系方式Text 文本必填,字段不允许空串 4 货物名称Text 文本必填,字段不允许空串 5 货物数量Long 数值必填,字段不允许空串 6 货物规格Text 文本必填,字段不允许空串 7 货物型号Text 文本必填,字段不允许空串 8 价格Long 数值必填,字段不允许空串 9 日期Text 文本必填,字段不允许空串 四、系统详细设计四、系统详细设计 根据内部订单预定材料的流程图如图 4.1 所示: 说明:KDYsl:可调用数量 XQsl: 需求数量 KCsl: 库存数量 可调用数量=库存数量 最低库存量 已预约数量 设计时 需求数量与库存数量、可调用数量分别比较可得出种情况 需求数量可调用数量 and 需求数量 库存数量 (因为库存数量=可调用数量所以可写成 XQslKDYsl) 需求数量=可调用数量 and 需求数量 =可调用数量所以可写成 KDYsl =XQsl=可调用数量 所以 不存在这种情况) 需求数量可调用数量 and 需求数量 =可调用数量所以可写成 XQslKDYsl 和 KDYsl =XQsl=KCs 和 XQsl=B.YFYF); SELECT A.DHDH, A.KDRQ, B.CLBH, B.SLSL, B.SLSL*B.DJDJ AS JEJE FROM K_clrk_M AS A INNER JOIN K_clrk_D AS B ON A.DHDH=B.DHDH WHERE STATUS=1; SELECT A.CLBH, B.YFYF, IIf(A.RKSL=0,IIf(ISNULL(QCSL),0,QCJE/QCSL),(B.QCJE+A.RKJE)/(B.QCSL+A.RKSL) AS DJDJ FROM AVER_MTH_RK2 AS A LEFT JOIN T_SFC_QC AS B ON A.CLBH=B.BHBH; 功能函数 Public Sub Do_Aver_DJ() Dim da_Rec As ADODB.Recordset Dim da_SQL As String Set da_Rec = AppCN.Execute(select * from AVER_DJ) AppCN.BeginTrans Do While Not da_Rec.EOF da_SQL = update J_clcl set DJDJ = & da_Rec.Fields(DJDJ) & where BHBH= & da_Rec.Fields(CLBH) & AppCN.Execute (da_SQL) da_SQL = update K_LLLL_D set JEJE = & da_Rec.Fields(DJDJ) & * k_LLLL_D.SLSL where K_LLLL_D.CLBH= & _ da_Rec.Fields(CLBH) & and K_LLLL_D.DHDH IN (SELECT DHDH FROM AVER_mth_LL2) AppCN.Execute (da_SQL) da_Rec.MoveNext Loop AppCN.CommitTrans End Sub 收发存明细,追踪某中材料某月的进出库情况,并显示出是那一帐单据进行操作,如果 是领料则在摘要中写明成本项目。计算出每次操作之后的结存数量及金额。 Private Sub CmdMe_Click(Index As Integer) If Index = 0 Then Call PrintLstv(Me.LstView, LoadResString(804), 材料 & m_CLBH & 收发存明细 A, 1, 1) Else Unload Me End If End Sub Private Sub DoGroupCube(SlCol As String, JeCol As String) Dim arrSlCol() As String Dim arrJeCol() As String Dim k As Integer Dim total As Double Call ON_GetArray(SlCol, arrSlCol) Call ON_GetArray(JeCol, arrJeCol) LstView.ListItems.Add , , LstView.ListItems(LstView.ListItems.Count).SubItems(1) = 总计 For k = 0 To UBound(arrSlCol) total = 0 For J = 1 To LstView.ListItems.Count total = total + Val(LstView.ListItems(J).SubItems(Val(arrSlCol(k) Next LstView.ListItems(LstView.ListItems.Count).SubItems(Val(arrSlCol(k) = total Next For k = 0 To UBound(arrJeCol) total = 0 For J = 1 To LstView.ListItems.Count total = total + Val(LstView.ListItems(J).SubItems(Val(arrJeCol(k) Next LstView.ListItems(LstView.ListItems.Count).SubItems(Val(arrJeCol(k) = Format(total, #0.00) Next End Sub Private Sub Form_Load() Dim fl_Num As Single Dim fl_Cash As Double Me.Icon = LoadResPicture(101, vbResIcon) Me.Move (Screen.Width - Me.Width) / 2, (Screen.Height - Me.Height) / 4 Me.Caption = 查看 & m_CLBH & 的明细情况 Call DoStyle If GetInitData(fl_Num, fl_Cash) = True Then Call DoShow(fl_Num, fl_Cash) Call DoRemain(fl_Num, fl_Cash) End If End Sub Private Sub DoShow(m_drNum As Single, m_drCash As Double) Dim dsRec As ADODB.Recordset Dim dsSQL As String Dim I As Integer Dim itmX Dim rd_theSL As Single Dim rd_theJE As Double Dim rd_RKJE As Double, rd_CKJE As Double rd_theSL = m_drNum rd_theJE = m_drCash dsSQL = select * from SFC_MXA3 where CLBH= & m_CLBH & Set dsRec = AppCN.Execute(dsSQL & AND Month(KDRQ)= & m_Month & AND Year(KDRQ)= & m_Year) If dsRec.EOF Then MsgBox 无效的材料编号! Exit Sub End If I = 1 Set itmX = LstView.ListItems.Add(, , A & I) itmX.SubItems(1) = dsRec.Fields(KDRQ).Value itmX.SubItems(3) = 期初数量 itmX.SubItems(10) = rd_theSL itmX.SubItems(11) = Format(m_drCash, #,#0.00) Do While Not dsRec.EOF I = I + 1 Set itmX = LstView.ListItems.Add(, , A & I) rd_RKJE = IIf(dsRec.Fields(RKJE).Value = , 0, dsRec.Fields(RKJE).Value) rd_CKJE = IIf(dsRec.Fields(CKJE).Value = , 0, dsRec.Fields(CKJE).Value) rd_theSL = rd_theSL + Val(dsRec.Fields(RKSL) - Val(dsRec.Fields(CKSL) m_drCash = m_drCash + rd_RKJE - rd_CKJE itmX.SubItems(1) = dsRec.Fields(KDRQ).Value itmX.SubItems(2) = dsRec.Fields(DHDH).Value itmX.SubItems(3) = dsRec.Fields(CBXM).Value itmX.SubItems(4) = dsRec.Fields(RKSL).Value itmX.SubItems(5) = IIf(dsRec.Fields(RKDJ).Value = , , Format(dsRec.Fields(RKDJ).Value, #,#0.00) itmX.SubItems(6) = IIf(dsRec.Fields(RKJE).Value = , , Format(dsRec.Fields(RKJE).Value, #,#0.00) itmX.SubItems(7) = dsRec.Fields(CKSL).Value itmX.SubItems(8) = IIf(dsRec.Fields(CKDJ).Value = , , Format(dsRec.Fields(CKDJ).Value, #,#0.00) itmX.SubItems(9) = IIf(dsRec.Fields(CKJE).Value = , , Format(dsRec.Fields(CKJE).Value, #,#0.00) itmX.SubItems(10) = rd_theSL itmX.SubItems(11) = Format(m_drCash, #,#0.00) dsRec.MoveNext Loop End Sub Private Sub DoStyle() Dim intWid As Integer intWid = 1200 LstView.ColumnHeaders.Add , , 序号, 600 LstView.ColumnHeaders.Add , , 日期, 1000, lvwColumnRight LstView.ColumnHeaders.Add , , 凭证编号, intWid, lvwColumnRight LstView.ColumnHeaders.Add , , 摘要, intWid, lvwColumnRight LstView.ColumnHeaders.Add , , 收入数量, intWid, lvwColumnRight LstView.ColumnHeaders.Add , , 收入单价, intWid, lvwColumnRight LstView.ColumnHeaders.Add , , 收入金额, intWid, lvwColumnRight LstView.ColumnHeaders.Add , , 发出数量, intWid, lvwColumnRight LstView.ColumnHeaders.Add , , 发出单价, intWid, lvwColumnRight LstView.ColumnHeaders.Add , , 发出金额, intWid, lvwColumnRight LstView.ColumnHeaders.Add , , 结存数量, intWid, lvwColumnRight LstView.ColumnHeaders.Add , , 结存金额, intWid, lvwColumnRight End Sub Private Sub Form_Resize() On Error Resume Next LstView.Move 0, 100 + 500 + 50, Me.ScaleWidth, Me.ScaleHeight - Me.StatusBar1.Height - 650 End Sub Private Function GetInitData(m_giNum As Single, m_giCash As Double) As Boolean Dim drRec_1 As ADODB.Recordset Dim drRec_2 As ADODB.Recordset Dim drSQL As String GetInitData = True m_giNum = -2002.1994 m_giCash = -2002.1994 drSQL = select * from T_SFC Where BHBH= & m_CLBH & drSQL = drSQL & AND Month(YFYF)= & m_Month & AND Year(YFYF)= & m_Year Set drRec_1 = AppCN.Execute(drSQL) If drRec_1.EOF Then drSQL = select * from T_SFC_QC Where BHBH= & m_CLBH & drSQL = drSQL & AND Month(YFYF)= & m_Month & AND Year(YFYF)= & m_Year Set drRec_2 = AppCN.Execute(drSQL) If drRec_2.EOF Then MsgBox 没有盘点,没有期初期末数据! GetInitData = False Else m_giNum = drRec_2.Fields(QCSL).Value m_giCash = drRec_2.Fields(QCJE).Value End If drRec_2.Close: Set drRec_2 = Nothing Else m_giNum = drRec_1.Fields(QCSL).Value m_giCash = drRec_1.Fields(QCJE).Value End If drRec_1.Close: Set drRec_1 = Nothing End Function Private Sub Form_Unload(Cancel As Integer) m_CLBH = m_Month = 0 m_Year = 0 End Sub Private Sub DoRemain(m_drNum As Single, m_drCash As Double) Dim rd_theSL As Single Dim rd_theJE As Double Dim rd_RKJE As Double, rd_CKJE As Double rd_theSL = m_drNum rd_theJE = m_drCash For I = 1 To Me.LstView.ListItems.Count rd_theSL = rd_theSL + Val(LstView.ListItems(I).SubItems(4) - Val(LstView.ListItems(I).SubItems(7) LstView.ListItems(I).SubItems(10) = rd_theSL If rd_theSL 0 Then rd_CKJE = Val(Format(LstView.ListItems(I).SubItems(9), #0.00) rd_theJE = rd_theJE + rd_RKJE - rd_CKJE Else rd_theJE = 0 End If LstView.ListItems(I).SubItems(11) = Format(rd_theJE, #,#0.00) Next End Sub 5.2 程序界面程序界面 1系统总管理界面如图 5.1 所示: 图 5.1 系统总管理界面 2系统入库操作界面如图 5.2 所示: 图 5.2 系统入库操作界 3系统出库操作界面如图 5.3 所示: 图 5.3 系统出库操作界面 4人员查询界面如图 5.4 所示: 图 5.4 人员查询界面 5操作员设置界面如图 5.5 所示: 图 5.5 操作员设置界面 6物品查询界面如图 5.6 所示: 图 5.6 物品查询界面 7日期查询界面如图 5.7 所示: 图 5.7 日期查询界面 8按月份统计界面如图 5.8 所示: 图 5.8 按月统计界面 9数据管理界面如图 5.9 所示: 图 5.9 数据管理界面 六、总结与展望六、总结与展望 6.1 总结总结 本系统投入使用后,将大大减少公司的管理部门的劳动量,改善了企业内部以及整个供 应链各个环节的管理、调度及资源配置,使得管理合理规范。尽量合理的控制物流,尤其是 材料库存的控制,将材料控制到只在需要的时候向需要的部门按需要的数量,提供所需要的 物料,也就是说,它既防止物料供应滞后于对他们的要求,也防止了物料过早地出产和进货,

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论