📄 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 + -