IDimAttributeHierarchy.BaseAttribute

Fore Syntax

BaseAttribute: IDimAttribute;

Fore.NET Syntax

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

Description

The BaseAttribute property determines original attribute basing on unique values of which hierarchy is built.

Comments

To determine number of original attribute alternative hierarchy levels, use IDimAttributeHierarchy.Level.

Fore Example

Executing the example requires that the repository contains a table dictionary with the DIM_SEP identifier containing attribute with the NAME identifier.

Add links to the Dimensions, Metabase system assemblies.

Sub UserProc;
Var
    mb: IMetabase;
    dimension: IDimensionModel;
    attribute: IDimAttribute;
    attributes: IDimAttributes;
    attrhierarchy: IDimAttributeHierarchy;
    attrhierarchies: IDimAttributeHierarchies;
    dimindex: IDimIndex;
    id: string;
Begin
    // Get repository
    mb := MetabaseClass.Active;
    // Get dictionary
    dimension := mb.ItemById("DIM_SEP").Edit As IDimensionModel;
    // Get collection of dictionary attributes
    attributes := dimension.Attributes;
    // Get the Name attribute
    attribute := attributes.FindById("NAME");
    // Get collection of dictionary hierarchies
    attrhierarchies := dimension.AttributeHierarchies;
    // Find alternative hierarchy by level
    attrhierarchy := attrhierarchies.FindByAttributeLevel(22);
    // Set up original attribute basing on which values hierarchy is built
    attrhierarchy.BaseAttribute := attribute;
    // Set hierarchy level
    attrhierarchy.Level := 2;
    // Get attribute index
    If attrhierarchy.AttributeIndex <> Null Then
        dimindex := attrhierarchy.AttributeIndex;
        id := dimindex.Id;
        Debug.WriteLine("Identifier of attribute index = " + id)
    Else
        Debug.WriteLine("Alternative hierarchy does not contain attribute index" + id)
    End If;
    // Save changes
    (dimension As IMetabaseObject).Save;
End Sub UserProc;

After executing the example in alternative hierarchy:

Fore.NET Example

The requirements and result of the Fore.NET example execution match with those in the Fore Example.

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
    // Get repository
    mb := Params.Metabase;
    // Get dictionary
    dimension := mb.ItemById["DIM_SEP"].Edit() As IDimensionModel;
    // Get collection of dictionary attributes
    attributes := dimension.Attributes;
    // Get the Name attribute
    attribute := attributes.FindById("NAME");
    // Get collection of dictionary hierarchies
    attrhierarchies := dimension.AttributeHierarchies;
    // Find alternative hierarchy by level
    attrhierarchy := attrhierarchies.FindByAttributeLevel(22);
    // Set up original attribute basing on which values hierarchy is built
    attrhierarchy.BaseAttribute := attribute;
    // Set hierarchy level
    attrhierarchy.Level := 2;
    // Get attribute index
    If attrhierarchy.AttributeIndex <> Null Then
        dimindex := attrhierarchy.AttributeIndex;
        id := dimindex.Id;
        System.Diagnostics.Debug.WriteLine("Attribute index identifier = " + id)
    Else
        System.Diagnostics.Debug.WriteLine("Alternative hierarchy does not have attribute index" + id)
    End If;
    // Save changes
    (dimension As IMetabaseObject).Save();
End Sub;

See also:

IDimAttributeHierarchy