Item(Index: Integer): IVZTreeItem;
Item[Index: System.Int32]: Prognoz.Platform.Interop.Visualizators.IVZTreeItem;
Свойство Item возвращает элемент из коллекции элементов дерева по указанному индексу.
Для выполнения примера предполагается наличие в репозитории экспресс-отчета с идентификатором «EXP». Модуль, в котором размещается пример, должен иметь ссылки на системные сборки Express, Metabase и Visualizators. Указанная процедура должна вызываться из точки входа Main.
Определим идентификаторы корневого элемента пузырькового дерева и его дочерних элементов, которые затем удалим:
Sub UserProc;
Var
Metabase: IMetabase; // Метабаза
EaxAnalyzer: IEaxAnalyzer; // Экспресс-отчёт
BubbleTree: IVZBubbleTree; // Пузырьковое дерево
RootItem: IVZTreeItem; // Корневой элемент дерева
Items: IVZTreeItems; // Дочерние элементы
Index: Integer;
Item: IVZTreeItem; // Элемент дерева
Model: IVZTreeModel; // Модель дерева
Begin
// Получим объект метабазы
Metabase := MetabaseClass.Active;
// Откроем экспресс-отчёт
EaxAnalyzer := Metabase.ItemById("EXP").Edit As IEaxAnalyzer;
// Получим пузырьковое дерево
BubbleTree := EaxAnalyzer.BubbleTree.BubbleTree;
// Получим модель дерева
Model := BubbleTree.Model;
// Получим корневой элемент пузырькового дерева
RootItem := Model.RootItem;
Debug.WriteLine("Идентификатор корневого элемента: " +
RootItem.ID);
// Получим дочерние элементы дерева
Items := RootItem.Items;
Debug.WriteLine("Дочерние элементы: ");
// Выведем идентификаторы дочерних элементов
For Index := 0 To Items.Count-1 Do
// Получим дочерний элемент по индексу
Item := Items.Item(Index);
Debug.WriteLine(Item.ID + ", родитель: " + Item.Parent.ID);
// Удалим элемент
Items.Remove(Index);
End For;
Debug.WriteLine("Количество элементов после удаления: " +
RootItem.Items.Count.ToString);
End Sub UserProc;
В результате выполнения примера в консоли среды разработки были выведены идентификатор корневого элемента пузырькового дерева, а также идентификаторы его дочерних элементов, которые затем были удалены:
Идентификатор корневого элемента: 10000
Дочерние элементы:
10001, родитель: 10000
Количество элементов после удаления: 0
Для выполнения примера предполагается наличие в репозитории экспресс-отчета с идентификатором «EXP». Указанная процедура является точкой входа Main в модуле Program .NET-сборки. В данный модуль должны быть импортированы сборки Express, Metabase и Visualizators из системной сборки Prognoz.Platform.Interop.
Определим идентификаторы корневого элемента пузырькового дерева и его дочерних элементов, которые затем удалим:
Public Shared Sub Main(Params: StartParams);
Var
Metabase: IMetabase; // Метабаза
EaxAnalyzer: IEaxAnalyzer; // Экспресс-отчёт
BubbleTree: IVZBubbleTree; // Пузырьковое дерево
RootItem: IVZTreeItem; // Корневой элемент дерева
Items: IVZTreeItems; // Дочерние элементы
Index: Integer;
Item: IVZTreeItem; // Элемент дерева
Model: IVZTreeModel; // Модель дерева
Begin
// Получим объект метабазы
Metabase := Params.Metabase;
// Откроем экспресс-отчёт
EaxAnalyzer := Metabase.ItemById["EXP"].Edit() As IEaxAnalyzer;
// Получим пузырьковое дерево
BubbleTree := EaxAnalyzer.BubbleTree.BubbleTree;
// Получим модель дерева
Model := BubbleTree.Model;
// Получим корневой элемент пузырькового дерева
RootItem := Model.RootItem;
System.Diagnostics.Debug.WriteLine("Идентификатор корневого элемента: " +
RootItem.ID);
// Получим дочерние элементы дерева
Items := RootItem.Items;
System.Diagnostics.Debug.WriteLine("Дочерние элементы: ");
// Выведем идентификаторы дочерних элементов
For Index := 0 To Items.Count-1 Do
// Получим дочерний элемент по индексу
Item := Items.Item[Index];
System.Diagnostics.Debug.WriteLine(Item.ID + ", родитель: " +
Item.Parent.ID);
// Удалим элемент
Items.Remove(Index);
End For;
System.Diagnostics.Debug.WriteLine("Количество элементов после удаления: " +
RootItem.Items.Count.ToString());
End Sub;
Результат выполнения примера аналогичен результату, полученному после выполнения примера для языка Fore.
См. также: