IMetaMembersSet.CurrentOffset

Синтаксис Fore

CurrentOffset: Integer;

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

CurrentOffset: integer;

Описание

Свойство CurrentOffset возвращает число уровней иерархии от корня справочника до набора элементов.

Комментарии

Для получения текущего элемента в наборе используйте метод IMetaMembersSet.Current.

Пример Fore

Для выполнения примера предполагается наличие базы данных временных рядов с идентификатором «TSDB».

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

Sub UserProc;
Var
    MB: IMetabase;
    Rubr: IMetabaseObject;
    RubrInst: IRubricatorInstance;
    Facts: IMetaDictionaryInstance;
    Hierarchy: IMetaHierarchy;
    HInstance: IMetaHierarchyInstance;
    Members: IMetaMembers;
Begin
    MB := MetabaseClass.Active;
    Rubr := MB.ItemById("TSDB").Bind;
    RubrInst := Rubr.Open(NullAs IRubricatorInstance;
    Facts := RubrInst.GetDictionary(RubricatorDictionary.Facts);
    Hierarchy := Facts.Dictionary.DefaultHierarchy;
    HInstance := Facts.OpenHierarchy(Hierarchy);
    Members := HInstance.GetRootMembers;
    Members.Reset;
    Debug.WriteLine("Число уровней иерархии: " + Members.CurrentOffset.ToString);
    Debug.WriteLine("Наименования корневых элементов в иерархии:");
    Debug.Indent;
    While Not Members.Eof Do
        Debug.WriteLine(Members.Current.Name);
        Members.Next;
    End While;
    Debug.Unindent;
End Sub UserProc;

В результате выполнения примера в окно консоли будут выведены:

Пример Fore.NET

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

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Rds;

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    Rubr: IMetabaseObject;
    RubrInst: IRubricatorInstance;
    Facts: IMetaDictionaryInstance;
    Hierarchy: IMetaHierarchy;
    HInstance: IMetaHierarchyInstance;
    Members: IMetaMembers;
Begin
    MB := Params.Metabase;
    Rubr := MB.ItemById["TSDB"].Bind();
    RubrInst := Rubr.Open(NullAs IRubricatorInstance;
    Facts := RubrInst.GetDictionary(RubricatorDictionary.rubdicFacts);
    Hierarchy := Facts.Dictionary.DefaultHierarchy;
    HInstance := Facts.OpenHierarchy(Hierarchy);
    Members := HInstance.GetRootMembers();
    Members.Reset();
    System.Diagnostics.Debug.WriteLine("Число уровней иерархии: " + Members.CurrentOffset.ToString());
    System.Diagnostics.Debug.WriteLine("Наименования корневых элементов в иерархии:");
    System.Diagnostics.Debug.Indent();
    While Not Members.Eof() Do
        System.Diagnostics.Debug.WriteLine(Members.Current().Name);
        Members.Next();
    End While;
    System.Diagnostics.Debug.Unindent();
End Sub;

См. также:

IMetaMembersSet