IPrxCalculatedBasePoint.AggregatorOperation

Синтаксис Fore

AggregatorOperation(Dimension: IDimInstanceIDimInstance): BasicAggregatorOperation;

Синтаксис Fore.NET

AggregatorOperation(Dimension: Prognoz.Platform.Interop.Dimensions.IDimInstance): Prognoz.Platform.Interop.Matrix.BasicAggregatorOperation;

Параметры

Dimension. Измерение источника данных отчёта.

Описание

Свойство AggregatorOperation определяет метод агрегации при множественной отметке по выбранному измерению.

Комментарии

Для определения, будет ли использоваться значение агрегации источника данных при множественной отметке по выбранному измерению, используйте свойство IPrxCalculatedBasePoint.UseDSAggregationValue.

Пример Fore

Для выполнения примера предполагается наличие в репозитории регламентного отчёта с идентификатором «DOCUMENT», содержащего текстовый лист. Источник данных регламентного отчёта содержит измерение с идентификатором «D_SEP».

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

Sub UserProc;
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Report: IPrxReport;
    DataSource: IPrxDataSource;
    SliceDims: IPrxSliceDimensions;
    Points: IPrxCalculatedPoints;
    Point: IPrxCalculatedPoint;
    Basepoint: IPrxCalculatedBasePoint;
    Dim: IDimInstance;
Begin
    MB := MetabaseClass.Active;
    MObj := MB.ItemById("DOCUMENT").Edit;
    Report := MObj As IPrxReport;
    DataSource := Report.DataSources.Item(0);
    SliceDims := DataSource.Slices.Item(0).Dimensions;
    Dim := SliceDims.FindById("D_SEP").Dimension;
    Points := DataSource.Points;
    Points.Clear;
    // Вычисляемая точка:
    Point := Points.Add;
    Point.Name := "Point_1";
    Point.CalculateValue;
    // Настройка агрегации в вычисляемой точке:
    Basepoint:= Point As IPrxCalculatedBasePoint;
    If Basepoint.IsDSAggregationSupported(Dim) = True Then
        Basepoint.DimAggregationEnabled(Dim):= True;
        BasePoint.AggregatorOperation(Dim):= BasicAggregatorOperation.Sum;
        Basepoint.UseDSAggregationValue(Dim):= True;
        Point.SelectionSet.Item(0).SelectElement(0,False);
        Point.SelectionSet.Item(1).SelectElement(0,False);
        Point.CalculateValue(False);
        Debug.WriteLine("Значение в вычисляемой точке: " + Point.Value);
        Points.CalculateValues;
    End If;
    (Report As IMetabaseObject).Save;
End Sub UserProc;

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

Пример Fore.NET

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

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

Public Shared Sub Main(Params: StartParams);
Var
    MB: IMetabase;
    MObj: IMetabaseObject;
    Report: IPrxReport;
    DataSource: IPrxDataSource;
    SliceDims: IPrxSliceDimensions;
    Points: IPrxCalculatedPoints;
    Point: IPrxCalculatedPoint;
    Basepoint: IPrxCalculatedBasePoint;
    Dim: IDimInstance;
Begin
    MB := Params.Metabase;
    MObj := MB.ItemById["DOCUMENT"].Edit();
    Report := MObj As IPrxReport;
    DataSource := Report.DataSources.Item[0];
    SliceDims := DataSource.Slices.Item[0].Dimensions;
    Dim := SliceDims.FindById("D_SEP").Dimension;
    Points := DataSource.Points;
    Points.Clear();
    // Вычисляемая точка:
    Point := Points.Add();
    Point.Name := "Point_1";
    Point.CalculateValue(True);
    // Настройка агрегации в вычисляемой точке:
    Basepoint:= Point As IPrxCalculatedBasePoint;
    If Basepoint.IsDSAggregationSupported[Dim] = True Then
        Basepoint.DimAggregationEnabled[Dim]:= True;
        BasePoint.AggregatorOperation[Dim]:= BasicAggregatorOperation.baoSum;
        Basepoint.UseDSAggregationValue[Dim]:= True;
        Point.SelectionSet.Item[0].SelectElement(0,False);
        Point.SelectionSet.Item[1].SelectElement(0,False);
        Point.CalculateValue(False);
        System.Diagnostics.Debug.WriteLine("Значение в вычисляемой точке: " + Point.Value[True]);
        Points.CalculateValues();
    End If;
    (Report As IMetabaseObject).Save();
End Sub;

См. также:

IPrxCalculatedBasePoint