IMsFormulaTermInfo.CreateTermTransformationMethod

Синтаксис

CreateTermTransformationMethod(MethodType: MsTermTransformationType): IMsFormulaTermTransformationMethod;

Параметры

MethodType. Метод преобразования терма.

Описание

Метод CreateTermTransformationMethod создаёт объект, определяющий параметры преобразования терма.

Пример

Для выполнения примера в репозитории предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1», компонента TabSheetBox и компонента UiErAnalyzer с наименованием «UiErAnalyzer1», являющегося источником данных для TabSheetBox. В «UiErAnalyzer1» должна быть загружена рабочая область базы данных временных рядов, в которой должен присутствовать показатель с ключом «98491», содержащий квартальные данные.

Пример является обработчиком события OnClick для кнопки «Button1».

Добавьте ссылки на системные сборки: Cubes, Laner, Metabase, Ms.

Sub Button1OnClick(Sender:Object; Args: IMouseEventArgs);
Var
    Laner: ILaner;
    Factor: IRubricatorFactor;
    Series: ILanerSeries;
    serie: ILanerSourceSerie;
    Transform: IFormulaTransformModel;
    calcSerie: ILanerCalculateSerie;
    t: IMsFormulaTransform;
    Selector: IMsFormulaTransformSelector;
    Slice, SliceInp: IMsFormulaTransformSlice;
    MDic: IMetaDictionary;
    MetaAttr: IMetaAttribute;
    MsMetaAttributeValue:IMsMetaAttributeValue;
    Formula: IMsFormula;
    det: IMsDeterministicTransform;
    Rubricator: IRubricator;
    info: IMsFormulaTermInfo;
    term: IMsFormulaTerm;
    TermMeth: IMsFormulaTermTransformationMethod;
    Collapse: IMsCollapseTransformationMethod;
Begin
    Laner := UiErAnalyzer1.ErAnalyzer.Laner;
    Laner.BeginUpdate;
    Series := Laner.Series;
    Factor := Laner.RubricatorInstance.GetFactData(98491).Factor;
    serie := Series.AddSourceSerie(Factor);
    calcSerie := Series.AddCalculateSerie("Collapse");
    Transform := calcSerie.Transform;
    Transform.AddInputVariable(serie.Stub);
    t := Transform.Transform As IMsFormulaTransform;
    Selector := T.CreateSelector;
    Slice := T.Outputs.Item(0).Slices.Add(Null);
    Selector.Slice := Slice;
    Formula := T.Transform(Selector);
    Formula.Level := DimCalendarLevel.Year;
    Formula.Kind := MsFormulaKind.Deterministic;
    Det := Formula.Method As IMsDeterministicTransform;
    SliceInp := t.Inputs.Item(0).Slices.Add(Null);
    Rubricator := Laner.RubricatorInstance.Rubricator;
    Mdic := Rubricator.Facts;
    MetaAttr := MDic.Attributes.FindByKind(MetaAttributeKind.CalendarLevel);
    MsMetaAttributeValue:= SliceInp.MetaAttributeValueList.Add(MetaAttr);
    MsMetaAttributeValue.Value:= DimCalendarLevelSet.Quarter;
    term := Det.Operands.Add(SliceInp);
    Info := term.TermInfo;
    TermMeth := Info.CreateTermTransformationMethod(MsTermTransformationType.Collapse);
    Collapse := TermMeth As IMsCollapseTransformationMethod;
    Collapse.CollapseType := MsCollapseType.Maximum;
    Info.TermTransformationMethod:= Collapse;
    Term.TermInfo := Info;
    Det.Expression.AsString:= term.TermToInnerText;
    Laner.EndUpdate;
End Sub Button1OnClick;

В результате выполнения примера будет добавлен новый ряд, отображающий данные указанного показателя. На его основе будет создан вычисляемый ряд, рассчитанный методом «Коллапс». Данные будут агрегированы с квартальной динамики на годовую. Метод агрегации - «Максимум».

См. также:

IMsFormulaTermInfo