IMetabaseObjectDescriptor.HasChildren

Синтаксис

HasChildren: Boolean;

HasChildren(): boolean;

Описание

Метод HasChildren возвращает признак наличия у текущих объектов дочерних объектов.

Комментарии

Допустимые значения:

Примечание. Для получения точного значения элемента коллекции (с учетом прав доступа пользователя к данному элементу) рекомендуется после применения метода HasChildren выполнить выгрузку элементов коллекции (Children.Count), а затем уже получать точное значение (Children.Item(i)).

Пример

Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «TSDB».

Добавьте ссылку на системную сборку Metabase.

Sub UserProg;
Var
    MB: IMetabase;
    MDesc: IMetabaseObjectDescriptor;
    MDescr: IMetabaseObjectDescriptors;
    i: integer;
Begin
    MB := MetabaseClass.Active;
    MDesc := Mb.ItemById("TSDB");
    MDescr := MDesc.Children;
    If MDesc.HasChildren = True Then
        Debug.WriteLine("Дочерние объекты:");
        Debug.Indent;
        For i := 0 To MDescr.Count - 1 Do
            MDesc := MDescr.Item(i);
            Debug.WriteLine("Наименование: " + MDesc.Name + "; Идентификатор: " + MDesc.Id);
        End For;
        Debug.Unindent;
        Else
            Debug.WriteLine("Нет дочерних объектов.");
    End If;
End Sub UserProg;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MDesc: IMetabaseObjectDescriptor;
    MDescr: IMetabaseObjectDescriptors;
    i: integer;
Begin
    MB := Params.Metabase;
    MDesc := Mb.ItemById["TSDB"];
    MDescr := MDesc.Children;
    If MDesc.HasChildren() = True Then
        System.Diagnostics.Debug.WriteLine("Дочерние объекты:");
        System.Diagnostics.Debug.Indent();
        For i := 0 To MDescr.Count - 1 Do
            MDesc := MDescr.Item[i];
            System.Diagnostics.Debug.WriteLine("Наименование: " + MDesc.Name + "; Идентификатор: " + MDesc.Id);
        End For;
        System.Diagnostics.Debug.Unindent();
        Else
            System.Diagnostics.Debug.WriteLine("Нет дочерних объектов.");
    End If;
End Sub;

После выполнения примера, если в указанном объекте имеются дочерние объекты, то их наименования и идентификаторы будут выведены в консоль среды разработки.

См. также:

IMetabaseObjectDescriptor