IPivot.RebuildCompounds

Синтаксис

RebuildCompounds;

RebuildCompounds();

Описание

Метод RebuildCompounds осуществляет перестроение составных измерений.

Комментарии

Метод работает в рамках блокировки изменений в отметке и перерисовки таблицы. Используется при применении настроек управляющего измерения в кубе и расширенного фильтра. Метод используется в случае, если после изменения отметки в общем родительском измерении необходимо переоткрыть справочник в частном дочернем измерении.

Пример

Для выполнения примера предполагается наличие в репозитории формы ввода с табличной областью с идентификатором AREA1, для которой в качестве показателя указан куб с настроенным управляющим измерением. Управляющее измерение находится в боковике, управляемое измерение находится в частных измерениях показателя. Управляющее измерение с идентификатором DIM, управляемое - DIM_1.

Модуль подключается в качестве пользовательской кнопки в форму ввода.

Добавьте ссылки на системные сборки: Dimensions, Express, Pivot, Report.

Public Sub RebuildCompounds(report: IPrxReport);
Var
    pivot: IPivot;
    dataarea: IEaxDataArea;
    grid: IEaxGrid;
    version_index: integer;
    selComp, sel, selCarr: IDimSelection;
Begin
    //Останавливаем перестройку аналитической области
    dataarea := report.DataArea;
    dataarea.BeginUpdate;
    
//Получаем табличную область
    grid := dataarea.Views.FindById("AREA1") As IEaxGrid;
    
// Получаем основу таблицы
    pivot := grid.Pivot;
    
// Останавливает перестроение таблицы и отметки
    pivot.BeginUpdate;
    pivot.BeginSelectionUpdate;
    
// Получаем отметку управляющего измерения
    sel := pivot.Selection.FindById("DIM");
    
// Снимаем отметку элементов
    sel.DeselectAll;
    
// Добавляем элемент в отметку
    version_index := 0;
    sel.SelectElement(version_index, 
False);
    
// Перестраиваем составное измерение
    pivot.RebuildCompounds;
    
// Повторно получаем отметку составного измерения
    selComp := pivot.Selection.FindById("FACTS_COMPOUND");
    selCarr := ((selComp 
As ICompoundSelection).Selection.Item(0) As ICompoundSelection).Selection.FindById("DIM_1");
    // Возобновляем перестроение отметки, таблицы и аналитической области
    pivot.EndSelectionUpdate;
    pivot.EndUpdate;
    dataarea.EndUpdate;
End Sub RebuildCompounds;

Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Pivot;
Imports Prognoz.Platform.Interop.Report;
…
Public Class Module
Public Sub RebuildCompounds(report: IPrxReport);
Var
    pivot: IPivot;
    dataarea: IEaxDataArea;
    grid: IEaxGrid;
    version_index: uinteger;
    selComp, sel, selCarr: IDimSelection;
Begin
    //Останавливаем перестройку аналитической области
    dataarea := report.DataArea;
    dataarea.BeginUpdate();
    
//Получаем табличную область
    grid := dataarea.Views.FindById("AREA1") As IEaxGrid;
    
// Получаем основу таблицы
    pivot := grid.Pivot;
    
// Останавливает перестроение таблицы и отметки
    pivot.BeginUpdate();
    pivot.BeginSelectionUpdate();
 
   // Получаем отметку управляющего измерения
    sel := pivot.Selection.FindById("DIM");
    
// Снимаем отметку элементов
    sel.DeselectAll();
    
// Добавляем элемент в отметку
    version_index := 0;
    sel.SelectElement(version_index, 
False);
    
// Перестраиваем составное измерение
    pivot.RebuildCompounds();
    
// Повторно получаем отметку составного измерения
    selComp := pivot.Selection.FindById("FACTS_COMPOUND");
    selCarr := ((selComp 
As ICompoundSelection).Selection.Item[0] As ICompoundSelection).Selection.FindById("DIM_1");
    // Возобновляем перестроение отметки, таблицы и аналитической области
    pivot.EndSelectionUpdate();
    pivot.EndUpdate();
    dataarea.EndUpdate();

End Sub RebuildCompounds;
End Class;

В результате выполнения примера после нажатия пользовательской кнопки будет перестроена табличная область формы ввода.

См. также:

IPivot