-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathVMForceExtraction.cls
825 lines (680 loc) · 26 KB
/
VMForceExtraction.cls
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
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
VERSION 1.0 CLASS
BEGIN
MultiUse = -1 'True
END
Attribute VB_Name = "VMForceExtraction"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = False
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = False
'@Folder "Userform.ForceExtraction"
Option Explicit
Implements INotifyPropertyChanged
Private Notification As New PropertyChangeNotification
Private genFunc As clsGeneralFunctions
Private ds_sys As DataSheetSystem
Private dsManager As DataSheetManager
Private console As New Debugger
'Path for the Properties
'Properties
Private msLcAll() As String, msMemberNamesAll() As String, msSectionsAll() As String 'for use in Userform
Private msLcSelect() As String, msMemberNamesSelect() As String, msSectionsSelect() As String 'for use in Userform
Private msLcExcl() As String, msMemberNamesExcl() As String, msSectionsExcl() As String
Private mGroupBy As String ', mbIsBySec As Boolean 'true = by section, false = by member
Private mGroupByNodeOrConnType As String
Private mPosFilterType As PositionFilterType, mdblPosFilterVal As Double, mPosFilterTypeStr As String
Private mbIsEnvMaxMin As Boolean, mbIsEachLC As Boolean, mbIsEachPos As Boolean
Private mbExtremeCase() As Boolean
Private mbMaxMinEnv() As Boolean
Private mWsSum As Worksheet, msWsList() As String
Private msConnTypeAll() As String, msConnTypeSelect() As String, msConnTypeExcl() As String
Private msNodeAll() As String, msNodeSelect() As String, msNodeExcl() As String
'Command
Private Commands As New Collection
'Private mSwitchUFValueCommand As New SwitchUFValueCommand
'Information to be obtained from the Userform
Private mbIsShownUF As Boolean, mbIsLoadLastSaveVerified As Boolean
Private mbIsAbleLoadLastSave As Boolean, msWarningMsg As String
'Default Value of some variables
Private mOperName As String
Private defaultIsBySec As Boolean
Private Sub OnPropertyChanged(ByVal Name As String)
INotifyPropertyChanged_OnPropertyChanged Me, Name
End Sub
Private Sub INotifyPropertyChanged_OnPropertyChanged(ByVal Source As Object, ByVal Name As String)
Notification.Notify Source, Name
End Sub
Private Sub INotifyPropertyChanged_RegisterHandler(ByVal handler As IHandlePropertyChanged)
Notification.AddHandler handler
End Sub
Public Sub RegisterCommand(ByVal cmd As ICommand)
Commands.Add cmd
End Sub
Public Function CountCommands() As Integer
CountCommands = Commands.count
End Function
Public Sub Initialize(operName As String)
mOperName = operName
Dim ret As Integer
ret = LoadLastSaveVal
If Not ret = 0 Then LoadDefaultVal
End Sub
Private Sub Class_Initialize()
Dim ds_frm As oDataSheet
Dim ds_frmForce As oDataSheet
Dim ds_member As oDataSheet
Dim dsJt As oDataSheet, dsConnType As oDataSheet
Set genFunc = New clsGeneralFunctions
'Set pModel = New clsStrModel
Set dsManager = New DataSheetManager
Set ds_frm = dsManager.DSFrameData
Set ds_frmForce = dsManager.DSFrameForce
Set ds_member = dsManager.DSMemberData
Set ds_sys = New DataSheetSystem
Set dsJt = dsManager.DSJointCoor
Set dsConnType = dsManager.DSConnectionType
Dim df As clsDataFrame
Set df = ds_frm.GetDataframe(ds_frm.tagSelector.section)
msSectionsAll = genFunc.CStr_arr(genFunc.DeDupeOneDimArray(df.iColumn(1)))
Set df = ds_member.GetDataframe(ds_member.tagSelector.memID)
msMemberNamesAll = genFunc.CStr_arr(genFunc.ChangeArrBase(df.iColumn(1), 0))
Set df = ds_frmForce.GetDataframe(ds_frmForce.tagSelector.loadComb)
msLcAll = genFunc.CStr_arr(genFunc.DeDupeOneDimArray(df.iColumn(1)))
Set df = dsJt.GetDataframe(dsJt.tagSelector.ID)
msNodeAll = genFunc.CStr_arr(genFunc.ChangeArrBase(df.iColumn(1), 0))
Set df = dsConnType.GetDataframe(dsConnType.tagSelector.connID)
If df.isInitialized Then msConnTypeAll = genFunc.CStr_arr(genFunc.ChangeArrBase(df.iColumn(1), 0))
ReDim mbExtremeCase(11)
ReDim mbMaxMinEnv(5)
msWsList = GetSummmarySheetsName
'Set mWsSum = ActiveSheet
' Set mSwitchUFValueCommand = New SwitchUFValueCommand
' Set mSwitchUFValueCommand = mSwitchUFValueCommand.Create(Me)
End Sub
Public Sub LoadDefaultVal()
g_log.WriteLogInDetailMode "Loading Default Value of the Userform..."
Dim i As Integer, str() As String
If mWsSum Is Nothing Then Set Me.wsSum = ActiveSheet
Me.lc = msLcAll
Me.MemberNames = genFunc.CStr_arr(genFunc.SortArray(msMemberNamesAll))
Me.sections = genFunc.CStr_arr(genFunc.SortArray(msSectionsAll))
Me.connTypes = genFunc.CStr_arr(genFunc.SortArray(msConnTypeAll))
Me.Nodes = genFunc.CStr_arr(genFunc.SortArray(msNodeAll))
'Erase Me.lcExcl
'Erase Me.MemberNamesExcl
'Erase Me.SectionsExcl
Me.lcExcl = str
Me.MemberNamesExcl = str
Me.SectionsExcl = str
Me.ConnTypesExcl = str
Me.NodesExcl = str
'set me.lcExcl=
mPosFilterType = NoFilter
mdblPosFilterVal = -1
Me.IsBySec = True
Me.IsByNode = False
Me.isEnvMaxMin = True
Me.IsEachLC = False
Me.isEachPos = False
Me.PosFilterType = NoFilter
Me.ExtremeCase0 = True
Me.ExtremeCase1 = True
Me.ExtremeCase2 = True
Me.ExtremeCase3 = True
Me.ExtremeCase4 = True
Me.ExtremeCase5 = True
Me.ExtremeCase6 = True
Me.ExtremeCase7 = True
Me.ExtremeCase8 = True
Me.ExtremeCase9 = True
Me.ExtremeCase10 = True
Me.ExtremeCase11 = True
Me.MaxMinEnv0 = False
Me.MaxMinEnv1 = True
Me.MaxMinEnv2 = True
Me.MaxMinEnv3 = True
Me.MaxMinEnv4 = True
Me.MaxMinEnv5 = True
g_log.WriteLogInDetailMode "Default Value of the Loaded to the UserForm."
End Sub
Public Function LoadLastSaveVal()
'Load Save Input if possible
Dim cWS As Worksheet, propGrpName As String
Dim ret As Integer
If Me.wsSum Is Nothing Then
Set cWS = ActiveSheet
Else
Set cWS = Me.wsSum
End If
propGrpName = cWS.Name & mOperName
g_log.WriteLogInDetailMode "Loading Last Save for the Userform..."
g_log.WriteLogInDetailMode "propGrpName = " & propGrpName
'1.Check if there is existing save. If yes, try loading the data
If Not ds_sys.isPropGrpExist(propGrpName) Then
g_log.WriteLogInDetailMode "Cannot find the propGrpName in Data_System Sheet"
ret = -1
GoTo ExitFunc
End If
'2 Check if the saved data fit the default data (check ele, member, section and load comb)
If Not mbIsLoadLastSaveVerified Then
Dim isIdentical As Boolean
' temp1 = ds_sys.propCondense(propGrpName, "Load Comb Selected")
' temp2 = ds_sys.propCondense(propGrpName, "Load Comb Excluded")
' temp = genFunc.CombineArrays(temp1, temp2)
' temp = genFunc.SortArray(temp)
' console.Log temp, "temp"
' If genFunc.isInitialised(temp) Then temp = ggenFunc.CStr_arr(temp)
isIdentical = VerifySavedData(propGrpName, "Load Comb Selected", "Load Comb Excluded", msLcAll)
If Not isIdentical Then GoTo CannotLoad
isIdentical = VerifySavedData(propGrpName, "Section Selected", "Section Excluded", msSectionsAll)
If Not isIdentical Then GoTo CannotLoad
isIdentical = VerifySavedData(propGrpName, "Member Selected", "Member Excluded", msMemberNamesAll)
If Not isIdentical Then GoTo CannotLoad
isIdentical = VerifySavedData(propGrpName, "Connection Type Selected", "Connection Type Excluded", msConnTypeAll)
If Not isIdentical Then GoTo CannotLoad
isIdentical = VerifySavedData(propGrpName, "Node Selected", "Node Excluded", msNodeAll)
If Not isIdentical Then GoTo CannotLoad
mbIsLoadLastSaveVerified = True
mbIsAbleLoadLastSave = True
ElseIf Not mbIsAbleLoadLastSave Then
MsgBox msWarningMsg
GoTo ExitFunc
End If
'3. Load Data
Set Me.wsSum = Worksheets(ds_sys.prop(propGrpName, "wsName"))
Me.lc = genFunc.CStr_arr(ds_sys.propCondense(propGrpName, "Load Comb Selected"))
Me.lcExcl = genFunc.CStr_arr(ds_sys.propCondense(propGrpName, "Load Comb Excluded"))
Me.MemberNames = genFunc.CStr_arr(ds_sys.propCondense(propGrpName, "Member Selected"))
Me.MemberNamesExcl = genFunc.CStr_arr(ds_sys.propCondense(propGrpName, "Member Excluded"))
Me.sections = genFunc.CStr_arr(ds_sys.propCondense(propGrpName, "Section Selected"))
Me.SectionsExcl = genFunc.CStr_arr(ds_sys.propCondense(propGrpName, "Section Excluded"))
Me.connTypes = genFunc.CStr_arr(ds_sys.propCondense(propGrpName, "Connection Type Selected"))
Me.ConnTypesExcl = genFunc.CStr_arr(ds_sys.propCondense(propGrpName, "Connection Type Excluded"))
Me.Nodes = genFunc.CStr_arr(ds_sys.propCondense(propGrpName, "Node Selected"))
Me.NodesExcl = genFunc.CStr_arr(ds_sys.propCondense(propGrpName, "Node Excluded"))
Me.PosFilterTypeStr = ds_sys.prop(propGrpName, "Position Filter Type")
'Me.PosFilterTypeStr = ds_sys.prop(propGrpName, "Position Filter Value")
'Me.IsBySec = CBool(ds_sys.prop(propGrpName, "isBySec"))
Me.GroupBy = ds_sys.prop(propGrpName, "Group By")
Me.GroupByNodeOrConnType = ds_sys.prop(propGrpName, "Group By Node Or Conn Type")
Me.isEnvMaxMin = ds_sys.prop(propGrpName, "isEnvMaxMin")
Me.ExtremeCase = genFunc.CBoolArr(ds_sys.prop(propGrpName, "Extreme Cases"))
Me.IsEachLC = ds_sys.prop(propGrpName, "isEachLC")
Me.isEachPos = ds_sys.prop(propGrpName, "isEachPos")
Me.MaxMinEnv = genFunc.CBoolArr(ds_sys.prop(propGrpName, "Max Min Env"))
g_log.WriteLogInDetailMode "Last Save Loaded."
Exit Function
CannotLoad:
g_log.WriteLogInDetailMode "Last saved data not identical to existing data."
ret = -1
ExitFunc:
LoadLastSaveVal = ret
g_log.WriteLogInDetailMode "Last Save Cannot be Loaded."
End Function
Private Function VerifySavedData(propGrpName As String, prop1 As String, prop2 As String, compareData As Variant) As Boolean
Dim ret As Boolean, i As Long
Dim temp As Variant, temp1 As Variant, temp2 As Variant, count As Long
temp1 = ds_sys.propCondense(propGrpName, prop1)
temp2 = ds_sys.propCondense(propGrpName, prop2)
temp = genFunc.CombineArrays(temp1, temp2)
If genFunc.isInitialised(temp) Then
temp = genFunc.CStr_arr(temp)
temp = genFunc.SortArray(temp)
Else
If Not genFunc.isInitialised(compareData) Then
ret = True
GoTo ExitFunction
Else
GoTo ExitFunction
End If
End If
If genFunc.isArraysIdentical(temp, compareData) Then
ret = True
Else
msWarningMsg = "Failed to Load Last Saved Data!"
If mbIsShownUF Then MsgBox msWarningMsg
End If
' For i = LBound(savedData) To UBound(savedData)
' If Not genFunc.IsInArr(savedData(i), compareData) Then
' 'msWarningMsg = "Loading last saved data failed. Load Combination '" & tempLC(i) & "' cannot be found in the last saved data."
' msWarningMsg = "Failed to Load Last Saved Data!"
' If mbIsShownUF Then MsgBox msWarningMsg
' ret = False
' GoTo ExitFunction
' End If
' Next i
ExitFunction:
VerifySavedData = ret
End Function
Public Sub SaveInput()
'Save User Input to the
Dim propGrpName As String
propGrpName = mWsSum.Name & mOperName
g_log.WriteLogInDetailMode "Saving User Input..."
'1.Check if there is existing save. If yes, clear existing data. If no, create a new save
If ds_sys.isPropGrpExist(propGrpName) Then
'Clear Existing Data
ds_sys.ClearPropGrpVal propGrpName
Else
'Create new save
ds_sys.CreateCustomPropGrp propGrpName, "wsName", "Load Comb Selected", "Load Comb Excluded", _
"Member Selected", "Member Excluded", _
"Section Selected", "Section Excluded", _
"Node Selected", "Node Excluded", _
"Connection Type Selected", "Connection Type Excluded", _
"isEachPos", "Position Filter Type", "Position Filter Value", _
"Group By", "Group By Node Or Conn Type", _
"isExtremeCase", "Extreme Cases", _
"isEachLC", "isEnvMaxMin", "Max Min Env"
End If
'2. Write Data
ds_sys.prop(propGrpName, "wsName") = mWsSum.Name
'ds_sys.prop(propGrpName, "isBySec") = mbIsBySec
ds_sys.propCondense(propGrpName, "Load Comb Selected") = msLcSelect
ds_sys.propCondense(propGrpName, "Load Comb Excluded") = msLcExcl
ds_sys.propCondense(propGrpName, "Member Selected") = msMemberNamesSelect
ds_sys.propCondense(propGrpName, "Member Excluded") = msMemberNamesExcl
ds_sys.propCondense(propGrpName, "Section Selected") = msSectionsSelect
ds_sys.propCondense(propGrpName, "Section Excluded") = msSectionsExcl
ds_sys.propCondense(propGrpName, "Node Selected") = msNodeSelect
ds_sys.propCondense(propGrpName, "Node Excluded") = msNodeExcl
ds_sys.propCondense(propGrpName, "Connection Type Selected") = msConnTypeSelect
ds_sys.propCondense(propGrpName, "Connection Type Excluded") = msConnTypeExcl
ds_sys.prop(propGrpName, "Position Filter Type") = PositionFilterTypeToString(mPosFilterType)
ds_sys.prop(propGrpName, "Position Filter Value") = mdblPosFilterVal
'ds_sys.prop(propGrpName, "isBySec") = mbIsBySec
ds_sys.prop(propGrpName, "Group By") = mGroupBy
ds_sys.prop(propGrpName, "Group By Node Or Conn Type") = mGroupByNodeOrConnType
ds_sys.prop(propGrpName, "isEnvMaxMin") = mbIsEnvMaxMin
ds_sys.prop(propGrpName, "Extreme Cases") = mbExtremeCase
ds_sys.prop(propGrpName, "isEachLC") = mbIsEachLC
ds_sys.prop(propGrpName, "isEachPos") = mbIsEachPos
ds_sys.prop(propGrpName, "Max Min Env") = mbMaxMinEnv
End Sub
Private Function StringToPositionFilterType(ByVal filterTypeString As String) As PositionFilterType
filterTypeString = UCase(filterTypeString)
Select Case filterTypeString
Case "NO FILTER"
StringToPositionFilterType = NoFilter
Case "END I"
StringToPositionFilterType = EndI
Case "END J"
StringToPositionFilterType = EndJ
Case "BOTH END"
StringToPositionFilterType = BothEnd
Case "SPECIFIED POSITION (ABSOLUTE)"
StringToPositionFilterType = SpecifiedPosAbs
Case Else
StringToPositionFilterType = NoFilter ' Default value
End Select
End Function
Private Function PositionFilterTypeToString(ByVal filterType As PositionFilterType) As String
Select Case filterType
Case NoFilter
PositionFilterTypeToString = "NO FILTER"
Case EndI
PositionFilterTypeToString = "END I"
Case EndJ
PositionFilterTypeToString = "END J"
Case BothEnd
PositionFilterTypeToString = "BOTH END"
Case SpecifiedPosAbs
PositionFilterTypeToString = "SPECIFIED POSITION (ABSOLUTE)"
End Select
End Function
Private Function GetSummmarySheetsName() As String()
Dim ws_count As Long, arrL As Object
Dim ws As Worksheet, i As Long
Set arrL = CreateObject("System.Collections.ArrayList")
'Set ws = ActiveSheet
'With ActiveSheet
'If InStr(1, ActiveSheet.name, "Sum") > 0 Then
arrL.Add ActiveSheet.Name
'End If
'End With
With ActiveWorkbook
ws_count = .Worksheets.count
'Set the activesheet as the first item
For i = 1 To ws_count
If InStr(1, .Worksheets(i).Name, "Sum") > 0 And Not .Worksheets(i).Name = ActiveSheet.Name Then
arrL.Add .Worksheets(i).Name
End If
Next i
End With
' 'Add last saved worksheets as well
' Dim lastSaveSheet As String
' lastSaveSheet = ds_sys.prop(propGrpName, "wsName")
' If Not arrL.contains(lastSaveSheet) Then arrL.Add lastSaveSheet
GetSummmarySheetsName = genFunc.CStr_arr(arrL.ToArray)
End Function
Public Property Get wsSum() As Worksheet
Set wsSum = mWsSum
End Property
Public Property Set wsSum(ws As Worksheet)
Set mWsSum = ws
Me.wsSumName = ws.Name
'OnPropertyChanged "wsSum"
End Property
Public Property Get wsSumName() As String
wsSumName = mWsSum.Name
End Property
Public Property Let wsSumName(wsName As String)
Set mWsSum = Worksheets(wsName)
OnPropertyChanged "wsSumName"
End Property
Public Property Get wsList() As String()
wsList = msWsList
End Property
Public Property Get GroupBy() As String
GroupBy = mGroupBy
End Property
Public Property Let GroupBy(val As String)
mGroupBy = val
OnPropertyChanged "GroupBy"
End Property
Public Property Get IsBySec() As Boolean
If UCase(Me.GroupBy) = "BY SECTION" Then
IsBySec = True
Else
IsBySec = False
End If
End Property
Public Property Let IsBySec(ByVal bSec As Boolean)
'mbIsBySec = bSec
If bSec Then
Me.GroupBy = "By Section"
Else
Me.GroupBy = "By Member"
End If
End Property
Public Property Get IsByNode() As Boolean
If UCase(Me.GroupBy) = "BY NODE" Then
IsByNode = True
Else
IsByNode = False
End If
End Property
Public Property Let IsByNode(ByVal bNode As Boolean)
'mbIsBySec = bSec
If bNode Then
Me.GroupByNodeOrConnType = "By Node"
Else
Me.GroupByNodeOrConnType = "By Connection Type"
End If
End Property
Public Property Get GroupByNodeOrConnType() As String
GroupByNodeOrConnType = mGroupByNodeOrConnType
End Property
Public Property Let GroupByNodeOrConnType(val As String)
mGroupByNodeOrConnType = val
OnPropertyChanged "GroupByNodeOrConnType"
End Property
Public Property Get lc() As String()
lc = msLcSelect
End Property
Public Property Let lc(val() As String)
msLcSelect = val
OnPropertyChanged "lc"
End Property
Public Property Get lcExcl() As String()
lcExcl = msLcExcl
End Property
Public Property Let lcExcl(val() As String)
msLcExcl = val
OnPropertyChanged "lcExcl"
End Property
Public Property Get MemberNames() As String()
MemberNames = msMemberNamesSelect
End Property
Public Property Let MemberNames(memNames() As String)
msMemberNamesSelect = memNames
OnPropertyChanged "MemberNames"
End Property
Public Property Get MemberNamesExcl() As String()
MemberNamesExcl = msMemberNamesExcl
End Property
Public Property Let MemberNamesExcl(memNames() As String)
msMemberNamesExcl = memNames
OnPropertyChanged "MemberNamesExcl"
End Property
Public Property Get sections() As String()
sections = msSectionsSelect
End Property
Public Property Let sections(secArray() As String)
msSectionsSelect = secArray
OnPropertyChanged "Sections"
End Property
Public Property Get SectionsExcl() As String()
SectionsExcl = msSectionsExcl
End Property
Public Property Let SectionsExcl(secArray() As String)
msSectionsExcl = secArray
OnPropertyChanged "SectionsExcl"
End Property
Public Property Get connTypes() As String()
connTypes = msConnTypeSelect
End Property
Public Property Let connTypes(arr() As String)
msConnTypeSelect = arr
OnPropertyChanged "ConnTypes"
End Property
Public Property Get ConnTypesExcl() As String()
ConnTypesExcl = msConnTypeExcl
End Property
Public Property Let ConnTypesExcl(arr() As String)
msConnTypeExcl = arr
OnPropertyChanged "ConnTypesExcl"
End Property
Public Property Get Nodes() As String()
Nodes = msNodeSelect
End Property
Public Property Let Nodes(arr() As String)
msNodeSelect = arr
OnPropertyChanged "Nodes"
End Property
Public Property Get NodesExcl() As String()
NodesExcl = msNodeExcl
End Property
Public Property Let NodesExcl(arr() As String)
msNodeExcl = arr
OnPropertyChanged "NodesExcl"
End Property
Public Property Get PosFilterTypeStr() As String
PosFilterTypeStr = mPosFilterTypeStr
End Property
Public Property Let PosFilterTypeStr(str As String)
mPosFilterTypeStr = str
mPosFilterType = StringToPositionFilterType(str)
OnPropertyChanged "PosFilterTypeStr"
End Property
Public Property Get PosFilterType() As PositionFilterType
PosFilterType = mPosFilterType
End Property
Public Property Let PosFilterType(ByVal pft As PositionFilterType)
mPosFilterType = pft
mPosFilterTypeStr = PositionFilterTypeToString(pft)
End Property
Public Property Get PosFilterValue() As Double
PosFilterValue = mdblPosFilterVal
End Property
Public Property Let PosFilterValue(ByVal dblVal As Double)
mdblPosFilterVal = dblVal
End Property
Public Property Get IsEachLC() As Boolean
IsEachLC = mbIsEachLC
End Property
Public Property Let IsEachLC(ByVal bEach As Boolean)
mbIsEachLC = bEach
OnPropertyChanged "IsEachLC"
End Property
Public Property Get isEachPos() As Boolean
isEachPos = mbIsEachPos
End Property
Public Property Let isEachPos(ByVal bEachPos As Boolean)
mbIsEachPos = bEachPos
OnPropertyChanged "IsEachPos"
End Property
Public Property Get isEnvMaxMin() As Boolean
isEnvMaxMin = mbIsEnvMaxMin
End Property
Public Property Let isEnvMaxMin(ByVal extCase As Boolean)
mbIsEnvMaxMin = extCase
OnPropertyChanged "IsEnvMaxMin"
End Property
Public Property Get ExtremeCase() As Boolean()
ExtremeCase = mbExtremeCase
End Property
Public Property Let ExtremeCase(bExtCase() As Boolean)
Me.ExtremeCase0 = bExtCase(0)
Me.ExtremeCase1 = bExtCase(1)
Me.ExtremeCase2 = bExtCase(2)
Me.ExtremeCase3 = bExtCase(3)
Me.ExtremeCase4 = bExtCase(4)
Me.ExtremeCase5 = bExtCase(5)
Me.ExtremeCase6 = bExtCase(6)
Me.ExtremeCase7 = bExtCase(7)
Me.ExtremeCase8 = bExtCase(8)
Me.ExtremeCase9 = bExtCase(9)
Me.ExtremeCase10 = bExtCase(10)
Me.ExtremeCase11 = bExtCase(11)
End Property
Public Property Get ExtremeCase0() As Boolean
ExtremeCase0 = mbExtremeCase(0)
End Property
Public Property Let ExtremeCase0(ByVal val As Boolean)
mbExtremeCase(0) = val
OnPropertyChanged "ExtremeCase0"
End Property
Public Property Get ExtremeCase1() As Boolean
ExtremeCase1 = mbExtremeCase(1)
End Property
Public Property Let ExtremeCase1(ByVal val As Boolean)
mbExtremeCase(1) = val
OnPropertyChanged "ExtremeCase1"
End Property
Public Property Get ExtremeCase2() As Boolean
ExtremeCase2 = mbExtremeCase(2)
End Property
Public Property Let ExtremeCase2(ByVal val As Boolean)
mbExtremeCase(2) = val
OnPropertyChanged "ExtremeCase2"
End Property
Public Property Get ExtremeCase3() As Boolean
ExtremeCase3 = mbExtremeCase(3)
End Property
Public Property Let ExtremeCase3(ByVal val As Boolean)
mbExtremeCase(3) = val
OnPropertyChanged "ExtremeCase3"
End Property
Public Property Get ExtremeCase4() As Boolean
ExtremeCase4 = mbExtremeCase(4)
End Property
Public Property Let ExtremeCase4(ByVal val As Boolean)
mbExtremeCase(4) = val
OnPropertyChanged "ExtremeCase4"
End Property
Public Property Get ExtremeCase5() As Boolean
ExtremeCase5 = mbExtremeCase(5)
End Property
Public Property Let ExtremeCase5(ByVal val As Boolean)
mbExtremeCase(5) = val
OnPropertyChanged "ExtremeCase5"
End Property
Public Property Get ExtremeCase6() As Boolean
ExtremeCase6 = mbExtremeCase(6)
End Property
Public Property Let ExtremeCase6(ByVal val As Boolean)
mbExtremeCase(6) = val
OnPropertyChanged "ExtremeCase6"
End Property
Public Property Get ExtremeCase7() As Boolean
ExtremeCase7 = mbExtremeCase(7)
End Property
Public Property Let ExtremeCase7(ByVal val As Boolean)
mbExtremeCase(7) = val
OnPropertyChanged "ExtremeCase7"
End Property
Public Property Get ExtremeCase8() As Boolean
ExtremeCase8 = mbExtremeCase(8)
End Property
Public Property Let ExtremeCase8(ByVal val As Boolean)
mbExtremeCase(8) = val
OnPropertyChanged "ExtremeCase8"
End Property
Public Property Get ExtremeCase9() As Boolean
ExtremeCase9 = mbExtremeCase(9)
End Property
Public Property Let ExtremeCase9(ByVal val As Boolean)
mbExtremeCase(9) = val
OnPropertyChanged "ExtremeCase9"
End Property
Public Property Get ExtremeCase10() As Boolean
ExtremeCase10 = mbExtremeCase(10)
End Property
Public Property Let ExtremeCase10(ByVal val As Boolean)
mbExtremeCase(10) = val
OnPropertyChanged "ExtremeCase10"
End Property
Public Property Get ExtremeCase11() As Boolean
ExtremeCase11 = mbExtremeCase(11)
End Property
Public Property Let ExtremeCase11(ByVal val As Boolean)
mbExtremeCase(11) = val
OnPropertyChanged "ExtremeCase11"
End Property
Public Property Get MaxMinEnv() As Boolean()
MaxMinEnv = mbMaxMinEnv
End Property
Public Property Let MaxMinEnv(bMaxMin() As Boolean)
Me.MaxMinEnv0 = bMaxMin(0)
Me.MaxMinEnv1 = bMaxMin(1)
Me.MaxMinEnv2 = bMaxMin(2)
Me.MaxMinEnv3 = bMaxMin(3)
Me.MaxMinEnv4 = bMaxMin(4)
Me.MaxMinEnv5 = bMaxMin(5)
End Property
Public Property Get MaxMinEnv0() As Boolean
MaxMinEnv0 = mbMaxMinEnv(0)
End Property
Public Property Let MaxMinEnv0(ByVal val As Boolean)
mbMaxMinEnv(0) = val
OnPropertyChanged "MaxMinEnv0"
End Property
Public Property Get MaxMinEnv1() As Boolean
MaxMinEnv1 = mbMaxMinEnv(1)
End Property
Public Property Let MaxMinEnv1(ByVal val As Boolean)
mbMaxMinEnv(1) = val
OnPropertyChanged "MaxMinEnv1"
End Property
Public Property Get MaxMinEnv2() As Boolean
MaxMinEnv2 = mbMaxMinEnv(2)
End Property
Public Property Let MaxMinEnv2(ByVal val As Boolean)
mbMaxMinEnv(2) = val
OnPropertyChanged "MaxMinEnv2"
End Property
Public Property Get MaxMinEnv3() As Boolean
MaxMinEnv3 = mbMaxMinEnv(3)
End Property
Public Property Let MaxMinEnv3(ByVal val As Boolean)
mbMaxMinEnv(3) = val
OnPropertyChanged "MaxMinEnv3"
End Property
Public Property Get MaxMinEnv4() As Boolean
MaxMinEnv4 = mbMaxMinEnv(4)
End Property
Public Property Let MaxMinEnv4(ByVal val As Boolean)
mbMaxMinEnv(4) = val
OnPropertyChanged "MaxMinEnv4"
End Property
Public Property Get MaxMinEnv5() As Boolean
MaxMinEnv5 = mbMaxMinEnv(5)
End Property
Public Property Let MaxMinEnv5(ByVal val As Boolean)
mbMaxMinEnv(5) = val
OnPropertyChanged "MaxMinEnv5"
End Property
'Public Property Get SwitchUFValueCommand()
' Set SwitchUFValueCommand = mSwitchUFValueCommand
'End Property