IDimElements.GroupKey

Syntax

GroupKey(Element: Integer): Integer;

Parameters

Element - dictionary element index.

Description

The GroupKey method returns group key for element. The method returns 0 if the element is not a group.

Example

Executing the example requires a form, a button named Button1 positioned on this form and the following components: UiDimension with the UiDimension1 identifier, UiRdsDictionary with the UiRdsDictionary1 identifier, Memo with the Memo1 identifier, and the DimensionTree component. UiRdsDictionary1 is used as the data source for the DimensionTree component. The repository should include MDM repository MDM_REPO that contains the dictionary named OBJ_DICTIONARY.

Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
    Metabase: IMetabase;
    RdsKey: Integer;
    Object: IMetabaseObjectDescriptor;
    Params: IMetabaseObjectParams;
    Param: IMetabaseObjectParam;
    Values: IMetabaseObjectParamValues;
    Dictionary: IRdsDictionaryInstance;
    Dict: IRdsDictionary;
    DimInstance: IDimInstance;
    Elements: IDimElements;
    Element: Integer;
    i: Integer;
Begin
    Metabase := MetabaseClass.Active;
    RdsKey := Metabase.GetObjectKeyById("RDS_REPO");
    Object := Metabase.ItemByIdNamespace("OBJ_DICTIONARY", RdsKey);
    Object := Object.Edit;
    Params := Object.Params;
    Param := Params.Add;
    Param.Name := "RDSDIMTYPE";
    Param.Id := "RDSDIMTYPE";
    Param.DataType := DbDataType.Integer;
    Values := Params.CreateEmptyValues;
    Values.FindById("RDSDIMTYPE").Value := 1;
    Dictionary := Object.Open(Values) As IRdsDictionaryInstance;
    DimInstance := Dictionary As IDimInstance;
    UiDimension1.Instance := DimInstance;
    Dict := Dictionary.Dictionary;
    UiRdsDictionary1.Object := Dict;
    UiRdsDictionary1.Open(Values);
    UiRdsDictionary1.Active := True;
    Memo1.Clear;
    Elements := DimInstance.Elements;
    For i := 0 To Elements.Count - 1 Do
        Element := Elements.Elements.Element(i);
        If Elements.IsGroup(Element) Then
            Memo1.Lines.Add("    Group: " + Elements.Name(Element));
            Memo1.Lines.Add("        Group key: " + Elements.GroupKey(Element).ToString);
        Else
            Memo1.Lines.Add("Element: " + Elements.Name(Element));
        End If;
    End For;
End Sub Button1OnClick;

After executing the example the DimensionTree component shows groups and elements of the OBJ_DICTIONARY dictionary as a tree. The Memo component displays information on dictionary elements (name) and groups (name and key).

See also:

IDimElements