ActiveItem: IVZTreeItem;
ActiveItem: Prognoz.Platform.Interop.Visualizators.IVZTreeItem;
Свойство ActiveItem определяет активный элемент в визуализаторе с иерархической структурой.
Для выполнения примера предполагается наличие в репозитории экспресс-отчета с идентификатором «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
Для выполнения примера предполагается наличие в репозитории экспресс-отчета с идентификатором «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.
См. также: