Вызов мастера функций регламентного отчета.
Параметры команды передаются в свойстве Data. Для работы команды в данном свойстве необходимо указать массив типа Variant, элементы которого содержат следующие значения:
Тип значения | Описание |
Элемент 1: IPrxReport | Регламентный отчет, для которого создается функция. |
Элемент 2: String | Функция, на которой будет сфокусирован указатель в мастере функций. В качестве значения необходимо указать наименование функции, либо пустую строку, если функция не известна. |
Команда может применяться только для регламентных отчетов. Результатом выполнения команды будет логическое значение True, если была нажата кнопка «ОК» и False, если была нажата кнопка «Отмена». Если функция была сформирована и в мастере была нажата кнопка «ОК», то получить созданную функцию можно повторно получив значение свойства Data и приведя его к массиву. Значение формулы будет находиться во втором элементе массива.
Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием "Button1", компонента ReportBox и компонента UiReport с наименованием «UiReport1», являющегося источником данных для ReportBox. Компонент «UiReport1» подключен к какому-либо регламентному отчету.
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
Target: IUiCommandTarget;
Context: IUiCommandExecutionContext;
Data: Array;
Begin
Target := WinApplication.Instance.GetPluginTarget("Report");
Context := Target.CreateExecutionContext;
Data := New Variant[2];
Data[0] := UiReport1.Instance;
Data[1] := "Abs";
Context.Data := Data;
If (Target.Execute("ShowFormulaDialog", Context) As Boolean) Then
Debug.WriteLine((Context.Data As Array)[1]);
Else
Debug.WriteLine("Создание функции отменено.");
End If;
End Sub Button1OnClick;
При нажатии на кнопку будет открыт мастер функций. Указатель будет сфокусирован на функции «Abs». После формирования функции и нажатия кнопки «ОК» полный текст функции будет выведен в консоль среды разработки.
Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием "Button1", компонента ReportBoxNet и компонента UiReportNet с наименованием «UiReportNet1», являющегося источником данных для ReportBoxNet. Компонент «UiReport1» подключен к какому-либо регламентному отчету.
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Ui;
Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
WinApp: WinApplication = New WinApplicationClass_2();
Target: IUiCommandTarget;
Context: IUiCommandExecutionContext;
Data: Array;
Begin
Target := WinApp.GetPluginTarget("Report");
Context := Target.CreateExecutionContext();
Data := New Object[2];
Data[0] := UiReportNet1.ReportUi.Report;
Data[1] := "Abs";
Context.Data := Data;
If Convert.ToBoolean(Target.Execute("ShowFormulaDialog", Context, Null)) Then
System.Diagnostics.Debug.WriteLine((Context.Data As Array)[1]);
Else
System.Diagnostics.Debug.WriteLine("Создание функции отменено.");
End If;
End Sub;
При нажатии на кнопку будет открыт мастер функций. Указатель будет сфокусирован на функции «Abs». После формирования функции и нажатия кнопки «ОК» полный текст функции будет выведен в консоль среды разработки.
См. также: