Очищает все условия по полям.
Visual Basic:
Sub ClearFieldConditions(flags As Long)
flags - флаги:
1 - сохранить условие для UserID; при любом другом значении очищается и оно
Метод ничего не возвращает и снимает все условия, заданные методом SetFieldCondition. Фильтр по UserID, заданный методом SetUserIDFilter, снимается вместе с ними, если флаг не равен 1.
На временной фильтр, заданный методом SetTimeFilter, метод не действует — его снимают вызовом с типом 0.
Интерфейс возвращается для любого слоя, а не только для слоя трекинга. Определить тип слоя заранее нельзя: отдельного значения для слоя трекинга в eLayerType нет, а сами такие слои размещаются на ZuluServer. Судить приходится по возвратам: на слое, который слоем трекинга не является, все методы задания фильтров возвращают -1, методы чтения — пустую строку, а GetDevices — Nothing.
Visual Basic:
Sub ITrackingLayer_ClearFieldConditions 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set TR = L.TrackingLayer TR.SetFieldCondition "Филиал", "Филиал N1", 0 TR.SetUserIDFilter "392" 'Флаг 1 оставляет фильтр по UserID нетронутым TR.ClearFieldConditions 1 MsgBox "Условие по полю: '" & TR.GetFieldCondition("Филиал", 0) & "'" & vbCrLf & _ "Фильтр по UserID: '" & TR.GetUserIDFilter & "'" 'Без флага очищается и фильтр по UserID TR.ClearFieldConditions 0 End SubPython:
import zulu def Macro_ITrackingLayer_ClearFieldConditions(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active TR = L.TrackingLayer TR.SetFieldCondition("Филиал", "Филиал N1", 0) TR.SetUserIDFilter("392") # Флаг 1 оставляет фильтр по UserID нетронутым TR.ClearFieldConditions(1) print("Условие по полю:", repr(TR.GetFieldCondition("Филиал", 0))) print("Фильтр по UserID:", repr(TR.GetUserIDFilter())) # Без флага очищается и фильтр по UserID TR.ClearFieldConditions(0)