asp毕业设计——基于asp+sqlserver的客户关系管理系统设计与实现(毕业论文+程序源码)——客户关系管理系统

基于asp+sqlserver的客户关系管理系统设计与实现(毕业论文+程序源码)

大家好,今天给大家介绍基于asp+sqlserver的客户关系管理系统设计与实现,文章末尾附有本毕业设计的论文和源码下载地址哦。需要下载开题报告PPT模板及论文答辩PPT模板等的小伙伴,可以进入我的博客主页查看左侧最下面栏目中的自助下载方法哦

文章目录:

1、项目简介

  1. 新一代一ERP产品正在向客户端和供应端延伸,客户端的延伸是客户关系管理,而供应端的延伸则是跨企业供应链的同步管理。对于每个企业来说客户管理的完善程度将直接影响企业的经济效益。

2、资源详情

项目难度:中等难度
适用场景:相关题目的毕业设计
配套论文字数:10971个字36页
包含内容:整套源码+完整毕业论文


3、关键词:

客户关系管理系统、库存管理、报表管理

4、毕设简介

提示:以下为毕业论文的简略介绍,项目源码及完整毕业论文下载地址见文末。

系统分析
1.1 需求分析
通过调查研究,要求系统满足有以下功能;
 由于操作人员的计算机知识普遍较差,要求有良好的人机界面。
 方便的数据选择查询,支持模糊查询功能。
 管理客户的详细信息:包括客户的基本信息、联系人信息、和客户签写的合同信息。
 记录产品出库、入库的详细信息。
 为更多的了解客户的需求,设计了服务模块,用以记录客户的反馈信息,并对反馈信息进行管理。
 和客户联系人之间通过邮件(e-mail)进行联系,对联系人邮件地址进行管理。
 提供信息数据导出Excel报表的功能,提供报表的打印功能。
 对用户信息进行管理,并为用户设置管理权限。
 数据计算自动完成,尽量减少人工干预。
 修改当前管理员密码的功能。
 系统退出。

1.2 可行性分析
 经济性
通过计算机网络对客户信息进行管理,使企业对自身拥有的客户有了一个更为深该的了解。不仅能全面的统计客户的购买数量,及时的了解客户的动态信息,还可以根据计算机记录的数据信息,不断的调整企业的生产发展动向。
 技术性
系统中设置了email管理模块,此模块大大的方便了企业和客户联系人之间的沟通。设置导入Excel功能、Web打印功能,方便用户报表打印。。

2 总体设计
2.1 项目规划
客户关系管理系统是一个典型的数据库开发应用程序,由客户管理模块、库存管理模块、服务管理模块、报表管理模块、email管理模块、用户管理模块组成,规划系统功能模块如下:
 客户管理模块
该模块主要功能是对客户信息、客户联系人信息、合同信息进行添加、删除、查询等操作。
 库存管理模块
该模块的主要功能是管理入库、出库信息、产品信息进行管理,其中包括对库存信息、产品信息进行添加、删除、查询等操作。
 服务管理模块
该模块主要功能是对客户反馈信息进行添加、删除、查询等操作。
 报表管理模块
该模块主要通过查询条件,对各种信息进行查询,并将得到的结果导出Excul表、进行打印报表等操作(其中信息包括:客户信息、联系人信息、反馈客户信息、库存信息)。
 email管理模块
该模块主要管理客户联系人email地址信息,对企业客户之间的email文件进行管理,向客户发送邮件。
 用户管理
该模块主要管理用户信息的添加、删除等操作,并设置用户的使用权限。

2.2 系统功能结构图
在这里插入图片描述

图1 数据表树型结构图

3 系统设计
3.1 设计目标
本系统是针对中小型企业通过网络实现对客户的管理而设计的,主要实现如下目标:
 对客户信息(客户基本信息、联系人信息、合同信息)进行全面管理。
 及时查看库存信息,并通过网站对入库、出库信息进行管理。
 强大的客户信息、联系人信息报表导出、打印功能
 及时了解客户的反馈信息,并对其进行管理。
 实现各种信息的选择查询、模糊查询功能等。
 实现了和客户通过网络在线沟通的功能,并对客户联系人的email地址进行管理。
 管理员可以添加操作员信息、设置操作员的权限。
 对用户输入的数据,系统进行严格的数据检验,尽可能排除人为的错误。
 要求系统的数据保密性强,通过为每个用户设置使用权限来实现。
 系统运行稳定、安全可靠。
 键盘操作,快速响应。

3.2 开发及运行环境
硬件平台:
 CPU:P41。8GHz;
 内存:256MB以上。
软件平台:
 操作系统:Windows
 数据库:SQL Server ;
 浏览器:IE
 Web服务器:IIS
 分辨率:最佳效果1024*768。

3.3 数据库设计
本系统数据库采用SQLServer数据库,系统数据库名称为db_System。数据库db_ System中包含8张表。关于数据库中的数据表请参见附录B。

4 客户管理模块设计
客户管理模块的主要功能是对客户信息进行管理,主要包括客户信息管理、联系人信息管理和合同信息管理3个部分。
4.1 客户信息管理设计
客户信息管理设计主要包括对客户信息进行显示/查询、添加、修改和删除4个部分的功能。用户可以通过功能导航进入客户信息管理页面,页面设计效果如图3所示。
在这里插入图片描述

图3 客户信息管理页面的设计效果
在客户信息管理页面中,用户可以在查询区域输入查询条件,并选择查询方式,查找相关的客户信息;也可以单击客户信息,在展示区会显示此客户的详细信息,也可对客户信息进行修改;在选中每条信息前面的复选框,单击【删除】按钮,选中的客户信息将被删除。

1.客户信息显示/查询
用户可以在客户信息管理页面中的查询部分,输入一定的查询条件进行客户信息的查询。
当用户在查询部分输入条件后,并单击【查询】按钮,用户添加的查询条件将被提交给本页,本页将根据用户提交的表单信息对数据库进行检索,并将结果集通过操作区输出到浏览器中。
客户信息查询页面涉及的HTML表单元素如表1所示。
表1 客户信息查询页面涉及的HTML表单元素
在这里插入图片描述

在表单提交之后,在本页将数据进行处理。程序代码如下:

<%
if request("post")<>"" then
	if request("tiao")="模糊查询" then ‘条件输入为模糊查询时获得相应的记录集
		set rs=server.CreateObject("adodb.recordset")
		sql="select * from tb_Client where "&request("sel")&" like '%"&request("search")&"%' order by id desc"
		rs.open sql,conn,1,1
	else                              ‘条件输入为精确查询时获得相应的记录集
		set rs=server.CreateObject("adodb.recordset")
		sql="select * from tb_Client where "&request("sel")&"='"&request("search")&"' order by id desc"
		rs.open sql,conn,1,1
	end if
else                   ‘默认状态下获得相应的记录集
	set rs=server.CreateObject("adodb.recordset")
	sql="select * from tb_Client order by id desc"
	rs.open sql,conn,1,1
end if
'实现分页
if not rs.eof then
	tol=rs.recordcount             '总记录数
	rs.pagesize=15                   '获取每页显示的记录数
	maxpage=rs.pagecount             
	requestpage=clng(request("p"))  '获取当前页
	if requestpage="" or requestpage=0 then '当接收页码的值为空或者0时使其等于1
		requestpage=1
	end if
	if requestpage>maxpage then '在接收页码的值大于最大页码时,使其等于最大页码
		requestpage=maxpage
	end if
	if requestpage<>1 then  '向上或向下移动相应的记录
		rs.move (requestpage-1)*rs.pagesize
	end if
	for i=1 to rs.pagesize and not rs.eof  '利用循环输出数据
	if i mod 2=1 then
		bg="#FFFFFF"
	else
		bg="#efefef"
	end if
%>
          <tr align="center" bgcolor=<%=bg%> style="cursor: hand" onClick="window.parent.frames('bo').window.location = 'KeHu_ed.asp?id=<%=rs("id")%>'"onMouseOver="HLItem(this)" onMouseOut="Re(this)">
            <td height="22"><%=rs("ClientName")%></td>
            <td><%=rs("ClientCountry")%></td>
            <td><%=rs("ClientCity")%></td>
            <td><%=rs("ClientTel")%></td>
            <td><%=rs("ClientEmail")%></td>
          </tr>
<%
	rs.movenext
	if rs.eof then exit for      ’ 如果记录集为空那么跳出循环
	next
else
response.Write("没有客户信息,请<a href='KeHu_add.asp' target='bo'>添加</a>")
end if%>

当鼠标在某条记录上悬停时,其记录所在行的背景颜色会发生改变,此功能用到的js代码如下:

<script language="javascript">
function HLItem(obj)//鼠标经过
{
	obj.oldClassName=obj.className;
	obj.className="List";
}
function Re(obj)//鼠标移开
{
 obj.className=obj.oldClassName
}
</script>

其调用的代码如下:

<tr align="center" bgcolor=<%=bg%> style="cursor:hand" onClick="window.parent.frames('bo').window.location = 'KeHu_ed.asp?id=<%=rs("id")%>'" onMouseOver="HLItem(this)" onMouseOut="Re(this)">

客户信息显示/查询页面的运行结果如图4所示:
在这里插入图片描述

图4 客户信息查询页面的运行结果
2.客户信息添加
客户信息添加的主要功能是用于用户添加客户信息。在查询页面中单击【添加】按钮,在展示区中会显示添加页面,其设计效果如图5所示。
在这里插入图片描述

如图5 客户信息添加页面设计效果
当单击添加页面中的【添加】按钮时,调用js编写的自定义函数(checks()),通过函数验证填写的数据是否正确,该函数的代码如下:

<script language="javascript">
function checks()
{
 if(form1.ClientName.value=="")
	{
		alert("公司名称不能为空");
		return false;
	}
	……//中间过程不详细介绍,因为实现方法类似
		 else if(form1.ClientCyc.value=="")
	{
		alert("需求周期不能为空");
		return false;
	}
}
</script>

表单提交之后,添加的数据将被提交到本页进行处理,本页数据处理的程序代码如下:

<%
if request("post")<>"" then
	set rs=server.CreateObject("adodb.recordset")
	sql="select * from tb_Client"
	rs.open sql,conn,1,3	
	rs.addnew
	rs("ClientName")=request("ClientName")      ‘添加公司名称
	rs("ClientAddress")=request("ClientAddress")   ‘公司地址
	rs("ClientTel")=request("ClientTel")          ‘公司电话
	rs("ClientFax")=request("ClientFax")          ‘公司传真
	rs("ClientNumber")=request("ClientNumber")   ‘邮政编码
	rs("ClientPage")=request("ClientPage")         ‘公司网址
	rs("ClientEmail")=request("ClientEmail")       ‘公司email
	rs("ClientCountry")=request("ClientCountry")   ‘所属国家/地区
	rs("ClientHabitude")=request("ClientHabitude")  ‘公司性质
	rs("ClientSize")=request("ClientSize")          ‘公司规模
	rs("ClientCity")=request("ClientCity")          ‘所属城市
	rs("ClientPay")=request("ClientPay")           ‘结款方式
	rs("ClientCredit")=request("ClientCredit")       ‘结款信用
	rs("ClientList")=request("ClientList")           ‘最高订单‘
	rs("ClientYear")=request("ClientYear")          ‘年度订单
	rs("ClientCyc")=request("ClientCyc")           ‘需求周期
	rs("SetTime")=now()					        ‘创建时间
	rs("EditTime")=now()                        ‘修改时间
	rs("SetName")=session("admin_name")          ‘创建人
	rs.update
	rs.close
	conn.close
	response.Write("<script language=javascript>alert('客户信息添加成功')</script>")‘弹出成功对话框
end if%>

3.客户信息修改
在显示客户详细信息页面,用户可以浏览、修改其客户的详细信息。进行客户详细信息浏览和修改的页面设计效果如图6所示:
在这里插入图片描述

图6 客户信息修改页面设计效果
在客户信息修改页面,用户可以浏览客户详细的信息,也可以修改客户的信息(当用户有修改的权限时,那么用户可以进行修改,至于用户权限的实现,将在后面的章节中进行讲解)。当用户单击【修改】按钮后,修改的数据将被提交到本页进行处理。数据处理的代码如下:

<%
 	if request("post")<>"" and (rsr("Client")="可写" or rsr("chaoji")="是") then 
	set rs=server.CreateObject("adodb.recordset")
	sql="select * from tb_Client where id="&request("id")
	rs.open sql,conn,1,3
	rs("ClientName")=request("ClientName")      ‘添加公司名称
	rs("ClientAddress")=request("ClientAddress")   ‘公司地址
	rs("ClientTel")=request("ClientTel")          ‘公司电话
	rs("ClientFax")=request("ClientFax")          ‘公司传真
	rs("ClientNumber")=request("ClientNumber")   ‘邮政编码
	rs("ClientPage")=request("ClientPage")         ‘公司网址
	rs("ClientEmail")=request("ClientEmail")       ‘公司email
	rs("ClientCountry")=request("ClientCountry")   ‘所属国家/地区
	rs("ClientHabitude")=request("ClientHabitude")  ‘公司性质
	rs("ClientSize")=request("ClientSize")          ‘公司规模
	rs("ClientCity")=request("ClientCity")          ‘所属城市
	rs("ClientPay")=request("ClientPay")           ‘结款方式
	rs("ClientCredit")=request("ClientCredit")       ‘结款信用
	rs("ClientList")=request("ClientList")           ‘最高订单‘
	rs("ClientYear")=request("ClientYear")          ‘年度订单
	rs("ClientCyc")=request("ClientCyc")           ‘需求周期
	rs("EditTime")=now()                        ‘修改时间
	rs("SetName")=session("admin_name")          ‘创建人
	rs.update
	rs.close
	response.Write("<script language=javascript>alert('客户信息修改成功')</script>")‘弹出成功对话框
end if
%>

4.客户信息删除
在客户信息管理页面,用户可以点选任意一条客户信息前面的复选框,然后单击页面下方的【删除】按钮,被选择的客户信息将被删除。
客户信息删除主要是根据传递的参数(本例中的参数为客户信息的id),将数据库中对应id的客户信息和其他和客户相关的信息全部删除,程序代码如下:

<%
call client '验证是否有删除客户信息的权限
if request("del")<>"" then
	kid=Split(Request("del"),",") ‘分解字符串成数组
	for i=0 to ubound(kid)
	sqld="delete from tb_Client where id="&clng(kid(i))'删除客户信息
	conn.execute(sqld)
	sqll="delete from tb_Linkman where LinkmanClient="&clng(kid(i))'删除客户的联系人信息
	conn.execute(sqll)
	sqlp="delete from tb_Pact where PactClient="&clng(kid(i))'删除客户的合同信息
	conn.execute(sqlp)
	sqlp="delete from tb_Feedback where FeedbackClient="&clng(kid(i))'删除客户反馈信息
	conn.execute(sqlp)
	sqlp="delete from tb_Product where ProductProvider="&clng(kid(i))'删除客户的产品信息
	conn.execute(sqlp)
	next
	if request("p")="" then                                   '返回用户操作页
		response.Redirect("KeHu_KeHu.asp")
	else
		response.Redirect("KeHu_KeHu.asp?p="&request("p"))
	end if
else
	response.Write("<script language=javascript>alert('请选择要删除的信息');location='javascript:history.go(-1)'</script>")
end if%>

4.2 联系人信息管理设计
联系人信息管理的主要功能包括显示/查询、添加、修改和删除联系人信息4个部分。用户可以通过功能导航进入联系人信息管理页面,页面设计效果如图7所示。
在这里插入图片描述

图7 联系人信息管理页面设计效果
1.联系人信息显示/查询
用户可以在联系人信息管理页面中的查询部分,输入一定的查询条件进行联系人信息的查询。

用户在查询部分输入条件后,单击【查询】按钮,用户添加的查询条件将被提交给本页,本页则将根据用户提交的表单信息对数据库进行检索,并将结果集通过操作区输出到浏览器中。
查询代码如下:

<%
if request("post")<>"" then
	if request("tiao")="模糊查询" then’ 联系人模糊查询
		set rs=server.CreateObject("adodb.recordset")
		sql="select * from tb_Linkman where "&request("sel")&" like '%"&request("search")&"%' order by id desc"
		rs.open sql,conn,1,1
	else ‘联系人精确查询
		set rs=server.CreateObject("adodb.recordset")
		sql="select * from tb_Linkman where "&request("sel")&"='"&request("search")&"' order by id desc" 
		rs.open sql,conn,1,1
	end if
else’ 默认状态下显示联系人列表
	set rs=server.CreateObject("adodb.recordset")
	sql="select * from tb_Linkman order by id desc"
	rs.open sql,conn,1,1
end if
%>

分页代码请参考4.1节中介绍的客户信息显示/查询中的相关代码。
也可在查看客户的详细信息中,单击“联系人信息”,就会产生此客户的联系人列表,传参代码如下:

<a href="KeHu_Linkman.asp?post=true&sel=LinkmanClient&search=<%=rsx("id")%>&dd=dd">联系人信息</a>

2.联系人信息添加
联系人信息添加的主要功能是添加客户的联系人信息。
在查询页面中单击【添加】按钮,在展示区中会显示添加页面。在添写表单选择所属客户时,所属客户是在数据库中直接读取出来的。其代码如下:

<% 
set rsc=server.CreateObject("adodb.recordset")
sqlc="select * from tb_Client order by id desc"
rsc.open sqlc,conn,1,1 
if not rsc.eof then
 %>
	  <select name="LinkmanClient" id="LinkmanClient">
<%
	for i=1 to rsc.recordcount and not rsc.eof
%>
        <option value="<%=rsc("id")%>"><%=rsc("ClientName")%></option>
<%
	rsc.movenext
	next%>
</select>
<%
else
	response.Write("没有客户信息,请<a href='KeHu_add.asp' target='bo'>添加</a>")
end if%>

添加联系人页面的运行结果如图8所示。
在这里插入图片描述

图8 添加联系人的页面运行结果
也可在客户的详细信息中单击【新建】按钮,在此添加用户不用选择所属客户,直接就会生成所属客户,主要是根据传递的参数(本例中的参数为客户信息的id),传参代码如下:

<a href="KeHu_Linkman_addy.asp?id=<%=rsx("id")%>"><span class="style2">新建</span></a>

其显示代码如下:

<%
set rsc=server.CreateObject("adodb.recordset")
sqlc="select * from tb_Client where id="&request("id")&" order by id desc"
rsc.open sqlc,conn,1,1 
response.Write(rsc("ClientName"))
%>

3.联系人信息修改
联系人信息修改的主要功能是用户修改联系人信息,方便用户和客户之间的联系和沟通。
在显示联系人详细信息页面,用户可以更改其联系人的信息。联系人信息修改页面运行结果如图9所示。
在这里插入图片描述

图9 联系人信息修改页面运行结果
4.联系人信息删除
联系人信息删除的主要功能是删除联系人的信息。,其程序代码如下:

<%
kid=Split(Request("del"),",") ‘分解字符串成数组
response.Write("正在删除...")
for i=0 to ubound(kid)
sqld="delete from tb_Linkman where id="&clng(kid(i)) ‘删除指定的记录
conn.execute(sqld)
next
%>

4.3 合同信息管理
合同信息管理设计主要包括显示/查询、添加、修改和删除合同信息4个部分。用户可以通过功能导航进入合同信息管理页面,页面设计效果如图10所示。
在这里插入图片描述

图10 合同信息管理页面的运行结果
1.合同信息显示/查询
用户可以在合同信息管理页面中的查询部分,输入一定的查询条件,进行合同信息的查询。
用户在查询部分输入查询条件后,单击【查询】按钮,用户所添加的查询条件将被提交给本页,本页将根据用户提交的表单信息对数据库进行检索,并将结果集通过操作区输出到浏览器中。
合同信息查询程序代码如下:

<%
if request("post")<>"" then
	if request("tiao")="模糊查询" then‘模糊查询合同信息
		set rs=server.CreateObject("adodb.recordset")
		sql="select * from tb_Pact where "&request("sel")&" like '%"&request("search")&"%' order by id desc"
		rs.open sql,conn,1,1
	else’精确查询合同信息
		set rs=server.CreateObject("adodb.recordset")
		sql="select * from tb_Pact where "&request("sel")&"='"&request("search")&"' order by id desc"
		rs.open sql,conn,1,1
	end if
else’ 默认状态下显示的合同信息
	set rs=server.CreateObject("adodb.recordset")
	sql="select * from tb_Pact order by id desc"
	rs.open sql,conn,1,1
end if
%>

合同信息显示/查询页面运行结果如图11所示。
在这里插入图片描述

图11 合同信息显示/查询页面运行结果
也可在查看客户的详细信息中,单击“合同信息”,就会产生此客户的合同列表,传参代码如下:
<a href=“KeHu_Pact.asp?post=true&sel=PactClient&search=<%=rsx(“id”)%>&dd=dd” >合同信息

2.合同信息添加
合同信息添加的主要功能是用户添加客户的合同信息。
在查询页面中单击【添加】按钮,在展示区中会显示添加页面,其运行结果如图17(上)所示;也可在客户的详细信息页面单击“新建”,在展示区中会显示添加页面,然后进行合同信息添加。合同信息添加页面的运行结果如图12(下)所示。
在这里插入图片描述

图12 合同信息添加页面运行结果
3.合同信息修改
合同信息修改的主要功能是用户修改合同信息。
在显示合同详细信息页面,用户可以更改其合同的信息。合同信息修改页面运行结果如图13所示。
在这里插入图片描述

图13 合同信息修改页面运行结果
4.合同信息的删除
合同信息删除的主要功能是删除合同信息,其代码如下:

<%
    kid=Split(Request("del"),",") 
    response.Write("正在删除...")
    for i=0 to ubound(kid)
sqld="delete from tb_Pact where id="&clng(kid(i))
conn.execute(sqld)
next
%>

5 服务管理
服务管理设计的主要功能包括反馈信息的显示/查询、添加、修改和删除4个部分。用户可以通过功能导航进入服务管理页面,页面设计效果如图20所示。
在这里插入图片描述

图20 服务管理页面的设计效果
5.1 反馈信息添加
反馈信息添加的主要功能是用户添加客户的反馈信息。在查询页面中单击【添加】按钮,在展示区中会显示添加页面。反馈信息添加页面的设计效果如图21所示。
在这里插入图片描述

图21 反馈信息添加页面的设计效果
反馈信息添加页面涉及的HTML表单元素如表3所示。
表3 反馈信息信息添加页面涉及的HTML表单元素
在这里插入图片描述
在这里插入图片描述

表单提交之后,添加的数据将被提交到本页进行处理。数据处理的程序代码如下:

<%
call feedback
if request("post")<>"" then
	set rs=server.CreateObject("adodb.recordset")
	sql="select * from tb_Feedback"
	rs.open sql,conn,1,3
	rs.addnew  '主要用于添加客户反馈信息的数据
	rs("FeedbackTitle")=request("FeedbackTitle")
	rs("FeedbackDate")=request("year")&"-"&request("month")&"-"&request("day")
	rs("FeedbackClient")=request("FeedbackClient")
	rs("FeedbackContent")=request("FeedbackContent")
	rs("FeedbackResult")=request("FeedbackResult")
	rs("FeedbackFulfill")=request("FeedbackFulfill")
	rs("SetTime")=now()
	rs("SetName")=session("admin_name")
	rs.update
	rs.close	
	response.Write("<script language=javascript>alert('反馈信息添加成功')</script>")
end if
%>

5.2 反馈信息修改
因为反馈信息是客户的反馈意见所以不得随意修改,用户只可以修改“处理结果”和“服务完成”两项信息。当服务完成选项,选中“已完成”时,那么任何信息都不可以修改,也就是说只有在服务“未完成”的情况下才能修改“处理结果”。
反馈信息页面设计效果如图22所示。
在这里插入图片描述

图22 反馈信息页面设计效果
反馈信息修改页面涉及的HTML表单元素如表4所示。
表4 反馈信息信息修改页面涉及的HTML表单元素
在这里插入图片描述

在反馈信息修改页面,当用户单击【修改】按钮后,修改数据将被提交到本页进行处理,数据处理程序的代码如下:

<%
if request("post")<>"" then
	set rs=server.CreateObject("adodb.recordset")
	sql="select * from tb_Feedback where id="&request("id")
	rs.open sql,conn,1,3
	rs("FeedbackFulfill")=request("FeedbackFulfill")
	rs("FeedbackResult")=request("FeedbackResult")
	rs.update
	rs.close
	response.Write("<script language=javascript>alert('反馈信息修改成功');location='Feedback_ed.asp?id="&request("id")&"</script>")
end if
%>

7 报表管理
报表管理的主要功能是打印各种类型的报表,包括客户报表打印、联系人报表打印、反馈报表打印和库存报表打印4个部分。报表管理页面设计效果如图23所示。
在这里插入图片描述

图23 报表管理页面设计效果
7.1 客户报表模块
客户报表模块的主要功能包括客户报表查询、导入Excel和用web打印3个部分。
1.客户报表查询
客户报表查询页面涉及的HTML表单元素如表5所示。
表5 客户报表查询页面涉及的HTML表单元素
在这里插入图片描述
在这里插入图片描述

用户可以在报表管理页面中的客户报表查询部分,输入查询条件,进行客户信息的查询。
2.导入Excel
当用户在查询部分输入条件,并单击【导入Excel】按钮后,用户添加的查询条件将被提交给数据处理页,处理页用select case判断隐藏域的值,进而确定怎样处理。
数据处理页对查询条件经过处理,产生相应的SQL查询语句,其代码如下:

<%
sql="id is not null"
if request("ClientCountry")<>"全部" then '国家/地区不为全部时
	sql=sql&" and ClientCountry='"&request("ClientCountry")&"'"
end if
if request("ClientCity")<>"全部" then   '城市不为全部时
	sql=sql&"  and ClientCity='"&request("ClientCity")&"'"
end if
if request("SetName")<>"全部" then     '客户名称不为全部时
	sql=sql&" and SetName='"&request("SetName")&"'"
end if
if trim(request("search"))<>"" then    '当关键字不为空时
sql=sql&" and "&request("searchtype")&" like '%"&request("search")&"%'"
end if
sql="select ClientName,ClientCountry,ClientCity,ClientTel,ClientFax,ClientEmail from tb_Client where "&sql
response.Redirect("Table_print_Cd.asp?sql="&sql&"&tt=excul")'把参数传给下载页面
%>

当数据处理页处理完毕之后,会自动转向下载页,在下载页中单击左键,直接用web打开Excel, 右键单击“下载”选择“目标另存为…”把Excel保存在相应的路径下。处理Excel的页面代码如下:

<%
if request("tt")="excul" then          '当为客户报表查询时产生相应字段
	a=array("公司名称","所在国家/地区","所在城市","公司电话","公司传真","E-mail")
elseif  request("tt")="excul_l" then    '当为联系人报表查询时产生相应字段
	a=array("姓名","客户名称","部门","职务","电话","手机","E-mail")
elseif request("tt")="excul_k" then     '当为反馈客户报表查询时产生相应字段
	a=array("客户名称","反馈日期","是否解决","反馈主题","反馈内容","处理结果")
elseif request("tt")="excul_kc" then    '当为库存报表查询时产生相应字段
	a=array("客户编号","客户名称","产品数量","单位","库存类型") 
end if
%>
<%response.ContentType="application/vnd.ms-excel"%>
<%
set rs=conn.execute(request("sql"))
%>
<table width="100"  border="1" cellspacing="0">
  <tr>
<%
for i=0 to rs.fields.count-1
%>
    <td align="center"><%=a(i)%></td>
<%next%>
  </tr>
<%do while not rs.eof%>
  <tr>
	<%for i=0 to rs.fields.count-1%>
    <td align="center" class="table"><%=rs(i)%></td>
	<%next%>
  </tr>
<%
rs.movenext
loop
rs.close
%>

报表下载页面的运行结果如图24所示。
在这里插入图片描述

图24 报表下载页面的运行结果
3.用web打印
用户在查询部分输入查询条件后,单击【打印报表】按钮,用户添加的查询条件将被提交给数据处理页,处理页用select case判断隐藏域的值,进而确定怎样处理。
数据处理页对查询条件经过处理,产生相应的SQL查询语句。程序代码如下:

<%
sql="id is not null"
if request("ClientCountry")<>"全部" then'国家/地区不为全部时
	sql=sql&" and ClientCountry='"&request("ClientCountry")&"'"
end if
if request("ClientCity")<>"全部" then   '城市不为全部时
	sql=sql&"  and ClientCity='"&request("ClientCity")&"'"
end if
if request("SetName")<>"全部" then      '客户名称不为全部时
	sql=sql&" and SetName='"&request("SetName")&"'"
end if
if trim(request("search"))<>"" then     '当关键字不为空时
	sql=sql&" and "&request("searchtype")&" like '%"&request("search")&"%'"
end if
sql="select * from tb_Client where "&sql
response.Redirect("Table_print_p.asp?sql="&sql)'把参数传给打印页面
%>

当数据处理页处理完毕之后,会自动转向打印页,打印页是一个框架集,包含三个页面。

客户报表打印页面运行结果如图25所示。
在这里插入图片描述

图25 客户报表打印页面的运行结果
7.2 联系人报表模块
1.联系报表查询
联系人报表查询页面涉及的HTML表单元素如表6所示。
表6 联系人报表查询页面涉及的HTML表单元素
在这里插入图片描述
在这里插入图片描述

用户可以在报表管理页面中的联系人报表查询部分,输入一定的查询条件,进行联系人信息的查询。
2.导入Excul
用户在查询部分输入查询条件后,单击【导入Excul】按钮,用户所添加的查询条件将被提交给数据处理页,处理页用select case判断隐藏域的值,进而确定怎样处理,传值的程序代码如下:

<%
sql="dbo.tb_Linkman.id is not null"
if request("LinkmanDept")<>"全部" then
sql=sql&" and dbo.tb_Linkman.LinkmanDept='"&request("LinkmanDept")&"'"
end if
if request("LinkmanDuty")<>"全部" then
sql=sql&"  and dbo.tb_Linkman.LinkmanDuty='"&request("LinkmanDuty")&"'"
end if
if request("select2")<>"全部" then
sql=sql&" and dbo.tb_Linkman.SetName='"&request("SetName")&"'"
end if
sql="SELECT dbo.tb_Linkman.LinkmanName, dbo.tb_Client.ClientName,dbo.tb_Linkman.LinkmanDept,dbo.tb_Linkman.LinkmanDuty,dbo.tb_Linkman.LinkmanTel, dbo.tb_Linkman.LinkmanHander, dbo.tb_Linkman.LinkmanEmail FROM dbo.tb_Client INNER JOIN dbo.tb_Linkman ON dbo.tb_Client.ID= dbo.tb_Linkman.LinkmanClient where "&sql
response.Redirect("Table_print_kh.asp?sql="&sql)
%>

由于查询和导入的实现方法和客户报表的实现方法相似,在此不再详细介绍,请读者参考7.1节中介绍的导入Excel的程序代码。
3.用web打印
用户在查询部分输入查询条件后,单击【打印报表】按钮,用户所添加的查询条件将被提交给数据处理页,处理页用select case判断隐藏域的值,进而确定怎样处理。传值程序代码如下:

<%
sql="dbo.tb_Linkman.id is not null"
if request("LinkmanDept")<>"全部" then
	sql=sql&" and dbo.tb_Linkman.LinkmanDept='"&request("LinkmanDept")&"'"
end if
if request("LinkmanDuty")<>"全部" then
	sql=sql&"  and dbo.tb_Linkman.LinkmanDuty='"&request("LinkmanDuty")&"'"
end if
if request("select2")<>"全部" then
	sql=sql&" and dbo.tb_Linkman.SetName='"&request("SetName")&"'"
end if
sql="SELECT dbo.tb_Linkman.LinkmanName, dbo.tb_Client.ClientName,dbo.tb_Linkman.LinkmanDept, dbo.tb_Linkman.LinkmanDuty,dbo.tb_Linkman.LinkmanTel, dbo.tb_Linkman.LinkmanHander, dbo.tb_Linkman.LinkmanEmail FROM dbo.tb_Client INNER JOIN dbo.tb_Linkman ON dbo.tb_Client.ID= dbo.tb_Linkman.LinkmanClient where "&sql
response.Redirect("Table_print_Cd.asp?sql="&sql&"&tt=excul_l")%>

由于联系人查询和导入实现的方法和客户报表的实现的方法相似,在此不再详细介绍,请读者参考7.1节中介绍的用web打印的程序程序代码。
联系人报表页面运行结果如图26所示。
在这里插入图片描述

图26 联系人报表页面的运行结果
由于客户报表查询、联系人报表查询、反馈客户查询和库存报表查询实现的方法比较类似,在这里不再详细介绍,请参考7.1节和7.2节的相关内容。

附录A 参考文献
1.Visual Basic精彩编程200例 机械工业出版社 赛奎春、高春艳等 2003年1月
2.Visual Basic数据库开发实例解析 机械工业出版社 刘志铭、高春艳等 2003年8月
3.Visual FoxPro数据库开发实例解析 机械工业出版社 王晶莹、王国辉等 2003年9月
4.Power Builder数据库开发实例解析 机械工业出版社 华传铭、张振坤等 2003年9月
5.Delphi数据库开发实例解析 机械工业出版社 赛奎春、郑骁鹏等 2004年2月
6.PowerBuilder 精彩编程200例 机械工业出版社 张振坤、李文立等 2004年9月
7.Visual FoxPro 精彩编程200例 机械工业出版社 王国辉、董韶华等 2004年9月
8.ASP数据库开发实例解析 机械工业出版社 李严、于亚芳、王国辉 2004年12月
9.Delphi工程应用与项目实践 机械工业出版社 宋坤、赵智勇等 2005年1月
10.Visual Basic工程应用与项目实践 机械工业出版社 高春艳、李俊民等 2005年1月
11.Visual C++工程应用与项目实践 机械工业出版社 张雨、阮伟良等 5005年1月
12.JSP工程应用与项目实践 机械工业出版社 陈威、白伟明、李楠 2005年2月
13.ASP工程应用与项目实践 机械工业出版社 王国辉、牛强、李南南 2005年4月
14.Visual Basic 信息系统开发实例精选 机械工业出版社 高春艳、李俊民、张耀庭等
2005年7月
15.ASP 信息系统开发实例精选 机械工业出版社 王国辉、牛强、李南南等 2005年7月
16.Delphi 信息系统开发实例精选 机械工业出版社 宋坤、赵智勇、刘强等 2005年7月
17.Visual foxpro数据库开发关键技术与实例应用 人民邮电出版社 周桓、张雨、王国辉 2004年5月
18.PoweBuilder数据库开发关键技术与实例应用 人民邮电出版社 刘志铭 张振坤 冯文萃 2004年5月
19.Delphi数据库开发关键技术与实例应用 人民邮电出版社 赛奎春 陈紫鸿 宋昆
2004年5月
20.Visual basic数据库开发关键技术与实例应用 人民邮电出版社 高春艳、李艳
2004年5月
21.Visual C++ 管理信息系统完整项目实例剖析 人民邮电出版社 明日科技 2005年7月
22.Visual Basic 管理信息系统完整项目实例剖析 人民邮电出版社 明日科技
2005年7月
23.PowerBuilder 管理信息系统完整项目实例剖析 人民邮电出版社 明日科技
2005年7月
24.Visual FoxPro管理信息系统完整项目实例剖析 人民邮电出版社 明日科技
2005年7月
25.SQL Server数据库开发实例解析 机械工业出版社 宋昆、李严等 2006年1月
26.Access数据库开发实例解析 机械工业出版社 李俊民、高春燕等 2006年1月

附录B 数据表
(1)tb_Addresser(发件人信息表)
发件人信息表主要用于保存发件人信息。该数据表的结构如表B.1所示。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


5、资源下载

本项目源码及完整论文如下,有需要的朋友可以点击进行下载。如果链接失效可点击下方卡片扫码自助下载。

序号毕业设计全套资源(点击下载)
本项目源码基于asp+sqlserver的客户关系管理系统设计与实现(源码+文档)_asp_BS架构_客户关系管理系统.zip
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

毕业设计方案专家

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值