ILanerSerie.CalendarDim

Синтаксис Fore

CalendarDim: IDimInstance;

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

CalendarDim: Prognoz.Platform.Interop.Dimensions.IDimInstance;

Описание

Свойство CalendarDim возвращает календарь ряда.

Комментарии

Если ряды, содержащиеся в рабочей книге, используют разные календари, то свойство ILaner.CalendarDim возвращает значение NULL.

Пример Fore

Для выполнения примера предполагается наличие формы, расположенного на ней компонента LanerBox и компонента UiErAnalyzer с наименованием «UiErAnalyzer1», являющегося источником данных для LanerBox. В «UiErAnalyzer1» должна быть загружена рабочая книга базы данных временных рядов.

Добавьте ссылку на системную сборку «Dimensions».

Sub UserProc;
Var
    Laner: ILaner;
    i: Integer;
    Series: ILanerSeries;
    LSerie: ILanerSerie;
    Calendar: IDimInstance;
    Tbl: ILanerTable;
    TopH: ILanerTopHeader;
Begin
    Laner := UiErAnalyzer1.ErAnalyzer.Laner;
    If Laner.CalendarDim = Null Then
        Series := Laner.Series;
        Debug.WriteLine("Ключи используемых календарных справочников:");
        For i := 0 To Series.Count - 1 Do
            LSerie := Series.Item(i);
            Calendar := LSerie.CalendarDim As IDimInstance;
            Debug.WriteLine(Calendar.Key);
        End For;
        Tbl := Laner.Execute;
        TopH := Tbl.TopHeader;
        Debug.WriteLine("Календарь рабочей книги с уровнями динамики:");
        For i := 0 To TopH.ElementCount - 1 Do
            Debug.Write(TopH.DimensionDate(0, i));
            Select Case TopH.DimensionLevel(0, i)
                Case DimCalendarLevel.Day: Debug.WriteLine(" - дни");
                Case DimCalendarLevel.HalfYear: Debug.WriteLine(" - полугодия");
                Case DimCalendarLevel.Month: Debug.WriteLine(" - месяцы");
                Case DimCalendarLevel.NineMonths: Debug.WriteLine(" - 9 месяцев");
                Case DimCalendarLevel.Quarter: Debug.WriteLine(" - кварталы");
                Case DimCalendarLevel.Week: Debug.WriteLine(" - недели");
                Case DimCalendarLevel.Year: Debug.WriteLine(" - годы");
            End Select;
        End For;
    End If;
End Sub UserProc;

После выполнения процедуры, если ряды в рабочей книге используют различные календари, то в окно консоли будут выведены:

Пример Fore.NET

Для выполнения примера предполагается наличие формы .NET, расположенного на ней компонента LanerBoxNet и компонента UiErAnalyzerNet с наименованием «UiErAnalyzerNet1», являющегося источником данных для LanerBoxNet. В «UiErAnalyzerNet1» должна быть загружена рабочая книга базы данных временных рядов.

Imports Prognoz.Platform.Interop.Laner;
Imports Prognoz.Platform.Interop.Dimensions;

Public Shared Sub UserProc;
Var
    Laner: ILaner;
    i: Integer;
    Series: ILanerSeries;
    LSerie: ILanerSerie;
    Calendar: IDimInstance;
    Tbl: ILanerTable;
    TopH: ILanerTopHeader;
Begin
    Laner := UiErAnalyzerNet1.ErAnalyzer.ErAnalyzer.Laner;
    If Laner.CalendarDim = Null Then
        Series := Laner.Series;
        System.Diagnostics.Debug.WriteLine("Ключи используемых календарных справочников:");
        For i := 0 To Series.Count - 1 Do
            LSerie := Series.Item[i];
            Calendar := LSerie.CalendarDim As IDimInstance;
            System.Diagnostics.Debug.WriteLine(Calendar.Key);
        End For;
        Tbl := Laner.Execute();
        TopH := Tbl.TopHeader;
        System.Diagnostics.Debug.WriteLine("Календарь рабочей книги с уровнями динамики:");
        For i := 0 To TopH.ElementCount - 1 Do
            System.Diagnostics.Debug.Write(TopH.DimensionDate[0, i]);
            Select Case TopH.DimensionLevel[0, i]
                Case DimCalendarLevel.dclDay: System.Diagnostics.Debug.WriteLine(" - дни");
                Case DimCalendarLevel.dclHalfYear: System.Diagnostics.Debug.WriteLine(" - полугодия");
                Case DimCalendarLevel.dclMonth: System.Diagnostics.Debug.WriteLine(" - месяцы");
                Case DimCalendarLevel.dclNineMonths: System.Diagnostics.Debug.WriteLine(" - 9 месяцев");
                Case DimCalendarLevel.dclQuarter: System.Diagnostics.Debug.WriteLine(" - кварталы");
                Case DimCalendarLevel.dclWeek: System.Diagnostics.Debug.WriteLine(" - недели");
                Case DimCalendarLevel.dclYear: System.Diagnostics.Debug.WriteLine(" - годы");
            End Select;
        End For;
    End If;
End Sub;

После выполнения процедуры, если ряды в рабочей книге используют различные календари, то в окно консоли будут выведены:

См. также:

ILanerSerie