IMDCalculationFormulaElement.Sum

Синтаксис

Sum(Index: Integer): MDCalculationFormulaElementSum;

Параметры

Index. Индекс измерения, по которому осуществляется суммирование.

Описание

Свойство Sum определяет способ суммирования. Для использования суммирования, необходимо чтобы по измерению были настроены параметры суммирования.

Пример

Для выполнения примера предполагается наличие в репозитории многомерного расчета на сервере БД с идентификатором MDCalc_1. В источнике и приемнике имеется два измерения: 1) Календарное измерение - зафиксировано; 2) Измерение, основанное на табличном справочнике - для данного измерения настроены параметры суммирования.

Sub Main;

Var

MB: IMetabase;

MDInst: IMDCalculationInstance;

Formulas: IMDCalculationFormulas;

Formula: IMDCalculationFormula;

FormulaExpression: IMDCalculationFormulaExpression;

Source: IMDCalculationSourceInstance;

Dest: IMDCalculationDestinationInstance;

Slices: IMDCalculationSlicesInstance;

Operand: IMDCalculationFormulaOperand;

DestCoo, SourceCoo: IMatrixCoord;

ElementKey, SourceElKey: IMDCalculationFormulaElementKey;

CoordOperand: IMDCalculationFormulaElement;

Begin

MB := MetabaseClass.Active;

MDInst := MB.ItemById("MDCALC_1").Open(Null) As IMDCalculationInstance;

Formulas := MDInst.CreateFormulas;

Formula := Formulas.Add;

FormulaExpression := Formula.Expression;

Source := MDInst.Sources.Item(0);

Slices := Source.Slices;

//Задать в качестве операнда - координату в источнике

Operand := FormulaExpression.CreateItem(MDCalculationFormulaOperandKind.Element);

SourceCoo := Source.NewCoord;

SourceCoo.Item(0) := 1;

SourceElKey := Source.CoordToKey(SourceCoo);

SourceElKey.FactIndex := 0;

CoordOperand := Operand As IMDCalculationFormulaElement;

CoordOperand.Key := SourceElKey;

//Суммирование дочерних элементов

CoordOperand.Sum(0) := MDCalculationFormulaElementSum.Sum;

FormulaExpression.InsertItem(Operand);

//Координата, по которой запишем формулы в приемник

Dest := MDInst.Destination;

DestCoo := Dest.NewCoord;

Slices := Dest.Slices;

DestCoo.Item(0) := 0;

ElementKey := Dest.CoordToKey(DestCoo);

ElementKey.FactIndex := 0;

MDInst.WriteFormulas(ElementKey, Formulas);

End Sub Main;

После выполнения примера будет задана формула для первого элемента приемника данных. Значение по координате в приемнике будет рассчитываться как сумма значений дочерних элементов первого элемента в источнике данных.

См. также:

IMDCalculationFormulaElement