Команда ShowFormulaDialog

Назначение

Вызов мастера функций регламентного отчета.

Параметры использования

Параметры команды передаются в свойстве Data. Для работы команды в данном свойстве необходимо указать массив типа Variant, элементы которого содержат следующие значения:

Тип значения Описание
Элемент 1: IPrxReport Регламентный отчет, для которого создается функция.
Элемент 2: String Функция, на которой будет сфокусирован указатель в мастере функций. В качестве значения необходимо указать наименование функции, либо пустую строку, если функция не известна.

Особенности применения

Команда может применяться только для регламентных отчетов. Результатом выполнения команды будет логическое значение True, если  была нажата кнопка «ОК» и False, если была нажата кнопка «Отмена». Если функция была сформирована и в мастере была нажата кнопка «ОК», то получить созданную функцию можно повторно получив значение свойства Data и приведя его к массиву. Значение формулы будет находиться во втором элементе массива.

Пример Fore

Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием "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». После формирования функции и нажатия кнопки «ОК» полный текст функции будет выведен в консоль среды разработки.

Пример Fore.NET

Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием "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». После формирования функции и нажатия кнопки «ОК» полный текст функции будет выведен в консоль среды разработки.

См. также:

IUiCommandTarget.Execute