IPrxSliceDimension.BeginUpdate

Синтаксис

BeginUpdate;

Описание

Метод BeginUpdate инициализирует обновление измерения.

Комментарии

Метод рекомендуется использовать при изменении отметки управляющего измерения для блокировки обновления зависимых измерений. После выставления отметки по управляющему измерению снимите блокировку обновления зависимых измерений.

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

Метод BeginUpdate применятся совместно с методом EndUpdate:

Пример Fore

Для выполнения примера:

  1. Создайте регламентный отчёт.

  2. Добавьте в качестве источника данных стандартный куб с управляющими измерениями. Одно из измерений с идентификатором «Customers», от которого зависят другие измерения.

  3. Добавьте в область данных срез.

  4. Перенесите добавленный срез на лист отчёта, используя механизм Drag&Drop.

  5. Создайте обработчик событий.

  6. В модуле подключите системные сборки: Report, Dimensions.

  7. Задайте для события OnBeforeExecuteReport обновление измерений при изменении отметки:

Public Sub OnBeforeExecuteReport(Report: IPrxReport; Var Cancel: Boolean);
Var
    DtSources: IPrxDataSources;
    Slices: IPrxSlices;
    SliceDim: IPrxSliceDimension;
Begin
    Report := PrxReport.ActiveReport;
    // Зададим источник данных отчета
    DtSources := Report.DataSources;
    // Зададим срез и измерение среза по идентификатору
    Slices := DtSources.Item(0).Slices;
    SliceDim := Slices.Item(0).LeftHeader.FindById("Customers");
    // Инициализируем обновление измерения по заданным отметкам
    SliceDim.BeginUpdate;
    SliceDim.Selection.DeselectAll;
    SliceDim.Selection.selectelement(1True);
    SliceDim.Selection.selectelement(2True);
    SliceDim.EndUpdate;
End Sub OnBeforeExecuteReport;

В регламентном отчёте после нажатия на кнопку «Обновить» на вкладке «Главная» ленты инструментов произойдет событие, при котором изменится отметка заданного измерения, а зависимые измерения перестроятся под данную отметку.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Dimensions;

Public Override Sub OnBeforeExecuteReport(Report: IPrxReport; Var Cancel: Boolean);
Var
    DtSources: IPrxDataSources;
    Slices: IPrxSlices;
    SliceDim: IPrxSliceDimension;
    DI: IPrxDataIsland;
Begin
    // Зададим источник данных отчёта
    DtSources := Report.DataSources;
    // Зададим срез и измерение среза по идентификатору
    Slices := DtSources.Item[0].Slices;
    SliceDim := Slices.Item[0].LeftHeader.FindById("Customers");
    // Инициализируем обновление измерения по заданным отметкам
    SliceDim.BeginUpdate();
    SliceDim.Selection.DeselectAll();
    SliceDim.Selection.selectelement(1True);
    SliceDim.Selection.selectelement(2True);
    SliceDim.EndUpdate();
End Sub OnBeforeExecuteReport;

См. также:

IPrxSliceDimension