Вызов стандартного диалога для работы с вложениями ячейки.
Параметры команды передаются в свойстве IUiCommandExecutionContext.Data. Для работы команды в данном свойстве необходимо указать следующее значение:
Тип значения | Описание |
IEaxAttachmentsPluginContext | Контекст, определяющий для какой ячейки вызывается диалог. Контекст создаётся с помощью метода IEaxGrid.CreateAttachmentsPluginContext. |
Команда применяется для ячейки таблицы, в которой располагается аналитическая область данных. Источник, на котором построена аналитическая область данных, должен иметь настройки для работы с вложениями (IStandardCubeDestination.AttachmentsStorage).
Результатом выполнения команды будет логическое значение True, если в диалоге была нажата кнопка «Закрыть» и False, если диалог был закрыт с помощью кнопки с крестиком в заголовке или по горячей клавише ESC.
Для выполнения примера предполагается наличие в репозитории экспресс-отчёта с идентификатором «EXPRESS_REPORT». Источник данных для экспресс-отчёта имеет настройки для работы со вложениями.
Добавьте ссылки на системные сборки: Express, Metabase, Ui.
Sub UserProc;
Var
MB: IMetabase;
Eax: IEaxAnalyzer;
Target: IUiCommandTarget;
Context: IUiCommandExecutionContext;
EaxContext: IEaxAttachmentsPluginContext;
Grid: IEaxGrid;
Begin
MB := MetabaseClass.Active;
Eax := MB.ItemById("EXPRESS_REPORT").Edit As IEaxAnalyzer;
Target := WinApplication.Instance.GetPluginTarget("Report");
Context := Target.CreateExecutionContext;
Grid := Eax.Grid;
EaxContext := Eax.Grid.CreateAttachmentsPluginContext(5, 5);
Context.Data := EaxContext;
Target.Execute("ShowAttachmentsDialog", Context);
(Eax As IMetabaseObject).Save;
End Sub UserProc;
Imports Prognoz.Platform.Interop.Cubes;
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Ui;
Public Shared Sub Main(Params: StartParams);
Var
MB: IMetabase;
Eax: IEaxAnalyzer;
WinApp: WinApplication = New WinApplicationClass_2();
Target: IUiCommandTarget;
Context: IUiCommandExecutionContext;
EaxContext: IEaxAttachmentsPluginContext;
Grid: IEaxGrid;
Begin
MB := Params.Metabase;
Eax := MB.ItemById["EXPRESS_REPORT"].Edit() As IEaxAnalyzer;
Target := WinApp.GetPluginTarget("Report");
Context := Target.CreateExecutionContext();
Grid := Eax.Grid;
EaxContext := Eax.Grid.CreateAttachmentsPluginContext(5, 5);
Context.Data := EaxContext;
Target.Execute("ShowAttachmentsDialog", Context, Null);
(Eax As IMetabaseObject).Save();
End Sub;
При выполнении примера для указанной ячейки будет вызван диалог работы с вложениями. После завершения работы со вложениями экспресс-отчёт будет сохранён.
См. также: