Задает временной диапазон для выборки данных из слоя трекинга.
Visual Basic:
Function SetTimeFilter(TimeFrom, TimeTo, nLastDays As Long, nOption As Long) As Long
TimeFrom - дата левой границы интервала времени.
TimeTo - дата правой границы интервала времени.
nLastDays - количество последних дней от текущей даты.
nOption - тип временного фильтра:
0 - без фильтра
1 - сегодня, текущая дата
2 - последние N дней от текущей даты
3 - интервал времени
Смысл имеют только те аргументы, которых требует выбранный тип: при типе 3 читаются TimeFrom и TimeTo, при типе 2 — nLastDays, при типах 0 и 1 — ни один из них. Остальные передаются пустыми.
Даты передаются строкой в том же виде, в каком их показывает система, например 05.12.2016.
Снимается временной фильтр вызовом с типом 0: метод ClearFieldConditions на него не действует.
Интерфейс возвращается для любого слоя, а не только для слоя трекинга. Определить тип слоя заранее нельзя: отдельного значения для слоя трекинга в eLayerType нет, а сами такие слои размещаются на ZuluServer. Судить приходится по возвратам: на слое, который слоем трекинга не является, все методы задания фильтров возвращают -1, методы чтения — пустую строку, а GetDevices — Nothing.
Visual Basic:
Sub ITrackingLayer_SetTimeFilter 'Берем активный слой карты Set L = Zulu.ActiveMapDoc.Layers.Active Set TR = L.TrackingLayer 'Задаем интервал времени MsgBox "Код возврата: " & TR.SetTimeFilter("05.12.2016", "15.05.2017", 0, 3) 'Последние семь дней от текущей даты TR.SetTimeFilter "", "", 7, 2 'Снимаем временной фильтр TR.SetTimeFilter "", "", 0, 0 End SubPython:
import zulu def Macro_ITrackingLayer_SetTimeFilter(): # Берем активный слой карты L = zulu.App.ActiveMapDoc.Layers.Active TR = L.TrackingLayer # Задаем интервал времени print("Код возврата:", TR.SetTimeFilter("05.12.2016", "15.05.2017", 0, 3)) # Последние семь дней от текущей даты TR.SetTimeFilter("", "", 7, 2) # Снимаем временной фильтр TR.SetTimeFilter("", "", 0, 0)