IMetabaseObjectDescriptor.HasChildren

Синтаксис Fore

HasChildren: Boolean;

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

HasChildren(): boolean;

Описание

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

Комментарии

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

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

Пример Fore

Для выполнения примера предполагается наличие репозитория НСИ с идентификатором «NSI».

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

Sub UserProg;
Var
    MB: IMetabase;
    MDesc: IMetabaseObjectDescriptor;
    MDescr: IMetabaseObjectDescriptors;
    i: integer;
Begin
    MB := MetabaseClass.Active;
    MDesc := Mb.ItemById("NSI");
    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;

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

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MDesc: IMetabaseObjectDescriptor;
    MDescr: IMetabaseObjectDescriptors;
    i: integer;
Begin
    MB := Params.Metabase;
    MDesc := Mb.ItemById["NSI"];
    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