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