CreateSliceMapDataAdapter(AdapterType: PrxMapAdapter; Slice: IPrxSlice): IPrxMapDataAdapter;
CreateSliceMapDataAdapter(AdapterType: Prognoz.Platform.Interop.Report.PrxMapAdapter; Slice: Prognoz.Platform.Interop.Report.IPrxSlice): Prognoz.Platform.Interop.Report.IPrxMapDataAdapter;
AdapterType. Тип адаптера для отображения исходных данных на карте.
Slice. Разрез, данные которого необходимо отобразить на карте.
Метод CreateSliceMapDataAdapter создаёт адаптер данных для карты, позволяющий отображать на ней данные из разреза.
Для выполнения примера предполагается наличие регламентного отчёта с идентификатором «REGULAR_REPORT», на активной странице которого создана карта со слоем «Regions». В список источников данных отчёта добавлен куб с идентификатором «CUBE_SEP», на базе куба создан срез «Map». В структуре куба имеется измерение «Территориальные образования». Подключите системные сборки: Metabase, Report, Tab, Map, Dimensions.
Sub UserProc;
Var
Mb: IMetabase;
MObj: IMetabaseObject;
Report: IPrxReport;
Tab: ITabSheet;
Map: IMap;
BarVisual: IMapBarVisual;
PrxDA: IPrxMapDataAdapter;
Slice: IPrxSlice;
DataAdapterM: IPrxDataAdapterManager;
Begin
Mb := MetabaseClass.Active;
MObj := Mb.ItemById("REGULAR_REPORT").Edit;
Report := MObj As IPrxReport;
Tab := (Report.ActiveSheet As IPrxTable).TabSheet;
Map := Tab.Objects.Item(0).Extension As IMap;
BarVisual := Map.Layers.FindByName("Regions").Visuals.AddBarVisual;
Slice := Report.DataSources.FindById("CUBE_SEP").Slices.FindByName("Map");
DataAdapterM := New PrxDataAdapterManager.Create;
PrxDA := DataAdapterM.CreateSliceMapDataAdapter(PrxMapAdapter.Static, Slice);
PrxDA.Dimension := Slice.Dimensions.FindByName("Территориальные образования").Dimension.Dimension;
PrxDa.Index := PrxDA.Dimension.Indexes.PrimaryIndex;
PrxDA.Attribute := "ID";
BarVisual.DataAdapter := PrxDA As IMapDataAdapter;
MObj.Save;
End Sub UserProc;
После выполнения примера на карте будет создан новый столбиковый показатель, отображающий данные указанного среза.
Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.
Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Map;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Tab;
Public Shared Sub Main(Params: StartParams);
Var
Mb: IMetabase;
MObj: IMetabaseObject;
Report: IPrxReport;
Tab: ITabSheet;
Map: IMap;
BarVisual: IMapBarVisual;
PrxDA: IPrxMapDataAdapter;
DataAdapterM: PrxDataAdapterManager = New PrxDataAdapterManagerClass();
Slice: IPrxSlice;
Begin
Mb := Params.Metabase;
MObj := Mb.ItemById["REGULAR_REPORT"].Edit();
Report := MObj As IPrxReport;
Tab := (Report.ActiveSheet As IPrxTable).TabSheet;
Map := Tab.Objects.Item[0].Extension As IMap;
BarVisual := Map.Layers.FindByName["Regions"].Visuals.AddBarVisual();
Slice := Report.DataSources.FindById("CUBE_SEP").Slices.FindByName("Map");
PrxDA := DataAdapterM.CreateSliceMapDataAdapter(PrxMapAdapter.pmaStatic, Slice);
PrxDA.Dimension := Slice.Dimensions.FindByName("Территориальные образования").Dimension.Dimension;
PrxDa.Index := PrxDA.Dimension.Indexes.PrimaryIndex;
PrxDA.Attribute := "ID";
BarVisual.DataAdapter := PrxDA As IMapDataAdapter;
MObj.Save();
End Sub;
См. также: