IAdoMdConnection.HierarchyLevels

Синтаксис Fore

HierarchyLevels(Cube: String; Dimension: String; Hierarchy: String; Level: String): IDalCursor;

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

HierarchyLevels(Cube: string; Dimension: string; Hierarchy: string; Level: string): Prognoz.Platform.Interop.Dal.;

Параметры

Cube. Физическое имя куба.

Dimension. Физические имя справочника.

Hierarchy. Наименование иерархии справочника.

Level. Уровень иерархии справочника.

Описание

Метод HierarchyLevels возвращает курсор, содержащий системную информацию об указанном уровне иерархии справочника.

Комментарии

Если параметры Cube, Dimension, Hierarchy и Level не заданы, то полученный курсор будет содержать информацию обо всех уровнях иерархий всех справочников, имеющихся в каталоге ADOMD. В зависимости от того, какие из параметров заданы, будет получен курсор с информацией по одному или нескольким уровням.

Для разделения информации по уровням в курсор будет добавляться отдельная запись. Первое поле в этой записи не будет иметь наименования, в качестве значения поля будет указан номер уровня.

Пример Fore

Для выполнения примера предполагается наличие в репозитории каталога ADOMD с идентификатором «ADOMDTest». В данном каталоге имеется куб с физическим именем «Test», в структуре этого куба имеется справочник с физическим именем «Dim_1».

Sub UserProc;
Var
    MB: IMetabase;
    Catalog: IAdoMdCatalogInstance;
    Connection: IAdoMdConnection;
    HieLvl: IDalCursor;
    CFields: IDalCursorFields;
    CField: IDalCursorField;
    i: Integer;
Begin
    MB := MetabaseClass.Active;
    Catalog := MB.ItemById("ADOMDTest").Open(NullAs IAdoMdCatalogInstance;
    Connection := Catalog.Connection;
    HieLvl := Connection.HierarchyLevels("Test""Dim_1""""");
    CFields := HieLvl.Fields;
    While Not HieLvl.Eof Do
        For i := 0 To CFields.Count - 1 Do
            CField := CFields.Item(i);
            Debug.WriteLine(CField.Name + " | " + CField.Value);
        End For;
        HieLvl.Next;
    End While;
End Sub UserProc;

При выполнении примера будет получен курсор, содержащий информацию обо всех уровнях всех иерархий указанного справочника ADOMD. Данная информация будет выведена в консоль среды разработки.

Пример Fore.NET

Для выполнения примера предполагается наличие в репозитории каталога ADOMD с идентификатором «ADOMDTest». В данном каталоге имеется куб с физическим именем «Test», в структуре этого куба имеется справочник с физическим именем «Dim_1».

Imports Prognoz.Platform.Interop.AdoMd;
Imports Prognoz.Platform.Interop.Dal;
Imports Prognoz.Platform.Interop.Metabase;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Catalog: IAdoMdCatalogInstance;
    Connection: IAdoMdConnection;
    HieLvl: IDalCursor;
    CFields: IDalCursorFields;
    CField: IDalCursorField;
    i: Integer;
Begin
    MB := Params.Metabase;
    Catalog := MB.ItemById["ADOMDTest"].Open(NullAs IAdoMdCatalogInstance;
    Connection := Catalog.Connection;
    HieLvl := Connection.HierarchyLevels("Test""Dim_1""""");
    CFields := HieLvl.Fields;
    While Not HieLvl.Eof() Do
        For i := 0 To CFields.Count - 1 Do
            CField := CFields.Item[i];
            System.Diagnostics.Debug.WriteLine(CField.Name + " | " + CField.Value);
        End For;
        HieLvl.Next();
    End While;
End Sub;

При выполнении примера будет получен курсор, содержащий информацию обо всех уровнях всех иерархий указанного справочника ADOMD. Данная информация будет выведена в консоль среды разработки.

См. также:

IAdoMdConnection