中华考试网·阅读新闻
编程开发 > ASP > 文章内容

ASP入门基础教程:CheckOut_OK.asp购书结帐成功页面

2015-10-14编辑:ljnbset

CheckOut_OK.asp 购书结帐成功页面。 本页面是购书结帐成功页面。其主要功能有:

1、从会员信息表中查询 ID等于session("UserID")记录中等级的值,并将其值赋给变量session("grade");

  2、从等级表中查找等级等于session("grade")变量的折扣率;

  3、从销售表中查找订单ID的最大值作为 MAXID 字段名输出;

  4、从图书信息表中查找图书ID在变量session("checkBool")中有与其相匹配的图书记录;

  5、自动产生订单号,它由四部分组成:年、月、日和先前的最大订单号的后五位加1;

  6、计算图书应付金额,它等于单价*数量*折扣率;

  7、往销售表中插入一条记录;

  8、从“销售量”表中查询图书ID等于bookID变量的图书记录,如果记录指针到了记录的尾部,则向记录集中插入一条记录,否则,更改原有的图书ID相等的图书数量值;

  9、更改会员信息表中ID等于parID会员的总金额;

  10、自动更新会员等级;

  11、提交本次消费金额和应付金额。

<%@LANGUAGE="VBSCRIPT"%>

<%
'创建一个记录集对象。
Set rs_grade = Server.CreateObject("ADODB.Recordset")
'***从会员信息表中查询 ID等于session("UserID")记录中等级的值。
'Replace函数可以用来对给定字符串中的指定部分进行规定次的替换。
sql_grade= "SELECT grade FROM DB_Member WHERE ID = '" +_
Replace(session("UserID"), "'", "''") + "'"
rs_grade=conn.execute(sql_grade)
'将用户等级变量清空。
session("grade")=""
'将会员信息表中的相应会员的等级值赋给变量session("grade")
session("grade")=Replace(rs_grade("grade"), "'", "''")
Set rs_rebate = Server.CreateObject("ADODB.Recordset")
'***从等级表中查找等级等于session("grade")变量的折扣率。
sql_rebate= "SELECT rebate FROM DB_rebate WHERE grade = '" +_
session("grade") + "'"
rs_rebate.open sql_rebate,conn,3
%>
<%
set rs_max= Server.CreateObject("ADODB.RecordSet")
'***从销售表中查找订单ID的最大值作为 MAXID 字段名输出。
sql_max="select MAX(OrderID) AS MAXID from DB_sell"
rs_max=conn.execute(sql_max)
%>
<%
'***从图书信息表中查找图书ID在变量session("checkBool")中有与其相匹配的图书记录。
sql = "Select * From DB_bookinfo Where BookID In (" & session("checkBook") & ")"
Set rs_C = conn.Execute( sql )
%>



<% no=trim(rs_max("MaxID"))
if len(month(date()))=1 then
cmonth="0"& cstr(month(date()))
else
cmonth=cstr(month(date()))
end if
if len(day(date()))=1 then
cday="0"& cstr(day(date()))
else
cday=cstr(day(date()))
end if
select case len(int(Right(no,5)+1))
case 1
cno="0000"+Cstr(int(Right(no,5)+1))
case 2
cno="000"+Cstr(int(Right(no,5)+1))
case 3
cno="00"+Cstr(int(Right(no,5)+1))
case 4
cno="0"+Cstr(int(Right(no,5)+1))
case 5
cno=Cstr(int(Right(no,5)+1))
case Else
cno="00001"
end select
intno=cStr(Year(Date()))& cmonth& cday&cno
'自动产生订单号结束。
%>
<%
ASL=""
ASL=split(session("sl"),",") '此数组用来存储所选图书的数量。
i=0
sum=0
shuliang=0
'开始计算所购图书总金额、往“销售”表中插入一条记录和往“销售量”表插入一条记录或更改相应的记录。
while not rs_C.eof
bookID=rs_C("BookID")
bookName=rs_C("BookName")
price=rs_C("price")
paSL=cInt(ASL(i))
sum_1=sum_1+rs_C("price")*ASL(i)
'图书金额等于单价*数量*折扣率
booksum=rs_C("price")*ASL(i)*CSng(left(rs_rebate("rebate"),len(rs_rebate("rebate"))-1))/10
sum=sum+booksum
'left(rs_rebate("rebate"),len(rs_rebate("rebate"))-1)这一部分是把从记录集取出的折扣率的值(字符串),再从中取出其长度减1的字符串,这时得到的值就去掉了最后的“折”字。
oDate=now()
parID=Session("UserID")
'往销售表中插入一条记录。
sql_Ins="insert into DB_sell(OrderID,BookID,BookName,Price,bnumber,sum,HYID,OrderDate)"&_
"values('"&intno&"','"&bookID&"','"&bookName&"',"&price&","&paSL&","&booksum&_
",'"&parID&"',#"&oDate&"#)"
conn.execute sql_Ins
'***从“销售量”表中查询图书ID等于bookID变量的图书记录。
sql_update="select * from DB_sellsum where BookID='"&bookID&"'"
set rs_update=conn.execute (sql_update)
if rs_update.eof then
'如果记录指针到了记录的尾部,则向记录集中插入一条记录。
sql_num="insert into DB_sellsum(BookID,BookName,bnumber) values('"&bookID&_
"','"&bookName&"',"&paSL&")"
conn.execute sql_num
else
'否则,更改原有的图书ID相等的图书数量值。
sql_num="update DB_sellsum set bnumber=bnumber+"&paSL&" where BookID='"&bookID&"'"
conn.execute sql_num
end if
i=i+1
rs_C.movenext
wend %>

<%
'***更改会员信息表中ID等于parID会员的总金额。

sql="update DB_member set amount=amount+ "&sum&" where ID= '"&parID&"'"
conn.execute sql
'开始自动更新会员等级
'***从会员信息表中查询ID等于parID会员的记录,并且只含等级和累计金额两个字段。
autosql="select grade,amount from DB_member where ID= '"&parID&"'"
set rs_auto=conn.execute (autosql)
samount=rs_auto("amount") '将字段中的累计金额值赋给变量samount。
'***从折扣率表中查询所有记录
sql_rebate="select* from DB_rebate"
set rs_rebateall=conn.execute (sql_rebate)
'将记录指针移动到第一帧。
rs_rebateall.movefirst
bz=0
while not rs_rebateall.eof
'如果记录指针没有到记录尾部,如果总金额大于记录集中的金额值,则将原等级加1赋给新等级。
if samount>rs_rebateall("sum") then
newgrade=rs_rebateall("grade")+1
bz=1
else
if bz=0 then newgrade=0
end if
rs_rebateall.movenext
wend
'等级最大到4
if newgrade>4 then newgrade=4
'更改会员信息表中的等级。
sql_newgrade="update DB_member set grade='"&newgrade&"' where ID= '"&parID&"'"
conn.execute sql_newgrade
%>




收银台结账!

























您本次购物享受<%=(rs_rebate.Fields.Item("rebate").Value)%>优惠!

您本次消费金额为<%= sum_1%>元,实际应付费用<%=sum%>元。


结账已经完成,欢迎下次惠顾!


width="75" height="34" border="0">





<%session.Abandon()%>

  Checkout_fail.asp 收银台登录失败提示页面。


















您现在还不是我们的会员,


请单击“注册”按钮注册会员!





ASP入门基础教程:Checkout.asp收银台登录页面
咨询热线:4000-525-585(免长途费)