📄 orderlist.cls
字号:
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
Persistable = 0 'NotPersistable
DataBindingBehavior = 0 'vbNone
DataSourceBehavior = 0 'vbNone
MTSTransactionMode = 0 'NotAnMTSObject
END
Attribute VB_Name = "OrderList"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
'1 ListId number 房间登记编号,作为表OrderList的主键
'2 OrderId number 预定编号
'3 RoomNo varchar2 10 客房编号
'4 InDate date 计划入住日期
'5 Days number 入住天数
'6 Price number 预定单价
'7 Rate number 预定折扣
'8 OtherFee number 其他收费金额
'9 Memo varchar2 2000 其他说明
Public ListId As Integer
Public OrderId As Integer
Public RoomNo As String
Public InDate As String
Public Days As Integer
Public Price As Long
Public Rate As Single
Public OtherFee As Single
Public Memo As String
Public Sub Init()
ListId = 0
OrderId = 0
RoomNo = ""
InDate = ""
Days = 0
Price = 0
Rate = 0
OtherFee = 0
Memo = ""
End Sub
'取得入住客房详细信息,由于入住编号唯一对应一个入住客房信息,所以使用入住编号为查询条件
Public Function GetInfo(ByVal TmpId As Long) As Boolean
Dim rs As New ADODB.Recordset
If TmpId <= 0 Then
Init
GetInfo = False
Exit Function
End If
'设置SELECT语句
SqlStmt = "SELECT * FROM OrderList WHERE OrderId=" + Trim(TmpId)
'将结果集读取到rs中
Set rs = QueryExt(SqlStmt)
If rs.EOF = True Then
'如果结果集为空,则初始化
Init
GetInfo = False
Else
'将结果集中的数据赋值到成员变量中
ListId = rs.Fields(0)
OrderId = rs.Fields(1)
RoomNo = rs.Fields(2)
InDate = rs.Fields(3)
If IsNull(rs.Fields(4)) Then
Days = 0
Else
Days = rs.Fields(4)
End If
If IsNull(rs.Fields(5)) Then
Price = 0
Else
Price = rs.Fields(5)
End If
If IsNull(rs.Fields(6)) Then
Rate = 0
Else
Rate = rs.Fields(6)
End If
If IsNull(rs.Fields(7)) Then
OtherFee = 0
Else
OtherFee = rs.Fields(7)
End If
If IsNull(rs.Fields(8)) Then
Memo = ""
Else
Memo = rs.Fields(8)
End If
GetInfo = True
End If
End Function
'根据列表编号取得预定客房的详细信息
Public Function GetInfoByListId(ByVal TmpId As Long) As Boolean
Dim rs As New ADODB.Recordset
If TmpId <= 0 Then
Init
GetInfoByListId = False
Exit Function
End If
'设置SELECT语句
SqlStmt = "SELECT * FROM OrderList WHERE ListId=" + Trim(TmpId)
'将结果集读取到rs中
Set rs = QueryExt(SqlStmt)
If rs.EOF = True Then
'如果结果集为空,则初始化
Init
GetInfoByListId = False
Else
'将结果集中的数据赋值到成员变量中
ListId = rs.Fields(0)
OrderId = rs.Fields(1)
RoomNo = rs.Fields(2)
InDate = rs.Fields(3)
If IsNull(rs.Fields(4)) Then
Days = 0
Else
Days = rs.Fields(4)
End If
If IsNull(rs.Fields(5)) Then
Price = 0
Else
Price = rs.Fields(5)
End If
If IsNull(rs.Fields(6)) Then
Rate = 0
Else
Rate = rs.Fields(6)
End If
If IsNull(rs.Fields(7)) Then
OtherFee = 0
Else
OtherFee = rs.Fields(7)
End If
If IsNull(rs.Fields(8)) Then
Memo = ""
Else
Memo = rs.Fields(8)
End If
GetInfoByListId = True
End If
End Function
'删除单个预定信息
Public Sub Delete(ByVal TmpId As Long)
SqlStmt = "DELETE FROM OrderList WHERE ListId=" + Trim(TmpId)
SQLExt (SqlStmt)
End Sub
'取消预定时删除此预定编号下的所有记录
Public Sub DeleteByOrderId(ByVal TmpOid As Long)
SqlStmt = "DELETE FROM OrderList WHERE OrderId=" + Trim(TmpOid)
SQLExt (SqlStmt)
End Sub
'插入新的预定记录
Public Sub Insert()
SqlStmt = "INSERT INTO OrderList VALUES(ListId.NextVal," _
+ Trim(OrderId) + ",'" + Trim(RoomNo) + "', TO_DATE('" _
+ Trim(InDate) + "', 'yyyy-mm-dd')," + Trim(Days) _
+ "," + Trim(Price) + "," + Trim(Rate) + "," + Trim(OtherFee) _
+ ",'" + Trim(Memo) + "')"
SQLExt (SqlStmt)
End Sub
'取得一个预定编号中预定的房间数
Public Function GetRoomNum(ByVal TmpOid As Long) As Integer
Dim rs As New ADODB.Recordset
'设置SELECT语句
SqlStmt = "SELECT Count(*) FROM OrderList WHERE OrderId= " + Trim(TmpOid)
'将结果集读取到rs中
Set rs = QueryExt(SqlStmt)
If rs.EOF = True Then
GetRoomNum = 0
Else
GetRoomNum = rs.Fields(0)
End If
End Function
'取得一个预定编号中预定房间总金额
Public Function SumAmount(ByVal TmpOid As Long) As Integer
Dim rs As New ADODB.Recordset
'设置SELECT语句
SqlStmt = "SELECT Sum(Round(Price*Rate*Days/100,0)+OtherFee) FROM OrderList" _
+ " WHERE OrderId= " + Trim(TmpOid)
'将结果集读取到rs中
Set rs = QueryExt(SqlStmt)
If rs.EOF = True Then
SumAmount = 0
Else
SumAmount = rs.Fields(0)
End If
End Function
'更新登记信息
Public Sub Update(ByVal TmpId As Long)
SqlStmt = "UPDATE OrderList SET RoomNo='" + Trim(RoomNo) + "', InDate=" _
+ "TO_DATE('" + Trim(InDate) + "', 'yyyy-mm-dd'), Days=" + Trim(Days) _
+ ", Price=" + Trim(Price) + ", Rate=" + Trim(Rate) + ", OtherFee=" _
+ Trim(OtherFee) + ", Memo='" + Trim(Memo) + "' WHERE ListId=" + Trim(TmpId)
SQLExt (SqlStmt)
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -