AttributesGroups: IPivotGroupItems;
AttributesGroups: Prognoz.Platform.Interop.Pivot.IPivotGroupItems;
Свойство AttributesGroups возвращает объект, используемый для группировки по атрибутам элементов измерения боковика или шапки.
Для изменения порядка атрибутов для группировки используйте свойство IPivotGroupItems.Move.
Для выполнения примера в репозитории предполагается наличие регламентного отчёта с идентификатором REPORT. Отчет содержит таблицу. Источником данных для таблицы является куб, который содержит четыре измерения. Измерение боковика имеет минимум три атрибута, а измерение шапки - пять.
Добавьте ссылки на системные сборки: Dimensions, Drawing, Express, ForeSystem, Matrix, Metabase, Pivot, Report, Tab.
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Drawing;
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.ForeSystem;
Imports Prognoz.Platform.Interop.Matrix;
Imports Prognoz.Platform.Interop.Pivot;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Tab;
…
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Report: IPrxReport;
Slice: IEaxDataAreaSlice;
Pivotslice: IEaxDataAreaPivotSlice;
Pivot: IPivot;
DimInst: IDimInstance;
PivotGroupItems: IPivotGroupItems;
PivotGroupItem: IPivotGroupItem;
PivotGroupAggregations: IPivotGroupAggregations;
DimselectionSet, Selection: IDimselectionSet;
Stylesettings: IDataAreaHeaderStyleSettingsBase;
HeaderStyle, DataStyle: ITabCellStyle;
GxColorCls: GxColorClass = New GxColorClassClass();
GxSolidBrushCls: GxSolidBrush = New GxSolidBrushClass();
Settings: IDataAreaHeaderSettingsBase;
Key: uinteger;
Viewsettings: IEaxGridViewSettings;
Pivotdim: IPivotDimension;
Method: BasicAggregatorOperation;
Begin
// Получим репозиторий
MB := Params.Metabase;
// Получим отчёт
Report := MB.ItemById["REPORT"].Edit() As IPrxReport;
// Получим срез отчёта
Slice := Report.DataArea.Slices.Item[0];
// Получим объект для работы с таблицей
Pivotslice := Slice As IEaxDataAreaPivotSlice;
Pivot := Pivotslice.Pivot;
// Зададим объект для группировки по атрибутам элемента изерения
PivotGroupItems := Pivot.AttributesGroups;
// Определим параметры отображения таблицы с данными
Viewsettings := (Report.DataArea.Views.Item[0] As IEaxGrid).ViewSettings;
// Создадим копию отметок справочника
DimselectionSet := Pivot.Selection.CreateCopy();
// Удалим отметки
DimselectionSet.Clear();
// Добавим отметку
DimselectionSet.Add(Pivot.DimItem[0]);
DimselectionSet.Item[0].SelectElement(1, False);
// Добавим измерение расположенное в боковике
DimInst := Pivot.DimItem[2];
Pivotdim := Pivot.Dimensions.FindByKey(DimInst.Key);
// Определим стиль оформления заголовков
Settings := Pivotdim As IDataAreaHeaderSettingsBase;
Stylesettings := Pivotdim As IDataAreaHeaderStyleSettingsBase;
Viewsettings.GetStyleSettings[Stylesettings].Header.Font.Bold := TriState.tsOnOption;
Viewsettings.GetViewSettings[Settings].Hierarchical := TriState.tsOffOption;
// Определим атрибут для группировки
Key := DimInst.Attributes.Item[2].Attribute.Key;
// Добавим элементы в группировку
PivotGroupItems.Clear();
PivotGroupItem := PivotGroupItems.Add();
PivotGroupItem.AttributeKey := Key;
PivotGroupItem.Dimension := DimInst;
// Зададим агрегацию по умолчанию
PivotGroupItem.DefaultAggregation := BasicAggregatorOperation.baoMin;
// Установим оформление строк
Stylesettings := PivotGroupItem As IDataAreaHeaderStyleSettingsBase;
HeaderStyle := Viewsettings.GetStyleSettings[Stylesettings].Header;
GxSolidBrushCls.Create(GxColorCls.FromName("Green"));
HeaderStyle.BackgroundBrush := GxSolidBrushCls;
DataStyle := Viewsettings.GetStyleSettings[Stylesettings].Data;
GxSolidBrushCls.Create(GxColorCls.FromName("Blue"));
DataStyle.Font.Color := GxColorCls.FromName("White");
DataStyle.BackgroundBrush := GxSolidBrushCls;
// Добавим измерение расположенное в шапке
DimInst := pivot.DimItem[3];
// Определим атрибут для группировки
Key := DimInst.Attributes.Item[4].Attribute.Key;
// Добавим элементы в группировку
PivotGroupItem := PivotGroupItems.Add();
PivotGroupItem.AttributeKey := Key;
PivotGroupItem.Dimension := DimInst;
// Установим оформление столбцов
Stylesettings := PivotGroupItem As IDataAreaHeaderStyleSettingsBase;
HeaderStyle := Viewsettings.GetStyleSettings[Stylesettings].Header;
GxSolidBrushCls.Create(GxColorCls.FromName("Yellow"));
HeaderStyle.BackgroundBrush := GxSolidBrushCls;
DataStyle := Viewsettings.GetStyleSettings[Stylesettings].Data;
GxSolidBrushCls.Create(GxColorCls.FromName("Black"));
DataStyle.Font.Color := GxColorCls.FromName("White");
DataStyle.BackgroundBrush := GxSolidBrushCls;
// Зададим метод агрегации для столбцов
PivotGroupAggregations := PivotGroupItem.AggregationMethods;
Method := BasicAggregatorOperation.baoSum;
Selection := DimselectionSet;
PivotGroupAggregations.Add(Selection, Method);
// Обновим объект для работы с таблицей
Pivot.Refresh();
// Сохраним отчёт
(Report As IMetabaseObject).Save();
End Sub;
В результате выполнения примера в таблице отобразятся дополнительные строки и столбцы с наименованиями атрибутов. В этих столбцах/строках будут отображены агрегированные значения. Будет применено оформление для заголовков строк/столбцов и их значений.
См. также: