IMetaHierarchy.LeafLoadExtent

Синтаксис Fore

LeafLoadExtent: Integer;

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

LeafLoadExtent: integer;

Описание

Свойство LeafLoadExtent накладывает ограничение на количество загружаемых листьевых элементов.

Комментарии

Чем больше число загружаемых листьевых элементов, тем медленнее выполняется загрузка.

Пример Fore

Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «FC_COMM». Добавьте ссылки на системные сборки «Metabase», «Cubes», «Rds».

Sub UserProc;
Var
   mb: IMetabase;
    RubDesc: IMetabaseObjectDescriptor;
    RubrIn: IRubricatorInstance;
    DictInst: IMetaDictionaryInstance;
    HieDef: IMetaHierarchy;
    HieInst: IMetaHierarchyInstance;
    Mems: IMetaMembers;
Begin
    mb := MetabaseClass.Active;
    RubDesc := mb.ItemById("FC_COMM");
    RubrIn := RubDesc.Open(NullAs IRubricatorInstance;
    DictInst := RubrIn.GetDictionary(RubricatorDictionary.Facts);
    HieDef := DictInst.Dictionary.DefaultHierarchy;
    HieDef.Attributes.MoveAllTo(HieDef.Attributes, HieDef.Levels.Leaf);
// Установили ограничение
    HieDef.LeafLoadExtent := 128;
    HieInst := DictInst.OpenHierarchy(HieDef);
    Mems := HieInst.GetRootMembers;
    Mems.Reset;
    Repeat
        Debug.WriteLine(Mems.Current.Name);
        Mems.Next;
    Until Not Mems.Eof;
End Sub UserProc;

После выполнения примера в окно консоли будут выведены наименования корневых элементов иерархии базы данных временных рядов с учетом наложенного ограничения.

Пример Fore.NET

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

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

Public Shared Sub Main(Params: StartParams);
Var
    mb: IMetabase;
    RubDesc: IMetabaseObjectDescriptor;
    RubrIn: IRubricatorInstance;
    DictInst: IMetaDictionaryInstance;
    HieDef: IMetaHierarchy;
    HieInst: IMetaHierarchyInstance;
    Mems: IMetaMembers;
Begin
    mb := Params.Metabase;
    RubDesc := mb.ItemById["FC_COMM"];
    RubrIn := RubDesc.Open(NullAs IRubricatorInstance;
    DictInst := RubrIn.GetDictionary(RubricatorDictionary.rubdicFacts);
    HieDef := DictInst.Dictionary.DefaultHierarchy;
    HieDef.Attributes.MoveAllTo(HieDef.Attributes, HieDef.Levels.Leaf, -1True);
// Установили ограничение
    HieDef.LeafLoadExtent := 2;
    HieInst := DictInst.OpenHierarchy(HieDef);
    Mems := HieInst.GetRootMembers();
    Mems.Reset();
    Repeat
        System.Diagnostics.Debug.WriteLine(Mems.Current().Name);
        Mems.Next();
    Until Not Mems.Eof();
End Sub;

После выполнения примера в окно консоли будут выведены наименования корневых элементов иерархии базы данных временных рядов с учетом наложенного ограничения.

См. также:

IMetaHierarchy