DistinctAggregate: Boolean;
Свойство DistinctAggregate определяет, агрегировать ли идентичные данные. True - агрегировать только различные значения, False - агрегировать все значения.
Для выполнения примера предполагается наличие в репозитории стандартного куба с идентификатором «OBJ_CUBE». В данном кубе должны быть настроены привязки фактов.
Sub Main;
Var
MB: IMetabase;
MObj: IMetabaseObject;
StandCub: IStandardCube;
StDataset: IStandardCubeDataset;
FactBind: IStandardCubeFactBinding;
FactBinds: IStandardCubeFactBindings;
FactDimension: IDimInstance;
Iter: IDimIterator;
DimElements: IDimElements;
id: String;
Begin
MB := MetabaseClass.Active;
MObj := MB.ItemById("OBJ_CUBE").Edit;
StandCub := MObj As IStandardCube;
FactDimension := StandCub.FactDimension.OpenDimension;
DimElements := FactDimension.Elements;
Iter := DimElements.Elements.Iterator;
Iter.First;
While Iter.Next Do
id := DimElements.Id(Iter.Element);
StDataset := StandCub.Datasets.Item(0);
FactBinds := StandCub.FactBindings(StDataset);
FactBind := FactBinds.Binding(id);
If FactBind.Formula <> Null Then
FactBind.AggregationType := CubeFactBindingAggregationType.Custom;
FactBind.CustomAggregateFunction := "SUM";
FactBind.DistinctAggregate := True;
FactBind.AggregatedDataType := CubeFactBindingAggregatedDataType.FixedPoint;
FactBind.AggregatedDataTypePrecision := 3;
End If;
End While;
MObj.Save;
End Sub Main;
После выполнения примера для фактов куба будет определен пользовательский метод расчета агрегации на источнике данных. Агрегироваться будут только различные значения.
См. также: