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». В структуре куба имеется измерение «Территориальные образования».

Добавьте ссылки на системные сборки: 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.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