TimeLagLevel: DimCalendarLevel;
Свойство TimeLagLevel определяет уровень календаря, по которому необходимо увеличить отметку, для расчета вычисляемого показателя.
Для выполнения примера предполагается наличие стандартного куба с идентификатором "Stan_Cube". В измерении фактов куба имеется не менее двух элементов.
Sub Main;
Var
MB: IMetabase;
MObj: IMetabaseObject;
StandCub: IStandardCube;
StDataset: IStandardCubeDataset;
Dataset: IDatasetModel;
Field: IDatasetModelField;
FactBind: IStandardCubeFactBinding;
Relation: IStandardCubeRelation;
Begin
MB := MetabaseClass.Active;
MObj := MB.ItemById("Stan_Cube").Edit;
StandCub := MObj As IStandardCube;
StDataset := StandCub.Datasets.Item(0);
//Создаем отношение
Relation := StandCub.Relations.Add;
Relation.Relation(StandCub.Dimensions.Item(0)).AsString := "T.NEXT";
Relation.Id := "RELATION_1";
Relation.Name := "RELATION_1";
//Поле для привязки
Dataset := StDataset.Dataset;
Field := Dataset.Fields.Item(0);
//Привязка первого факта
FactBind := StandCub.FactBindings(StDataset).Binding(1);
FactBind.Formula.AsString := (Dataset As IMetabaseObject).Id + "." + Field.Id;
//Привязка второго(вычисляемого) факта
FactBind := StandCub.CalcBindings.Binding(3);
FactBind.Formula.AsString := "@[1]-RELATION_1[@[1]]";
//Задаем лаг для вычисляемого показателя
(FactBind As IStandardCubeCalculatedFactBinding).TimeLagLevel := DimCalendarLevel.Month;
(FactBind As IStandardCubeCalculatedFactBinding).TimeForwardLag := 1;
MObj.Save;
End Sub Main;
После выполнения примера будет настроена привязка для первых двух элементов измерения фактов куба. Первый факт куба будет привязан к первому полю источника данных. Второй факт будет определен как вычисляемый. Для задания формулы вычисляемого факта будет создано отношение, выбирающее значение следующего элемента.
См. также: