IDimAttributeHierarchy.BaseAttribute

Синтаксис Fore

BaseAttribute: IDimAttribute;

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

BaseAttribute: Prognoz.Platform.Interop.Dimensions.IDimAttribute;

Описание

Свойство BaseAttribute определяет атрибут-оригинал, на уникальных значениях которого построена иерархия.

Комментарии

Для определения количества уровней альтернативной иерархии атрибута-оригинала используйте IDimAttributeHierarchy.Level.

Пример Fore

Для выполнения примера в репозитории предполагается наличие табличного справочника с идентификатором «DIM_SEP», содержащего атрибут с идентификатором «NAME».

Добавьте ссылки на системные сборки: Dimensions, Metabase.

Sub UserProc;
Var
    mb: IMetabase;
    dimension: IDimensionModel;
    attribute: IDimAttribute;
    attributes: IDimAttributes;
    attrhierarchy: IDimAttributeHierarchy;
    attrhierarchies: IDimAttributeHierarchies;
    dimindex: IDimIndex;
    id: string;
Begin
    // Получим репозиторий
    mb := MetabaseClass.Active;
    // Получим справочник
    dimension := mb.ItemById("DIM_SEP").Edit As IDimensionModel;
    // Получим коллекцию атрибутов справочника
    attributes := dimension.Attributes;
    // Получим атрибут «Name»
    attribute := attributes.FindById("NAME");
    // Получим коллекцию иерархий справочника
    attrhierarchies := dimension.AttributeHierarchies;
    // Найдем альтернативную иерархию по уровню
    attrhierarchy := attrhierarchies.FindByAttributeLevel(22);
    // Зададим атрибут-оригинал, на значениях которого построена иерархия
    attrhierarchy.BaseAttribute := attribute;
    // Установим уровень иерархии
    attrhierarchy.Level := 2;
    // Получим индекс атрибута
    If attrhierarchy.AttributeIndex <> Null Then
        dimindex := attrhierarchy.AttributeIndex;
        id := dimindex.Id;
        Debug.WriteLine("Идентификатор индекса атрибута = " + id)
    Else
        Debug.WriteLine("В альтернативной иерархии не содержится индекс атрибута" + id)
    End If;
    // Сохраним изменения
    (dimension As IMetabaseObject).Save;
End Sub UserProc;

После выполнения примера в альтернативной иерархии:

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Dimensions;

Public
 Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    dimension: IDimensionModel;
    attribute: IDimAttribute;
    attributes: IDimAttributes;
    attrhierarchy: IDimAttributeHierarchy;
    attrhierarchies: IDimAttributeHierarchies;
    dimindex: IDimIndex;
    id: string;
Begin
    // Получим репозиторий
    mb := Params.Metabase;
    // Получим справочник
    dimension := mb.ItemById["DIM_SEP"].Edit() As IDimensionModel;
    // Получим коллекцию атрибутов справочника
    attributes := dimension.Attributes;
    // Получим атрибут «Name»
    attribute := attributes.FindById("NAME");
    // Получим коллекцию иерархий справочника
    attrhierarchies := dimension.AttributeHierarchies;
    // Найдем альтернативную иерархию по уровню
    attrhierarchy := attrhierarchies.FindByAttributeLevel(22);
    // Зададим атрибут-оригинал, на значениях которого построена иерархия
    attrhierarchy.BaseAttribute := attribute;
    // Установим уровень иерархии
    attrhierarchy.Level := 2;
    // Получим индекс атрибута
    If attrhierarchy.AttributeIndex <> Null Then
        dimindex := attrhierarchy.AttributeIndex;
        id := dimindex.Id;
        System.Diagnostics.Debug.WriteLine("Идентификатор индекса атрибута = " + id)
    Else
        System.Diagnostics.Debug.WriteLine("В альтернативной иерархии не содержится индекс атрибута" + id)
    End If;
    // Сохраним изменения
    (dimension As IMetabaseObject).Save();
End Sub;

См. также:

IDimAttributeHierarchy