EBDN - Community - Question & Answers

  Tuesday, 10 August 2021
  0 Replies
  1K Visits
0
Votes
Undo
In my multi-filter definition I want add 'OR' condition between myFilter1 and myFilter2

I added this ling of code "multiFilter.RowLinkOperator = LogicOperator.LogicOperatorOr"


But I do not get correct results

I am applying my multifilter expression to
Dim colEquip_DevicesX As ObjectCollection = EBaseApp.ActiveProject.EquipmentFolder.FindObjects(multiFilter, SearchBehavior.Deep)

Please some one can help me. How can I fix my following to apply 'OR' condition between myFilter1 and myFilter2 in my multi-filter definition

'***Setup Multi Filter Defeniton ******* ***************************************************
'***Filter 1 Defeniton Where AttributeId.CircuitDiagramReference = Nothing and AttributeId = 101461 = 1 (true)
Dim myAttr_Id As AttributeId = 101461
Dim myFilter1 As FilterExpression
myFilter1 = EBaseApp.CreateFilter()
myFilter1.Kind = ObjectKind.Device
myFilter1.Add(AttributeId.CircuitDiagramReference, BinaryOperator.Equal, Nothing)
myFilter1.Add(myAttr_Id, BinaryOperator.Equal, 1)

'***Filter 2 Defeniton Where AttributeId.CircuitDiagramReference = Nothing and AttributeId = 101461 = 1 (true)
Dim myFilter2 As FilterExpression
myFilter2 = EBaseApp.CreateFilter()
myFilter2.Kind = ObjectKind.Device
myFilter2.Add(AttributeId.CircuitDiagramReference, BinaryOperator.Equal, "867-3271.5C 1.2D";) '***867-3271.5C 1.2D '***"???-????.?? ?.??"
myFilter2.Add(myAttr_Id, BinaryOperator.Equal, 1)

Dim multiFilter As MultiFilterExpression
multiFilter = EBaseApp.CreateMultiFilter()
multiFilter.AddFilter(myFilter1)
multiFilter.AddFilter(myFilter2)
'multiFilter.RowLinkOperator.LogicOperatorOr.ToString()
multiFilter.RowLinkOperator = LogicOperator.LogicOperatorOr