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». В структуре куба имеется измерение «Территориальные образования».
Добавьте ссылки на системные сборки: Dimensions, Map, Metabase, Report, Tab.
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;
См. также: