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

📄 carproject.cls

📁 汽车维修管理软件。其中包含三个编辑控件。
💻 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 = "CarProject"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
Attribute VB_Ext_KEY = "SavedWithClassBuilder6" ,"Yes"
Attribute VB_Ext_KEY = "Top_Level" ,"Yes"
'保持属性值的局部变量
Private mvarWorkId As Long
Private mvarCarCode As String '局部复制
Private mvarCarType As String '局部复制
Private mvarCompany As String '局部复制
Private mvarPhone As String '局部复制
Private mvarStartDate As Date '局部复制
Private mvarEndDate As Date '局部复制
Private mvarEmpId As Long '局部复制
Private m_RepairSum As Double
Private m_InventorySum As Double
Private m_EndFlag As Boolean
Private mfiIsDirty As Boolean
Private m_Conn As ADODB.Connection
Public Property Let EmpId(ByVal vData As Long)
If vData < 0 Then Exit Property
mvarEmpId = vData
mfiIsDirty = True
End Property
Public Property Get EmpId() As Long
    EmpId = mvarEmpId
End Property
Public Property Let EndDate(ByRef vData As Date)
If mvarStartDate <> 0 Then
   If mvarStartDate > vData Then
   MsgBox "开始日期不能大于结束时间", vbCritical Or vbOKOnly, "错误"
   Exit Property
   End If
End If
mvarEndDate = vData
mfiIsDirty = True
End Property
Public Property Get EndDate() As Date
     EndDate = mvarEndDate
End Property
Public Property Let StartDate(ByRef vData As Date)
If mvarEndDate <> 0 Then
   If mvarEndDate < vData Then
      
          MsgBox "开始日期不能大于结束时间", vbCritical Or vbOKOnly, "错误"
          Exit Property
      
   End If
End If
mvarStartDate = vData
mfiIsDirty = True
End Property
Public Property Get StartDate() As Date
   StartDate = mvarStartDate
End Property
Public Property Let Phone(ByRef vData As String)
If Len(vData) > 20 Then Exit Property
mvarPhone = vData
mfiIsDirty = True
End Property
Public Property Get Phone() As String
Phone = mvarPhone
End Property
Public Property Let Company(ByRef vData As String)
If Len(vData) > 50 Then Exit Property
mvarCompany = vData
mfiIsDirty = True
End Property
Public Property Get Company() As String
 Company = mvarCompany
End Property
Public Property Let CarType(ByRef vData As String)
If Len(vData) > 20 Then Exit Property
mvarCarType = vData
mfiIsDirty = True
End Property
Public Property Get CarType() As String
CarType = mvarCarType
End Property
Public Property Let CarCode(ByRef vData As String)
If Len(vData) > 20 Then Exit Property
mvarCarCode = vData
mfiIsDirty = True
End Property
Public Property Get CarCode() As String
CarCode = mvarCarCode
End Property
Public Property Get WorkHeadId() As Long
WorkHeadId = mvarWorkId
End Property
Public Function FindProject(ByRef SQLCom As String) As Boolean
Dim re As ADODB.Recordset
If m_Conn Is Nothing Then
   FindProject = False
   Exit Function
End If
Set re = m_Conn.Execute("SELECT * FROM WorkMain WHERE " & SQLCom)
If Not (re.BOF And re.EOF) Then
   mvarWorkId = re.Fields(0).Value
   mvarCarCode = re.Fields(1).Value
   mvarCarType = re.Fields(2).Value
   mvarCompany = re.Fields(3).Value
   mvarPhone = re.Fields(4).Value
   mvarStartDate = re.Fields(5).Value
   mvarEndDate = re.Fields(6).Value
   mvarEmpId = re.Fields(7).Value
   m_RepairSum = re.Fields(8).Value
   m_InventorySum = re.Fields(9).Value
   m_EndFlag = re.Fields(10).Value
   FindProject = True
Else
   FindProject = False
End If
Set re = Nothing
End Function

Private Sub Class_Initialize()
ClearPrivateDate
End Sub
Public Sub ClearPrivateDate()
mvarWorkId = -1
mvarCarCode = vbNullString
mvarCarType = vbNullString
mvarCompany = vbNullString
mvarPhone = vbNullString
mvarStartDate = Date
mvarEndDate = Date
mvarEmpId = -1
m_RepairSum = 0
m_InventorySum = 0
m_EndFlag = False
mfiIsDirty = False
Set m_Conn = Nothing
End Sub
Public Function AddSave() As Boolean
Dim re As ADODB.Recordset
Dim com As ADODB.Command
If m_Conn Is Nothing And m_Conn.State = adStateClosed Then
   AddSave = False
   Exit Function
End If
If mfiIsDirty Then
   If (Len(mvarCarCode) > 0) And (mvarStartDate > 0) And (mvarEndDate > 0) And (mvarEmpId > 0) _
           Then
           Dim UpDateCom As String
           Set com = New ADODB.Command
           com.ActiveConnection = m_Conn
           com.CommandType = adCmdText
           Dim InsertCom As String
           InsertCom = "INSERT INTO WorkMain (CarCode,CarType,Company,Phone,StartDate,EndDate,EmpId,RepairSum,InventorySum) VALUES ('" _
                        & mvarCarCode & "','" & mvarCarType & "','" & mvarCompany & "','" & mvarPhone & "','" _
                        & FormatDateTime(mvarStartDate, vbShortDate) & "','" & FormatDateTime(mvarEndDate, vbShortDate) & "'," & mvarEmpId & _
                        "," & CStr(m_RepairSum) & "," & CStr(m_InventorySum) & ")"
'           MsgBox InsertCom
           com.CommandText = InsertCom
           com.Execute , , adExecuteNoRecords
           Set re = m_Conn.Execute("SELECT MAX(AutoId) FROM WorkMain")
           mvarWorkId = re.Fields(0).Value
'           MsgBox mvarWorkId
           AddSave = True
           Set com = Nothing
    End If
End If
Exit Function
AddSaveErr:
AddSave = False
MsgBox "数据增加错误", vbCritical Or vbOKOnly, "错误"
End Function
Public Function EditSave() As Boolean
Dim com As ADODB.Command
'Dim re As ADODB.Recordset
On Error GoTo EditSaveErr
If m_Conn Is Nothing And m_Conn.State = adStateClosed Then
   EditSave = False
   Exit Function
End If
If mfiIsDirty And mvarWorkId > 0 Then
   If (Len(mvarCarCode) > 0) And (mvarStartDate > 0) And (mvarEndDate > 0) And (mvarEmpId > 0) _
           Then
       Dim UpDateCom As String
       Set com = New ADODB.Command
       com.ActiveConnection = m_Conn
       com.CommandType = adCmdText
       UpDateCom = "UPDATE WorkMain SET CarCode='"
       UpDateCom = UpDateCom & mvarCarCode & "',CarType='" & mvarCarType & "',Company='" & mvarCompany _
                   & "',Phone='" & mvarPhone & "',StartDate='" & FormatDateTime(mvarStartDate, vbShortDate) _
                   & "',EndDate='" & FormatDateTime(mvarEndDate, vbShortDate) & "',EmpId=" & CStr(mvarEmpId) _
                   & ",RepairSum=" & CStr(m_RepairSum) & ",InventorySum=" & CStr(m_InventorySum) _
                   & " WHERE AutoId=" & mvarWorkId
       com.CommandText = UpDateCom
'       MsgBox UpDateCom
      com.Execute , , adExecuteNoRecords

       EditSave = True
       Set com = Nothing
   End If
End If
Exit Function
EditSaveErr:
EditSave = False
MsgBox "数据修改错误", vbCritical Or vbOKOnly, "错误"
End Function

Public Property Get ActiveConnection() As ADODB.Connection
Set ActiveConnection = m_Conn
End Property

Public Property Set ActiveConnection(ByRef vNewValue As ADODB.Connection)
If vNewValue Is Nothing Then Exit Property
Set m_Conn = vNewValue
End Property
Public Property Let RepairSum(ByRef vData As Double)
If vData < 0 Then Exit Property
m_RepairSum = vData
mfiIsDirty = True
End Property
Public Property Get RepairSum() As Double
    RepairSum = m_RepairSum
End Property
'm_InventorySum
Public Property Let InventorySum(ByRef vData As Double)
If vData < 0 Then Exit Property
m_InventorySum = vData
mfiIsDirty = True
End Property
Public Property Get InventorySum() As Double
    InventorySum = m_InventorySum
End Property
Public Property Get EndFlag() As Boolean
EndFlag = m_EndFlag
End Property
Public Function SetWorkEnd() As Boolean
Dim comm As ADODB.Command
If mvarWorkId <= 0 Then
   GoTo SetEndErr
Else
   On Error GoTo SetEndErr
   Set comm = New ADODB.Command
   comm.CommandType = adCmdText
   comm.CommandText = "UPDATE WorkMain SET EndFlag=TRUE WHERE AutoId=" & CStr(mvarWorkId)
   comm.ActiveConnection = m_Conn
   comm.Execute , , adExecuteNoRecords
   m_EndFlag = True
   SetWorkEnd = True
   Set comm = Nothing
   Exit Function
End If
SetEndErr:
   SetWorkEnd = False
End Function
Public Function ResetWorkEnd() As Boolean
Dim comm As ADODB.Command
If mvarWorkId <= 0 Then
   GoTo ResetEndErr
Else
   On Error GoTo ResetEndErr
   Set comm = New ADODB.Command
   comm.CommandType = adCmdText
   comm.CommandText = "UPDATE WorkMain SET EndFlag=FALSE WHERE AutoId=" & CStr(mvarWorkId)
   comm.ActiveConnection = m_Conn
   comm.Execute , , adExecuteNoRecords
   m_EndFlag = False
   ResetWorkEnd = True
   Set comm = Nothing
   Exit Function
End If
ResetEndErr:
   ResetWorkEnd = False
End Function

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -