Возвращает набор данных IZbDataset с описанием устройств слоя трекинга.
Visual Basic:
Function GetDevices() As IZbDataset
Свойство TrackingLayer объекта Layer возвращается для любого слоя, а не только для слоя трекинга. Поэтому проверять надо результат самого метода: если слой слоем трекинга не является, GetDevices возвращает Nothing.
Слои трекинга размещаются на ZuluServer, поэтому и набор устройств возвращается только для слоя, открытого с сервера.
Visual Basic:
Sub ITrackingLayer_GetDevices 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set TR = L.TrackingLayer 'Интерфейс отдается для любого слоя, поэтому проверяем результат метода Set ds = TR.GetDevices If ds Is Nothing Then MsgBox "Слой не является слоем трекинга" Else 'Набор данных - это курсор по записям, обходим его от первой до Eof n = 0 ds.MoveFirst Do While Not ds.Eof n = n + 1 ds.MoveNext Loop MsgBox "Полей в описании: " & ds.FieldCount & vbCrLf & "Устройств: " & n End If End SubPython:
import zulu def Macro_ITrackingLayer_GetDevices(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active TR = L.TrackingLayer # Интерфейс отдается для любого слоя, поэтому проверяем результат метода ds = TR.GetDevices() if ds is None: print("Слой не является слоем трекинга") else: # Набор данных - это курсор по записям, обходим его от первой до Eof n = 0 ds.MoveFirst() while not ds.Eof: n += 1 ds.MoveNext() print("Полей в описании:", ds.FieldCount) print("Устройств:", n)