SetFieldCondition method (ITrackingLayer)

Добавляет к фильтру слоя трекинга условие для заданного поля.

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

ITrackingLayer

Синтаксис:

Visual Basic:

Function SetFieldCondition(sField As String, sCondion As String, Reserved As Long) As Long

sField - имя поля.

sCondion - условие.

Reserved - зарезервирован, должен быть 0.

Описание:

Синтаксис условия совпадает с синтаксисом «Запроса по образцу» — того, что задаётся в окне браузера баз данных на закладке Запрос.

Если указанное поле в слое есть, метод возвращает 0, иначе -1.

Условия накапливаются: метод добавляет условие к уже заданным, а не заменяет их. Снять все условия разом можно методом ClearFieldConditions, прочитать условие по конкретному полю — методом GetFieldCondition.

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

Пример:

Visual Basic:

Sub ITrackingLayer_SetFieldCondition
'Берем активный слой карты
Set L = Zulu.ActiveMapDoc.Layers.Active
Set TR = L.TrackingLayer
'Добавляем условие для поля "Филиал"
MsgBox "Код возврата: " & TR.SetFieldCondition("Филиал", "Филиал N1", 0)
MsgBox "Условие сейчас: '" & TR.GetFieldCondition("Филиал", 0) & "'"
End Sub

Python:

import zulu

def Macro_ITrackingLayer_SetFieldCondition():
    # Берем активный слой карты
    L = zulu.App.ActiveMapDoc.Layers.Active
    TR = L.TrackingLayer
    # Добавляем условие для поля "Филиал"
    print("Код возврата:", TR.SetFieldCondition("Филиал", "Филиал N1", 0))
    print("Условие сейчас:", repr(TR.GetFieldCondition("Филиал", 0)))