IPivotEvaluatorDimCalculatesItem.AddPercentCalculate

Синтаксис

AddPercentCalculate(

Name: String;

RelationElement: Integer;

Relation: DimRelation;

TotalDisposition: PivotEvaluatorTotalDisposition;

TotalType: PivotEvaluatorElementType): Integer;

Параметры

Name. Наименование создаваемого вычисляемого элемента.

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

Relation. Позиция вставки вычисляемого элемента относительно элемента RelationElement.

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

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

Описание

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

Пример

Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1», компонента UiErAnalyzer с наименованием «UiErAnalyzer1», и каких-либо компонентов, используемых для отображения данных отчета, загруженного в «UiErAnalyzer1», например TabSheetBox.

Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
    OLAP: IEaxAnalyzer;
    Grid: IEaxGrid;
    Pivot: IPivot;
    Sel: IDimSelection;
    Totals: IPivotEvaluatorTotals;
    Dim: IDimInstance;
    Calcs: IPivotEvaluatorDimCalculates;
    Calc: IPivotEvaluatorDimCalculatesItem;
    Style: ITabCellStyle;
    i, i1: Integer;
Begin
    OLAP := UiErAnalyzer1.ErAnalyzer;
    Grid := OLAP.Grid;
    Pivot := OLAP.Pivot;
    //Итоги
    Totals := Pivot.Evaluator.Totals;
    Totals.RowTypes := PivotEvaluatorElementType.Sum;
    //Вычисляемый показател - Процент к итогу
    Dim := Pivot.TopHeader.Dim(0);
    Calcs := Pivot.Evaluator.DimCalculates;
    Calc := Calcs.FindByDimKey(Dim.Key);
    Sel := Pivot.Selection.FindByKey(Dim.Key);
    i := Calc.AddPercentCalculate("Процент к итогу", Sel.Element(0), DimRelation.Last,
        PivotEvaluatorTotalDisposition.Overall, PivotEvaluatorElementType.Sum);
    i1 := Calc.AddPercentCalculate("Процент к подитогу", Sel.Element(0), DimRelation.Last,
        PivotEvaluatorTotalDisposition.Sub_, PivotEvaluatorElementType.Sum);
    //Настройка формата
    Style := New TabCellStyle.Create;
    Style.BackgroundBrush := New GxSolidBrush.Create(GxColor.FromName("Coral"));
    Style.Font.Bold := TriState.OnOption;
    Style.CustomFormat := "0,00%";
    //Установка стиля для вычисляемых элементов
    Grid.Style.DimCalculateStyle(Dim.Key, Calc.CalculatedElement(i)) := Style;
    Grid.Style.DimCalculateStyle(Dim.Key, Calc.CalculatedElement(i1)) := Style;
    Grid.Refresh;
End Sub Button1OnClick;

После выполнения примера при нажатии на кнопку для экспресс-отчета, загруженного в «UiErAnalyzer1», будет включен подсчет итогов. По строкам будет рассчитываться сумма значений. Также будут рассчитываться промежуточные значений итогов. Будут созданы два вычисляемых показателя, осуществляющих расчет на базе значений первого показателя, присутствующего в отметке по первому столбцу. Первый вычисляемый показатель будет рассчитывать процентное соотношение значений от общего итога, второй - процентное соотношение от промежуточных итогов. Для вычисляемых показателей будет настроен формат отображения.

Исходные данные:

Таблица с вычисляемыми элементами:

См. также:

IPivotEvaluatorDimCalculatesItem