RebuildCompounds;
RebuildCompounds();
Метод RebuildCompounds осуществляет перестроение составных измерений.
Метод работает в рамках блокировки изменений в отметке и перерисовки таблицы. Используется при применении настроек управляющего измерения в кубе и расширенного фильтра.
Для выполнения примера предполагается наличие в репозитории формы ввода с табличной областью с идентификатором AREA1, для которой в качестве показателя указан куб с настроенным управляющим измерением. Управляющее измерение находится в общих измерениях, управляемое измерение находится в частных измерениях показателя. Управляемое измерение с идентификатором DIM.
Модуль подключается в качестве пользовательской кнопки в форму ввода.
Добавьте ссылки на системные сборки: Dimensions, Express, Pivot, Report.
Public Sub RebuildCompounds(report: IPrxReport);
Var
pivot: IPivot;
grid: IEaxGrid;
version_index: integer;
selComp, sel, selCarr: IDimSelection;
Begin
//Получаем табличную область
grid := report.DataArea.Views.FindById("AREA1") As IEaxGrid;
// Получаем основу таблицы
pivot := grid.Pivot;
// Останавливает перестроение таблицы и отметки
pivot.BeginUpdate;
pivot.BeginSelectionUpdate;
// Получаем отметку составного измерения
selComp := pivot.Selection.FindById("FACTS_COMPOUND");
sel := ((selComp As ICompoundSelection).Selection.Item(0) As ICompoundSelection).Selection.FindById("DIM");
// Снимаем отметку элементов
sel.DeselectAll;
// Добавляем элемент в отметку
version_index := 3;
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");
// Возобновляем перестроение отметки и таблицы
pivot.EndSelectionUpdate;
pivot.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;
grid: IEaxGrid;
version_index: uinteger;
selComp, sel, selCarr: IDimSelection;
Begin
//Получаем табличную область
grid := report.DataArea.Views.FindById("AREA1") As IEaxGrid;
// Получаем основу таблицы
pivot := grid.Pivot;
// Останавливает перестроение таблицы и отметки
pivot.BeginUpdate();
pivot.BeginSelectionUpdate();
// Получаем отметку составного измерения
selComp := pivot.Selection.FindById("FACTS_COMPOUND");
sel := ((selComp As ICompoundSelection).Selection.Item[0] As ICompoundSelection).Selection.FindById("DIM");
// Снимаем отметку элементов
sel.DeselectAll();
// Добавляем элемент в отметку
version_index := 3;
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");
// Возобновляем перестроение отметки и таблицы
pivot.EndSelectionUpdate();
pivot.EndUpdate();
End Sub RebuildCompounds;
End Class;
В результате выполнения примера после нажатия пользовательской кнопки будет перестроена табличная область формы ввода.
См. также: