AdviseAdapter(Value: IPrxMapDataAdapter);
Value. Источник данных для карты.
Метод AdviseAdapter информирует адаптер данных карты об изменении данных в источнике. Данные в адаптере будут обновляться при вычислении листа регламентного отчета.
Для выполнения примера предполагается наличие регламентного отчета с идентификатором «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.
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;
См. также: