ClearFieldConditions method (ITrackingLayer)

Очищает все условия по полям.

Применяется к:

ITrackingLayer

Синтаксис:

Visual Basic:

Sub ClearFieldConditions(flags As Long)

flags - флаги:

1 - сохранить условие для UserID; при любом другом значении очищается и оно

Описание:

Метод ничего не возвращает и снимает все условия, заданные методом SetFieldCondition. Фильтр по UserID, заданный методом SetUserIDFilter, снимается вместе с ними, если флаг не равен 1.

На временной фильтр, заданный методом SetTimeFilter, метод не действует — его снимают вызовом с типом 0.

Интерфейс возвращается для любого слоя, а не только для слоя трекинга. Определить тип слоя заранее нельзя: отдельного значения для слоя трекинга в eLayerType нет, а сами такие слои размещаются на ZuluServer. Судить приходится по возвратам: на слое, который слоем трекинга не является, все методы задания фильтров возвращают -1, методы чтения — пустую строку, а GetDevicesNothing.

Пример:

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 Sub

Python:

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)