Добавляет к фильтру слоя трекинга условие для заданного поля.
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, методы чтения — пустую строку, а GetDevices — Nothing.
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 SubPython:
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)))