Вывод стандартного диалога настройки адаптера данных для различных элементов карты в регламентном отчете.
Параметры команды передаются в свойстве Data. Для работы команды в данном свойстве необходимо указать массив типа Variant, элементы которого содержат следующие значения:
Тип значения | Описание |
Элемент 1: IPrxReport | Регламентный отчет, на странице которого создана карта. |
Элемент 2: IPrxMap | Карта, для которой производится настройка. |
Элемент 3: IMapLayer | Слой карты, для которого производится настройка. |
Элемент 4: IPrxMapDataAdapter | Адаптер данных, параметры которого необходимо изменить. Если
элемент указан, то значения пятого и шестого элемента будут установлены
автоматически.
Если передается значение Null, то диалог будет использоваться для настройки нового адаптера данных. При этом также необходимо в пятом элементе массива указать тип создаваемого адаптера. |
Элемент 5: PrxMapAdapter | Тип адаптера данных.
Необязательный элемент, указывается если в четвертом элементе передается значение Null. |
Элемент 6: PrxAdapterDataType | Тип расположения данных для адаптера.
Необязательный элемент. Если осуществляется редактирование существующего адаптера (элемент 4) и задан тип расположения данных (элемент 6), то в диалоге не будет возможности выбрать другой тип. |
Команда может применяться только для регламентных отчетов. Результатом выполнения команды будет адаптер данных, описываемый интерфейсом IPrxMapDataAdapter, если в диалоге была нажата кнопка «ОК», и пустое значение, если была нажата кнопка «Отмена».
Примечание. При закрытии диалога по кнопке «ОК» всегда возвращается новый экземпляр адаптера данных. Поэтому для применения изменений необходимо переприсвоить адаптер данных у того объекта, для которого он настраивался.
Для выполнения примера предполагается наличие формы, расположенной на ней кнопки с наименованием "Button1", компонента ReportBox и компонента UiReport с наименованием «UiReport1», являющегося источником данных для ReportBox. На активном листе регламентного отчета, подключенного к компоненту «UiReport1», имеется карта. Для слоя «Regions» карты создан картографический показатель.
Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
Report: IPrxReport;
PrxMap: IPrxMap;
Map: IMap;
Layer: IMapLayer;
VisualColor: IMapVisualColorProperty;
Da: IPrxMapDataAdapter;
Target: IUiCommandTarget;
Context: IUiCommandExecutionContext;
Data: Array;
Result: Variant;
Begin
Report := UiReport1.Report;
PrxMap := (Report.ActiveSheet As IPrxTable).TabSheet.Objects.Item(0).Extension As IPrxMap;
Map := PrxMap As IMap;
//Слой карты
Layer := Map.Layers.FindByName("Regions");
//Параметры заливки
картографического показателя
VisualColor := (Layer.Visuals.Item(0) As IMapAreaVisual).Color;
//Адаптера для заливки картографического показателя
Da := VisualColor.DataAdapter As IPrxMapDataAdapter;
Target := WinApplication.Instance.GetPluginTarget("Report");
Context := Target.CreateExecutionContext;
Data := New Variant[4];
Data[0] := Report;
Data[1] := Map;
Data[2] := Layer;
Data[3] := Da;
Context.Data := Data;
Result := Target.Execute("ShowDataAdapterDialog", Context);
If Result <> Null Then
Da := Result;
VisualColor.DataAdapter := Da;
End If;
End Sub Button1OnClick;
При нажатии на кнопку будет выведен стандартный диалог настройки адаптера данных. В диалоге будет настраиваться адаптер, используемый для привязки данных в заливке картографического показателя. Если в диалоге будет нажата кнопка «ОК», то адаптер будет обновлен в настройках заливки.
См. также: