SetTimeFilter method (ITrackingLayer)

Задает временной диапазон для выборки данных из слоя трекинга.

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

ITrackingLayer

Синтаксис:

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, при типе 2nLastDays, при типах 0 и 1 — ни один из них. Остальные передаются пустыми.

Даты передаются строкой в том же виде, в каком их показывает система, например 05.12.2016.

Снимается временной фильтр вызовом с типом 0: метод ClearFieldConditions на него не действует.

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

Пример:

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 Sub

Python:

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)