购物车类

<!--#include FILE="../db/LDB.asp"-->
<%
'---------------------------
' ASP 购物车类 
'-------------常量定义----------------------------------
' 定义货物表。关键字为ID
ProductionTable="Production"

' 定义订单表,订单明细表,订单号字段名称
OrderTable="OrderTable"
OrderID="OrderID"
OrderDetailTable="OrderDetail"
'-------------常量定义结束------------------------------


'-------------类定义------------------------------------
' 购物车类
' 引用了LDB类
Class LDCart

  '-----------------------------------
  '私有函数部分
  '-----------------------------------
  Private CPList(50,2) '商品列表,采用二维数组,每个记录第一个表示商品代号,第二个表示购物数量
  Private CPCount  '当前购买商品的商品数
  Private MyQuery  '查询类
  Private MyDB   '数据操作类
  Private CurrUserID '当前用户代号

  Private Function GetInfoByID(ID)
    '根据货物编号得到货物信息 返回类型为记录集
 Set GetInfoByID= MyDB.DoSelect("select * from "&ProductionTable&" where ID = "&ID)
  End Function

  Private Function GetUserInfoByID(UserID)
    '得到用户信息  返回类型为记录集
 MyQuery.Cols="ID"
 MyQuery.Types="1"
 MyQuery.Values="=##"&UserID
 Set MyDB.LDQuery=MyQuery
 MyDB.TableName="User"
 MyDB.Cols=""
 MyDB.NeedNumber=1
 
 Set GetInfoByID= MyDB.GetRecordSet

  End Function
 
  '-----------------------------------
  '公共函数部分
  '-----------------------------------

  Public Function Initial
    '初始化购物车
 CPCount=0
 CurrUserID=Session("UserID")
    Set MyQuery = New LDQuery
    Set MyDB = New LDB
 Set MyDB.LDQuery=MyQuery
  End Function

  Public Function AddItem(ID)
    '根据货物ID增加货物数量为1
 '返回值=0:成功
 '返回值=-1:货物已在购物车中
 '返回值=-2:购物车已满
 If CPCount = 50 then
   AddItem=-2
   Exit Function
 End If

 Dim i,res
 For i=0 To CPCount-1
   If ID = CPList(i,0) then
  AddItem=-1
  Exit Function
   End If
 Next

    CPList(CPCount,0)=ID
    CPList(CPCount,1)=1
    CPCount=CPCount+1
 AddItem=0
  End Function
 
  Public Function RemoveItem(ID)
    '根据货物ID删除货物
 '返回值=0:成功
 '返回值=-1:货物不在购物车中
 j=-1
 For i=0 To CPCount-1
   If CPList(i,0)=ID then
     j=i
   End If
 Next
 If j=-1 then
   RemoveItem=-1
   Exit function
 End If

 For i=j To CPCount-1
   CPList(i,0)=CPList(i+1,0)
   CPList(i,1)=CPList(i+1,1)
 Next
 CPList(CPCount,0)=""
 CPList(CPCount,1)=0

 CPCount=CPCount-1
 RemoveItem=0
  End Function

  Public Function DisplayCart
    '显示购物车
 Response.write"<br>--------------------------------------------------------<Br>"
 Response.write"当前用户:"&CurrUserID&"--------------------------------------------------------<Br>"
 If CPCount=0 then
   Response.write "购物为空!"
 else
 For i = 1 To CPCount
   Set CurrInfo=GetInfoByID(CPList(i-1,0))
   Response.write "货物代号是:"&CPList(i-1,0)&"    名称是:"&CurrInfo("mc")&"    价格是:"&CurrInfo("jg")&"    数量是:"&CPList(i-1,1)
   Response.write "<br>"
 Next
 Response.write"--------------------------------------------------------<Br>"
 Response.write "当前货物总数是:"&CPCount&"  ||  ""当前货物总价格是:"&CountTotalPay
 End If
  End Function

  Public Function UpdateCount(ID,Count)
    '改变某商品的数量
 '返回值=0:成功
 '返回值=-1:货物不在购物车中
 '返回值=-2:改变的数量小于等于0
 If Count<1 then
   UpdateCount=-2
   Exit function
 End If'判断,要改变的数量是不是大于等于0 如果不是,则返回错误信息-整数-2

 j=-1
 For i=0 To CPCount-1
   If CPList(i,0)=ID then
     j=i
   End If
 Next
  If j=-1 then
   UpdateCount=-1
   Exit function
 End If'判断要删除的货物是否已经在购物车中,如果不是,则返回错误信息-整数-1

 CPList(j,1)=Count 
 UpdateCount=0
  End Function

  Public Function CountTotalPay
    '计算合计价格
 '返回值:合计价格
 TempTotal=0
 For i=0 To CPCount-1
   TempTotal=TempTotal+GetInfoByID(CPList(i,0))("jg")*CPList(i,1)
 Next
 CountTotalPay=TempTotal
  End Function

  Public Function ApplyOrder    '提交订单
 '返回值=0:成功
 ZK=1 '折扣
 OrderID=Replace(LDFormatDateTime(now)&CurrUserID,"-","")
 OrderID=Replace(OrderID," ","")
 OrderID=Replace(OrderID,":","")
 MyDB.TableName=OrderTable
 MyDB.Cols="UserID|HJ|SJ|IP|YB|DZ|SJR|Tel|OrderID"
 MyDB.Types="1|1|0|0|0|0|0|0|0"
 MyDB.Values=CurrUserID&"|"&CountTotalPay&"|"&LDFormatDateTime(now)&"|"&GetUserIP()&"|"&YB&"|"&DZ&"|"&SJR&"|"&Tel&"|"&OrderID
 MyDB.Add

 MyDB.TableName=OrderDetailTable
 MyDb.Cols="OrderID|CPID|Count|ZK"
 MyDB.Types="0|0|1|1"

 For i=0 To CPCount-1
   MyDB.Values=OrderID&"|"&CPList(i,0)&"|"&CPList(i,1)&"|"&ZK
   MyDB.Add
 Next
 ApplyOrder=0
  End Function

  Public Function Clear    '清空购物车
 '返回值=0:成功
 For i=1 To CPCount
   CPList(i-1,0)=""
   CPList(i-1,1)=0
 Next
 CPCount=0
  End Function

  Public Function DeleteOrder(OrderID)
 '返回值=0:成功
    MyQuery.Cols="OrderID"
 MyQuery.Types="0"
 MyQuery.Values="<##"&OrderID
    MyDB.TableName=OrderTable
 MyDB.Delete
 MyDB.TableName=OrderDetailTable
 MyDB.Delete
    DeleteOrder=0
  End Function
End Class
'-------------类定义结束--------------------------------

%>

基于STM32设计的数字示波器全套资料(原理图、PCB图、源代码) 硬件平台: 主控器:STM32F103ZET6 64K RAM 512K ROM 屏幕器:SSD1963 分辨率:480*272 16位色 触摸屏:TSC2046 模拟电路: OP-TL084 OP-U741 SW-CD4051 CMP-LM311 PWR-LM7805 -LM7905 -MC34063 -AMS1117-3.3 DRT-ULN2003 6.继电器:信号继电器 7.电源:DC +12V 软件平台: 开发环境:RealView MDK-ARM uVision4.10 C编译器:ARMCC ASM编译器:ARMASM 连机器:ARMLINK 实时内核:UC/OS-II 2.9实时操作系统 GUI内核:uC/GUI 3.9图形用户接口 底层驱动:各个外设驱动程序 数字示波器功能: 波形发生器:使用STM32一路DA实现正弦,三角波,方波,白噪声输出。 任意一种波形幅值在0-3.3V任意可调、频率在一定范围任意可调、方波占空比可调。调节选项可以通过触摸屏完成设置。 SD卡存储: SD卡波形存储输出,能够对当前屏幕截屏,以JPG格式存储在SD卡上。能够存储1S内的波形数据,可以随时调用查看。 数据传输:用C#编写上位机,通过串口完成对下位机的控制。(1)实现STOP/RUN功能(2)输出波形电压、时间参数(3)控制截屏(4)控制波形发生器(5)控制完成FFT(6)波形的存储和显示 图形接口: UCGUI 水平扫速: 250 ns*、500ns、1μs、5 μs、10μs、50μs、500 μs、5ms 、50ms 垂直电压灵敏度:10mV/div, 20mV/div, 50mV/div, 0.1V/div, 0,2V/div, 0.5V/div, 1V/div,2V/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值