CalendarDim: IDimInstance;
Свойство CalendarDim возвращает календарь ряда.
Если ряды, содержащиеся в рабочей книге, используют разные календари, то свойство ILaner.CalendarDim возвращает значение NULL.
Для выполнения примера предполагается наличие формы, расположенного на ней компонента 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;
После выполнения процедуры, если ряды в рабочей книге используют различные календари, то в окно консоли будут выведены:
ключи используемых календарных справочников;
календарь рабочей книги с указанием уровня динамики для каждой даты.
См. также: