HotXLS Docs

Třída TXLSXChartLayout

TXLSXChartLayout uchovává ruční rozvržení zachovávající jednotlivá pole, určené pro oblasti vykreslení, názvy grafu či os a legendy

Deklarace

type
  TXLSXChartLayoutTarget = (xlsxChartLayoutOuter, xlsxChartLayoutInner);
  TXLSXChartLayoutMode = (xlsxChartLayoutFactor, xlsxChartLayoutEdge);

  TXLSXChartLayout = class
    property Enabled: Boolean;
    property HasTarget: Boolean;
    property HasXMode, HasYMode, HasWidthMode, HasHeightMode: Boolean;
    property HasX, HasY, HasWidth, HasHeight: Boolean;
    property Target: TXLSXChartLayoutTarget;
    property XMode, YMode, WidthMode, HeightMode: TXLSXChartLayoutMode;
    property X, Y, Width, Height: Double;
    procedure ClearTarget;
    procedure ClearXMode;
    procedure ClearYMode;
    procedure ClearWidthMode;
    procedure ClearHeightMode;
    procedure ClearX;
    procedure ClearY;
    procedure ClearWidth;
    procedure ClearHeight;
    procedure SetPositionAndSize(AX, AY, AWidth, AHeight: Double);
    procedure Assign(Source: TXLSXChartLayout);
    procedure Clear;
  end;

Model souřadnic

X, Y, Width a Height jsou normalizované vůči obdélníku grafu. Edge X a Y jsou souřadnice levého horního rohu, edge width a height jsou souřadnice pravého dolního rohu, factor X a Y posouvají automatickou pozici a factor width a height jsou velikosti relativní vůči grafu
Model uchovává každé pole a režim nezávisle. Při importu vynechané hodnoty zůstávají vynechané a neplatné číselné tokeny přežijí zápis beze změny, zatímco vykreslení se vrátí k automatické geometrii
Rozvržení názvů může obsahovat jen X a Y a zachovává automaticky změřenou velikost. Rozvržení oblasti vykreslení a legendy vyžadují všechny čtyři souřadnice
SetPositionAndSize přiřadí všechny čtyři hodnoty, označí jejich režimy za přítomné a zapne rozvržení jedním voláním. Rozvržení zapnou také jednotlivé settery souřadnic

Režimy a cíl

xlsxChartLayoutEdgePozice od hrany grafu, výchozí pro X a Y
xlsxChartLayoutFactorFaktor velikosti nebo posunu, výchozí pro width a height
TargetVnitřní nebo vnější obdélník oblasti vykreslení, smysluplné jen pro PlotAreaLayout

Resolution a konverze

TXLSXChartLayoutResolver vypočítá obdélníky názvu, legendy, vnitřní i vnější oblasti vykreslení a názvů os jednorázově pro pagination, SVG, PDF, obrázky, preview, tisk, viewer i HTML výstup. Neplatná nebo neúplná geometrie ponechá automatický obdélník, zatímco platný obdélník mimo graf se posune na nejbližší pozici v grafu beze změny velikosti
Konverze do ODF mapuje vypočtenou geometrii na absolutní vzdálenosti v grafu. Název a legenda používají svg:x a svg:y, oblast vykreslení navíc svg:width a svg:height. Ruční ODF legenda vynechává chart:legend-position, protože tento atribut přepisuje absolutní souřadnice

Příklad

Chart.PlotAreaLayout.Target := xlsxChartLayoutInner;
Chart.PlotAreaLayout.SetPositionAndSize(0.12, 0.18, 0.72, 0.64);
Chart.TitleLayout.SetPositionAndSize(0.1, 0.02, 0.6, 0.12);
Chart.LegendLayout.SetPositionAndSize(0.2, 0.84, 0.6, 0.1);

Viz také