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