IVZTreeModel.ActiveItem

Синтаксис Fore

ActiveItem: IVZTreeItem;

Синтаксис Fore.NET

ActiveItem: Prognoz.Platform.Interop.Visualizators.IVZTreeItem;

Описание

Свойство ActiveItem определяет активный элемент в визуализаторе с иерархической структурой.

Пример Fore

Для выполнения примера предполагается наличие в репозитории экспресс-отчета с идентификатором «EXP». Модуль, в котором размещается пример, должен иметь ссылки на системные сборки Express, Metabase и Visualizators. Указанная процедура должна вызываться из точки входа Main.

До выполнения примера пузырьковое дерево выглядит так, как показано на странице описания интерфейса IVZBubbleTree. Определим идентификатор активного элемента пузырькового дерева, после чего сделаем активным его родительский элемент:

Sub UserProc;
Var
    Metabase: IMetabase; // Метабаза
    EaxAnalyzer: IEaxAnalyzer; // Экспресс-отчёт
    BubbleTree: IVZBubbleTree; // Пузырьковое дерево
    Item: IVZTreeItem; // Элемент дерева
    Model: IVZTreeModel; // Модель дерева
    ActiveItem: IVZTreeItem;
Begin
    // Получим объект метабазы
    Metabase := MetabaseClass.Active;
    // Откроем экспресс-отчёт
    EaxAnalyzer := Metabase.ItemById("EXP").Edit As IEaxAnalyzer;
    // Получим пузырьковое дерево
    BubbleTree := EaxAnalyzer.BubbleTree.BubbleTree;
    // Получим модель дерева
    Model := BubbleTree.Model;
    // Получим активный элемент пузырькового дерева
    ActiveItem := Model.ActiveItem;
    Debug.WriteLine("Идентификатор активного элемента: " +
        ActiveItem.ID);
    // Получим корневой элемент
    Item := ActiveItem.Parent;
    If Item <> Null Then
        // Сделаем данный элемент активным
        Model.SetActiveItem(Item.ID);
        Debug.WriteLine("Идентификатор нового активного элемента: " +
            Model.ActiveItem.ID);           
    End If;
    // Сохраним сделанные изменения в экспресс-отчёте
    (EaxAnalyzer As IMetabaseObject).Save;
End Sub UserProc;

В результате выполнения примера активным элементом стал родитель текущего активного элемента:

В консоли среды разработки были выведены идентификаторы предыдущего и нового активного элемента:

Идентификатор активного элемента: 10001

Идентификатор нового активного элемента: 10000

Пример Fore.NET

Для выполнения примера предполагается наличие в репозитории экспресс-отчета с идентификатором «EXP». Указанная процедура является точкой входа Main в модуле Program .NET-сборки. В данный модуль должны быть импортированы сборки Express, Metabase и Visualizators из системной сборки Prognoz.Platform.Interop.

До выполнения примера пузырьковое дерево выглядит так, как показано на странице описания интерфейса IVZBubbleTree. Определим идентификатор активного элемента пузырькового дерева, после чего сделаем активным его родительский элемент:

Public Shared Sub Main(Params: StartParams);
Var
    Metabase: IMetabase; // Метабаза
    EaxAnalyzer: IEaxAnalyzer; // Экспресс-отчёт
    BubbleTree: IVZBubbleTree; // Пузырьковое дерево
    Item: IVZTreeItem; // Элемент дерева
    Model: IVZTreeModel; // Модель дерева
    ActiveItem: IVZTreeItem;
Begin
    // Получим объект метабазы
    Metabase := Params.Metabase;
    // Откроем экспресс-отчёт
    EaxAnalyzer := Metabase.ItemById["EXP_DYN1_COPY57"].Edit() As IEaxAnalyzer;
    // Получим пузырьковое дерево
    BubbleTree := EaxAnalyzer.BubbleTree.BubbleTree;
    // Получим модель дерева
    Model := BubbleTree.Model;
    // Получим активный элемент пузырькового дерева
    ActiveItem := Model.ActiveItem;
    System.Diagnostics.Debug.WriteLine("Идентификатор активного элемента: " +
        ActiveItem.ID);
    // Получим корневой элемент
    Item := ActiveItem.Parent;
    If Item <> Null Then
        // Сделаем данный элемент активным
        Model.SetActiveItem(Item.ID);
        System.Diagnostics.Debug.WriteLine("Идентификатор нового активного элемента: " +
            Model.ActiveItem.ID);           
    End If;
    // Сохраним сделанные изменения в экспресс-отчёте
    (EaxAnalyzer As IMetabaseObject).Save();
End Sub;

Результат выполнения примера аналогичен результату, полученному после выполнения примера для языка Fore.

См. также:

IVZTreeModel