IPrxDataAdapterManager.CreateSliceMapDataAdapter

Синтаксис Fore

CreateSliceMapDataAdapter(AdapterType: PrxMapAdapter; Slice: IPrxSlice): IPrxMapDataAdapter;

Синтаксис Fore.NET

CreateSliceMapDataAdapter(AdapterType: Prognoz.Platform.Interop.Report.PrxMapAdapter; Slice: Prognoz.Platform.Interop.Report.IPrxSlice): Prognoz.Platform.Interop.Report.IPrxMapDataAdapter;

Параметры

AdapterType. Тип адаптера для отображения исходных данных на карте.

Slice. Разрез, данные которого необходимо отобразить на карте.

Описание

Метод CreateSliceMapDataAdapter создаёт адаптер данных для карты, позволяющий отображать на ней данные из разреза.

Пример Fore

Для выполнения примера предполагается наличие регламентного отчёта с идентификатором «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.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;

См. также:

IPrxDataAdapterManager