物流运输行业的今天正朝着追求高效、低成本、稳定可靠的方向发展。本文详细介绍了网上物流管理系统,涉及到客户端运输线路设计、过程跟踪等功能模块以及管理员端的相应模块的具体实现,分析了整个系统的架构、工作原理、实现功能等。系统采用ASP+MS SQL以B/S模式开发,具有安全、方便、配置简易等特点。系统还实现了对客户注册、运输信息录入等功能的自动化管理,在降低成本的前提下,提高了实际工作效率。前台客户端功能完备,界面简洁、易懂;后台管理员端具有自动化程度高的特点。系统保证了数据的一致性和完整性,数据的安全性也得到了一定程度的保障。
目前在我国,由于国内政策环境的改善,企业改革日益深化,为物流业的发展建立了良好的发展环境与基础。由于物流活动日益渗透到生产、流通、消费等整个社会经济活动过程之中,与社会经济的发展存在着密切的联系,是社会经济活动的重要组成部分,故物流需求与社会经济发展有密切的相关性,社会经济发展是影响物流需求的主要因素。在一些电子商务环境里,物流企业的网络功能越来越得到强化,但是一些老化的物流管理系统在完善的全球物流操作平台的支持方面困难重重。随着物流行业的发展,现在市场上的的一些物流系统已经不能达到现在企业的要求,不能进行高效率的信息处理和信息交互成为现在物流管理是一个重大课题。
3系统总体设计
3.1系统模块结构划分
3.2系统各功能模块及分析
本系统是多用户系统,分客户和管理员两种权限,在客户端的操作都可以在管理员端进行有效的控制,保证了数据的安全和可靠。客户可以根据自己的合同号进行网上注册,然后享受管理员提供的信息化服务,可以对运输线路进行预期的规划和设计,同时在相应的站点需要进行相关的操作,以方便于以后对各站点的信息进行跟踪和查询。客户还可以对管理员的运营状态进行有限的查询,而管理员除了可以进行对客户资料等进行一些基本管理外,还拥有对站点信息和自己的运营状态进行有效的信息化管理。
在客户端的运输路线规划模块中,客户在和管理员进行合理的沟通后可以对运输的线路和运输方式等进行科学的规划。并且在以后的运输过程中合同的执行者在每到一站之后必须对货物状况,路况信息等及时的通过本系统反映给管理员和有效的客户,这样就能在很低成本的前提下更加高效率完成了物流运输的全部过程,为客户提供了非常保障的物流服务,同时给物流从业者带来了更加高的经济效益。
在客户段进行以上的这个模块主要是通过起点、终点录入和合同号的录入后进行一定的验证后确定合同的真实性,由于中间站的不固定性,所以采取了一个无限循环的方式来处理,这样既保证了系统的完整性也和实际情况进行了很好的融合,显得很科学和方便。
过程跟踪模块也是在客户端执行的一个模块,是在运输线路规划模块以后,货物正式开始运输后需要执行的一个模块,在按照规划的运输线路运输货物的过程中,合同执行者在每到一个站后都应该对到站情况和车况信息、货物状况和人员状况进行有效的录入,这样就更加方便了管理员的管理,也方便了客户对合同执行具体情况有更加直观的了解和监督
3.3数据库设计
3.3.1 E-R图
3.3.2数据库表设计
表3-1登陆表:保存登陆信息
字段名 | 数据类型 | 说明 |
name | varchar | 登陆者的登陆名 |
zhenname | varchar | 登陆者的真实名字 |
psw | varchar | 登陆密码 |
id | long | 合同号 |
lianxi | varchar | 登陆者的联系方式 |
shenfen | BYTE | 登陆者的身份 |
表3-2线路表:保存线路信息
字段名 | 数据类型 | 说明 |
id | long | 运输号 |
start | varchar | 起点站 |
[next] | varchar | 下一站 |
stop | varchar | 终点站 |
nexttime | datetime | 出发时间 |
ztime | datetime | 预计到站时间 |
fangshi | int | 运输方式 |
cheid | long | 运输编号 |
qingkuang | BYTE | 运输情况 |
zhuangtai | varchar | 道路状态 |
dtime | datetime | 时间 |
chekuang | varchar | 车况 |
hwzhuangkuang | varchar | 货物状态 |
renyuan | varchar | 人员情况 |
hetongid | varchar | 合同号 |
表3-3运输状态表:保存运输状态信息
字段名 | 数据类型 | 说明 |
hetongid | varchar | 合同号 |
startzhan | varchar | 起点站 |
stopzhan | varchar | 终点站 |
jinshouren | varchar | 经手人 |
time | datetime | 时间 |
表3-4意见表:保存意见反馈的信息
字段名 | 数据类型 | 说明 |
name | varchar | 意见发表人的名字 |
zhuti | varchar | 意见主题 |
neirong | varchar | 意见内容 |
[time] | datetime | 发表时间 |
3.4技术方案分析
系统采用ASP+MS SQL2000,B/S模式开发。ASP即Active Server Page的缩写。它是一种包含了使用VB Script或Jscript脚本程序代码的网页。当浏览器浏览ASP网页时,Web服务器就会根据请求生成相应的HTML代码然后再返回给浏览器,这样浏览器端看到的就是动态生成的网页。ASP是微软公司开发的代替CGI脚本程序的一种应用,它可以与数据库和其它程序进行交互。是一种简单、方便的编程工具。ASP们最主要的工作就是为客户提供软件,数据储存甚至是数据传输的服务。客户通常使用网络浏览器从互联网上或通过私人网络来获取服务。这意味着客户不需要自己来维护或升级他们的软硬件和网络设备。脚本是在服务器端运行的,所以Web服务器完成所有处理后,将标准的HTML页面送往浏览器。这意味着,ASP只能在可以支持的服务器上运行。让脚本驻留在服务器端的另外一个益处是:用户不可能看到原始脚本程序的代码,用户看到的,仅仅是最终产生的HTML内容。 任何开发工具皆可发展ASP,开发工具简洁多样,适合各种浏览器语言相容性高 。ASP与所有的ActiveX Script语言都相容,除了可结合HTML,VBScript、Java Script、Active X服务器组件来设计外,并可经由plug-In(外挂组件模组)的方式,使用其他厂商(Third Party)所提供的语言。 ASP程序并不会轻易地被看见进而被盗用。易于操控数据库。ASP可以轻易地通过ODBC(Open Database Connectivity)驱动程序连接各种不同的数据库ASP具备有面向对象(Object-Oriented)功能,学习容易,ASP提供了五种方便能力强大的内建对象:Request、Response、Sever、Application以及Session,同时,若使用ASP内建的"Application"对象或"Session"对象所撰写出来的ASP程序可以在多个网页之间暂时保存必要的信息。隐密安全性高。
由于本系统涉及到许多数据的处理,这就需要有一个强大的后台数据库管理系统支持。目前主要的数据库有:Access、FoxPro、Excel、Sybase、Oracle、Informix、SQL Server等,其中网络型的SQL Server、Oracle产品安全性远远高于桌面型的Access、FoxPro等数据库。 本系统采用的是微软公司的SQL Server 2000。SQL Server与Windows 2000 Server服务器紧密集成,而Windows 2000 Server服务器具有很好的安全性,能够排除所有未经授权的非法用户的访问,确保了SQL Server 2000服务器的安全性,符合系统对安全性的要求;用户可以使用Web浏览器查询存储在SQL Server 2000数据库中的数据,符合系统远程访问数据库的要求。容量庞大,每个数据库中可创建多达20万个数据表,数据表中的记录的行数只受服务器硬盘空间的限制。ASP与Windows 2000 Server/Advanced Server的完美组合,为中小型乃至企业级的web商业模型提供了一个更为稳定,高效,安全的运行环境。
系统选择选择B/S结构,B/S(Browser/Server)结构即浏览器和服务器结构。它是随着Internet技术的兴起,对C/S结构的一种变化或者改进的结构。在这种结构下,用户工作界面是通过WWW浏览器来实现,极少部分事务逻辑在前端(Browser)实现,但是主要事务逻辑在服务器端(Server)实现,形成所谓三层(3-tier)结构。这样就大大简化了客户端电脑载荷,无需安装特定客户端,减轻了系统维护与升级的成本和工作量,降低了用户的总体成本(TCO)。采用该结构软件的优势在于架构管理软件更是方便、快捷、高效:(1)无须开发客户端软件,维护和升级方便;(2)可跨平台操作,任何一台机器只要装有WWW浏览器软件,均可作为客户机来访问系统;(3)具有良好的开放性和可扩充性;(4)可采用防火墙技术来保证系统的安全性,有效地适应了当前用户对管理信息系统的新需求。因此该结构在管理信息系统开发领域中获得飞速发展,成为应用软件研制中一种流行的体系结构。
页面模块化,很多页面共用的部分集成为一个模块,无须重新编写重复代码,提高了开发效率。用户或者管理员出现错误操作或者非法操作时或予以屏蔽并给出错误提示,方便修正,保证系统正常运行。
4系统详细设计与实现
4.1系统界面设计
本系统主界面如图4-1所示:
4.2数据库连接
set con=server.createobject("adodb.connection")
con.open "dsn=chen;uid=sa;pwd=sa"
系统通过以上代码验证登陆信息,通过set con=server.createobject("adodb.connection")
con.open "dsn=chen;uid=sa;pwd=sa"完成与数据库的连接,再根据根据不同验证结果进入相应页面。
4.3管理员模块功能
其中管理员进入的页面,如图4-2所示:
验证管理员的代码:
else
rs="select * from denglu where name='"&username&"'and pwd='"&pwd&"'and shenfen='"&shenfen&"'"
set s=con.execute(rs)
if s.eof then
response.write" 对不起! 你没有管理员权限"
else
session("name")=request("name")
response.Redirect"guanli.htm"
end if
4.3.1用户资料管理
用户资料管理页面如图4-3所示:
管理员有对客户资料进行填加和删除的权限,
<%if session("name")=empty then
response.Redirect("zcee.htm")
end if
%>
先进行权限判断,检查管理员的的信息是否继承。如果name为空的话就没有权限进行管理员的操作。
set con=server.createobject("adodb.connection")
con.open "dsn=chen;uid=sa;pwd=sa"
s="select * from denglu where shenfen='用户'"
set rs=con.execute(s)
if rs.eof then
response.Write"还没有用户信息"
else
然后进行数据库连接,从表“denglu”在查询用户信息,如果指针指向表尾,则显示"还没有用户信息"。
4.3.2站点信息管理
站点信息管理如图4-4所示:
站点信息管理主要是输入起点和终点还有合同号进行查询本合同执行的具体情况,如经过的站点等。进入查询页面后如图4-5所示:
<%
sstart=request("start")
sstop=request("stop")
id=request("id")
session("sstart")=request("start")
session("sstop")=request("stop")
session("nid")=request("id")
%>
<%set con=server.createobject("adodb.connection")
con.open "dsn=chen;uid=sa;pwd=sa"
set rs=server.createobject("adodb.recordset")
rs.open"select * from xianlu where start='"&sstart&"'and stop='"&sstop&"'and hetongid='"&id&"'",con
if sstart=""or sstop=""or id="" then
response.Write"资料不完整"
elseif rs.eof then
response.Write"你输入的资料不存在"
else
set r=server.createobject("adodb.recordset")
r.open"select count(next) as sum from xianlu where start='"&sstart&"'and stop='"&sstop&"'and hetongid='"&id&"'",con
%>
<p>这次定单合同总共经过 <%=r("sum")%> 站点统计</p>
<p><a href="zhandianguanli3.asp">查看站点</a></p>
<% r.close
set r=nothing
con.close
set con=nothing
end if
%>
在执行这个页面的代码中有一个求和函数<%=r("sum")%>,其具体的执行代码为:
set r=server.createobject("adodb.recordset")
r.open"select count(next) as sum from xianlu where start='"&sstart&"'and stop='"&sstop&"'and hetongid='"&id&"'",con
把每个“下一站”做一个和运算就可以得到一个除了出发站点在外的,该合同在执行过程中所经过的站点数,在点击查看站点后还可以查询到具体经过的每个站点的名字。
4.3.3意见反馈信息管理
意见反馈信息界面,如图4-6所示:
<%if session("name")=empty then
response.Redirect("zcee.htm")
end if
%>
<%set con=server.createobject("adodb.connection")
con.open "dsn=chen;uid=sa;pwd=sa"
set rs=server.createobject("adodb.recordset")
rs.open"select * from yijian ORDER BY time desc ",con,3
rs.pagesize=5
a=cint(request.querystring("a"))
if a=0 then
a=1
else
rs.absolutepage=a
end if
%>
<td><div align="right"><a href="yijianguanli.asp? a=1 ">第一页</a> </div></div>
<div align="right">
</td>
<%If a> 1 Then %>
<a href="yijianguanli.asp?a=<%=a-1%> ">上一页</a>
<% end if%>
<%If (a <rs.PageCount )Then %>
<a href="yijianguanli.asp?a=<%=a+1%> ">下一页</a>
</div>
<%End If %>
<body background="29.gif">
</div>
</div>
<p align="center"><em></em> </p>
<div align="center">
<table width="50%" height="50%" border="1">
<!--DWLayoutTable-->
<tr>
<td >意见发布人</td>
<td >主题</td>
<td >内容</td>
<td >发布时间</td>
<td >操作</td>
</tr>
<% For a =1 To rs.Pagesize %>
<tr>
<td ><%=rs("name")%> </td>
<td ><%=rs("zhuti")%> </td>
<td ><%=rs("neirong")%> </td>
<td ><%=rs("time")%> </td>
<td ><a href="deleteyianjian.asp?neirong=<%=rs("neirong")%>">删除</a></td>
</tr>
<%rs.MoveNext
If rs.EOF Then Exit For
Next
rs.close
set rs=nothing
con.close
set con=nothing
%>
以上为管理员对意见反馈管理的代码,开始还是通过继承管理员的名字来验证管理员的身份是否正确,然后连接数据库,在yijian表中按时间的降序对客户端产生的意见显示出来,然后对意见进行分页显示。
未完待续。。。