IMsFormulaTermInfo.TermTransformationMethod

Синтаксис

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;

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

См. также:

IMsFormulaTermInfo