⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 cclienttype.cls

📁 一个客户系统,VB+SQL,其中有客户类型分类
💻 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 + -