IPrxMapLegend.Map

Синтаксис

Map: IPrxMap;

Описание

Свойство Map определяет карту регламентного отчета, для которой строится легенда.

Пример Fore

Для выполнения примера предполагается наличие регламентного отчета, на листе которого расположена карта со слоем «Regions» и «Картографическим» показателем. На форме должны быть расположены: кнопка с наименованием «Button1», невизуальный компонент UiReport с наименованием «UiReport1», компонент ReportBox с наименованием «ReportBox1». В свойствах компонента UiReport выберите регламентный отчет в качестве объекта, установите значение True в свойстве «Active». Для компонента ReportBox выберите источник данных «UiReport1». Подключите системные сборки: Drawing, Forms, Map, Report, Tab, Forms.Net (для примера Fore.NET).

Sub Button1OnClick(Sender: Object; Args: IMouseEventArgs);
Var
    Obj: ITabObject;
    Map: IPrxMap;
    Sheet: IPrxSheet;
    Info: IMapTerritoryInfo;
    Legend: IMapLegend;
    RectFL, RectFT: IGxRectF;
    LayerL, LayerT: IMapLayer;
    Visual: IMapVisual;
Begin
    
//Определим лист регламентного отчета, на котором содержится карта с идентификатором "PrxMap1"
    Sheet := UiReport1.Report.Sheets.Item(0);
    Map := Sheet.Table.Objects.Object(
"PrxMap1").Extension As IPrxMap;
    
// Создадим прямоугольники и зададим для них параметры
    RectFL := New GxRectF.Create(005050);
    RectFT := 
New GxRectF.Create(06050110);
    
// Добавим легенду по идентификатору как объект
    Obj := Sheet.Table.Objects.Add("PrxMapLegend", RectFL);
    
// Определим карту регламентного отчета, для которой строится легенда
    (Obj.Extension As IPrxMapLegend).Map := Map;
    
// Зададим показатель для легенды и отобразим её в заданном прямоугольнике
    LayerL := (Map As IMap).Layers.Item(0);
    Visual := LayerL.Visuals.Item(
0);
    (Obj.Extension 
As IMapLegend).Visual := Visual;
    
// Добавим расшифровку по территориям как объект
    Obj := Sheet.Table.Objects.Add("PrxMapTerritoryInfo", RectFT);
    
// Определим карту регламентного отчета, для которой строится расшифровка
    (Obj.Extension As IPrxMapTerritoryInfo).Map := Map;
    
// Зададим слой карты для расшифроки и отобразим её в заданном прямоугольнике
    LayerT := (Map As IMap).Layers.Item(0);
    (Obj.Extension 
As IMapTerritoryInfo).Layer := LayerT;
End Sub Button1OnClick;

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

Пример Fore.NET

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

Imports Prognoz.Platform.Forms.Net;
Imports Prognoz.Platform.Interop.Drawing;
Imports Prognoz.Platform.Interop.Forms;
Imports Prognoz.Platform.Interop.Map;
Imports Prognoz.Platform.Interop.Report;
Imports Prognoz.Platform.Interop.Tab;

Private Sub button1_Click(sender: System.Object; e: System.EventArgs);
Var
    Obj: ITabObject;
    Map: PrxMap;
    Sheet: IPrxSheet;
    Info: IMapTerritoryInfo;
    Legend: IMapLegend;
    RectFL, RectFT: GxRectF = New GxRectFClass();
    LayerL, LayerT: IMapLayer;
    Visual: IMapVisual;
Begin
    //Определим лист регламентного отчета, на котором содержится карта с идентификатором "PrxMap1"
    Sheet := uiReportNet1.ReportUi.Report.Sheets.Item[0];
    Map := Sheet.Table.Objects.Object["PrxMap1"].Extension As PrxMap;
    // Создадим прямоугольники и зададим для них параметры
    RectFL.Create(005050);
    RectFT.Create(06050110);
    // Добавим легенду по идентификатору как объект
    Obj := Sheet.Table.Objects.Add("PrxMapLegend", RectFL);
    // Определим карту регламентного отчета, для которой строится легенда
    (Obj.Extension As PrxMapLegend).Map := Map;
    // Зададим показатель для легенды и отобразим её в заданном прямоугольнике
    LayerL := (Map As IMap).Layers.Item[0];
    Visual := LayerL.Visuals.Item[0];
    (Obj.Extension As IMapLegend).Visual := Visual;
    // Добавим расшифровку по территориям как объект
    Obj := Sheet.Table.Objects.Add("PrxMapTerritoryInfo", RectFT);
    // Определим карту регламентного отчета, для которой строится расшифровка
    (Obj.Extension As IPrxMapTerritoryInfo).Map := Map;
    // Зададим слой карты для расшифроки и отобразим её в заданном прямоугольнике
    LayerT := (Map As IMap).Layers.Item[0];
    (Obj.Extension As IMapTerritoryInfo).Layer := LayerT;
End Sub;

См. также:

IPrxMapLegend