Возвращает условие фильтра слоя трекинга для заданного поля.
Visual Basic:
Function GetFieldCondition(sField As String, Reserved As Long) As String
sField - имя поля.
Reserved - зарезервирован, должен быть 0.
Возвращает то, что было задано методом SetFieldCondition для этого поля. Если условия нет, метод отдаёт пустую строку — то же самое возвращается и для поля, которого в слое не существует, так что отличить одно от другого по результату нельзя.
Синтаксис условия совпадает с синтаксисом «Запроса по образцу» — того, что задаётся в окне браузера баз данных на закладке Запрос.
Интерфейс возвращается для любого слоя, а не только для слоя трекинга. Определить тип слоя заранее нельзя: отдельного значения для слоя трекинга в eLayerType нет, а сами такие слои размещаются на ZuluServer. Судить приходится по возвратам: на слое, который слоем трекинга не является, все методы задания фильтров возвращают -1, методы чтения — пустую строку, а GetDevices — Nothing.
Visual Basic:
Sub ITrackingLayer_GetFieldCondition 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set TR = L.TrackingLayer TR.SetFieldCondition "Филиал", "Филиал N1", 0 MsgBox "Условие по полю Филиал: '" & TR.GetFieldCondition("Филиал", 0) & "'" End SubPython:
import zulu def Macro_ITrackingLayer_GetFieldCondition(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active TR = L.TrackingLayer TR.SetFieldCondition("Филиал", "Филиал N1", 0) print("Условие по полю Филиал:", repr(TR.GetFieldCondition("Филиал", 0)))