Pivot: IPivot;
Pivot: Prognoz.Platform.Interop.Pivot.IPivot;
Свойство Pivot возвращает объект для работы с основой для построения таблицы с данными.
Для выполнения примера в репозитории предполагается наличие:
регламентного отчета с идентификатором «REPORT», содержащего аналитическую область данных;
экспресс-отчета с идентификатором «EXPRESS», содержащего таблицу.
Оба отчета построены на одном источнике данных. В экспресс-отчете каким-либо образом изменен стиль оформления таблицы.
Добавьте ссылки на системные сборки: Dimensions, Express, Metabase, Pivot, Report.
Sub UserProc;
Var
MB: IMetabase;
Report: IPrxReport;
DataArea: IEaxDataArea;
RepGrid, EaxGrid: IEaxGrid;
PivSlice, Slice: IEaxDataAreaPivotSlice;
Pivot: IPivot;
CombSel: IDimSelection;
Express: IEaxAnalyzer;
Begin
// Получим репозиторий
MB := MetabaseClass.Active;
// Получим аналитическую область данных регламентного отчета
Report := MB.ItemById("REPORT").Edit As IPrxReport;
DataArea := Report.DataArea;
// Получим представление данных - таблицу
RepGrid := DataArea.Views.Item(0) As IEaxGrid;
// Получим основу для построения среза аналитической области данных
PivSlice := DataArea.Slices.Item(0) As IEaxDataAreaPivotSlice;
// Выведем в окно консоли количество измерений
Pivot := PivSlice.Pivot;
Debug.WriteLine("Количество измерений = " + Pivot.DimCount.ToString);
// Выведем в окно консоли отметку измерений метрик
CombSel := PivSlice.CombinedIndicatorSelection;
Debug.WriteLine("Элементы отметки измерения метрик = " + CombSel.ToString("", ", ", False));
// Получим экспресс-отчет
Express := MB.ItemById("EXPRESS").Bind As IEaxAnalyzer;
// Получим основу для построения среза
Slice := Express.DataArea.Slices.Item(0) As IEaxDataAreaPivotSlice;
// Получим таблицу экспресс-отчета
EaxGrid := Express.Grid;
// Применим срез и представление данных
PivSlice.Apply(Slice, EaxPivotSliceApplyOptions.Default_);
RepGrid.Apply(EaxGrid, EaxGridApplyOptions.Default_);
(Report As IMetabaseObject).Save;
End Sub UserProc;
При выполнении примера в окно консоли будет выведено количество измерений в срезе, элементы отметки измерения метрик. В аналитическую область данных регламентного отчета будут импортированы настройки из экспресс-отчета.
Необходимые требования и результат выполнения примера Fore.NET совпадают с Fore.
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Report: IPrxReport;
DataArea: IEaxDataArea;
RepGrid, EaxGrid: EaxGrid;
PivSlice, Slice: IEaxDataAreaPivotSlice;
Pivot: IPivot;
CombSel: IDimSelection;
Express: IEaxAnalyzer;
Begin
// Получим репозиторий
MB := Params.Metabase;
// Получим аналитическую область данных регламентного отчета
Report := MB.ItemById["REPORT"].Edit() As IPrxReport;
DataArea := Report.DataArea;
// Получим представление данных - таблицу
RepGrid := DataArea.Views.Item[0] As EaxGrid;
// Получим основу для построения среза аналитической области данных
PivSlice := DataArea.Slices.Item[0] As IEaxDataAreaPivotSlice;
// Выведем в окно консоли количество измерений
Pivot := PivSlice.Pivot;
System.Diagnostics.Debug.WriteLine("Количество измерений = " + Pivot.DimCount.ToString());
// Выведем в окно консоли отметку измерений метрик
CombSel := PivSlice.CombinedIndicatorSelection;
System.Diagnostics.Debug.WriteLine("Элементы отметки измерения метрик = " + CombSel.ToString("", ", ", False));
// Получим экспресс-отчет
Express := MB.ItemById["EXPRESS"].Bind() As IEaxAnalyzer;
// Получим основу для построения среза
Slice := Express.DataArea.Slices.Item[0] As IEaxDataAreaPivotSlice;
// Получим таблицу экспресс-отчета
EaxGrid := Express.Grid;
// Применим срез и представление данных
PivSlice.Apply(Slice, EaxPivotSliceApplyOptions.epsaoDefault);
RepGrid.Apply(EaxGrid, EaxGridApplyOptions.egaoDefault);
(Report As IMetabaseObject).Save();
End Sub;
См. также: