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;
В результате выполнения примера будет добавлен новый ряд, отображающий данные указанного показателя. На его основе будет создан вычисляемый ряд, рассчитанный методом «Коллапс». Данные будут агрегированы с квартальной динамики на годовую. Метод агрегации - «Максимум».
См. также: