IDimensionModel.IsCalendar

Синтаксис Fore

IsCalendar: Boolean;

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

IsCalendar: Boolean;

Описание

Свойство IsCalendar определяет, используется ли справочник в качестве календарного.

Комментарии

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

Для сопоставления атрибутов следует передать в свойство IDimensionModel.AsCalendar необходимый набор атрибутов и уровней.

Пример Fore

Для выполнения примера требуется наличие табличного справочника, содержащего атрибуты:

Подключите системные сборки Metabase и Dimensions.

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Dim: IDimensionModel;
    DimAsCln: IDimAsCalendar;
    sAttr: String;
    pAttr: IDimAttribute;
    eLevel: DimCalendarLevel;
    I: Integer;
Begin
    MB := MetabaseClass.Active;
    MObj := MB.ItemById("OBJ12514").Edit;
    Dim := MObj As IDimensionModel;
    DimAsCln := Dim.AsCalendar;
        // Сопостовляем атрибуты
        For I := 0 To DimAsCln.Attrs.Count - 1 Do
            sAttr := DimAsCln.Attrs.Item(I).Id;
            pAttr := Dim.Attributes.FindById(sAttr + "_REN");
            DimAsCln.Attrs.IdAttr(sAttr) := pAttr;
            // Выводим в консоль идентификаторы атрибутов
           debug.WriteLine(DimAsCln.Attrs.Item(I).Attr.Id);
        End For;
        // Сопостовляем уровни
        For I := 0 To DimAsCln.Levels.Count - 1 Do
            eLevel := DimAsCln.Levels.Item(I).Level;
            DimAsCln.Levels.LevelKey(eLevel) := 100 + (eLevel As Integer);
            // Выводим в консоль ключи уровней
           debug.WriteLine(DimAsCln.Levels.Item(I).Key);
        End For;
    // Объявляем справочник календарным
    Dim.IsCalendar := True;
    MObj.Save;
End Sub UserProc;

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

Пример Fore.Net

Пример аналогичен примеру на Fore.

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Dimensions;

Sub UserProc(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Dim: IDimensionModel;
    DimAsCln: IDimAsCalendar;
    sAttr: String;
    pAttr: IDimAttribute;
    eLevel: DimCalendarLevel;
    I: Integer;
Begin
    MB := Params.Metabase;
    MObj := MB.ItemById["OBJ12514"].Edit();
    Dim := MObj As IDimensionModel;
    DimAsCln := Dim.AsCalendar;
        // Сопостовляем атрибуты
        For I := 0 To DimAsCln.Attrs.Count - 1 Do
            sAttr := DimAsCln.Attrs.Item[I].Id;
            pAttr := Dim.Attributes.FindById(sAttr + "_REN");
            DimAsCln.Attrs.IdAttr[sAttr] := pAttr;
        End For;
        // Сопостовляем уровни
        For I := 0 To DimAsCln.Levels.Count - 1 Do
            eLevel := DimAsCln.Levels.Item[I].Level;
            DimAsCln.Levels.LevelKey[eLevel] := 100 + (eLevel As Integer);
        End For;
    // Объявляем справочник календарным
    Dim.IsCalendar := True;
    MObj.Save();
End Sub UserProc;

См. также:

IDimensionModel