IVZMapChartArrows.Add

Синтаксис Fore

Add(Value: IVZMapChartArrow): Integer;

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

Add(Value: Prognoz.Platform.Interop.Visualizators.VZMapChartArrow): integer;

Параметры

Value. Стрелка на карте.

Описание

Метод Add добавляет стрелку в коллекцию.

Комментарии

Для очищения коллекции стрелок используйте IVZMapChartArrows.Clear.

Для удаления стрелки из коллекции по ее индексу используйте IVZMapChartArrows.Remove.

Пример Fore

Для выполнения примера в репозитории необходимо наличие экспресс-отчета с идентификатором «EXPRESS», содержащего карту со стрелками.

Добавьте ссылки на системные сборки: Drawing, Express, Metabase, Visualizators.

Sub UserProc;
Var
    Metabase: IMetabase;
    EaxAnalyzer: IEaxAnalyzer;
    Map: IVZMapChart;
    Arrows: IVZMapChartArrows;
    Arrow: IVZMapChartArrow;
    ArrowStyle: IVZMapChartArrowStyle;
    Color: IGxColor;
    Pen: IGxPenBase;
    LabelStyle: IVZLabelStyle;
    Brush: IGxBrush;
    Font: IGxFontBase;
    TtStyle: IVZToolTipStyle;
    AV: IVZMapChartArrowVisual;
Begin
    // Получим репозиторий
    Metabase := MetabaseClass.Active;
    // Получим экспресс-отчет
    EaxAnalyzer := Metabase.ItemById("EXPRESS").Edit As IEaxAnalyzer;
    // Получим карту экспресс-отчета
    Map := EaxAnalyzer.MapChart.MapChart;
    // Получим стрелки на карте
    Arrows := Map.Arrows;
    Arrow := Arrows.Item(0);
    Arrows.Clear;
    Arrows.Add(Arrow);
    // Изменим идентификатор, точки входа и выхода стрелки
    Arrow.ArrowId := "ArrowID";
    Arrow.StartShapeId := Map.RootLayer.SubLayers.Item(0).Shapes.Item(10).ShapeId;
    Arrow.EndShapeId := Map.RootLayer.SubLayers.Item(0).Shapes.Item(30).ShapeId;
    // Получим стиль стрелки по умолчанию и изменим его
    ArrowStyle := Map.DefaultArrowStyle;
    // Изменим угол изгиба стрелки
    ArrowStyle.Angle := 45;
    // Изменим тип стрелки на фигурную
    ArrowStyle.ArrowType := MapChartArrowType.Figured;
    // Размеры наконечника стрелки не зависят от ее длины
    If ArrowStyle.IsRelativeWidth Then
        ArrowStyle.IsRelativeWidth := False;
    End If;
    // Размеры наконечника
    ArrowStyle.PointerLength := 30;
    ArrowStyle.PointerWidth := 30;
    // Изменим расположение подписи стрелки по всей длине
    ArrowStyle.TextOrientation := MapChartArrowTextOrientation.AlongTheArrow;
    // Создадим границу для стрелки
    Color := New GxColor.CreateRGB(000);
    Pen := New GxPen.CreateSolid(Color, 2);
    ArrowStyle.Border := Pen;
    // Применим стиль подписи
    LabelStyle := New VZLabelStyle.Create;
    Brush := New GxSolidBrush.Create(New GxColor.CreateRGB(1200120));
    LabelStyle.Background := Brush;
    LabelStyle.BorderPen := Pen;
    Font := New GxFont.Create("Arial"12, GxFontStyle.Bold, GxUnit.Point);
    LabelStyle.Font := Font;
    LabelStyle.FontShadowColor := New GxColor.CreateRGB(1805180);
    LabelStyle.MaskText := "Arrow";
    LabelStyle.NoDataText := "NoData";
    ArrowStyle.LabelStyle := LabelStyle;
    // Применим стиль подсказки
    TtStyle := New VZTooltipStyle.Create;
    TtStyle.HoverMode := VisualizatorHoverMode.Click;
    TtStyle.Background := Brush;
    TtStyle.BorderPen := Pen;
    TtStyle.Font := Font;
    TtStyle.FontShadowColor := New GxColor.CreateRGB(1805180);
    TtStyle.MaskText := "Arrow";
    TtStyle.NoDataText := "NoData";
    ArrowStyle.ToolTipStyle := TtStyle;
    // Выведем в окно консоли тип метрик
    AV := ArrowStyle.ArrowVisual;
    Debug.WriteLine("Тип метрики для сопоставления данных цвету стрелки - " + AV.BackgroundMapping.AttributeId);
    Debug.WriteLine("Тип метрики для сопоставления размеру стрелки - " + AV.BasementWidthMapping.AttributeId);
    // Сохраним изменения
    (EaxAnalyzer As IMetabaseObject).Save;
End Sub UserProc;

После выполнения примера:

Пример Fore.NET

Imports Prognoz.Platform.Interop.Drawing;
Imports Prognoz.Platform.Interop.Express;
Imports Prognoz.Platform.Interop.Visualizators;

Public Shared Sub Main(Params: StartParams);
Var
    Metabase: IMetabase;
    EaxAnalyzer: IEaxAnalyzer;
    Map: IVZMapChart;
    Arrows: IVZMapChartArrows;
    Arrow: VZMapChartArrow;
    ArrowStyle: IVZMapChartArrowStyle;
    Color, Color_F, Color_Z: GxColor = New GxColorClass_2();
    Pen: GxPen = New GxPenClass();
    LabelStyle: VZLabelStyle;
    Brush: GxSolidBrush = New GxSolidBrushClass();
    Font: GxFont = New GxFontClass();
    TtStyle: VZToolTipStyle;
    AV: IVZMapChartArrowVisual;
Begin
    // Получим репозиторий
    Metabase := Params.Metabase;
    // Получим экспресс-отчет
    EaxAnalyzer := Metabase.ItemById["EXPRESS"].Edit() As IEaxAnalyzer;
    // Получим карту экспресс-отчета
    Map := EaxAnalyzer.MapChart.MapChart;
    // Получим стрелки на карте
    Arrows := Map.Arrows;
    Arrow := Arrows.Item[0];
    Arrows.Clear();
    Arrows.Add(Arrow);
    // Изменим идентификатор, точки входа и выхода стрелки
    Arrow.ArrowId := "ArrowID";
    Arrow.StartShapeId := Map.RootLayer.SubLayers.Item[0].Shapes.Item[10].ShapeId;
    Arrow.EndShapeId := Map.RootLayer.SubLayers.Item[0].Shapes.Item[30].ShapeId;
    // Получим стиль стрелки по умолчанию и изменим его
    ArrowStyle := Map.DefaultArrowStyle;
    // Изменим угол изгиба стрелки
    ArrowStyle.Angle := 45;
    // Изменим тип стрелки на фигурную
    ArrowStyle.ArrowType := MapChartArrowType.mcatFigured;
    // Размеры наконечника стрелки не зависят от ее длины
    If ArrowStyle.IsRelativeWidth Then
        ArrowStyle.IsRelativeWidth := False;
    End If;
    // Размеры наконечника
    ArrowStyle.PointerLength := 30;
    ArrowStyle.PointerWidth := 30;
    // Изменим расположение подписи стрелки по всей длине
    ArrowStyle.TextOrientation := MapChartArrowTextOrientation.mcatoAlongTheArrow;
    // Создадим границу для стрелки
    Color.CreateRGB(000);
    Pen.CreateSolid(Color, 2);
    ArrowStyle.Border := Pen;
    // Применим стиль подписи
    LabelStyle := New VZLabelStyle.Create();
    Color_F.CreateRGB(1200120);
    Brush.Create(Color_F);
    LabelStyle.Background := Brush;
    LabelStyle.BorderPen := Pen;
    Font.Create("Arial"12, GxFontStyle.gfsBold, GxUnit.guPoint);
    LabelStyle.Font := Font;
    Color_Z.CreateRGB(1805180);
    LabelStyle.FontShadowColor := Color_Z;
    LabelStyle.MaskText := "Arrow";
    LabelStyle.NoDataText := "NoData";
    ArrowStyle.LabelStyle := LabelStyle;
    // Применим стиль подсказки
    TtStyle := New VZTooltipStyle.Create();
    TtStyle.HoverMode := VisualizatorHoverMode.vhmClick;
    TtStyle.Background := Brush;
    TtStyle.BorderPen := Pen;
    TtStyle.Font := Font;
    TtStyle.FontShadowColor := Color_Z;
    TtStyle.MaskText := "Arrow";
    TtStyle.NoDataText := "NoData";
    ArrowStyle.ToolTipStyle := TtStyle;
    // Выведем в окно консоли тип метрик
    AV := ArrowStyle.ArrowVisual;
    System.Diagnostics.Debug.WriteLine
    ("Тип метрики для сопоставления данных цвету стрелки - " + AV.BackgroundMapping.AttributeId);
    System.Diagnostics.Debug.WriteLine
    ("Тип метрики для сопоставления размеру стрелки - " + AV.BasementWidthMapping.AttributeId);
    // Сохраним изменения
    (EaxAnalyzer As IMetabaseObject).Save();
End Sub;

См. также:

IVZMapChartArrows