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;
После выполнения примера в области данных (первой в коллекции областей данных регламентного отчета) будут созданы два элемента заголовка. Для значений второго элемента будет определена формула: удвоенное значение первого элемента.
См. также: