ASP+ACCESS基于WEB车辆管理系统

3.1 系统需求分析

该过程是个不断认识不断细化的过程。这里所要完成的工作是深入描述软件的功能和性能,确定软件的设计限制和软件同其他系统元素的接口细节,从而奠定软件的开发基础。

  1. 性能需求:该系统中,管理员模块只有管理人员才能对其进行操作,一般的登陆用户无权操作,系统管理人员要进行身分验证才能进入界面操作。登陆驾驶员也要进行身份验证方可进行操作操作。
  2. 功能需求:我们设计的系统要完成的功能模块如下:

一: 车辆管理(车辆维修管理,车辆报废管理等)

二: 车辆管理(车辆建立,车辆查询,车辆删除,车辆变更查询等.)

三: 车辆运营管理(车辆运营表,车辆运营查询,清空车辆运营表)

四:驾驶员管理(驾驶员管理,驾驶员查询等)

五:耗材管理(对于油,车的耗材类管理)

六:计划管理(训练,保养,维修等预定的计划)

七:系统维护(系统备份,系统还原,系统检查)

  1. 环境需求:客户端应有IE或其它浏览器,服务器端应有Windows2000,WindowsNT,或Windows98 ,服务器软件应有pws或IIS,硬件要求386以上的计算机。
  2. 界面需求:本软件是面向大众,界面友好,操作简单灵活,根据界面上的提示便可完成一系列动作。

3.3 系统结构

该系统的整个结构图如下所示:

各功能模块是相互独立的,一个模块的内部与另一个模块的内部是不相关的,每个模块留出一个接口供其他模块调用。或者使用POST方式进行表单提交,用?后面带函数和参数的方式,进行模块与模块间的信息传递。有部分模块是通用的,比如连接数据库模块,它需要经常用到,所以独立出来是最好的选择。

4.1 登陆模块

本模块所要实现在功能是重要的,对于用户来说,登陆前后的区别在于:登陆之前不是本的成员,无权操作,无权浏览;之后有权查询也有权操作。

用户提交信息用HTML表单完成,需文件Index.asp。系统自动登陆用ASP操作数据库完成,需要连接文件User_Login.asp。

用户在Index.asp文件中输入个人信息,提交到user_login.asp文件。并由这个ASP文件进行数据库动作,根据不同的动作结果,系统将作出不同的信息反馈给用户。

这是登陆处理模块的中心,user_login.asp文件很简单:直接调用其中的登陆函数action进行动作,结构如图所示。

登陆程序被调用后,先检查该用户是否已经登陆过,按是否登陆进行分枝选择:对已经是登陆的用户显示相应信息,或将新用户加入的数据库中,即为该用户登陆。

判断条件是通过action函数实现的,该函数利用提取的表单字段值对数据库进行查询。如果查询到结果。则表明该用户经在数据库中,即该用户是登陆了。如果记录集为空则表明该用户是非法登陆。

编辑修改管理员是通过user_login.asp来实现的,这个方法是模块的中心,也比较复杂,其结构如图所示。

车辆查询登记:

代码分析:

<%

If request("action") = "save" Then

Call save()

ElseIf request("action") = "edit" Then

Call edit()

ElseIf request("action") = "del" Then

Call del()

ElseIf request("action") = "outlist" Then

Call outlist()

ElseIf request("action") = "saveoutlist" Then

Call saveoutlist()

Else

Call list()

End If

End Sub

Sub list()%>

<script language="javascript">

function browse(id){location.href='<%=filename%>?action=edit&mode=browse&id='+id;}

function del(id){if(confirm("删除车辆信息,将会删除与其相关的所有信息\n确实要删除吗?")){location.href='<%=filename%>?action=del&id='+id;}}

function edit(id){location.href='<%=filename%>?action=edit&mode=update&id='+id;}

</script>

<%

sql="select * from [车辆基本特征] where Id >0"

If Request("zd")<>"" then

sql = sql & " and " & Request("zd") & " = '" & Request("keyword") & "'"

End if

If Request("order") = "" Then

sql = sql & " order by id desc"

Else

If split(Request("order"),"|")(1) = "1" Then

sql = sql & " order by "&split(Request("order"),"|")(0)&" asc"

Else

sql = sql & " order by "&split(Request("order"),"|")(0)&" desc"

End If

End If

'================================

'新建一个类

'================================

Set jumbotpage=new ShowMorePage

jumbotpage.getconn=conn

jumbotpage.getsql = sql

jumbotpage.pagesize=pagesize

set rs=jumbotpage.getrs()

%>

<table width=100% cellspacing="1" cellpadding="5" align=center class="bg_tablemain">

<tr>

<td><%jumbotpage.showpage()%></td>

</tr>

</table>

<table width=100% cellspacing="1" cellpadding="5" align=center class="bg_tablemain">

<tr class="bg_tabletop" align=center>

<td width=* align="center"><b><%Call OrderBy("车号","车号")%></b></td>

<td width=* align="center"><b><%Call OrderBy("厂牌型号","厂牌型号")%></b></td>

<td width=* align="center"><b><%Call OrderBy("车辆类型","车辆类型")%></b></td>

<td width=* align="center"><b><%Call OrderBy("车辆颜色","车辆颜色")%></b></td>

<td width=* align="center"><b><%Call OrderBy("所属单位","所属单位")%></b></td>

<td width=* align="center"><b>操作</b></td>

</tr>

<%

If rs.recordcount > 0 Then

for i=1 to jumbotpage.GetCurPageNum '当前页的记录数目

%>

<tr class="bg_tablebody" align=center>

<td><a href=Menu_Vehicle_Circumstance_Introduction.asp?action=edit&mode=browse&id=<%=rs("Id")%>><% =rs("车号")%></a></td>

<td><% =rs("厂牌型号")%></td>

<td><% =rs("车辆类型")%></td>

<td align="center"><% =rs("车辆颜色")%></td>

<td><% =rs("所属单位")%></td>

<!--#include file="Inc/Menu_Operate.asp"-->

</tr>

<%

rs.movenext

Next

End If

%>

</table>

<table width=100% cellspacing="1" cellpadding="5" align=center class="bg_tablemain">

<tr>

<td><%jumbotpage.showpage()%></td>

</tr>

</table>

<form action="<%=filename%>?action=list" method=get name="thisform" onSubmit="return Validator.Validate(this,2)">

<table width=100% cellspacing="1" cellpadding="5" align=center class="bg_tablemain" id='searchpage'>

<tr class="bg_tabletop" align=center>

<td colspan="2"><b>查询记录</b></td>

</tr>

<tr class="bg_tablebody">

<td width="150" align=right>字段:<select size="1" name="zd">

<option value="" selected>==全部==</option>

<option value="车号" <%If Request("zd") = "车号" Then%>selected<%End If%>>车号</option>

<option value="车辆类型" <%If Request("zd") = "车辆类型" Then%>selected<%End If%>>车辆类型</option>

<option value="所属单位" <%If Request("zd") = "所属单位" Then%>selected<%End If%>>所属单位</option>

</select></td>

<td>= <input type=text name="keyword" size=25 value='<% =Request("keyword")%>'></td>

</tr>

</table>

<table width=100% cellspacing="1" cellpadding="5" align=center class="bg_tablemain">

<tr class="bg_tablebottom">

<td align=center><input title='搜索' type="image" src="Images/btn/Search1.gif" class='picbutton'></td>

</tr>

</table>

</form>

<%End Sub%>

<%

Sub del()

Set rs = conn.execute("select * from [车辆基本特征] where id=" & Request("id"))

ch = rs("车号")

Set rs = Nothing

'conn.execute("delete from [技术检查状态记录] where [车号]='" & ch & "'")

'conn.execute("delete from [车辆保险] where [车号]='" & ch & "'")

'conn.execute("delete from [事故记录] where [车号]='" & ch & "'")

'conn.execute("delete from [车辆变更登记] where [车号]='" & ch & "'")

'conn.execute("delete from [油料登记] where [车号]='" & ch & "'")

'conn.execute("delete from [车辆保险] where [车号]='" & ch & "'")

'conn.execute("delete from [派车登记] where [车号]='" & ch & "'")

'conn.execute("delete from [车辆使用成本] where [车号]='" & ch & "'")

'conn.execute("delete from [车辆使用杂费] where [车号]='" & ch & "'")

'conn.execute("delete from [车辆年审情况] where [车号]='" & ch & "'")

conn.execute("delete from [车辆基本特征] where id=" & Request("id"))

Response.write "<script>history.go(-1);</script>"

End Sub

%>

<%Sub edit()

Dim readonly,mode,id

mode=Request("mode")

id=Request("id")

Set rs = server.CreateObject ("Adodb.recordset")

sql="select * from [车辆基本特征]"

If mode="update" Then

sql = sql & " where id=" & id

readonly=""

ElseIf mode="insert" Then

readonly=""

Else

sql = sql & " where id=" & id

readonly="readonly"

End If

rs.open sql,conn,3,3

%>

<form action='<%=filename%>?action=save&mode=<%=mode%>&id=<%=id%>' method=post name='thisform' onSubmit='return Validator.Validate(this,2)'>

<div id='printpage'>

<table width='100%' cellspacing='1' cellpadding='5' align=center class='bg_tablemain'>

<tr class="bg_tablebody">

<td width="19%" align=right>车号:</td>

<td width="31%"><input type=text name=ch size=12 value="<%=FormatValue1(mode,rs("车号"))%>" <%=readonly%> dataType="CarNumber" msg="车号不正确"> <%If mode <>"browse" Then%><font color="#FF0000">*</font>(格式:军A-00000)<%End If%></td>

<td width="19%" align=right>编配日期:</td>

<td width="31%"><input type=text name="bprq" size=12 value="<%=FormatValue1(mode,rs("编配日期"))%>" <%=readonly%> dataType="Date" msg="日期格式为"<%=Date()%>"">

<%If mode<>"browse" Then%>

<input type="button" onClick="SelectDate('bprq')" value="选择">

<input type="button" onClick="CancelDate('bprq')" value="取消">

<%End If%>

</td>

</tr>

<tr class="bg_tablebody">

<td align=right>厂牌型号:</td>

<td><div style="position:absolute;width:0px;height:0px;overflow:visible;">

<div style="position:absolute;top:21px;left:0px;visibility:hidden;text-align:left;overflow:visible;" id=cpxhdiv>

<iframe marginWidth=0 marginHeight=0 src="Select_Option.asp?tablename=车辆基本特征&itemname=厂牌型号&idname=cpxh" frameBorder=0 width=180 scrolling=yes height=60></iframe>

</div>

</div>

<div style="visibility:visible;"><input name="cpxh" type="text" id="cpxh" value="<%=FormatValue1(mode,rs("厂牌型号"))%>" size=25 <%=readonly%> onClick="ShowOrHidden('cpxhdiv')"></div>

</td>

<td align=right>车辆类型:</td>

<td><div style="position:absolute;width:0px;height:0px;overflow:visible;">

<div style="position:absolute;top:21px;left:0px;visibility:hidden;text-align:left;overflow:visible;" id=cllxdiv>

<iframe marginWidth=0 marginHeight=0 src="Select_Option.asp?tablename=车辆基本特征&itemname=车辆类型&idname=cllx" frameBorder=0 width=120 scrolling=yes height=60></iframe>

</div>

</div>

<div style="visibility:visible;"><input name="cllx" type="text" id="cllx" value="<%=FormatValue1(mode,rs("车辆类型"))%>" size=12 <%=readonly%> onClick="ShowOrHidden('cllxdiv')"></div>

</td>

</tr>

<tr class="bg_tablebody">

<td align=right>总金额:</td>

<td><input type=text name=zje size=10 value="<%=FormatValue1(mode,rs("总金额"))%>" <%=readonly%>>

(万元)</td>

<td align=right>车架号:</td>

<td><input type=text name=cjh size=25 value="<%=FormatValue1(mode,rs("车架号"))%>" <%=readonly%>></td>

</tr>

<tr class="bg_tablebody">

<td align=right>发动机号:</td>

<td><input type=text name=fdjh size=25 value="<%=FormatValue1(mode,rs("发动机号"))%>" <%=readonly%>></td>

<td align=right>总质量:</td>

<td><input type=text name=zzl size=8 value="<%=FormatValue1(mode,rs("总质量"))%>" <%=readonly%>>

(吨)</td>

</tr>

<tr class="bg_tablebody">

<td align=right>核定载质量:</td>

<td><input type=text name=hdzzl size=6 value="<%=FormatValue1(mode,rs("核定吨位"))%>" <%=readonly%>>

(吨)</td>

<td align=right>核定座位:</td>

<td><input type=text name=hdzw size=6 value="<%=FormatValue1(mode,rs("核定座位"))%>" <%=readonly%>>

(人)</td>

</tr>

<tr class="bg_tablebody">

<td align=right>车辆颜色:</td>

<td colspan="3"><div style="position:absolute;width:0px;height:0px;overflow:visible;">

<div style="position:absolute;top:21px;left:0px;visibility:hidden;text-align:left;overflow:visible;" id=csysdiv>

<iframe marginWidth=0 marginHeight=0 src="Select_Option.asp?tablename=车辆基本特征&itemname=车辆颜色&idname=csys" frameBorder=0 width=60 scrolling=yes height=60></iframe>

</div>

</div>

<div style="visibility:visible;"><input name="csys" type="text" id="csys" value="<%=FormatValue1(mode,rs("车辆颜色"))%>" size=8 <%=readonly%> onClick="ShowOrHidden('csysdiv')"></div>

</td>

</tr>

<tr class="bg_tablebody">

<td align=right>所属单位:</td>

<td colspan="3"><div style="position:absolute;width:0px;height:0px;overflow:visible;">

<div style="position:absolute;top:21px;left:0px;visibility:hidden;text-align:left;overflow:visible;" id=ssdwdiv>

<iframe marginWidth=0 marginHeight=0 src="Select_Option.asp?tablename=车辆基本特征&itemname=所属单位&idname=ssdw" frameBorder=0 width=100 scrolling=yes height=60></iframe>

</div>

</div>

<div style="visibility:visible;"><input name="ssdw" type="text" id="ssdw" value="<%=FormatValue1(mode,rs("所属单位"))%>" size=12 <%=readonly%> onClick="ShowOrHidden('ssdwdiv')"> <%If mode <>"browse" Then%><font color="#FF0000">*</font>(如:业务科...)<%End If%></div>

</td>

</tr>

<tr class="bg_tablebody">

<td align=right>备注:</td>

<td colspan="3"><input type=text name=bz size=40 value="<%=FormatValue1(mode,rs("备注"))%>" <%=readonly%>></td>

</tr>

<%If mode <>"insert" Then%>

<tr class="bg_tablebody">

<td align=right>车辆照片:</td>

<td colspan=5><%If mode<>"insert" Then%><img id='crzp' src="<%=rs("车辆照片")%>" border="1" width="320" height="240"><%Else%><img src="picture/blank.gif" border="1" width="300" height="180"><%End If%></td>

</tr>

<%End If%>

<%If mode="update" Then%>

<tr class="bg_tablebody" id=adv1 style="display:">

<td align=right>车辆照片:</td>

<td colspan=5><iframe marginWidth=0 marginHeight=0 src="Pic_upload.asp?path1=Vehicle&path2=crzp&fileid=<%=rs("id")%>" frameBorder=0 width=400 scrolling=no height=20></iframe></td>

</tr>

<%End If%>

</table>

</div>

<table width=100% cellspacing="1" cellpadding="5" align=center class="bg_tablemain">

<tr class="bg_tablebottom">

<td align=center><!--#include file="Inc/Btn_Bttm.asp"-->

&nbsp;&nbsp;

<%If mode="update" Then%>

<input id=advcheck name="showit" type=checkbox value=1 οnclick=showpic() checked>

<span id=advance1>相关图片上传</span>

<%End If%>

3.车辆统计查询:

代码分析:

<%

dim total(100,2)

Set rs = server.CreateObject ("Adodb.recordset")

sql="select [所属单位] from [车辆基本特征] group by [所属单位]"

rs.open sql,conn,3,3

j = 0

hj = 0

If rs.eof Then

Response.write "单位无车辆"

Else

do while not rs.eof

j = j + 1

sybm = rs("所属单位")

total(j,2) = sybm

number = 0

sql ="select * from [车辆基本特征] where [所属单位]='"&sybm&"'"

Set rss = server.CreateObject ("Adodb.recordset")

rss.open sql,conn,3,3

If not rss.eof Then

number = rss.recordcount

End If

total(j,1)=number

hj = hj + number

Rs.movenext

Loop

CountMy = hj

total_no=j

all_width = total_no * 100 + 30

total_width = total_no * 100

Call table1(total,20,34,all_width,300,total_width)

Set rs = nothing

Set rs = server.CreateObject ("Adodb.recordset")

sql="select [车辆类型],count(车辆类型) from [车辆基本特征] group by [车辆类型]"

rs.open sql,conn,3,3

str = ""

n = 0

do while not rs.eof

If n > 0 Then str = str & ","

str = str & rs(0) & ":" & rs(1) & "辆"

n = n + 1

Rs.movenext

Loop

Set rs = nothing

相关推荐
小白小白从不日白26 分钟前
react 高阶组件
前端·javascript·react.js
Mingyueyixi1 小时前
Flutter Spacer引发的The ParentDataWidget Expanded(flex: 1) 惨案
前端·flutter
Rverdoser2 小时前
unocss 一直热更新打印[vite] hot updated: /__uno.css
前端·css
Bang邦2 小时前
使用nvm管理Node.js多版本
前端·node.js·node多版本管理
podoor2 小时前
wordpress不同网站 调用同一数据表
前端·wordpress
LJ小番茄2 小时前
Vue 常见的几种通信方式(总结)
前端·javascript·vue.js·html
黑狼传说3 小时前
前端项目优化:极致最优 vs 相对最优 —— 深入探索与实践
前端·性能优化
장숙혜3 小时前
前端-CDN的理解及CDN一些使用平台
前端
FakeOccupational4 小时前
nodejs 007:错误npm error Error: EPERM: operation not permitted, symlink
前端·npm·node.js
奶糖 肥晨4 小时前
react是什么?
前端·react.js·前端框架