📄 clientproject.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 = ClientProject
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit
Implements COMEXDataSourceSingle
Private m_Fields()
Public Event OnRecordSaved(byRef aClientProject As ClientProject)
Public Event OnRecordMarkForDelete(byRef aClientProject As ClientProject)
Public Event OnDirty(byVal IsDirty As Boolean)
Public Event OnRecordLoad(byRef aClientProject As ClientProject)
Private WithEvents mobjValid As BrokenRules
Event Valid(ByVal IsValid As Boolean)
Private m_ClientID As Long
Private m_CompanyName As String
Private m_EmployeeID As Long
Private m_FirstName As String
Private m_LastName As String
Private m_ProjectDescription As String
Private m_ProjectEndDate As Variant
Private m_ProjectID As Long
Private m_ProjectName As String
Private m_ProjectTotalBillingEstimate As Currency
Private m_PurchaseOrderNumber As String
Private m_ProjectBeginDate As Date
Private m_OldProjectID As Long
Private m_IsNew As Boolean
Private m_IsDirty As Boolean
Private m_IsDeleted As Boolean
Private m_ProjTimeCardHours As ProjTimeCardHours
Private m_ProjTimeCardExpenses As ProjTimeCardExpenses
Private m_Payments As Payments
Friend Property Let IsNew(Byval vData As boolean)
m_IsNew = vData
End Property
Public Property Get IsNew() As Boolean
IsNew = m_IsNew
End Property
Friend Property Let IsDirty(Byval vData As boolean)
m_IsDirty = vData
RaiseEvent OnDirty(vData)
End Property
Public Property Get IsDirty() As Boolean
IsDirty = m_IsDirty
End Property
Friend Property Let IsDeleted(Byval vData As boolean)
m_IsDeleted = vData
RaiseEvent OnRecordMarkForDelete(Me)
End Property
Public Property Get IsDeleted() As Boolean
IsDeleted = m_IsDeleted
End Property
Public Property Get IsValid() As Boolean
IsValid = (mobjValid.Count = 0)
End Property
Private Sub mobjValid_BrokenRule()
RaiseEvent Valid(False)
End Sub
Private Sub mobjValid_NoBrokenRules()
RaiseEvent Valid(True)
End Sub
'******************************************************************************
'Begin property get/let/set *
'******************************************************************************
Friend Property Let OldProjectID(vData As Long)
m_OldProjectID = vData
End Property
Public Property Let ClientID (vData As Long)
m_ClientID = vData
mobjValid.RuleBroken "ClientID", False
IsDirty = True
End Property
Public Property Get ClientID() As Long
ClientID = m_ClientID
End Property
Public Property Get ClientIDIncludeLookup() As String
ClientIDIncludeLookup = m_ClientID & vbtab & CompanyName
End Property
Friend Property Let ClientIDIncludeLookup(byval vData As string)
On Error Resume Next
Dim strFields() As string
strFields = split(vData, vbtab)
ClientID = strFields(0)
m_CompanyName = strFields(1)
End Property
Friend Property Let CompanyName(vData As String)
m_CompanyName = vData
End Property
Public Property Get CompanyName() As String
CompanyName = m_CompanyName
End Property
Public Property Let EmployeeID (vData As Long)
m_EmployeeID = vData
IsDirty = True
End Property
Public Property Get EmployeeID() As Long
EmployeeID = m_EmployeeID
End Property
Public Property Get EmployeeIDIncludeLookup() As String
EmployeeIDIncludeLookup = m_EmployeeID & vbtab & FirstName & vbtab & LastName
End Property
Friend Property Let EmployeeIDIncludeLookup(byval vData As string)
On Error Resume Next
Dim strFields() As string
strFields = split(vData, vbtab)
EmployeeID = strFields(0)
m_FirstName = strFields(1)
m_LastName = strFields(2)
End Property
Friend Property Let FirstName(vData As String)
m_FirstName = vData
End Property
Public Property Get FirstName() As String
FirstName = m_FirstName
End Property
Friend Property Let LastName(vData As String)
m_LastName = vData
End Property
Public Property Get LastName() As String
LastName = m_LastName
End Property
Public Property Let ProjectDescription (vData As String)
m_ProjectDescription = vData
IsDirty = True
End Property
Public Property Get ProjectDescription() As String
ProjectDescription = m_ProjectDescription
End Property
Public Property Let ProjectEndDate (vData As Variant)
m_ProjectEndDate = vData
IsDirty = True
End Property
Public Property Get ProjectEndDate() As Variant
ProjectEndDate = m_ProjectEndDate
End Property
Public Property Let ProjectID (vData As Long)
m_ProjectID = vData
IsDirty = True
End Property
Public Property Get ProjectID() As Long
ProjectID = m_ProjectID
End Property
Public Property Let ProjectName (vData As String)
m_ProjectName = vData
IsDirty = True
End Property
Public Property Get ProjectName() As String
ProjectName = m_ProjectName
End Property
Public Property Let ProjectTotalBillingEstimate (vData As Currency)
m_ProjectTotalBillingEstimate = vData
IsDirty = True
End Property
Public Property Get ProjectTotalBillingEstimate() As Currency
ProjectTotalBillingEstimate = m_ProjectTotalBillingEstimate
End Property
Public Property Let PurchaseOrderNumber (vData As String)
m_PurchaseOrderNumber = vData
IsDirty = True
End Property
Public Property Get PurchaseOrderNumber() As String
PurchaseOrderNumber = m_PurchaseOrderNumber
End Property
Public Property Let ProjectBeginDate (vData As Date)
m_ProjectBeginDate = vData
mobjValid.RuleBroken "ProjectBeginDate", False
IsDirty = True
End Property
Public Property Get ProjectBeginDate() As Date
ProjectBeginDate = m_ProjectBeginDate
End Property
Public Property Set ProjTimeCardHours(vData As ProjTimeCardHours)
Set m_ProjTimeCardHours = vData
End Property
Public Property Get ProjTimeCardHours() As ProjTimeCardHours
Set ProjTimeCardHours = m_ProjTimeCardHours
End Property
Public Property Set ProjTimeCardExpenses(vData As ProjTimeCardExpenses)
Set m_ProjTimeCardExpenses = vData
End Property
Public Property Get ProjTimeCardExpenses() As ProjTimeCardExpenses
Set ProjTimeCardExpenses = m_ProjTimeCardExpenses
End Property
Public Property Set Payments(vData As Payments)
Set m_Payments = vData
End Property
Public Property Get Payments() As Payments
Set Payments = m_Payments
End Property
'******************************************************************************
'End property get/let/set *
'******************************************************************************
'******************************************************************************
'* *
'* Name: Clear *
'* *
'* Purpose: Reset this object and initialize data to default. *
'* *
'******************************************************************************
Public Sub Clear()
m_IsNew = True
m_IsDirty = False
m_IsDeleted = False
m_ClientID = 0
m_EmployeeID = 0
m_ProjectDescription = vbnullstring
m_ProjectEndDate = Null
m_ProjectID = 0
m_ProjectName = vbnullstring
m_ProjectTotalBillingEstimate = 0
m_PurchaseOrderNumber = vbnullstring
m_ProjectBeginDate = "12:00:00AM"
Set m_ProjTimeCardHours = Nothing
Set m_ProjTimeCardHours = New ProjTimeCardHours
Set m_ProjTimeCardExpenses = Nothing
Set m_ProjTimeCardExpenses = New ProjTimeCardExpenses
Set m_Payments = Nothing
Set m_Payments = New Payments
Set mobjValid = New BrokenRules
ReSetBrokenRule True
End Sub
Public Sub ReSetBrokenRule(byval BrokenAll As boolean)
Dim vProjTimeCardHour As ProjTimeCardHour
For Each vProjTimeCardHour In m_ProjTimeCardHours
vProjTimeCardHour.ReSetBrokenRule BrokenAll
Next
Dim vProjTimeCardExpense As ProjTimeCardExpense
For Each vProjTimeCardExpense In m_ProjTimeCardExpenses
vProjTimeCardExpense.ReSetBrokenRule BrokenAll
Next
Dim vPayment As Payment
For Each vPayment In m_Payments
vPayment.ReSetBrokenRule BrokenAll
Next
mobjValid.RuleBroken "ClientID", BrokenAll
mobjValid.RuleBroken "ProjectBeginDate", BrokenAll
End Sub
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -