Вывод стандартного диалога настройки параметров легенды, создаваемой для диаграмм регламентного отчета.
Параметры команды передаются в свойстве Data. Для работы команды в данном свойстве необходимо указать массив типа Variant, элементы которого содержат следующие значения:
Тип значения | Описание |
Элемент 1: IPrxReport | Регламентный отчет, на странице которого создана легенда для диаграмм. |
Элемент 2: IPrxChartLegend | Диаграмма, для которой необходимо отобразить диалог настройки параметров. |
Команда может применяться только для регламентных отчетов. Результатом выполнения команды будет значение True, если в диалоге была нажата кнопка «ОК», и False, если была нажата кнопка «Отмена».
Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием "Button1", компонента ReportBox и компонента UiReport с наименованием «UiReport1», являющегося источником данных для ReportBox. На активном листе регламентного отчета, подключенного к компоненту «UiReport1», имеется легенда для диаграмм.
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
Report: IPrxReport;
Objs: ITabObjects;
Obj: ITabObject;
Target: IUiCommandTarget;
Context: IUiCommandExecutionContext;
Data: Array;
i: Integer;
Begin
Report := UiReport1.Report;
Objs := (Report.ActiveSheet As IPrxTable).TabSheet.Objects;
//Поиск легенды на странице регламентного отчета
For i := 0 To Objs.Count - 1 Do
If Objs.Item(i).ClassId = "PrxChartLegend" Then
Obj := Objs.Item(i);
Break
End If;
End For;
If Obj <> Null Then
Target := WinApplication.Instance.GetPluginTarget("Report");
Context := Target.CreateExecutionContext;
Data := New Variant[2];
Data[0] := Report;
Data[1] := Obj As IPrxChartLegend;
Context.Data := Data;
Target.Execute("ChartExternLegendSetup", Context)
End If;
End Sub Button1OnClick;
При нажатии на кнопку будет выведен стандартный диалог настройки параметров легенды, найденной на активном листе регламентного отчета, подключенного в компоненте «UiReport1».
Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием "Button1", компонента ReportBoxNet и компонента UiReportNet с наименованием «UiReportNet1», являющегося источником данных для ReportBox. На активном листе регламентного отчета имеется легенда для диаграмм.
Imports Prognoz.Platform.Interop.Fore;
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Tab;
Imports Prognoz.Platform.Interop.Ui;
Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
Report: IPrxReport;
Objs: ITabObjects;
Obj: ITabObject;
WinApp: WinApplicationClassClass = New WinApplicationClassClass();
Svc: IForeServices;
RunContext: ForeRuntimeContext;
Target: IUiCommandTarget;
Context: IUiCommandExecutionContext;
Data: Array;
i: Integer;
Begin
Report := UiReportNet1.ReportUi.Report;
Objs := (Report.ActiveSheet As IPrxTable).TabSheet.Objects;
//Поиск легенды на странице регламентного отчета
For i := 0 To Objs.Count - 1 Do
If Objs.Item[i].ClassId = "PrxChartLegend" Then
Obj := Objs.Item[i];
Break
End If;
End For;
If Obj <> Null Then
Svc := Self.Metabase As IForeServices;
RunContext := Svc.GetRuntime().Context;
Target := WinApp.Instance[RunContext].GetPluginTarget("Report");
Context := Target.CreateExecutionContext();
Data := New object[2];
Data[0] := Report;
Data[1] := Obj As IPrxChartLegend;
Context.Data := Data;
Target.Execute("ChartExternLegendSetup", Context, RunContext);
End If;
End Sub;
При нажатии на кнопку будет выведен стандартный диалог настройки параметров легенды, найденной на активном листе регламентного отчета, подключенного в компоненте «UiReportNet1».
См. также: