IPrxDataIslandDimensionLayout.CreateFormulaParser

Синтаксис

CreateFormulaParser: IPrxDataIslandDimensionLayoutFormulaParser;

Описание

Метод CreateFormulaParser создает объект, осуществляющий разбор формулы, заданной в виде символьной строки.

Пример

Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1», компонента UiReport с идентификатором «UiReport1», являющимся источником данных для компонента ReportBox. В репозитории должен располагаться регламентный отчет «OBJ_REPORT», содержащий область данных.

Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);

Var

MB: IMetabase;

ReportObj: IMetabaseObject;

Report: IPrxReport;

DIs: IPrxDataIslands;

DI: IPrxDataIsland;

Prop: IPrxDataIslandProperties;

Dim: IDimInstance;

DimProp: IPrxDataIslandDimension;

Layout: IPrxDataIslandDimensionLayout;

RN: IPrxDataIslandDimensionLayoutNodes;

Element: IPrxDataIslandDimensionLayoutNode;

FormulaParser: IPrxDataIslandDimensionLayoutFormulaParser;

Term: String;

Begin

MB := MetabaseClass.Active;

ReportObj := MB.ItemById("OBJ_REPORT").Edit;

Report := ReportObj As IPrxReport;

DIs := Report.DataIslands;

DI := DIs.Item(0).Edit;

    Prop := DI.Properties;

    Dim := DI.Slice.LeftHeader.Item(0).Dimension;

    DimProp := Prop.Dimension(Dim.Dimension);

    DimProp.CustomLayout := True;

    Layout := DimProp.Layout;

    Layout.FitToSelection := False;

    RN := Layout.RootNodes;

    RN.Clear;

    Element := RN.Add;

    Element.DimElement(Dim) := 1;

    Element.Caption := "Элемент";

    FormulaParser := Layout.CreateFormulaParser;

    Term := FormulaParser.AddTerm;

    FormulaParser.TermType(Term) := LayoutFormulaTermType.Value;

    Element := RN.Add;

    Element.DimElement(Dim) := 1;

    Element.Caption := "Удвоенный элемент";

    FormulaParser.Node := Element;

    FormulaParser.Parse(Term + " * 2");

DI.Save;

Report.Recalc;

ReportObj.Save;

UiReport1.Active := False;

UiReport1.Instance := ReportObj;

End Sub Button1OnClick;

После выполнения примера в области данных (первой в коллекции областей данных регламентного отчета) будут созданы два элемента заголовка. Для значений второго элемента будет определена формула: удвоенное значение первого элемента.

См. также:

IPrxDataIslandDimensionLayout