IsHierarchical: Boolean;
IsHierarchical: boolean;
Свойство IsHierarchical определяет, установлена ли раскрывающаяся иерархия.
Допустимые значения:
True. Установлена раскрывающаяся иерархия;
False. Не установлена раскрывающаяся иерархия.
Для выполнения примера предполагается наличие формы, содержащей компонент Button с идентификатором Button» и компонент UiReport с идентификатором UiReport1. В качестве источника данных используется регламентный отчет с настроенной иерархией. Пример является обработчиком события OnClick для компонента Button1.
Добавьте ссылки на системные сборки: Dimensions, ForeSystem, Matrix, Report.
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
Rep: IPrxReport;
DIs: IPrxDataIslands;
DI: IPrxDataIsland;
Dim: IDimInstance;
DimProp: IPrxDataIslandDimension;
Totals: IPrxDataIslandTotals;
TotalsL: IPrxDataIslandTotals;
DimModel: IDimensionModel;
DIProp: IPrxDataIslandProperties;
Top: IPrxDataIslandDimension;
Level: IPrxDataIslandLevel;
Begin
Rep := UiReport1.Report;
DIs := Rep.DataIslands;
DI := DIs.Item(0).Edit;
// Раскрывающаяся иерархия:
DimModel := DI.Slice.TopHeader.Item(0).Dimension.Dimension;
DIProp := DI.Properties;
Top := DIProp.Dimension(DimModel);
Level := Top.Level(DimModel.Levels.Item(0));
If Not Level.IsHierarchical Then
Level.Hierarchical := TriState.OnOption;
End If;
Debug.WriteLine("Раскрывающаяся иерархия: ");
Select Case Level.Hierarchical
Case TriState.OnOption:
Debug.WriteLine("установлена");
Case TriState.OffOption:
Debug.WriteLine("не установлена");
End Select;
Dim := DI.Slice.LeftHeader.Item(0).Dimension;
DimProp := DIProp.Dimension(Dim.Dimension);
// Параметры итогов по иерархии
Totals := DimProp.HierarchyTotals;
Totals.Totals := TriState.OnOption;
Totals.Method := BasicAggregatorOperation.Sum;
// Параметры итогов по уровням
TotalsL := DimProp.LevelTotals;
TotalsL.Totals := TriState.OnOption;
TotalsL.Method := BasicAggregatorOperation.Sum;
DI.Save;
End Sub Button1OnClick;
После выполнения примера в окно консоли будет выведен результат проверки, установлена ли раскрывающаяся иерархия для столбцов заданной области данных регламентного отчета.
В случае, если опция была установлена, то она будет отключена для столбцов заданной области.
Для регламентного отчета будут настроены итоги по иерархии и уровням для измерения, расположенного по строкам в заданной области данных.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore. Вместо компонентов Fore используйте их Fore.NET аналоги.
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.ForeSystem;
Imports Prognoz.Platform.Interop.Matrix;
…
Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
Rep: IPrxReport;
DIs: IPrxDataIslands;
DI: IPrxDataIsland;
Dim: IDimInstance;
DimProp: IPrxDataIslandDimension;
Totals: IPrxDataIslandTotals;
TotalsL: IPrxDataIslandTotals;
DimModel: IDimensionModel;
DIProp: IPrxDataIslandProperties;
Top: IPrxDataIslandDimension;
Level: IPrxDataIslandLevel;
Begin
Rep := uiReportNet1.ReportUi.Report;
DIs := Rep.DataIslands;
DI := DIs.Item[0].Edit();
// Раскрывающаяся иерархия:
DimModel := DI.Slice.TopHeader.Item[0].Dimension.Dimension;
DIProp := DI.Properties;
Top := DIProp.Dimension[DimModel];
Level := Top.Level[DimModel.Levels.Item[0]];
If Not Level.IsHierarchical Then
Level.Hierarchical := TriState.tsOnOption;
End If;
System.Diagnostics.Debug.WriteLine("Раскрывающаяся иерархия: ");
Select Case Level.Hierarchical
Case TriState.tsOnOption:
System.Diagnostics.Debug.WriteLine("установлена");
Case TriState.tsOffOption:
System.Diagnostics.Debug.WriteLine("не установлена");
End Select;
Dim := DI.Slice.LeftHeader.Item[0].Dimension;
DimProp := DIProp.Dimension[Dim.Dimension];
// Параметры итогов по иерархии
Totals := DimProp.HierarchyTotals;
Totals.Totals := TriState.tsOnOption;
Totals.Method := BasicAggregatorOperation.baoSum;
// Параметры итогов по уровням
TotalsL := DimProp.LevelTotals;
TotalsL.Totals := TriState.tsOnOption;
TotalsL.Method := BasicAggregatorOperation.baoSum;
DI.Save();
End Sub;
См. также: