-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathclsTrackerFieldModel.cls
More file actions
101 lines (84 loc) · 3.24 KB
/
clsTrackerFieldModel.cls
File metadata and controls
101 lines (84 loc) · 3.24 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "clsTrackerFieldModel"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
'---------------------------------------------------------------------------------------
' Module : clsTrackerFieldModel
' Author : tian.a.liu
' Date : 3/31/2017 16:50
' Version : 0.0.1
' Purpose : Tracker field model
'---------------------------------------------------------------------------------------
Option Explicit
Private m_objVisibleRange As Range
Private m_boolVisible As Boolean
Private m_intIndex As Integer
Private m_boolEnableUpdate As Boolean
Private m_boolRequired As Boolean
Private m_strQueryItems As String
Private m_objFiledModel As clsDBFieldModel
Private m_strFieldColume As Long
Private m_strFieldColumeA As String
Private m_intOrderNumber As Integer
Private m_strOrderDirection As String
Public Property Get VisibleRange() As Range
Set VisibleRange = m_objVisibleRange
End Property
Public Property Get Visible() As Boolean
Visible = m_boolVisible
End Property
Public Property Get Index() As Integer
Index = m_intIndex
End Property
Public Property Get EnableUpdate() As Boolean
EnableUpdate = m_boolEnableUpdate
End Property
Public Property Get Required() As Boolean
Required = m_boolRequired
End Property
Public Property Get QueryItems() As String
QueryItems = m_strQueryItems
End Property
Public Property Get FieldModel() As clsDBFieldModel
Set FieldModel = m_objFiledModel
End Property
Public Property Get FieldColume() As Long
FieldColume = m_strFieldColume
End Property
Public Property Get FieldColumeA() As String
FieldColumeA = m_strFieldColumeA
End Property
Public Property Get OrderNumber() As Integer
OrderNumber = m_intOrderNumber
End Property
Public Property Get OrderDirection() As String
OrderDirection = m_strOrderDirection
End Property
Public Sub Bind(ByVal Index As Long, ByVal objVisibleRange As Range, ByVal objFieldRange As Range)
Set objVisibleRange = objVisibleRange
m_strFieldColume = Index 'objFieldColumeRange.Value
If Index > 0 Then m_strFieldColumeA = Split(objVisibleRange.Worksheet.Cells(1, m_strFieldColume).Address, "$")(1)
m_boolVisible = IIf(Trim(objVisibleRange.Value & "" <> ""), True, False)
m_intIndex = Val(objVisibleRange.Value & "")
m_boolEnableUpdate = IIf(Trim(objVisibleRange.Offset(0, 1).Value & "" <> ""), True, False)
m_boolRequired = IIf(Trim(objVisibleRange.Offset(0, 2).Value & "" <> ""), True, False)
m_strQueryItems = objVisibleRange.Offset(0, 3).Value
If objVisibleRange.Offset(0, 4).Value & "" <> "" Then
Dim aryOrder() As String
aryOrder = Split(objVisibleRange.Offset(0, 4).Value, ",")
If UBound(aryOrder) > 0 Then
m_intOrderNumber = Val(aryOrder(0))
m_strOrderDirection = aryOrder(1)
Else
m_intOrderNumber = Val(objVisibleRange.Offset(0, 4).Value)
m_strOrderDirection = "ASC"
End If
End If
Set m_objFiledModel = New clsDBFieldModel
Call m_objFiledModel.Bind(objFieldRange)
End Sub