IPrxMap.AdviseAdapter

Синтаксис

AdviseAdapter(Value: IPrxMapDataAdapter);

Параметры

Value. Источник данных для карты.

Описание

Метод AdviseAdapter информирует адаптер данных карты об изменении данных в источнике. Данные в адаптере будут обновляться при вычислении листа регламентного отчета.

Пример Fore

Для выполнения примера предполагается наличие регламентного отчета с идентификатором «REGULAR_REPORT», на листе которого расположена карта (.tbs) с исходными данными. В модуле подключите системные сборки: Metabase, Report, Tab, Map, Dimensions.

Sub UserProc;
Var
    Metabase: IMetabase;
    Report: IPrxReport;
    Tab: ITabSheet;
    PrxMap: IPrxMap;
    Map: IMap;
    DtSources: IPrxDataSources;
    Slices: IPrxSlices;
    Slice: IPrxSlice;
    DimInst: IDimInstance;
    MapDAdapt: IPrxMapDataAdapter;
    Visual: IMapVisual;
Begin
    Metabase := MetabaseClass.Active;
    Report := Metabase.ItemById(
"REGULAR_REPORT").Edit As IPrxReport;
    Tab := (Report.ActiveSheet 
As IPrxTable).TabSheet;
    PrxMap := Tab.Objects.Item(
0).Extension As IPrxMap;
    Map := PrxMap 
As IMap;
    DtSources := Report.DataSources;
    Slices := DtSources.Item(
0).Slices;
    Slice := Slices.Item(
0);
    MapDAdapt := Slice.CreateMapDataAdapter(PrxMapAdapter.Static);
    DimInst := Slice.Dimensions.Item(
0).Dimension;
    MapDAdapt.Dimension := DimInst.Dimension;
    MapDAdapt.Index := DimInst.Indexes.Item(
0).Index;
    Visual := Map.Layers.Item(
0).Visuals.AddAreaVisual As IMapVisual;
    Visual.AttributeName := 
"Id";
    Visual.DataAdapter := MapDAdapt;
    Visual.Name := 
"Картографический показатель";
    PrxMap.AdviseAdapter(MapDAdapt);

    Report.MetabaseObject.Save;
End Sub UserProc;

После выполнения примера для карты регламентного отчета будет создан новый картографический показатель. Если в источнике присутствуют измененные данные, они будут обновлены в адаптере данных карты при вычислении листа регламентного отчета.

Пример Fore.NET

Необходимые требования и результат выполнения примера Fore.NET совпадают с примером Fore.

Imports Prognoz.Platform.Interop.Metabase;
Imports Prognoz.Platform.Interop.Dimensions;
Imports Prognoz.Platform.Interop.Map;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Tab;

Public Shared Sub Main(Params: StartParams);
Var
    Metabase: IMetabase;
    Report: IPrxReport;
    Tab: ITabSheet;
    PrxMap: IPrxMap;
    Map: IMap;
    DtSources: IPrxDataSources;
    Slices: IPrxSlices;
    Slice: IPrxSlice;
    DimInst: IDimInstance;
    MapDAdapt: IPrxMapDataAdapter;
    Visual: IMapVisual;
Begin
    Metabase := Params.Metabase;
    Report := Metabase.ItemById["REGULAR_REPORT"].Edit() As IPrxReport;
    Tab := (Report.ActiveSheet As IPrxTable).TabSheet;
    PrxMap := Tab.Objects.Item[0].Extension As IPrxMap;
    Map := PrxMap As IMap;
    DtSources := Report.DataSources;
    Slices := DtSources.Item[0].Slices;
    Slice := Slices.Item[0];
    MapDAdapt := Slice.CreateMapDataAdapter(PrxMapAdapter.pmaStatic);
    DimInst := Slice.Dimensions.Item[0].Dimension;
    MapDAdapt.Dimension := DimInst.Dimension;
    MapDAdapt.Index := DimInst.Indexes.Item[0].Index;
    Visual := Map.Layers.Item[0].Visuals.AddAreaVisual() As IMapVisual;
    Visual.AttributeName := "Id";
    Visual.DataAdapter := MapDAdapt;
    Visual.Name := "Картографический показатель";
    PrxMap.AdviseAdapter(MapDAdapt);

    Report.MetabaseObject.Save();
End Sub;

См. также:

IPrxMap