B/S模式产品销售管理系统
1. 课题目的
基本掌握B/S模式数据库应用系统的开发
二.开发环境与工具
WindowsXP操作系统
IIS 5.1
SQL Server2000数据库管理系统
ASP开发工具
IIS5.1环境搭建:
第一步:控制面板 --- 添加删除程序 --- 添加删除WINDOWS组件 --- 选中IIS依次下一步最后完成。安装过程中需要WINDOWS XP 安装盘,首先需要确认安装的系统为SP1或SP2,选择对应的安装光盘放入光驱。
第二步:打开Internet信息服务,即IIS。控制面板 --- 管理工具 --- Internet信息服务。
第三步:WEB站点设置,“TCP端口”是WEB服务器端口,默认值是80,不需要改动。“IP地址”是WEB服务器绑定的IP地址,默认值是“全部未分配”,建议不要改动。默认情况下,WEB服务器会绑定在本机的所有IP上,包括拨号上网得到的动态IP。
第四步:主
目录
工贸企业有限空间作业目录特种设备作业人员作业种类与目录特种设备作业人员目录1类医疗器械目录高值医用耗材参考目录
设置,在“本地路径”右边,是网站根目录,即网站文件存放的目录,默认路径是“c:\inetpub\wwwroot”。如果想把网站文件存放在其他地方,可修改这个路径。
第五步:文档的设置,在这里设置网站的默认首页文档。IIS会在网站根目录下查找默认的首页文件,如果找到就打开,找不到就显示“该页无法显示”。在这里添加所需的默认首页文件名,添加完后可以用左边的上下箭头排列这些文件名的查找顺序。
2. 需求分析
1. 问题的提出:为了高效率的完成产品信息的管理,决定开发产品销售管理系统。
2. 需完成的功能:
(1) 能添加、修改、删除、查询产品的信息,这些产品信息包括产品的编号、产品的名称、产品的价格、产品的库存量。
(2) 能添加、修改、删除、查询销售商的信息,销售商信息包括销售商的编号、销售商的名称、地区、负责人、电话、备注。
(3) 能添加、修改、删除、查询销售的信息,销售信息包括产品编号、销售商编号、销售时间、数量、金额。
3. E-R图
设计
领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计
:
产品实体
销售商实体
实体联系图
m
n
四.数据库结构设计
根据E-R图,转换成关系模式:
产品(产品编号、产品名称、价格、库存量)
销售商(销售商编号、销售商名称、地区、负责人、电话、备注)
销售(产品编号、销售商编号、销售时间、数量、金额)
产品表(CP)表结构
列名
数 据 类 型
长度
是否允许为空值
说 明
CPBH
字符型(char)
6
×
产品编号,主键
CPMC
字符型(char)
30
×
产品名称
JG
浮点型(float)
8
√
价格
KCL
整型(int)
4
√
库存量
销售商(XSS)表结构
列名
数据类型
长度
是否允许为空值
说 明
XSBH
字符型(char)
6
×
销售商编号,主键
XSMC
字符型(char)
30
×
销售商名称
DQ
字符型(char)
10
√
地区
FZR
字符型(char)
8
√
负责人
DH
字符型(char)
12
√
电话
BZ
文本(text)
16
√
备注
产品销售(XSCP)表结构
列名
数据类型
长度
是否允许为空值
说 明
CPBH
字符型(char)
6
×
产品编号,主键
XSBH
字符型(char)
6
×
销售商编号,主键
XSSJ
Datetime
8
×
销售时间
SL
整型(int)
4
×
数量
JE
浮点型(float)
8
×
金额
五.系统功能概述
该系统包括6个功能模块:产品信息、销售商信息、销售信息、产品数据维护、销售商数据维护、销售数据维护。
(1)产品信息:查询产品基本信息。
(2)销售商信息:查询销售商基本信息。
(3)销售信息:查询销售基本信息。
(4)产品信息维护:
增加产品
记录
混凝土 养护记录下载土方回填监理旁站记录免费下载集备记录下载集备记录下载集备记录下载
:添加产品编号、产品名称、价格等产品基本信息。
修改产品记录:修改除产品编号外的产品基本信息。
删除产品记录:删除根据条件查询出的产品记录。
(5)销售商信息维护:
增加销售商记录:添加销售商编号、销售商名称、地区、负责人、电话等销售商基本信息。
修改销售商记录:修改除销售商编号外的销售商基本信息。
删除销售商记录:删除根据条件查询出的销售商记录。
(6)销售信息维护:
增加销售记录:添加产品编号、销售商编号、销售时间等销售基本信息。
修改销售记录:修改销售表中的数量、金额基本信息。
删除销售记录:删除根据条件查询出的销售记录。
六.主界面设计
主界面由上下两个框架(frame)组成,上部的frame为标题和以功能命名的超连接,下部的frame为数据显示区。
cpxs.htm:
主页面文件,位于根目录下。
top.htm:
上部frame,位于根目录下。
main.asp:
主frame,位于根目录下。
showrs.asp:
显示结果集,位于根目录下。
conn.inc:
连接数据库,位于根目录下。
1.cpxs.htm
产品销售系统
2.top.htm
top
产品销售管理
3.main.asp
<%
sub ShowPage(rs,page)
'显示结果集中的指定页
response.write("
")
response.write("")
for i=0 to rs.fields.count-1
response.write("" & rs.fields(i).Name & " | ")
next
response.write("
")
rs.AbsolutePage=Page
for i=0 to rs.PageSize
response.write("")
response.write("" & rs.fields(0).Value & " | ")
for j=1 to 2
response.write("" & rs.fields(j).Value & " | ")
next
response.write("" & rs.fields(3).Value & " | ")
response.write("
")
rs.MoveNext
if rs.eof then exit for
next
response.write("
")
end sub
set rs=Server.createobject("adodb.recordset")
sql = "select CPBH as '产品编号',CPMC as '产品名称',JG as '价格',KCL as '库存量' from CP"
rs.open sql,conn,3
%>
<%
rs.PageSize=10
Page=CInt(request("PageText"))
if Page<1 then Page=1
if Page>rs.PageCount then Page=rs.PageCount
ShowPage rs,Page
%>
4.showrs.asp
<%
Sub ShowRS(rs)
'显示结果集rs
response.write("
")
response.write("")
for i=0 to rs.fields.count-1
response.write("" & rs.fields(i).Name & " | ")
next
response.write("
")
while not rs.eof
response.write("")
for i=0 to rs.fields.count-1
response.write("" & rs.fields(i).Value & " | ")
next
response.write("
")
rs.MoveNext
wend
response.write("
")
end Sub
%>
5.conn.inc
<%
set conn=server.createobject("adodb.connection")
connstr="Provider=SQLOLEDB;data source=(local);initial catalog=cpxs;user id=sa;password=944679;"
conn.open connstr
%>
Provider=SQLOLEDB:
数据库提供者
User id=sa:
数据库的帐号
Password=944679:
数据库的帐号密码
Initial Catalog=cpxs:
数据库名字
Data Source=(local):
数据源,SQL服务器名或其IP
七.各功能模块设计
1. 产品信息:
浏览产品表的数据以及根据产品编号查询包括产品、销售商、销售三张表中对应产品编号的数据信息。显示的数据以表格的形式在数据显示区显示所查看的数据,在表格中再以超链接的形式提供数据查询。例如,对产品数据,提供的是按产品编号进行查询,即将产品编号数据作为超链接,单击产品编号后将查询该产品编号的产品情况及产品销售情况。
cpll.asp:
浏览产品表中产品数据,位于CP文件夹下。
cpno.asp:
按产品编号查询程序,位于CP文件夹下。
(1) cpll.asp
<%
sub ShowPage(rs,page)
'显示结果集中的指定页
response.write("
")
response.write("")
for i=0 to rs.fields.count-1
response.write("" & rs.fields(i).Name & " | ")
next
response.write("
")
rs.AbsolutePage=Page
for i=0 to rs.PageSize
response.write("")
response.write("" & rs.fields(0).Value & " | ")
for j=1 to 2
response.write("" & rs.fields(j).Value & " | ")
next
response.write("" & rs.fields(3).Value & " | ")
response.write("
")
rs.MoveNext
if rs.eof then exit for
next
response.write("
")
end sub
set rs=server.createobject("adodb.recordset")
sql="select CPBH as '产品编号',CPMC as '产品名称',JG as '价格',KCL as '库存量' from CP"
rs.open sql,conn,3
%>
<%
rs.PageSize=10
Page=CInt(request("PageText"))
if Page<1 then Page=1
if Page>rs.PageCount then Page=rs.PageCount
ShowPage rs,Page
%>
(2) cpno.asp
<%
id=request("id")
set rs=server.createobject("adodb.recordset")
sql="select a.CPBH as '产品编号',a.CPMC as '产品名称',JG as '当前价格',KCL as '库存量',XSMC as '销售商名',XSSJ as '销售时间',SL as '数量'"
sql=sql&",JE as '金额' from CP a,XSS b,XSCP c where a.CPBH=c.CPBH and b.XSBH=c.XSBH and a.CPBH='"&id&"'"
rs.open sql,conn,3
showrs rs
rs.close
conn.close
%>
2. 销售商信息
浏览销售商表的数据以及根据销售商编号查询包括产品、销售商、销售三张表中对应销售商编号的数据信息。显示的数据以表格的形式在数据显示区显示所查看的数据,在表格中再以超链接的形式提供数据查询。例如,对销售商数据,提供的是按销售商编号进行查询,即将销售商编号数据作为超链接,单击销售商编号后将查询该销售商编号的产品情况及产品销售情况。
xssll.asp:
浏览销售商表中产品数据,位于XSS文件夹下。
xssno.asp:
按销售商编号查询程序,位于XSS文件夹下。
(1) xssll.asp
<%
sub ShowPage(rs,page)
'显示结果集中的指定页
response.write("
")
response.write("")
for i=0 to rs.fields.count-1
response.write("" & rs.fields(i).Name & " | ")
next
response.write("
")
rs.AbsolutePage=Page
for i=0 to rs.PageSize
response.write("")
response.write("" & rs.fields(0).Value & " | ")
for j=1 to 5
response.write("" & rs.fields(j).Value & " | ")
next
response.write("
")
rs.MoveNext
if rs.eof then exit for
next
response.write("
")
end sub
set rs=server.createobject("adodb.recordset")
sql="select XSBH as '销售商编号',XSMC as '销售商名称',DQ as '地区',FZR as '负责人',DH as '电话',BZ as '备注' from XSS"
rs.open sql,conn,3
%>
<%
rs.PageSize=10
Page=CInt(request("PageText"))
if Page<1 then Page=1
if Page>rs.PageCount then Page=rs.PageCount
ShowPage rs,Page
%>
(2) xssno.asp
<%
id=request("id")
set rs=server.createobject("adodb.recordset")
sql="select a.CPMC as '产品名称',JG as '当前价格',KCL as '库存量',b.XSBH as '销售商编号',XSMC as '销售商名',DQ as '地区'"
sql=sql&",XSSJ as '销售时间',SL as '数量',JE as '金额' from CP a,XSS b,XSCP c where a.CPBH=c.CPBH and b.XSBH=c.XSBH and b.XSBH='"&id&"'"
rs.open sql,conn,3
showrs rs
rs.close
conn.close
%>
3. 销售信息
浏览销售商表的数据以及根据销售商编号查询包括产品、销售商、销售三张表中对应销售商编号的数据信息。显示的数据以表格的形式在数据显示区显示所查看的数据,在表格中再以超链接的形式提供数据查询。例如,对销售商数据,提供的是按销售商编号进行查询,即将销售商编号数据作为超链接,单击销售商编号后将查询该销售商编号的产品情况及产品销售情况。
xsll.asp:
浏览销售表中产品数据,位于XS文件夹下。
xssj.asp:
按销售时间查询程序,位于XS文件夹下。
(1) xsll.asp
<%
sub ShowPage(rs,Page)
'显示结果集中的指定页
response.write("
")
response.write("")
for i=0 to rs.fields.count-1
response.write("" & rs.fields(i).Name & " | ")
next
response.write("
")
rs.AbsolutePage=Page
for i=0 to rs.PageSize
response.write("")
response.write("" & rs.fields(0).Value & " | ")
response.write("" & rs.fields(1).Value & " | ")
response.write("" & rs.fields(2).Value & " | ")
response.write("" & rs.fields(3).Value & " | ")
response.write("" & rs.fields(4).Value & " | ")
response.write("
")
rs.MoveNext
if rs.eof then exit for
next
response.write("
")
end sub
set rs=server.createobject("adodb.recordset")
sql="select CPBH as '产品编号',XSBH as '销售编号',XSSJ as '销售时间',SL as '数量',JE as '金额' from XSCP"
rs.open sql,conn,3
%>
<%
rs.PageSize=10
Page=CInt(request("PageText"))
if Page<1 then Page=1
if Page>rs.PageCount then Page=rs.PageCount
ShowPage rs,Page
%>
(2) xssj.asp
<%
sj=request("sj")
set rs=server.createobject("adodb.recordset")
sql="select a.CPBH as '产品编号',a.CPMC as '产品名称',JG as '当前价格',KCL as '库存量',XSMC as '销售商名',XSSJ as '销售时间',SL as '数量'"
sql=sql&",JE as '金额' from CP a,XSS b,XSCP c where a.CPBH=c.CPBH and b.XSBH=c.XSBH and XSSJ='"&sj&"'"
rs.open sql,conn,3
showrs rs
rs.close
conn.close
%>
4. 产品信息维护
数据维护包括产品信息的添加、修改、删除。
产品信息维护主程序:
cpwh.asp
top
(1) 产品数据增加
增加产品数据的过程:选择“增加产品记录”,在显示的界面输入产品编号、产品名称、价格、库存量,单击“增加”按钮。
增加成功显示如下界面:
增加产品数据由以下两个程序完成:
cpzj.asp:
提供数据输入界面,接收用户输入的产品数据。
addcp.asp:
向CP表添加记录。
<%
cpbh=request("cpbh")
cpmc=request("cpmc")
jg=request("jg")
kcl=request("kcl")
set rs=server.createobject("adodb.recordset")
rs.open "select * from CP where CPBH='"& cpbh &"'",conn,3,2
%>
<%
if rs.recordcount>0 then
response.write"产品编号重复"
else
rs.AddNew
rs("cpbh")=cpbh
rs("cpmc")=cpmc
rs("jg")=jg
rs("kcl")=kcl
rs.Update
conn.close
response.write"本次添加产品记录操作成功"
conn.open
set rs=server.createobject("adodb.recordset")
sql="select a.CPBH as '产品编号',CPMC as '产品名称',JG as '当前单价',b.XSBH as '销售商编号',XSMC as '销售商名称',KCL as '库存量',XSSJ as '销售时间',SL as '销售数量',JE as '销售金额' from CP a,XSS b,XSCP c where a.CPBH=c.CPBH and b.XSBH=c.XSBH"
rs.open sql,conn,3
showrs rs
rs.close
conn.close
end if
%>
(2) 产品数据修改
修改产品数据的过程:选择“修改产品记录”在提示的界面中选择要修改的产品编号,单击“下一步”。
修改成功提示如下界面:
修改产品由以下3个程序完成:
cpxg.asp:
提供产品记录选择界面。
请选择要修改的产品记录
cpxgconf.asp:
显示所选择产品数据,并接收数据更改。
<%
cpbh=request("cpbh")
session("cpbh")=cpbh
set rs=server.createobject("adodb.recordset")
rs.open "select * from CP where CPBH='"& cpbh &"'",conn,3
%>
所选择的产品信息如下:
cpscconf:显示所选择产品数据,并接收删除选择。
<%
cpbh=request("cpbh")
session("cbh")=cpbh
set rs=server.createobject("adodb.recordset")
rs.open "select * from CP where CPBH='"& cpbh &"'",conn,3
%>
所选择的产品销售信息如下: