《物流业务系统)》PPT课件.ppt_第1页
《物流业务系统)》PPT课件.ppt_第2页
《物流业务系统)》PPT课件.ppt_第3页
《物流业务系统)》PPT课件.ppt_第4页
《物流业务系统)》PPT课件.ppt_第5页
已阅读5页,还剩131页未读 继续免费阅读

下载本文档

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

文档简介

物流业务系统,8.1 概述 8.2 系统分析 8.3 数据存储设计 8.4 输入设计窗体设计与输出设计 报表设计 8.5 查询设计、程序模块设计与菜单设计 8.6 系统的调试与安装,8.1 概述,8.1.1 系统目标和功能,8.1.2 系统网络结构,仓储管理信息系统网络结构见图8-1。,图8-1 仓储管理信息系统网络结构,我们设计采用千兆主干、百兆交换到桌面的大型网络解决方案,方案特点: (1)千兆骨干、百兆交换到桌面;楼宇建筑之间千兆光纤,库房内部百兆。 (2)虚拟网络方便管理、提高网络安全与性能; (3)系统安全,保密性高。,8.1.3 系统设计流程,结合系统本身的特点,我们提出用快速开发工具开发一个仓储管理信息系统数据库应用程序的设计流程如下图8-2所示 。,系统开发流程,开始:用户提出需求,初步调查:了解用户需求,设计基本结构,需求分析:建立表及其关系 建立系统功能模块结构图,设计数据输入界面:窗体、访问页等,设计输出界面:报表、查询界面,设计宏(及VAB程序),设计菜单系统,测试、改进功能,交付用户,发布完成,系统最后测试修改,打包,制做安装程序、使用说明,图8-2 系开发统设计流程,8.2.1 业务流程分析,商品 检验,进货 暂存区域,流通 加工,商品 入库,库位 库存,货架 保存,分拣,补充流 通加工,出货 区域,出货检 验集货,供应商,收货入库,上架保存,分拣出货,商品检验 报告单,图8-3 仓储作业流程,8.2.2 数据流程图,总的业务处理的过程如下:客户来办理仓储业务,提交申请(申请入库、出库),仓储企业接受申请,开始办理业务,业务处理完后给客户回执,内部处理时与仓储数据存储交换数据。据此做出第一层数据流程图,见下图8-4。,图8-4 第一层数据流程,对第一层的业务在详细分析,仓储业务主要包括三项:入库、出库、调储。输入的数据分别存放到入库单、出库单、调储单中。做出第二层数据流程图,见图8-5。,客户,入库单,出库单,调储单,图8-5 第二层数据流程图,8.2.3 系统功能模块,通过与用户的交流,我们了解了仓储管理系统的主要功能包括:入库、出库、调储、库存、结算费用、报表和基础数据维护。 系统功能用功能结构图表示如下图8-6所示。,图8-6 仓储管理系统功能,入库管理功能包括新增入库单、修改入库单、审核、验收入库单、打印入库单等功能,如图8-7所示。 出库管理功能包括新增出库单、修改出库单、审核、验收出库单、打印出库单等功能,如图8-8所示。,调储管理包括新增调储单、修改调储单、调储、打印调储单等功能,如图8-9所示。 基础数据维护包括如客户、用户、库位、产品等基本信息,基础数据维护包括对这些数据的增加、修改、删除、查询、打印等操作。如图8-10所示。,用户管理包括增加用户、修改用户、删除用户、查询用户、打印用户等功能。见下图8-11所示。,入库管理,新增入库单,修改入库单,审核入库单,打印入库单,验收入库单,图8-7 入库管理,出库管理,新增出库单,修改出库单,审核出库单,验收出库单,打印出库单,图8-8 出库管理,调储管理,新增调储单,修改调储单,调储调储单,打印调储单,图8-9 调储管理,基础数据维护,增加,修改,删除,查询,打印,图8-10 基础数据维护,用户管理,增加用户,修改用户,删除用户,查询用户,打印用户,口令管理,图8-11 用户管理,8.3 数据存储设计,从数据流程图中看到,系统主要有三个数据实体,一是入库单,一是出库单,另外一个是库存台账。,8.3.1 设计表,仓储管理的核心是围绕入库单、出库单、库存台帐进行的,入库单示例如图8-12。,图8-12 入库单,仓储管理系统主要包括以下表: 1)系统用户表 存放仓储管理系统用户信息,用户有超级用户、经理人、一般管理者操作员。关键字段是雇员ID,其数据类型为自动增加。字段如图8-13所示。,图8-13 系统用户表,2)客户表 客户表存放客户信息,关键字段是客户ID。表结构如图8-14所示。,图8-14 客户表,3)收货方表 收货方表存放收货方客户信息,关键字段是收货方ID。表结构如图8-15所示。,图8-15 收货方表,4)产品表 存放处入库的全部产品信息码。关键字段:产品ID。表结构如图8-16所示。,图8-16 产品表,5)仓库表 存放仓库全部信息,关键字段:仓库代码。表结构如图8-17所示。,图8-17 仓库表,6)入库单 用入库单与入库单明细两个表来存储入库单数据,这两个表的关系是一对多的关系,联结关键字是入库单编号。这两个表的设计是整个系统设计的关键,如果用一个表存放入库单的数据,将造成大量的数据冗余。关键字段:入库单编号。结构见图8-18。,图8-18 入库单表,7)入库单明细表 入库单明细表存放入库仓单中的多方信息,关键字段:入库单编号+产品编号。表结构如图8-19所示。,图8-19 入库单明细表,8)出库单 类似于入库单,用出库单与出库单明细两个表来存储入库单数据,这两个表的关系是一对多的关系,联结关键字是出库单编号。如果用一个表存放出库单的数据,将造成大量的数据冗余。关键字段:出库单编号。结构见图8-20所示。,图8-20 出库单表,9)出库单明细表 出库单明细表存放出库仓单中的多方信息,关键字段:出库单编号+产品编号。结构见图8-21所示。,图8-21 出库单明细表,10)调储单表 调储单表存放商品的库位调整信息,用调储单与调储单明细两个表来存储调储单数据,这两个表的关系是一对多的关系,联结关键字是调储单编号。关键字段:调储单。结构见图8-22所示。,图8-22 调储单表,11)调储单明细表 调储单明细表存放调储单中的多方信息,关键字段:调储单+产品编号。结构见图8-23所示。,图8-23 调储单明细表,12)库存台帐表 库存台帐表存放在库的所有商品信息,关键字段是流水号。表结构如图8-24所示。,图8-24 库存台帐表,8.3.2 表间关系,系统主要的表间主要关系如下图8-25所示,关系都是一对多的关系。,图8-25表间主要关系,8.3.3 参照完整性设计,出库单参照完整性见图8-26。,图8-26 出库单参照完整性,8.3.4 视图设计,1)入库单查询单视图 SELECT 入库单.入库单编号, 客户.公司名称, 入库单.验收日期, 入库单.提交申请日期, 入库单.申请入库日期 FROM 客户 INNER JOIN 入库单 ON 客户.客户ID = 入库单.客户;,2)各类产品视图 SELECT 类别.类别名称, 产品.产品名称, 产品.包装单位, 产品.中止 FROM 类别 INNER JOIN 产品 ON 类别.类别ID = 产品.类别ID WHERE (产品.中止)=No) ORDER BY 类别.类别名称, 产品.产品名称; 各类产品视图运行的结果如下图8-27所示。,图8-27 各类产品视图运行的结果,8.4 输入设计窗体设计与输出设计 报表设计,8.4.1 输入设计窗体设计,1)客户窗体 客户窗体用于输入客户信息,其设计视图如下图8-28所示。,图8-28 客户窗体,2)入库单窗体 入库单窗体运行视图如图8-29,设计视图如图8-30所示。,图8-29 入库单窗体运行视图,图8-30入库单窗体设计视图,3)出库单窗体 出库单窗体用于输入出库单,也用于修改出库单和出库单查询。出库单窗体运行视图见图8-31所示。,图8-31 出库单窗体运行视图,4)调储单窗体 调储单窗体用于输入调储单。调储单窗体运行视图见图8-32。,图8-32 调储单窗体运行视图,5)仓库窗体 仓库窗体用于输入仓库信息,也用于显示查询仓库的信息。仓库窗体运行视图见图8-33。,图8-33 仓库窗体窗体运行视图,6)产品窗体 产品窗体用于输入产品信息,也用于显示查询产品的信息。产品窗体窗体运行视图见图8-34。,图8-34 产品窗体运行视图,7)系统用户窗体 系统用户窗体用于输入本企业的雇员,也用于显示查询雇员的信息。系统用户窗体运行视图见图8-35。,图8-35 系统用户窗体运行视图,系统用户窗体中的程序如下: Option Compare Database Option Explicit Dim path As String Sub getFileName(), 显示一个 Office 打开文件对话框,为当前的雇员记录 选择一个文件名如果用户选择了一个文件, 则将它显示到图片控件中 Dim fileName As String Dim result As Integer With Application.FileDialog(msoFileDialogFilePicker),.Title = “选择雇员照片“ .Filters.Add “所有文件“, “*.*“ .Filters.Add “JPEGs“, “*.jpg“ .Filters.Add “位图文件“, “*.bmp“ .FilterIndex = 3 .AllowMultiSelect = False,.InitialFileName = CurrentProject.path result = .Show If (result 0) Then fileName = Trim(.SelectedItems.Item(1) Me!照片路径.Visible = True Me!照片路径.SetFocus Me!照片路径.Text = fileName Me!姓氏.SetFocus Me!照片路径.Visible = False,错误信息.Visible = False End If End With End Sub Sub showErrorMessage(), 如果找不到照片文件, 显示错误信息标签 If Not IsNull(Me!照片) Then 错误信息.Visible = False Else 错误信息.Visible = True End If End Sub,Function IsRelative(fName As String) As Boolean 如果文件名中包含驱动器名称或 UNC 路径,返回 False IsRelative = (InStr(1, fName, “:“) = 0) And (InStr(1, fName, “) = 0) End Function,Sub hideImageFrame() 隐藏图像控件 Me!照片图像.Visible = False End Sub Sub showImageFrame() 显示图像控件 Me!照片图像.Visible = True End Sub,Private Sub Form_AfterUpdate() 一条记录改变之后,再次查询“上级”组合框。 如果该雇员记录的文件名不存在,则显示一条错误信息 如果文件名存在,则显示雇员照片 Me!上级.Requery,On Error Resume Next showErrorMessage showImageFrame If (IsRelative(Me!照片路径) = True) Then Me!照片图像.Picture = path & Me!照片路径 Else Me!照片图像.Picture = Me!照片路径 End If End Sub,Private Sub Form_Current() 如果照片存在,显示当前记录雇员的照片 如果照片文件不存在,或文件名为空,在错误信息 标签上显示适当的信息 Dim res As Boolean Dim fName As String,path = CurrentProject.path On Error Resume Next 错误信息.Visible = False If Not IsNull(Me!照片) Then res = IsRelative(Me!照片) fName = Me!照片路径 If (res = True) Then fName = path & “ & fName End If,Me!照片图像.Picture = fName showImageFrame Me.PaintPalette = Me!照片图像.ObjectPalette If (Me!照片图像.Picture fName) Then hideImageFrame 错误信息.Caption = “照片未找到。“ 错误信息.Visible = True,End If Else hideImageFrame 错误信息.Caption = “单击“添加/删除”按钮,添加照片。“ 错误信息.Visible = True End If End Sub,Private Sub Form_RecordExit(Cancel As Integer) 在不同的记录间切换时,隐藏错误信息标签,以减少闪烁 错误信息.Visible = False End Sub,Private Sub 删除照片_Click() 清雇员记录的照片文件名,并显示错误信息标签 Me!照片路径 = “ hideImageFrame Me!照片图像.Picture = “ 错误信息.Visible = True End Sub,Private Sub 添加照片_Click() 使用 Office 文件打开对话框,获取一个雇员照片的文件名 getFileName End Sub,Private Sub 照片路径_AfterUpdate() 在选择了一个雇员照片后,显示照片 On Error Resume Next showErrorMessage showImageFrame,If (IsRelative(Me!照片路径) = True) Then Me!照片图像.Picture = path & Me!照片路径 Else Me!照片图像.Picture = Me!照片路径 End If End Sub,8.4.2 输出设计报表设计,1)客户标签 客户标签用于打印信件,把客户标签打印到不干胶纸上,然后贴到信封上。客户标签报表见图8-36。,图8-35客户标签报表,2)库存台账报表 库存台账报表见图8-37。,图8-37 库存台账报表设计视图,8.5 查询设计、程序模块设计与菜单设计,8.5.1 查询设计,对于使用频率高的固定方式查询,如按客户查询库存数据见图8-38,为了节省用户的时间,可以设计单独的查询程序。,图8-38 按客户查询库存窗体,查询代码 Private Sub Combo0_AfterUpdate() Me.Refresh End Sub Private Sub Command1_Click() On Error GoTo Err_Command1_Click Dim stDocName As String Dim stLinkCriteria As String stDocName = “按客户查询库存台账“ DoCmd.OpenForm stDocName, , , stLinkCriteria,Exit_Command1_Click: Exit Sub Err_命Command1_Click: MsgBox Err.Description Resume Exit_Command1_Click End Sub,8.5.2 程序模块设计,把具有通用功能的程序设计成单独的公共模块,公共模块不依附于窗体和报表。 1)Changetochinese 功能:把09数值转化为中文 Option Compare Database Option Explicit Function CHANGE(n) As String 把单个数字转化为汉字 Select Case n Case 0 CHANGE = “零“,Case 1 CHANGE = “壹“ Case 2 CHANGE = “贰“ Case 3 CHANGE = “叁“ Case 4 CHANGE = “肆“ Case 5 CHANGE = “伍“,Case 6 CHANGE = “陆“ Case 7 CHANGE = “柒“ Case 8 CHANGE = “捌“ Case 9 CHANGE = “玖“ End Select End Function,2)IsLoaded 判别给定的窗体是否打开 Function IsLoaded(ByVal strFormName As String) As Boolean 如果指定窗体在窗体视图或数据表视图中打开,返回 True。 Dim oAccessObject As AccessObject,Set oAccessObject = CurrentProject.AllForms(strFormName) If oAccessObject.IsLoaded Then If oAccessObject.CurrentView acCurViewDesign Then IsLoaded = True End If End If End Function,3)GetComputerName 得到当前计算机的名字,用于系统的安全,只有允许的计算机才可以使用本仓储系统。 声明GetComputerName函数,它是API函数 Declare Function GetComputerName Lib “kernel32“ Alias “GetComputerNameA“ (ByVal lpBuffer As String, nSize As Long) As Long 声明SetComputerName Declare Function SetComputerName Lib “kernel32“ Alias “SetComputerNameA“ (ByVal lpComputerName As String) As Long,定义一个获取计算机名字的函数 Public Function GetCName(CName) As Boolean Dim sComputerName As String

温馨提示

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

评论

0/150

提交评论