IVZIntervalsLegend.CellPadding

Синтаксис Fore

CellPadding: IGxRectF;

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

CellPadding: Prognoz.Platform.Interop.Drawing.GxRectF;

Описание

Свойство CellPadding определяет область легенды визуализатора, в которой будут находиться пункты.

Комментарии

Для определения горизонтального и вертикального отступов элементов внутри легенды с интервалами используйте IVZIntervalsLegend.CellSpacing.

Пример Fore

Для выполнения примера в репозитории необходимо наличие формы, содержащей компоненты:

Дополнительно необходимо наличие:

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

Sub UserProc;
Var
    Report: IPrxReport;
    TS: ITabSheet;
    Grid: IEaxGrid;
    Pos, CellPadPos: IGxRectF;
    Visualizer: IPrxVisualizerLegend;
    i: Integer;
    VZLegend: IVZIntervalsLegend;
    VZLegendBase: IVZLegendBase;
    Color: IGxColor;
    Pen: IGxPenBase;
    LegItem: IVZLegendItem;
    ResourceImage: IVZResourceImage;
Begin
    // Получим регламентный отчет
    Report := UiReport1.Report;
    // Получим активный лист отчета
    TS := (Report.ActiveSheet As IPrxTable) As ITabSheet;
    // Вставим в отчет легенду таблицы
    Pos := New GxRectF.Create(0000);
    Pos.Left := TS.View.Selection.Range.Location.X;
    Pos.Top := TS.View.Selection.Range.Location.Y;
    Pos.Width := TS.View.Selection.Range.Width;
    Pos.Height := TS.View.Selection.Range.Height;
    TS.Objects.Add("PrxVisualizerLegend", Pos);
    Visualizer := TS.Objects.Item(TS.Objects.Count - 1).Extension As IPrxVisualizerLegend;
    Grid := Report.DataArea.Views.Item(0As IEaxGrid;
    i := Grid.Legends.Add(Grid.IndicatorLegendAssignment(EaxGridIndicatorType.BackgroundColor));
    Visualizer.SetEaxObjectLegend(Grid, EaxGridIndicatorType.BackgroundColor);
    // Получим легенду таблицы, имеющую интервалы
    VZLegend := Visualizer.PlacedControl As IVZIntervalsLegend;
    VZLegendBase := VZLegend As IVZLegendBase;
    // Создадим линии для верхнего и нижнего колонтитулов
    Color := New GxColor.CreateRGB(1200120);
    Pen := New GxPen.CreateSolid(Color, 5);
    VZLegendBase.HeaderLine := Pen;
    VZLegendBase.Footer := VZLegendBase.Header;
    VZLegendBase.FooterLine := Pen;
    // Изменим расположение объектов внутри подсказки и цвет заливки
    CellPadPos := New GxRectF.Create(201001000);
    VZLegend.CellPadding := CellPadPos;
    VZLegend.ColorApplying := LegendColorApplying.Background;
    VZLegend.Style.Background := New GxSolidBrush.Create(GxColor.FromName("Yellow"));
    // Создадим коллекцию пунктов легенды и добавим в нее первый пункт
    VZLegend.Items := New VZLegendItems.Create;
    LegItem := New VZLegendItem.Create;
    LegItem.Text := "TEXT";
    LegItem.Color := GxColor.FromName("Blue");
    VZLegend.Items.Add(LegItem);
    // Выравнивание пункта по левому краю
    VZLegend.HorizontalCellsAligment := LegendItemsHorizontalAlignment.Right;
    // Создадим маркер легенды и применим его для пункта легенды
    VZLegend.Marker := New VZIntervalsLegendMarker.Create;
    ResourceImage := New VZResourceImage.Create;
    ResourceImage.Bitmap := New GxBitmap.CreateFromFile("C:\Marker.png");
    VZLegend.Marker.Image := ResourceImage;
    VZLegend.Marker.Mask := ResourceImage;
    VZLegend.Marker.Marker := VisualizatorSizeMarkerShape.Custom;
    // Обновим визуализатор
    Visualizer.Update;
End Sub UserProc;

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

Пример Fore.NET

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

Private Sub UserProc();
Var
    Report: IPrxReport;
    TS: ITabSheet;
    Grid: IEaxGrid;
    Pos, CellPadPos: GxRectF = New GxRectFClass();
    Visualizer: IPrxVisualizerLegend;
    i: Integer;
    VZLegend: IVZIntervalsLegend;
    VZLegendBase: IVZLegendBase;
    Color: GxColor = New GxColorClass_2();
    ColorBack: GxColorClass = New GxColorClassClass();
    Brush: GxSolidBrush = New GxSolidBrushClass();
    Pen: GxPen = New GxPenClass();
    LegItem: VZLegendItem = New VZLegendItemClass();
    LegItems: VZLegendItems = New VZLegendItemsClass();
    Marker: VZIntervalsLegendMarker = New VZIntervalsLegendMarkerClass();
    ResourceImage: VZResourceImage = New VZResourceImageClass();
    Bitmap: GxBitmap = New GxBitmapClass_2();
Begin
    // Получим регламентный отчет
    Report := UiReportNet1.ReportUi.Report;
    // Получим активный лист отчета
    TS := (Report.ActiveSheet As IPrxTable) As ITabSheet;
    // Вставим в отчет легенду таблицы
    Pos.Create(0000);
    Pos.Left := TS.View.Selection.Range.Location.X;
    Pos.Top := TS.View.Selection.Range.Location.Y;
    Pos.Width := TS.View.Selection.Range.Width;
    Pos.Height := TS.View.Selection.Range.Height;
    TS.Objects.Add("PrxVisualizerLegend", Pos);
    Visualizer := TS.Objects.Item[TS.Objects.Count - 1].Extension As IPrxVisualizerLegend;
    Grid := Report.DataArea.Views.Item[0As IEaxGrid;
    i := Grid.Legends.Add(Grid.IndicatorLegendAssignment[EaxGridIndicatorType.egitBackgroundColor As Integer]);
    Visualizer.SetEaxObjectLegend(Grid, EaxGridIndicatorType.egitBackgroundColor As Integer);
    // Получим легенду таблицы, имеющую интервалы
    VZLegend := Visualizer.PlacedControl As IVZIntervalsLegend;
    VZLegendBase := VZLegend As IVZLegendBase;
    // Создадим линии для верхнего и нижнего колонтитулов
    Color.CreateRGB(1200120);
    Pen.CreateSolid(Color, 5);
    VZLegendBase.HeaderLine := Pen;
    VZLegendBase.Footer := VZLegendBase.Header;
    VZLegendBase.FooterLine := Pen;
    // Изменим расположение объектов внутри подсказки и цвет заливки
    CellPadPos.Create(201001000);
    VZLegend.CellPadding := CellPadPos;
    VZLegend.ColorApplying := LegendColorApplying.lcaBackground;
    Brush.Create(ColorBack.FromName("Yellow"));
    VZLegend.Style.Background := Brush;
    // Создадим коллекцию пунктов легенды и добавим в нее первый пункт
    VZLegend.Items := LegItems;
    LegItem.Text := "TEXT";
    LegItem.Color := ColorBack.FromName("Blue");
    VZLegend.Items.Add(LegItem);
    // Выравнивание пункта по левому краю
    VZLegend.HorizontalCellsAligment := LegendItemsHorizontalAlignment.lihaRight;
    // Создадим маркер легенды и применим его для пункта легенды
    VZLegend.Marker := Marker;
    Bitmap.CreateFromFile("C:\Marker.png");
    ResourceImage.Bitmap := Bitmap;
    VZLegend.Marker.Image := ResourceImage;
    VZLegend.Marker.Mask := ResourceImage;
    VZLegend.Marker.Marker := VisualizatorSizeMarkerShape.vsmsCustom;
    // Обновим визуализатор
    Visualizer.Update();
End Sub UserProc;

См. также:

IVZIntervalsLegend