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;
После выполнения примера в окно консоли будут выведены термы, которые входят в формулу расчета фильтра валидации и являются срезами данных. Также будут выведены наименования измерений данных термов.
См. также: