Команда ShowBulkExportDialogEx

Назначение

Вызов стандартного диалога пакетного экспорта регламентного отчета, с возможностью задания дополнительных параметров открытия диалога.

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

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

Тип значения Описание
Элемент 1: IPrxReport Регламентный отчет, для которого вызывается диалог пакетного экспорта.
Элемент 2: IPrxBulkSelectionSet Отметка измерений, допустимых для использования при пакетном экспорте. Указанная отметка будет установлена для измерений на первой странице диалога. В дальнейшем может быть изменена.
Элемент 3: PrxEnableExportFormats Список форматов экспорта, которые будут доступны для выбора в диалоге.
Элемент 4: Boolean Флаг, определяющий будет ли присутствовать в диалоге кнопка для указания дополнительных параметров экспорта в выбранный формат. Допустимые значения флага:
  • True. Кнопка отображается;
  • False. Кнопка не отображается.
Элемент 5: Boolean Флаг, определяющий будут ли возможность указать результат экспорта: в один файл или в несколько файлов. Допустимые значения флага:
  • True. Отображаются флаги выбора результата экспорта;
  • False. Флаги выбора не отображаются.

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

Команда может применяться только для регламентных отчетов. После указания в диалоге необходимых параметров и нажатия кнопки «Готово» фактический экспорт не производится. Результатом выполнения команды будет массив, содержащий следующие элементы:

Тип значения Описание
Элемент 1: Boolean Результат закрытия диалога:
  • True. В диалоге была нажата кнопка «Готово»;
  • False. В диалоге была нажата кнопка «Отмена». В этом случае в массиве больше элементов не будет.
Элемент 2: PrxEnableExportFormats Выбранный формат экспорта.
Элемент 3: String Путь для сохранения экспортированного файла(ов).
Элемент 4: Boolean Флаг, указывающий результат экспорта:
  • True. Экспорт производится в несколько файлов;
  • False. Экспорт производится в один файл.

Пример Fore

Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием "Button1", компонента ReportBox и компонента UiReport с наименованием «UiReport1», являющегося источником данных для ReportBox. Компонент «UiReport1» подключен к какому-либо регламентному отчету, для которого доступен пакетный экспорт.

Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
    Rep: IPrxReport;
    SelSet: IPrxBulkSelectionSet;
    Target: IUiCommandTarget;
    Context: IUiCommandExecutionContext;
    Data: Array;
    Res: Variant;
Begin
    Rep := UiReport1.Instance As IPrxReport;
    SelSet := Rep.GetBulkSelectionSet("1,2");
    //Отметка всех элементов первого измерения
    //Данная отметка будет отображена для измерения в диалоге
    SelSet.Item(0).Selection.SelectAll;
    Target := WinApplication.Instance.GetPluginTarget("Report");
    Context := Target.CreateExecutionContext;
    Data := New Variant[5];
    Data[0] := Rep;
    Data[1] := SelSet;
    Data[2] := PrxEnableExportFormats.All;
    Data[3] := True;
    Data[4] := False;
    Context.Data := Data;
    Res := Target.Execute("ShowBulkExportDialogEx", Context);
End Sub Button1OnClick;

При нажатии на кнопку будет открыт диалог пакетного экспорта отчета. В диалоге будут отмечены все элементы в первом измерении, будет возможен выбор любого из доступных форматов экспорта и настройка дополнительных параметров выбранного формата. После нажатия кнопки «Готово» результаты всех настроек будут доступны в виде массива в переменной «Res».

Пример Fore.NET

Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием «Button1», компонента ReportBoxNet и компонента UiReportnet с наименованием «UiReportNet1», являющегося источником данных для ReportBoxNet. Компонент «UiReportNet1» подключен к какому-либо регламентному отчету, для которого доступен пакетный экспорт.

Imports Prognoz.Platform.Interop.Dimensions;
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();
    Rep: IPrxReport;
    SelSet: IPrxBulkSelectionSet;
    Target: IUiCommandTarget;
    Context: IUiCommandExecutionContext;
    Data: Array;
    Res: Object;
Begin
    Rep := UiReportNet1.ReportUi.Report;
    SelSet := Rep.GetBulkSelectionSet("1,2");
    //Отметка всех элементов первого измерения
    //Данная отметка будет отображена для измерения в диалоге
    SelSet.Item[0].Selection.SelectAll();
    Target := WinApp.GetPluginTarget("Report");
    Context := Target.CreateExecutionContext();
    Data := New Object[5];
    Data[0] := Rep;
    Data[1] := SelSet;
    Data[2] := PrxEnableExportFormats.peefAll;
    Data[3] := True;
    Data[4] := False;
    Context.Data := Data;
    Res := Target.Execute("ShowBulkExportDialogEx", Context, Null);
End Sub;

При нажатии на кнопку будет открыт диалог пакетного экспорта отчета. В диалоге будут отмечены все элементы в первом измерении, будет возможен выбор любого из доступных форматов экспорта и настройка дополнительных параметров выбранного формата. После нажатия кнопки «Готово» результаты всех настроек будут доступны в виде массива в переменной «Res».

См. также:

IUiCommandTarget.Execute