快递管理系统接货管理实验报告.docx
《快递管理系统接货管理实验报告.docx》由会员分享,可在线阅读,更多相关《快递管理系统接货管理实验报告.docx(23页珍藏版)》请在冰豆网上搜索。
快递管理系统接货管理实验报告
1.4.2SQLServer概述-5-
引言
近几年来,随着社会科技,文化和科技的发展,特别是计算机网络技术和通信技术的发展,人们对信息的意识,对开发和使用信息资源的重视越来越加强烈。
而随着Internet和相关技术日异月新的发展,web应用已经成为目前企业应用最为广泛的一种形式。
与此同时,作为计算机发展最迅速的又一领域--数据库技术,也已自身形成了一套独有的理论,广泛地应用于人们的生产和生活之中。
数据库技术与网站的结合是当今Web技术的一个热点。
有了数据库的支持,可以扩展网页的功能,可以方便的设计出交互页面,可以构造功能强大的后台管理系统,可以为网站的更新、维护提供极大的方便。
因此,作为网络开发者或管理者,数据库知识是必不可少的。
快递服务企业,通常处于和快递业务网络最终服务商之间,是扩地去、扩行业的运作系统,提供面向终端客户的快递服务业务。
标准化程度的高低不仅关系到各种快递功能,要素之间能否有效衔接和协调发展,也在很大程度上影响着全社会快递效率的提高。
但是,其业务信息及其繁杂,如果没有一套逻辑严密的管理系统,不仅浪费人力,同时对客户服务质量的提高、以及业务的拓展、审核诸方面都将不利。
在考察了快递的日常业务以及参考了其他快递业务系统后,快递管理系统中存在的主要问题体现在以下几个方面:
快递公司不能全面、清晰的确认货运单的类型、货运单的日期、货运单的修改及删除等。
不能准确、清晰的确认货运单是否已经作废。
货运回执单是否已经填写。
而这些问题均与货运管理相连,所以综合系统要求,在计算机网络,数据库和先进的开发平台上,利用现有的软件,配置一定的硬件,为企业提供精确、精细、迅速的各种信息。
通过接货管理系统,可以有效地执行货运单的增加/填写、修改、删除、查询等功能,达到资源的合理利用。
本模块是在.net平台上运用ASP.NET技术来实现的。
其主要功能由层调用SQLServer2005的存储过程进行数据处理。
主要功能是对货运单进行增加、查询、编辑、修改与删除的查询。
其中货运单的填写就是对货运单的增加;货运单的查询就是对货运的类型及收发客户和货运状态进行查询。
本文分为三章来介绍快递管理系统的设计与实现。
第一张系统分析,在系统分析中主要是系统的需求分析、系统的功能分析、可行性分析、开发工具简介、架构简介等;第二章系统总体设计,提出系统功能模块的细分和数据库的详细设计等;第三章系统详细设计与实现,主要包括系统功能子模块的设计与实现、设计理念、实现功能和最终得到的结果等。
1系统分析
1.1需求分析
随着快递公司业务的发展,快递业务具有客户量大、分散、件数多、重量小、时效性强、市场竞争激烈等特点,业务量不断增多,跨区域工作的需求,客户需要一种能够运行于B/S模式的快递管理系统,如何设计快递管理系统已经成为快递公司非常关注的问题,因此开发一套好的快递管理软件,不但能大大降低工作人员的劳动强度,还能提高快递公司的管理水平。
1.2功能分析
接货管理的主要功能是填写一份货运单合同,该合同的内容包括货运单编号、发货客户信息、收货客户信息、运费、保险费等,提交合同后,同时修改该合同状态为待运,票据状态为已填。
填完货运单后,需要为本次货运添加货物。
在货物列表中,添加货物,主要填写货物的名称、重量、体积、货物价值等信息。
可以查看不同状态的货运单,比如待发运单、未到运单、未结运单。
填写完运单但还没有发货的运单为待发运单;运单已发但还未到,为未到运单;没有结算的运单统称为未结运单。
注:
货运单只有在待运状态时,才可以修改和删除,其他状态不能对其数据操作。
1.3可行性分析
1.3.1操作可行性
本系统性能稳定,简单易用易懂、功能完善、有利于公司管理人员的使用,大大提高管理的效率。
1.3.2经济可行性
本次系统的课设所用到的计算机和计算机上所安装时的软件来完成来完成这次的开发,无需经济上的投入,因此在经济上是可行的。
1.3.3技术可行
MicrosoftVisualStudio.NET2005采用了可视化面向工具开发,其窗口、界面简洁易懂,易于操作。
MicrosoftSQLServer2005具有上手容易、可兼容性好、扩展性强并且易于操作等诸多优点。
所以系统在操作上是可行的。
1.4开发工具简介
VisualStudio.NET是.NET平台下最为强大的开发工具,无论是软件服务商,还是企业应用程序的部署与发布,VisualStudio.NET提供了包括设计、编码、编译调试、数据库连接操作等基本功能和基于开放架构的服务器组件开发平台、企业开发工具和应用程序重新发布以及性能评测报告等高级功能。
1.4.1C#概述
1、c#是一种最新的、面向对象的编程语言。
C#使得程序员可以快速地编写各种基于Microsoft.NET平台的应用程序,Microsoft.NET提供了一系列的工具和服务来最大程度地开发利用计算机与通讯领域。
并以安全、稳定、简单、优雅等特点在计算机领域站稳头角。
并且,c#还在继承C和C++强大功能的同时去掉了一些复杂特性(例如没有宏和模版,不允许多重继承)。
秉承着简单的可视化操作和高运行的效率,以其强大的操作能力、优雅的语法风格、创新的语言特性和便捷的面向组件编程的支持成为.NET开发的首选语言。
2、C#的特点
1.)C#本身不包含任何类库
2.)C#支持两种类型:
value类型和reference类型。
Value类型包括简单类型(如char,int和float)、enum类型和struct类型。
Reference类型包括class类型、interface类型、delegate类型和array类型。
3、数组
ClassText{
StaticvoidMain(){
inta1;//int类型的一维数组
int[,]a2;//int类型的二维数组
int[,,]a3;//int类型的三位数组
intj2;//不规则数组:
数组(int数组)
intj3;//数组(数组(int数组))}
}
显示了多个局部变量的声明,它们都是使用int数组类型作为元素类型。
数组是reference类型的,因此一个数组变量的声明仅仅留出了一个指向数据的地址空间。
数组例程实际上是通过数组初始化和数组创建表达式创建。
1、)类型系统统一TypesystemunificationC#提供了一个"统一类型"。
所有的类型-包括value类型等都是由object类型派生而来。
2、)变量赋值要求
在对一个变量的值进行运算之前,必须对该变量进行赋值。
3、)参数
正式的参数声明过程也可以定义变量。
有四种类型的参数:
value参数、reference参数、output参数和params参数。
(1).value参数为值传递
(2).Output参数类似于reference参数,只是调用提供的调用者参数的初始值不再重要。
Output参数的声明包括一个out修饰符。
(3).Params参数的声明包括params修饰符。
给定一个方法,只能有一个params参数,并且需要在最后指定该参数。
Parmas参数的类型是一位数组类型。
一个调用函数可以传递单个这种数组类型的变量,也可以传递多个这种变量。
4.)操作符
(1).除了赋值操作符外,所有二元操作符是左关联的,意味着操作符从右运算到左。
例如x=y=z运算成x=(y=z)。
5.)索引
应用索引可以是的一个对象可以类似数组的方式索引。
属性提供了类似于域的访问,而索引提供了类似于数组的访问。
6.)编译的具体步骤可能会因为不同的编译器或工具而有所不同。
4、C#的优点
1.)完全支持类和面向对象编程,包括接口和继承,虚函数和运算符重载的处理
2.)定义完整,一致的基本类型集
3.)对自动生成xml文档说明的内置支持
4.)可以用用户定义的特性来标记类或者方法,这可以用于文档说明,对编译有一定的影响
5.)C#可以用于编写的动态web页面和xmlweb服务
1.4.2SQLServer概述
1、SQLServer概述是一种数据库管理系统(DBMS),其数据模型是以关系型为主,辅助以一些面向对象模型。
2、SQLServer(以及类似Oracle之类的大型的DBSS)其应用主要有两种:
1.)OLTP(联机事物处理):
主要是对数据进行添加、修改、删除、查询操作。
传统的"进销存系统"、"信息管理系统"等均属于OLTP。
2.)OLAP(联机分析处理):
主要是基于海量数据的查询、分析。
数据仓库技术属于OLAP。
1.4构架简介
在所谓三层架构分为的三层:
变现层、数据存取层、业务逻辑层。
且这三层是通过实体层连接起来的。
表现层:
web界面,为用户提供信息,触发用户的指令和用户进行交互。
业务逻辑层:
调用数据存取层的方法,出路表现层触发的任务。
数据存取层:
和数据库打交道,把数据提取或保存到数据库。
实体层:
具体的集合,三层之间是通过实体层联系起来的。
2系统总体设计
2.1系统功能结构设计
1、接货管理模块功能描述:
接货管理的主要功能是填写一份货运单合同,该合同的内容包括货运单编号、发货客户信息、收货客户信息、运费、保险费等,提交合同后,同时修改该合同状态为待运,票据状态为已填。
填完货运单后,需要为本次货运添加货物。
在货物列表中,添加货物,主要填写货物的名称、重量、体积、货物价值等信息。
可以查看不同状态的货运单,比如待发运单、未到运单、未结运单。
填写完运单但还没有发货的运单为待发运单;运单已发但还未到,为未到运单;没有结算的运单统称为未结运单。
注:
货运单只有在待运状态时,才可以修改和删除,其他状态不能对其数据操作。
功能模块图如图2.1所示:
图2.1接货管理模块功能模块图
2.2数据库设计
2.2.1数据表设计
所做的模块主要涉及到货运单主表(Accept_CarryBillParent)、货运单事件表(Accept_CarryBillEvent)、货运单详表(Accept_CarryBillDetail)三个表,本模块应该能够将表中的信息显示出来,用户对相应信息进行查询,添加,删除,修改都涉及到这三个表,对应删除,修改,添加能改变表里面的信息,并将其存到数据库中。
1、货运主单表:
用于存放货运单的信息,包含货运单类型,货运单编号,发货客户信息,收货客户信息,交货地址等。
如表2.1所示。
表2.1货运单主表(Accept-CarryBillParent)
名称
字段
数据类型
是否主外键
是否允许空
PKID
PKID
int
主键
否
货运单编号
GoodsBillCode
varchar(50)
否
发货客户编号
SendGoodsCustomerNo
varchar(50)
是
发货客户
SendGoodsCustomer
varchar(50)
是
发货客户电话
SendGoodsCustomerTel
varchar(50)
是
发货客户地址
SendGoodsCustomerAddr
varchar(50)
是
收货客户编号
ReceiveGoodsCustomerCode
varchar(50)
是
收货客户
ReceiveGoodsCustomer
varchar(50)
是
收货客户电话
ReceiveGoodsCustomerTel
varchar(50)
是
收货客户地址
ReceiveGoodsCustomerAdr
varchar(50)
是
发货日期
SendGoodsDate
datetime
是
发货地址
SendGoodsAddr
varchar(50)
是
收货地址
ReceiveGoodsAddr
varchar(50)
是
预期交货日期
PredeleveryDate
datetime
是
实际交货日期
FactDealDate
datetime
是
代收货款
HelpAcceptPayment
money
是
代收手续费率
AcceptprocedrueRate
varchar(50)
是
付款方式
PayMode
varchar(50)
是
取货方式
FetchGoodsMode
varchar(50)
是
填票人
WriteBillPerson
varchar(50)
是
填写日期
WriteDate
datetime
是
有效性
Validity
varchar(50)
是
是否审核
IfAudit
varchar(50)
是
是否结帐
IfSettleAccounts
varchar(50)
是
中转地
TransferStation
varchar(50)
是
中转费
TransferFee
money
是
减款
ReduceFund
money
是
付回扣
PayKickback
money
是
代收货款变更后金额
MoneyOfChangePay
money
是
送货费
CarryGoodsFee
money
是
运费
Carriage
money
是
保险费
Insurance
money
是
职员PKID
EmployeePKID
int
是
备注
Remark
varchar(50)
是
接货点
AcceptStation
varchar(100)
是
发货客户手机
SendGoodsCustomerMobile
varchar(50)
是
收货客户手机
ReceiveGoodsCustomerMobile
varchar(50)
是
2、货运单事件表:
用于记录的相关信息。
如表2.2所示。
表2.2货运单事件表(Accept_CarryBillEvent)
名称
字段
数据类型
是否主外键
是否允许为空
PKID
PKID
int
主键
否
货运单PKID
GoodsBillPKID
int
外键(Accept_CarryBillParentPKID)
是
事件名称
EventName
varchar(50)
是
备注
Remark
varchar(50)
是
发生时间
OccurTime
dateTime
是
3、货运单详表:
用于记录货物的详细信息。
如表2.4所示。
表2.3货运单详表(Accept_CarryBillDetail)
名称
字段
数据类型
是否主外键
是否允许为空
PKID
PKID
int
主键
否
货运单PKID
GoodsBillCode
int
外键(Accept_CarryBillParentPKID)
否
货物编号
GoodsCode
varchar(50)
是
货物名称
GoodsName
varchar(50)
是
规格
Size
varchar(50)
是
包装
Pack
varchr(50)
是
件数
PieceAmount
int
是
重量
Weight
real
是
体积
Volumn
real
是
货物价值
GoodsValue
money
是
保险费
Insurance
money
是
运费
Carriage
money
是
计价方式
PriceMode
varchar(50)
保险费率
InsuranceRate
real
剩余件数
RemeinPieceCount
int
2.2.2存储过程设计
该接货管理系统主要包括19个存储过程和一个函数,具体要求和设计如以下所示。
(1)uspGetCarryBills:
该存储过程是获取多条货运单信息,具体要求和设计如表2.1所示,
表2.1存储过程uspGetCarryBills
存储过程名称
uspGetCarryBills
功能描述
获取多条货运单信息
输入参数
@goodsBillCodevarchar(50),
@sendGoodsCustomervarchar(50),
@receiveGoodsCustomervarchar(50),
@sendGoodsAddrvarchar(50),
@receiveGoodsAddrvarchar(50),
@beginSendGoodsDatedatetime,
@endSendGoodsDatedatetime,
@statevarchar(50),
@pageIndexint,
@pageSizeint,
输出参数
@recordCount
返回值
无
结果集
PKID--货运单信息主键
GoodsBillCode,--货运单编号
SendGoodsAddr,--起点
ReceiveGoodsAddr,--终点
SendGoodsDate,--托运时间
ReceiveGoodsCustomer,--收货客户
ReceiveGoodsCustomerTel,--收货客户电话
State,--状态
涉及到的表
1、货运单主表:
Accept_CarryBillParent
2、货运单事件表:
Accept_CarryBillEvent
操作说明
过滤条件,同时满足如下6个条件:
1)GoodsBillCodeLike'%'+@goodsBillCode+'%'
2)SendGoodsCustomerLike'%'+@sendGoodsCustomer+'%'
3)ReceiveGoodsCustomerLike'%'+@receiveGoodsCustomer+'%'
4)如果@beginSendGoodsDateISNOTNULL,SendGoodsDate>=@beginSendGoodsDate
5)如果@endSendGoodsdateISNOTNULL,SendGoodssDate<=@ednSendGoodsDate
6)如果@sendGoodsDate<>'',SendGoodsAddr=@sendGoodsAddr
7)如果@receiveGoodsAddr<>'',ReceiveGoodsAddr=@receiveGoodsAddr
8)如果@state<>'',EventName=@state采用SQLSERVER2005的分页新特性,实现读取第@pageIndex页的@pageSize条数据
(2)uspGetCarryBill:
该存储过程是获取单条货运单信息,具体要求和设计如表2.2所示。
表2.2存储过程uspGetCarryBill
存储过程名称
uspGetCarryBill
功能描述
获取单条货运单信息
输入参数
@PKID
输出参数
无
返回值
无
结果集
GoodsBillCode,--货运单编号
SendGoodsDate,--托运日期
SendGoodsAddr,--起点站
ReceiveGoodsAddr,--到达站
ReceiveGoodsCustomerCode,--收货客户编号
ReceiveGoodsCustomerAddr,--收货客户地址
ReceiveGoodsCustomerTel,--收货客户电话
ReceiveGoodsCustomerMobile,--收货客户手机
SendGoodsCustomerNo,--发货客户编号
SendGoodsCustomerAddr,--发货客户地址
SendGoodsCustomerTel,--发货客户电话
SendGoodsCustomerMobile,--发货客户手机
Carriage,--运费
Insurance,--保险费
PayMode,--付款方式
FetchGoodsMode,--取货方式
HelpAcceptPayment,--代收货款
AcceptprocedrueRate,--代收佣金率
TransferStation,--中转目的地
EmployeePKID,--业务员
PayKickback,--付回扣
WriteBillPerson,--填票人
WriteDate,--填写日期
Remark,--备注
AcceptStation,--接货点
涉及到的表
1、货运单主表:
Accept_CarryBillParent
操作说明
1.从货运单主表中查询结果集包含的所有字段
过滤条件:
PKID=@PKID
(3)uspCreateCarryBill:
该存储过程是增加货运单,具体要求和设计如表2.3所示。
表2.3存储过程uspCreateCarryBill
存储过程名称
uspCreateCarryBill
功能描述
增加货运单
输入参数
@goodsBillCodevarchar(50),--货运单编号
@sendGoodsDatedatetime,--托运日期
@sendGoodsAddrvarchar(50),--起点站
@receiveGoodsAddrvarchar(50),--到达站
@receiveGoodsCustomerCodevarchar(50),--收货客户编号
@receiveGoodsCustomervarchar(50),--收货客户名称
@receiveGoodsCustomerAddrvarchar(50),--收货客户地址
@receiveGoodsCustomerTelvarchar(50),--收货客户电话
@receiveGoodsCustomerMobilevarchar(50),--收获客户手机
@sendGoodsCustomerNovarchar(50),--发货客户编号
@sendGoodsCustomervarchar(50),--发货客户名称
@sendGoodsCustomerAddrvarchar(50),--发货客户地址
@sendGoodsCustomerTelvarchar(50),--发货客户电话
@sendGoodsCustomerMobilevarchar(50),--发货客户手机
@carriagemoney,--运费
@insurancemoney,--保险费
@payModevarchar(50)--付款方式,
@fetchGoodsModevarchar(50),--取货方式
@helpAcceptPaymentmoney,--代收贷款
@acceptprocedureRatevarchar(50),--代收佣金率
@transferStationvarchar(50),--中转目的地
@employeePKIDint,--业