IMsFormulaTermInfo.DateSlice

Синтаксис

DateSlice: IMsFormulaTransformSlice;

Описание

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

Комментарии

Свойство актуально, если тип терма - срез данных (свойство IMsFormulaTermInfo.Type имеет значение MsFormulaTermType.SliceDate).

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

Пример

Для выполнения примера предполагается наличие в репозитории базы данных временных рядов с идентификатором «OBJ_RUBRICATOR». В данной базе предполагается наличие фильтра валидации с идентификатором «VALIDATION». Фильтр использует для расчетов пользовательский метод.

Sub UserProc;

Var

Mb: IMetabase;

RubDescr: IMetabaseObjectDescriptor;

Validation: IValidationFilter;

CustomData: IValidationCustom;

Trans: IMsFormulaTransform;

Formula: IMsFormula;

Determ: IMsDeterministicTransform;

TermList: IMsFormulaTermList;

OperCount, i: Integer;

TInfo: IMsFormulaTermInfo;

Slice: IMsFormulaTransformSlice;

ParamDimensions: IMsParametrizedDimensions;

DimCount, j: Integer;

ParamDim: IMsParametrizedDimension;

Begin

Mb := MetabaseClass.Active;

RubDescr := Mb.ItemById("OBJ_RUBRICATOR");

Validation := Mb.ItemByIdNamespace("VALIDATION", RubDescr.Key).Bind As IValidationFilter;

CustomData := Validation.Details As IValidationCustom;

Trans := CustomData.Transform;

Formula := Trans.FormulaItem(0);

Debug.WriteLine("Формула расчета фильтра валидации: " + Formula.CreateStringGenerator.Execute);

Determ := Formula.Method As IMsDeterministicTransform;

TermList := Determ.Operands;

OperCount := TermList.Count;

For i := 0 To OperCount - 1 Do

TInfo := TermList.Item(i).TermInfo;

Debug.WriteLine("Терм '" + TInfo.TermText + "'");

If TInfo.Type = MsFormulaTermType.SliceDate Then

Slice := TInfo.DateSlice;

ParamDimensions := Slice.ParametrizedDimensions;

DimCount := ParamDimensions.Count;

Debug.WriteLine("    Измерения терма:");

For j := 0 To DimCount - 1 Do

ParamDim := ParamDimensions.Item(j);

Debug.WriteLine("     - " + ParamDim.Name);

End For;

End If;

End For;

End Sub UserProc;

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

См. также:

IMsFormulaTermInfo