Вывод стандартного диалога редактора выражений для настройки элемента измерения.
| Тип значения | Описание |
| IEaxAnalyzer | Экспресс-отчет, для которого необходимо составить выражение. Параметр является обязательным. |
| IEaxDataAreaTransformation | Объект для работы с формулой преобразования данных. Параметр является обязательным. |
| IDimInstance | Содержит свойства и методы для доступа к данным справочника. Необходим для поиска элемента трансформации. Не обязательный параметр. |
| IDimSelectionSet | Отметка по которой строится таблица. |
| Boolean | Флажок определяет, будет ли доступна панель настройки
фильтра. Возможные значения:
Необязательный параметр. |
| IEaxDataArea | Возвращает параметры аналитической области данных. Не обязательный параметр. |
Для выполнения примера предполагается наличие формы, расположенные на ней кнопки с наименованием «Button1» и «Button2», компонент UiErAnalyzer с наименованием «UiErAnalyzer1», являющийся источником для компонента «TabSheetBox1», компонент «UiReport1» являющийся источником для компонента «Tabsheetbox2. К «UiErAnalyzer1» подключен какой-либо экспресс-отчёт с измерением с идентификатором «FACTS» в котором располагается вычисляемый элемент, а к «Uireport1» подключен какой-либо регламентный отчет с измерением с идентификатором «FACTS» в котором располагается вычисляемый элемент.
Подключите ссылки на системные сборки «Express», «Pivot», «Tab», «Ui», «Dimension» и «Report».
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
Express: IEaxAnalyzer;
Transform: IEaxDataAreaTransformation;
SelectSet: IDimSelectionSet;
DimSelect: IDimSelection;
Data: Array;
Context: IUiCommandExecutionContext;
Target: IUiCommandTarget;
Begin
//Получаем экспресс-отчет
Express := UiErAnalyzer1.ErAnalyzer;
//Получаем отметку по которой
строится таблица
SelectSet := Express.Pivot.Selection;
//Получаем срез данных
Transform := Express.DataArea.Slices.Item(0).CalcTransformations.Item(0);
//Получаем
измерение с вычисляемым элементом
DimSelect := SelectSet.FindById("FACTS")
//Указываем необходимые
элементы массива
Data := New Variant[6];
Data[0] := Express;
Data[1] := Transform;
Data[2] := DimSelect.Dimension;
Data[3] := SelectSet;
Data[4] := True;
Data[5] := Express.DataArea;
//Открытие полученного экспресс-отчёта на просмотр
Target := WinApplication.Instance.GetPluginTarget("Express");
Context := Target.CreateExecutionContext;
Context.Data := Data;
Target.Execute("ShowFormulaEditor", Context);
End Sub Button1OnClick;
Sub Button2OnClick(Sender: Object; Args: IMouseEventArgs);
Var
Report: IPrxReport;
Slice: IEaxDataAreaTransformation;
DimSelect: IDimSelection;
SelectSet: IDimSelectionSet;
Data: Array;
Context: IUiCommandExecutionContext;
Target: IUiCommandTarget;
DataArea: IEaxDataArea;
PivSlice: IEaxDataAreaPivotSlice;
Pivot: IPivot;
Begin
//Получим отчет
Report := UiReport1.Report;
// Получим аналитическую область данных регламентного отчета
DataArea := Report.DataArea;
// Получим основу для построения среза аналитической области данных
PivSlice := DataArea.Slices.Item(0) As IEaxDataAreaPivotSlice;
//Получим отметку по которой строится таблица
Pivot := PivSlice.Pivot;
SelectSet := Pivot.Selection;
//Получим срез данных
Slice := Report.DataArea.Slices.Item(0).CalcTransformations.Item(0);
//Получим измерение с вычисляемым элементом
DimSelect := SelectSet.FindById("FACTS");
//Указываем необходимые эелменты массива
Data := New Variant[6];
Data[0] := Pivot;
Data[1] := Slice;
Data[2] := DimSelect.Dimension;
Data[3] := SelectSet;
Data[4] := True;
Data[5] := Report.DataArea;
//Открытие отчета на просмотр
Target := WinApplication.Instance.GetPluginTarget("Express");
Context := Target.CreateExecutionContext;
Context.Data := Data;
Target.Execute("ShowFormulaEditor", context);
End Sub Button2OnClick;
В результате при нажатии на кнопку «Button1» будет выведен диалог редактора выражений вычисляемого элемента экспресс-отчета, в котором располагается формула элемента с возможностью её редактирования:

В результате при нажатии на кнопку «Button2» будет выведен диалог редактора выражений вычисляемого элемента регламентного отчета, в котором располагается формула элемента с возможностью её редактирования:

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore. Вместо компонентов Fore используйте их Fore.NET аналоги.
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Pivot;
Imports Prognoz.Platform.Interop.Tab;
Imports Prognoz.Platform.Interop.Ui;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Report;
Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
Express: IEaxAnalyzer;
Grid: IEaxGrid;
Slice: IEaxDataAreaSlice;
Transformations: IEaxDataAreaTransformations;
Transform: IEaxDataAreaTransformation;
Pivot: IPivot;
SelectSet: IDimSelectionSet;
DimSelect: IDimSelection;
Data: Array;
Context: IUiCommandExecutionContext;
Target: IUiCommandTarget;
WinApp: WinApplication = New WinApplicationClass_2();
Begin
Express := UiErAnalyzerNet1.ErAnalyzer.ErAnalyzer;
Grid := Express.Grid;
Pivot := Grid.Pivot;
Slice := grid.Slice;
SelectSet := Pivot.Selection;
DimSelect := SelectSet.Item[1];
Transformations := Slice.CalcTransformations;
Transform := Transformations.Item[0];
Data := New Object[6];
Data[0] := Express;
Data[1] := Transform;
Data[2] := DimSelect.Dimension;
Data[3] := SelectSet;
Data[4] := False;
Data[5] := Express.DataArea;
Target := WinApp.GetPluginTarget("Express");
Context := Target.CreateExecutionContext();
Context.Data := Data;
Target.Execute("ShowFormulaEditor", Context, Null);
End Sub;
Private Sub button2_Click(sender: System.Object; e: System.EventArgs);
Var
Report: IPrxReport;
Slice: IEaxDataAreaTransformation;
DimSelect: IDimSelection;
SelectSet: IDimSelectionSet;
Data: Array;
Context: IUiCommandExecutionContext;
Target: IUiCommandTarget;
DataArea: IEaxDataArea;
PivSlice: IEaxDataAreaPivotSlice;
Pivot: IPivot;
WinApp: WinApplication = New WinApplicationClass_2();
Begin
//Получим отчет
Report := UiReportNet1.Object.Edit() As IPrxReport;
// Получим аналитическую область данных регламентного отчета
DataArea := Report.DataArea;
// Получим основу для построения среза аналитической области данных
PivSlice := DataArea.Slices.Item[0] As IEaxDataAreaPivotSlice;
//Получим отметку по которой строится таблица
Pivot := PivSlice.Pivot;
SelectSet := Pivot.Selection;
//Получим срез данных
Slice := Report.DataArea.Slices.Item[0].CalcTransformations.Item[0];
//Получим измерение с вычисляемым элементом
DimSelect := SelectSet.FindById("OBJ837");
//Указываем необходимые эелменты массива
Data := New Object[6];
Data[0] := Pivot;
Data[1] := Slice;
Data[2] := DimSelect.Dimension;
Data[3] := SelectSet;
Data[4] := True;
Data[5] := Report.DataArea;
//Открытие отчета на просмотр
Target := WinApp.GetPluginTarget("Express");
Context := Target.CreateExecutionContext();
Context.Data := Data;
Target.Execute("ShowFormulaEditor", Context, Null);
End Sub;
См. также: