?? cclienttype.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 = "CType"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit
Private mvarTypeName As String '類型名稱
Private mvarID As Long '類型Id
Private mvarSuperID As Long '上級Id
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'以下為客戶類型的屬性
'上級客戶類型ID
Public Property Let SuperID(ByVal vData As Long)
mvarSuperID = vData
End Property
Public Property Get SuperID() As Long
SuperID = mvarSuperID
End Property
'本客戶類型的ID
Public Property Let ID(ByVal vData As Long)
mvarID = vData
End Property
Public Property Get ID() As Long
ID = mvarID
End Property
'本客戶類型的名稱
Public Property Let TypeName(ByVal vData As String)
vData = Trim(vData) '去除兩邊的空格
'控制名稱的長度不可大于50
If Len(vData) > 50 Then vData = Left(vData, 50)
mvarTypeName = vData
End Property
Public Property Get TypeName() As String
TypeName = mvarTypeName
End Property
'屬性結束
''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''''
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
'以下為方法
'新增一個客戶類型,并返回操作的結果
Public Function AddNew(Optional strName As String = "", _
Optional lngSuperID As Long = -1) As gxcAddNew
'根據傳入的參數更新屬性值
'檢測客戶類型是否已經存在
If ExistByName("ClientType", "TypeName", strName) Then
AddNew = DuplicateName_AddNew
Exit Function
End If
'檢測上級客戶類型是否存在
If lngSuperID <> 0 Then
If ExistByID("ClientType", "TypeId", lngSuperID) = False Then
AddNew = SuperNotExist
Exit Function
End If
End If
'如果參數被傳入,則以傳入的參數更新屬性
If strName <> "" Then Me.TypeName = strName
If lngSuperID <> -1 Then Me.SuperID = lngSuperID '上級客戶類型的ID
Dim strSQL As String
Dim ErrMsg As String
strSQL = "INSERT INTO ClientType(SuperId, TypeName) "
strSQL = strSQL & " VALUES(" & lngSuperID
strSQL = strSQL & ",'" & strName & "'"
strSQL = strSQL & ")"
If RunSql(strSQL, ErrMsg) Then
Me.ID = MaxID("ClientType", "TypeId")
AddNew = AddNewOK
Else
AddNew = AddNewFail
End If
End Function
'修改客戶類型信息,返回操作結果
Public Function Update() As gxcUpdate
'通過ID判斷是否存在該記錄,即該記錄是否被其它客戶端刪除
'如果不存在該記錄,則返回相應的操作結果給調用者
If Not ExistByID("ClientType", "TypeId", Me.ID) Then
Update = RecordNotExist
Exit Function
End If
'通過名稱判斷是否存在相同名稱的記錄,如果存在相同的名稱,
'則返回調用者“存在相同名稱”的信息
If ExistByName("ClientType", "TypeName", Me.TypeName) Then
Update = DuplicateName_Update
Exit Function
End If
' On Error Resume Next
Dim strSQL As String
'構造SQL語句,注意需調用RealString函數去除字符串中的單引號
strSQL = "Update ClientType Set TypeName='" & RealString(Me.TypeName) & "',"
strSQL = strSQL & "SuperID=" & Me.SuperID
strSQL = strSQL & " where TypeId=" & Me.ID
g_Conn.Execute strSQL '執行SQL語句
'根據是否出錯,返回給調用者相應的信息
If Err.Number = 0 Then
Update = UpdateOK
Else
Update = UpdateFail
End If
End Function
'刪除一個客戶類型
Public Function Delete(Optional ByVal lngID As Long = 0) As gxcDelete
'如果調用該函數時傳入了ID,則更新該對象的ID
If lngID <> 0 Then Me.ID = lngID
'如果該客戶類型下面有客戶,則也不能刪除
If ExistByID("ClientInfo", "TypeID", Me.ID) Then
Delete = DeleteClientExists
Exit Function
End If
'如果該客戶類型下有子客戶類型,則不能刪除
If ExistByID("ClientType", "SuperID", Me.ID) Then
Delete = DeleteSubExists
Exit Function
End If
On Error Resume Next
'執行刪除操作并返回操作結果
g_Conn.Execute "Delete from ClientType where TypeId=" & Me.ID
Delete = IIf(Err.Number = 0, DeleteOK, DeleteFail)
End Function
'得到本客戶類型的所有員工
Public Function Clients() As CClients
Dim objClients As New CClients
'調用CType類的Find方法,只傳第三個參數,即“客戶類型ID”
Set Clients = objClients.Find(, , Me.ID)
End Function
'得到本客戶類型的所有子客戶類型
Public Function SubTypes() As CTypes
Dim objTypes As New CTypes
'調用cTypes的Find方法,通過上級客戶類型的ID查找
Set SubTypes = objTypes.Find(, Me.ID)
End Function
'得到本客戶類型的上級客戶類型,以對象返回
Public Function SuperType() As CType
Dim objTypes As New CTypes
'調用cTypes的Find方法,將該類的“SuperID”作為查找條件
'從而查找出其上級客戶類型
objTypes.Find Me.SuperID
If objTypes.Count > 0 Then Set SuperType = objTypes.Item(1)
End Function
'方法結束
'''''''''''''''''''''''''''''''''''''''''''''''''''''''
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -